@charset "UTF-8";
/*! Made with Bones: http://themble.com/bones :) */
/******************************************************************
Site Name:
Author:

Stylesheet: Main Stylesheet

Here's where the magic happens. Here, you'll see we are calling in
the separate media queries. The base mobile goes outside any query
and is called at the beginning, after that we call the rest
of the styles inside media queries.

Helpful articles on Sass file organization:
http://thesassway.com/advanced/modular-css-naming-conventions

******************************************************************/
/*********************
IMPORTING PARTIALS
These files are needed at the beginning so that we establish all
our mixins, functions, and variables that we'll be using across
the whole project.
*********************/
/* normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9.
 * Hide the `template` element in IE, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background: transparent; }

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong,
.strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari 5 and Chrome.
 */
dfn,
em,
.em {
  font-style: italic; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0; }

/*
 * proper formatting (http://blog.fontdeck.com/post/9037028497/hyphens)
*/
p {
  -webkit-hyphens: auto;
  -epub-hyphens: auto;
  -ms-hyphens: auto;
      hyphens: auto; }

/*
 * Addresses margins set differently in IE6/7.
 */
pre {
  margin: 0; }

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap; }

/**
 * Set consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
q:before,
q:after {
  content: '';
  content: none; }

small, .small {
  font-size: 75%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
  Lists
========================================================================== */
/*
 * Addresses margins set differently in IE6/7.
 */
dl,
menu,
ol,
ul {
  margin: 1em 0; }

dd {
  margin: 0; }

/*
 * Addresses paddings set differently in IE6/7.
 */
menu {
  padding: 0 0 0 40px; }

ol,
ul {
  padding: 0;
  list-style-type: none; }

/*
 * Corrects list images handled incorrectly in IE7.
 */
nav ul,
nav ol {
  list-style: none;
  list-style-image: none; }

/* ==========================================================================
  Embedded content
========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/**
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

.image-replacement,
.ir {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden; }

.clearfix, .cf {
  zoom: 1; }
  .clearfix:before, .clearfix:after, .cf:before, .cf:after {
    content: "";
    display: table; }
  .clearfix:after, .cf:after {
    clear: both; }

/*
use the best ampersand
http://simplebits.com/notebook/2008/08/14/ampersands-2/
*/
span.amp {
  font-family: Baskerville,'Goudy Old Style',Palatino,'Book Antiqua',serif !important;
  font-style: italic; }

/******************************************************************
Site Name:
Author:

Stylesheet: Variables

Here is where we declare all our variables like colors, fonts,
base values, and defaults. We want to make sure this file ONLY
contains variables that way our files don't get all messy.
No one likes a mess.

******************************************************************/
/*********************
COLORS
Need help w/ choosing your colors? Try this site out:
http://0to255.com/
*********************/
/*
Here's a great tutorial on how to
use color variables properly:
http://sachagreif.com/sass-color-variables/
*/
/******************************************************************
Site Name:
Author:

Stylesheet: Typography

Need to import a font or set of icons for your site? Drop them in
here or just use this to establish your typographical grid. Or not.
Do whatever you want to...GOSH!

Helpful Articles:
http://trentwalton.com/2012/06/19/fluid-type/
http://ia.net/blog/responsive-typography-the-basics/
http://alistapart.com/column/responsive-typography-is-a-physical-discipline

******************************************************************/
/*********************
FONT FACE (IN YOUR FACE)
*********************/
/*  To embed your own fonts, use this syntax
  and place your fonts inside the
  library/fonts folder. For more information
  on embedding fonts, go to:
  http://www.fontsquirrel.com/
  Be sure to remove the comment brackets.
*/
/*  @font-face {
      font-family: 'Font Name';
      src: url('library/fonts/font-name.eot');
      src: url('library/fonts/font-name.eot?#iefix') format('embedded-opentype'),
             url('library/fonts/font-name.woff') format('woff'),
             url('library/fonts/font-name.ttf') format('truetype'),
             url('library/fonts/font-name.svg#font-name') format('svg');
      font-weight: normal;
      font-style: normal;
  }
*/
/*

Proxima Nova Light

font-family: proxima-nova, sans-serif;
font-weight: 300;
font-style: normal;


Proxima Nova Light Italic

font-family: proxima-nova, sans-serif;
font-weight: 300;
font-style: italic;


Proxima Nova Regular

font-family: proxima-nova, sans-serif;
font-weight: 400;
font-style: normal;


Proxima Nova Italic

font-family: proxima-nova, sans-serif;
font-weight: 400;
font-style: italic;


Proxima Nova Medium

font-family: proxima-nova, sans-serif;
font-weight: 500;
font-style: normal;


Proxima Nova Medium Italic

font-family: proxima-nova, sans-serif;
font-weight: 500;
font-style: italic;

Proxima Nova Semibold

font-family: proxima-nova, sans-serif;
font-weight: 600;
font-style: normal;


Proxima Nova Semibold Italic

font-family: proxima-nova, sans-serif;
font-weight: 600;
font-style: italic;

*/
/*
 i imported this one in the functions file so bones would look sweet.
 don't forget to remove it for your site.
*/
/*
some nice typographical defaults
more here: http://www.newnet-soft.com/blog/csstypography
*/
p {
  -ms-word-wrap: break-word;
  word-break: break-word;
  word-wrap: break-word;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
      hyphens: auto;
  -webkit-hyphenate-before: 2;
  -webkit-hyphenate-after: 3;
  hyphenate-lines: 3;
  -webkit-font-feature-settings: "liga", "dlig";
  -ms-font-feature-settings: "liga", "dlig";
  -o-font-feature-settings: "liga", "dlig";
  font-feature-settings: "liga", "dlig"; }

/* ========================================================================
   Component: Base
 ========================================================================== */
/*
 * 1. Set `font-size` to support `rem` units
 *    Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Style
 */
html {
  /* 1 */
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
  background: #fff;
  color: #666; }

/*
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/* Links
 ========================================================================== */
/*
 * Remove the outline on focused links when they are also active or hovered
 */
a:active,
a:hover {
  outline: none; }

/*
 * Style
 */
a,
.uk-link {
  color: #DA7D02;
  text-decoration: none;
  cursor: pointer; }

a:hover,
.uk-link:hover,
.uk-link-toggle:hover .uk-link,
.uk-link-toggle:focus .uk-link {
  color: #0f6ecd;
  text-decoration: underline; }

/* Text-level semantics
 ========================================================================== */
/*
 * 1. Add the correct text decoration in Edge.
 * 2. The shorthand declaration `underline dotted` is not supported in Safari.
 */
abbr[title] {
  /* 1 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
  -webkit-text-decoration-style: dotted; }

/*
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/*
 * 1. Consolas has a better baseline in running text compared to `Courier`
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Style
 */
:not(pre) > code,
:not(pre) > kbd,
:not(pre) > samp {
  /* 1 */
  font-family: Consolas, monaco, monospace;
  /* 2 */
  font-size: 0.875rem;
  /* 3 */
  color: #f0506e;
  white-space: nowrap;
  padding: 2px 6px;
  background: #f8f8f8; }

/*
 * Emphasize
 */
em {
  color: #5c6b80; }

/*
 * Insert
 */
ins {
  background: #ffd;
  color: #666;
  text-decoration: none; }

/*
 * Mark
 */
mark {
  background: #ffd;
  color: #666; }

/*
 * Quote
 */
q {
  font-style: italic; }

/*
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/*
 * Prevents `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
 ========================================================================== */
/*
 * Remove the gap between embedded content and the bottom of their containers.
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

/*
 * 1. Add responsiveness.
 * 2. Auto-scale the height. Only needed if `height` attribute is present.
 * 3. Corrects responsive `max-width` behavior if padding and border are used.
 * 4. Exclude SVGs for IE11 because they don't preserve their aspect ratio.
 */
canvas,
img,
video {
  /* 1 */
  max-width: 100%;
  /* 2 */
  height: auto;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* 4 */
@supports (display: block) {
  svg {
    max-width: 100%;
    height: auto;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; } }

/*
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/*
 * 1. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
 * 2. Hide `alt` text for lazy loading images.
 * Note: Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; }
 */
img:not([src]) {
  /* 1 */
  min-width: 1px;
  /* 2 */
  visibility: hidden; }

/*
 * Iframe
 * Remove border in all browsers
 */
iframe {
  border: 0; }

/* Block elements
 ========================================================================== */
/*
 * Margins
 */
p,
ul,
ol,
dl,
pre,
address,
fieldset,
figure {
  margin: 0 0 0 0; }

/* Add margin if adjacent element */
* + p,
* + ul,
* + ol,
* + dl,
* + pre,
* + address,
* + fieldset,
* + figure {
  margin-top: 0; }

/* Headings
 ========================================================================== */
h1, .uk-h1,
h2, .uk-h2,
h3, .uk-h3,
h4, .uk-h4,
h5, .uk-h5,
h6, .uk-h6,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-heading-xlarge,
.uk-heading-2xlarge {
  margin: 0 0 0 0;
  font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif;
  font-weight: normal;
  color: #323944;
  text-transform: none; }

/* Add margin if adjacent element */
* + h1, * + .uk-h1,
* + h2, * + .uk-h2,
* + h3, * + .uk-h3,
* + h4, * + .uk-h4,
* + h5, * + .uk-h5,
* + h6, * + .uk-h6,
* + .uk-heading-small,
* + .uk-heading-medium,
* + .uk-heading-large,
* + .uk-heading-xlarge,
* + .uk-heading-2xlarge {
  margin-top: 40px; }

/*
 * Sizes
 */
h1, .uk-h1 {
  font-size: 2.23125rem;
  line-height: 1.2; }

h2, .uk-h2 {
  font-size: 1.7rem;
  line-height: 1.3; }

h3, .uk-h3 {
  font-size: 1.5rem;
  line-height: 1.4; }

h4, .uk-h4 {
  font-size: 1.25rem;
  line-height: 1.4; }

h5, .uk-h5 {
  font-size: 16px;
  line-height: 1.4; }

h6, .uk-h6 {
  font-size: 0.875rem;
  line-height: 1.4; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  h1, .uk-h1 {
    font-size: 2.625rem; }
  h2, .uk-h2 {
    font-size: 2rem; } }

/* Lists
 ========================================================================== */
ul,
ol {
  padding-left: 0; }

/*
 * Reset margin for nested lists
 */
ul > li > ul,
ul > li > ol,
ol > li > ol,
ol > li > ul {
  margin: 0; }

/* Description lists
 ========================================================================== */
dt {
  font-weight: bold; }

dd {
  margin-left: 0; }

/* Horizontal rules
 ========================================================================== */
/*
 * 1. Show the overflow in Chrome, Edge and IE.
 * 2. Add the correct text-align in Edge and IE.
 * 3. Style
 */
hr, .uk-hr {
  /* 1 */
  overflow: visible;
  /* 2 */
  text-align: inherit;
  /* 3 */
  margin: 0 0 20px 0;
  border: 0;
  border-top: 1px solid #e5e5e5; }

/* Add margin if adjacent element */
* + hr,
* + .uk-hr {
  margin-top: 20px; }

/* Address
 ========================================================================== */
address {
  font-style: normal; }

/* Blockquotes
 ========================================================================== */
blockquote {
  margin: 0 0 20px 0;
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic;
  color: #333; }

/* Add margin if adjacent element */
* + blockquote {
  margin-top: 20px; }

/*
 * Content
 */
blockquote p:last-of-type {
  margin-bottom: 0; }

blockquote footer {
  margin-top: 10px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #666; }
  blockquote footer::before {
    content: "— "; }

/* Preformatted text
 ========================================================================== */
/*
 * 1. Contain overflow in all browsers.
 */
pre {
  font: 0.875rem / 1.5 Consolas, monaco, monospace;
  color: #666;
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
  /* 1 */
  overflow: auto;
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 3px;
  background: #fff; }

pre code {
  font-family: Consolas, monaco, monospace; }

/* Selection pseudo-element
 ========================================================================== */
::-moz-selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }
::selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }

/* HTML5 elements
 ========================================================================== */
/*
 * 1. Add the correct display in Edge, IE 10+, and Firefox.
 * 2. Add the correct display in IE.
 */
details,
main {
  /* 2 */
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/*
 * Add the correct display in IE.
 */
template {
  display: none; }

/* Pass media breakpoints to JS
 ========================================================================== */
/*
 * Breakpoints
 */
.uk-breakpoint-s::before {
  content: "768px"; }

.uk-breakpoint-m::before {
  content: "1024px"; }

.uk-breakpoint-l::before {
  content: "1200px"; }

.uk-breakpoint-xl::before {
  content: "1600px"; }

:root {
  --uk-breakpoint-s: 768px;
  --uk-breakpoint-m: 1024px;
  --uk-breakpoint-l: 1200px;
  --uk-breakpoint-xl: 1600px; }

/* ========================================================================
   Component: Link
 ========================================================================== */
/* Muted
 ========================================================================== */
a.uk-link-muted,
.uk-link-muted a {
  color: #999; }

a.uk-link-muted:hover,
.uk-link-muted a:hover,
.uk-link-toggle:hover .uk-link-muted,
.uk-link-toggle:focus .uk-link-muted {
  color: #666; }

/* Text
 ========================================================================== */
a.uk-link-text,
.uk-link-text a {
  color: inherit; }

a.uk-link-text:hover,
.uk-link-text a:hover,
.uk-link-toggle:hover .uk-link-text,
.uk-link-toggle:focus .uk-link-text {
  color: #999; }

/* Heading
 ========================================================================== */
a.uk-link-heading,
.uk-link-heading a {
  color: inherit; }

a.uk-link-heading:hover,
.uk-link-heading a:hover,
.uk-link-toggle:hover .uk-link-heading,
.uk-link-toggle:focus .uk-link-heading {
  color: #1e87f0;
  text-decoration: none; }

/* Reset
 ========================================================================== */
/*
 * `!important` needed to override inverse component
 */
a.uk-link-reset,
.uk-link-reset a {
  color: inherit !important;
  text-decoration: none !important; }

/* Toggle
 ========================================================================== */
.uk-link-toggle {
  color: inherit !important;
  text-decoration: none !important; }

.uk-link-toggle:focus {
  outline: none; }

/* ========================================================================
   Component: Heading
 ========================================================================== */
.uk-heading-small {
  font-size: 2.6rem;
  line-height: 1.2; }

.uk-heading-medium {
  font-size: 2.8875rem;
  line-height: 1.1; }

.uk-heading-large {
  font-size: 3.4rem;
  line-height: 1.1; }

.uk-heading-xlarge {
  font-size: 4rem;
  line-height: 1; }

.uk-heading-2xlarge {
  font-size: 6rem;
  line-height: 1; }

/* Tablet Landscape and bigger */
@media (min-width: 1024px) {
  .uk-heading-small {
    font-size: 3.25rem; }
  .uk-heading-medium {
    font-size: 3.5rem; }
  .uk-heading-large {
    font-size: 4rem; }
  .uk-heading-xlarge {
    font-size: 6rem; }
  .uk-heading-2xlarge {
    font-size: 8rem; } }

/* Laptop and bigger */
@media (min-width: 1200px) {
  .uk-heading-medium {
    font-size: 4rem; }
  .uk-heading-large {
    font-size: 6rem; }
  .uk-heading-xlarge {
    font-size: 8rem; }
  .uk-heading-2xlarge {
    font-size: 11rem; } }

/* Primary
   Deprecated: Use `uk-heading-medium` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Hero
   Deprecated: Use `uk-heading-xlarge` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Divider
 ========================================================================== */
.uk-heading-divider {
  padding-bottom: calc(5px + 0.1em);
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

/* Bullet
 ========================================================================== */
.uk-heading-bullet {
  position: relative; }

/*
 * 1. Using `inline-block` to make it work with text alignment
 * 2. Center vertically
 * 3. Style
 */
.uk-heading-bullet::before {
  content: "";
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  top: calc(-0.1 * 1em);
  vertical-align: middle;
  /* 3 */
  height: calc(4px + 0.7em);
  margin-right: calc(5px + 0.2em);
  border-left: calc(5px + 0.1em) solid #e5e5e5; }

/* Line
 ========================================================================== */
/*
 * Clip the child element
 */
.uk-heading-line {
  overflow: hidden; }

/*
 * Extra markup is needed to make it work with text align
 */
.uk-heading-line > * {
  display: inline-block;
  position: relative; }

/*
 * 1. Center vertically
 * 2. Make the element as large as possible. It's clipped by the container.
 * 3. Style
 */
.uk-heading-line > ::before,
.uk-heading-line > ::after {
  content: "";
  /* 1 */
  position: absolute;
  top: calc(50% - (calc(0.2px + 0.05em) / 2));
  /* 2 */
  width: 2000px;
  /* 3 */
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

.uk-heading-line > ::before {
  right: 100%;
  margin-right: calc(5px + 0.3em); }

.uk-heading-line > ::after {
  left: 100%;
  margin-left: calc(5px + 0.3em); }

/* ========================================================================
   Component: Divider
 ========================================================================== */
/*
 * 1. Reset default `hr`
 * 2. Set margin if a `div` is used for semantical reason
 */
[class*='uk-divider'] {
  /* 1 */
  border: none;
  /* 2 */
  margin-bottom: 20px; }

/* Add margin if adjacent element */
* + [class*='uk-divider'] {
  margin-top: 20px; }

/* Icon
 ========================================================================== */
.uk-divider-icon {
  position: relative;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23e5e5e5%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-divider-icon::before,
.uk-divider-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  max-width: calc(50% - (50px / 2));
  border-bottom: 1px solid #e5e5e5; }

.uk-divider-icon::before {
  right: calc(50% + (50px / 2));
  width: 100%; }

.uk-divider-icon::after {
  left: calc(50% + (50px / 2));
  width: 100%; }

/* Small
 ========================================================================== */
/*
 * 1. Fix height because of `inline-block`
 * 2. Using ::after and inline-block to make `text-align` work
 */
/* 1 */
.uk-divider-small {
  line-height: 0; }

/* 2 */
.uk-divider-small::after {
  content: "";
  display: inline-block;
  width: 100px;
  max-width: 100%;
  border-top: 1px solid #e5e5e5;
  vertical-align: top; }

/* Vertical
 ========================================================================== */
.uk-divider-vertical {
  width: 1px;
  height: 100px;
  margin-left: auto;
  margin-right: auto;
  border-left: 1px solid #e5e5e5; }

/* ========================================================================
   Component: List
 ========================================================================== */
.uk-list {
  padding: 0;
  list-style: none; }

/*
 * Remove margin from the last-child
 */
.uk-list > li > :last-child {
  margin-bottom: 0; }

/*
 * Style
 */
.uk-list > li:nth-child(n+2),
.uk-list > li > ul {
  margin-top: 10px; }

/* Type modifiers
 ========================================================================== */
.uk-list-disc,
.uk-list-circle,
.uk-list-square,
.uk-list-decimal,
.uk-list-hyphen {
  padding-left: 30px; }

.uk-list-disc {
  list-style-type: disc; }

.uk-list-circle {
  list-style-type: circle; }

.uk-list-square {
  list-style-type: square; }

.uk-list-decimal {
  list-style-type: decimal; }

.uk-list-hyphen {
  list-style-type: '–  '; }

/* Color modifiers
 * Doesn't work in Chrome and Edge yet
 ========================================================================== */
.uk-list-muted li::marker {
  color: #999 !important; }

.uk-list-emphasis li::marker {
  color: #333 !important; }

.uk-list-primary li::marker {
  color: #1e87f0 !important; }

.uk-list-secondary li::marker {
  color: #222 !important; }

/* Image bullet modifier
 ========================================================================== */
.uk-list-bullet > li {
  position: relative;
  padding-left: 30px; }

.uk-list-bullet > li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1.5em;
  height: 1.5em;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-list-divider > li:nth-child(n+2) {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e5e5e5; }

/*
 * Striped
 */
.uk-list-striped > li {
  padding: 10px 10px; }
  .uk-list-striped > li:nth-of-type(odd) {
    border-top: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5; }

.uk-list-striped > li:nth-of-type(odd) {
  background: #f8f8f8; }

.uk-list-striped > li:nth-child(n+2) {
  margin-top: 0; }

/* Size modifier
 ========================================================================== */
.uk-list-large > li:nth-child(n+2),
.uk-list-large > li > ul {
  margin-top: 20px; }

.uk-list-collapse > li:nth-child(n+2),
.uk-list-collapse > li > ul {
  margin-top: 0; }

/*
 * Divider
 */
.uk-list-large.uk-list-divider > li:nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px; }

.uk-list-collapse.uk-list-divider > li:nth-child(n+2) {
  margin-top: 0;
  padding-top: 0; }

/*
 * Striped
 */
.uk-list-large.uk-list-striped > li {
  padding: 20px 10px; }

.uk-list-collapse.uk-list-striped > li {
  padding-top: 0;
  padding-bottom: 0; }

.uk-list-large.uk-list-striped > li:nth-child(n+2),
.uk-list-collapse.uk-list-striped > li:nth-child(n+2) {
  margin-top: 0; }

/* ========================================================================
   Component: Description list
 ========================================================================== */
/*
 * Term
 */
.uk-description-list > dt {
  color: #333;
  font-size: 0.875rem;
  font-weight: normal;
  text-transform: uppercase; }

.uk-description-list > dt:nth-child(n+2) {
  margin-top: 20px; }

/*
 * Description
 */
/* Style modifier
 ========================================================================== */
/*
 * Line
 */
.uk-description-list-divider > dt:nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e5e5e5; }

/* ========================================================================
   Component: Table
 ========================================================================== */
/*
 * 1. Remove most spacing between table cells.
 * 2. Behave like a block element
 * 3. Style
 */
.uk-table {
  /* 1 */
  border-collapse: collapse;
  border-spacing: 0;
  /* 2 */
  width: 100%;
  /* 3 */
  margin-bottom: 20px; }

/* Add margin if adjacent element */
* + .uk-table {
  margin-top: 20px; }

/* Header cell
 ========================================================================== */
/*
 * 1. Style
 */
.uk-table th {
  padding: 16px 12px;
  text-align: left;
  vertical-align: bottom;
  /* 1 */
  font-size: 0.875rem;
  font-weight: normal;
  color: #999;
  text-transform: uppercase; }

/* Cell
 ========================================================================== */
.uk-table td {
  padding: 16px 12px;
  vertical-align: top; }

/*
 * Remove margin from the last-child
 */
.uk-table td > :last-child {
  margin-bottom: 0; }

/* Footer
 ========================================================================== */
.uk-table tfoot {
  font-size: 0.875rem; }

/* Caption
 ========================================================================== */
.uk-table caption {
  font-size: 0.875rem;
  text-align: left;
  color: #999; }

/* Alignment modifier
 ========================================================================== */
.uk-table-middle,
.uk-table-middle td {
  vertical-align: middle !important; }

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-table-divider > tr:not(:first-child),
.uk-table-divider > :not(:first-child) > tr,
.uk-table-divider > :first-child > tr:not(:first-child) {
  border-top: 1px solid #e5e5e5; }

/*
 * Striped
 */
.uk-table-striped > tr:nth-of-type(odd),
.uk-table-striped tbody tr:nth-of-type(odd) {
  background: #f8f8f8;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5; }

/*
 * Hover
 */
.uk-table-hover > tr:hover,
.uk-table-hover tbody tr:hover {
  background: #ffd; }

/* Active state
 ========================================================================== */
.uk-table > tr.uk-active,
.uk-table tbody tr.uk-active {
  background: #ffd; }

/* Size modifier
 ========================================================================== */
.uk-table-small th,
.uk-table-small td {
  padding: 10px 12px; }

.uk-table-large th,
.uk-table-large td {
  padding: 22px 12px; }

/* Justify modifier
 ========================================================================== */
.uk-table-justify th:first-child,
.uk-table-justify td:first-child {
  padding-left: 0; }

.uk-table-justify th:last-child,
.uk-table-justify td:last-child {
  padding-right: 0; }

/* Cell size modifier
 ========================================================================== */
.uk-table-shrink {
  width: 1px; }

.uk-table-expand {
  min-width: 150px; }

/* Cell link modifier
 ========================================================================== */
/*
 * Does not work with `uk-table-justify` at the moment
 */
.uk-table-link {
  padding: 0 !important; }

.uk-table-link > a {
  display: block;
  padding: 16px 12px; }

.uk-table-small .uk-table-link > a {
  padding: 10px 12px; }

/* Responsive table
 ========================================================================== */
/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-table-responsive,
  .uk-table-responsive tbody,
  .uk-table-responsive th,
  .uk-table-responsive td,
  .uk-table-responsive tr {
    display: block; }
  .uk-table-responsive thead {
    display: none; }
  .uk-table-responsive th,
  .uk-table-responsive td {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow: visible !important;
    white-space: normal !important; }
  .uk-table-responsive th:not(:first-child):not(.uk-table-link),
  .uk-table-responsive td:not(:first-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:first-child) > a {
    padding-top: 5px !important; }
  .uk-table-responsive th:not(:last-child):not(.uk-table-link),
  .uk-table-responsive td:not(:last-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:last-child) > a {
    padding-bottom: 5px !important; }
  .uk-table-justify.uk-table-responsive th,
  .uk-table-justify.uk-table-responsive td {
    padding-left: 0;
    padding-right: 0; } }

.uk-table tbody tr {
  -webkit-transition: background-color 0.1s linear;
  -o-transition: background-color 0.1s linear;
  transition: background-color 0.1s linear; }

/* ========================================================================
   Component: Icon
 ========================================================================== */
/*
 * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component.
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Remove border-radius in Chrome.
 * 4. Address `overflow` set to `hidden` in IE.
 * 5. Correct `font` properties and `color` not being inherited for `button`.
 * 6. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 7. Remove default `button` padding and background color
 * 8. Style
 * 9. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 10. Let the container fit the height of the icon
 */
.uk-icon {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  border-radius: 0;
  /* 4 */
  overflow: visible;
  /* 5 */
  font: inherit;
  color: inherit;
  /* 6 */
  text-transform: none;
  /* 7. */
  padding: 0;
  background-color: transparent;
  /* 8 */
  display: inline-block;
  /* 9 */
  fill: currentcolor;
  /* 10 */
  line-height: 0; }

/* Required for `button`. */
button.uk-icon:not(:disabled) {
  cursor: pointer; }

/*
 * Remove the inner border and padding in Firefox.
 */
.uk-icon::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * Set the fill and stroke color of all SVG elements to the current text color
 */
.uk-icon:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-icon:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-icon > * {
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0); }

/* Image modifier
 ========================================================================== */
/*
 * Display images in icon dimensions
 */
.uk-icon-image {
  width: 20px;
  height: 20px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle; }

/* Style modifiers
 ========================================================================== */
/*
 * Link
 */
.uk-icon-link {
  color: #999; }

.uk-icon-link:hover,
.uk-icon-link:focus {
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-link:active,
.uk-active > .uk-icon-link {
  color: #595959; }

/*
 * Button
 * 1. Center icon vertically and horizontally
 */
.uk-icon-button {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 500px;
  background: #f8f8f8;
  color: #999;
  vertical-align: middle;
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: 0.1s ease-in-out;
  -o-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  -o-transition-property: color, background-color;
  transition-property: color, background-color; }

/* Hover + Focus */
.uk-icon-button:hover,
.uk-icon-button:focus {
  background-color: #ebebeb;
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-button:active,
.uk-active > .uk-icon-button {
  background-color: #dfdede;
  color: #666; }

/* ========================================================================
   Component: Form Range
 ========================================================================== */
/*
 * 1. Normalize and defaults
 * 2. Prevent content overflow if a fixed width is used
 * 3. Take the full width
 * 4. Remove default style
 * 5. Remove white background in Chrome
 * 6. Remove padding in IE11
 */
.uk-range {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  vertical-align: middle;
  /* 2 */
  max-width: 100%;
  /* 3 */
  width: 100%;
  /* 4 */
  -webkit-appearance: none;
  /* 5 */
  background: transparent;
  /* 6 */
  padding: 0; }

/* Focus */
.uk-range:focus {
  outline: none; }

.uk-range::-moz-focus-outer {
  border: none; }

/* IE11 Reset */
.uk-range::-ms-track {
  height: 15px;
  background: transparent;
  border-color: transparent;
  color: transparent; }

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-range:not(:disabled)::-webkit-slider-thumb {
  cursor: pointer; }

.uk-range:not(:disabled)::-moz-range-thumb {
  cursor: pointer; }

.uk-range:not(:disabled)::-ms-thumb {
  cursor: pointer; }

/* Thumb
 ========================================================================== */
/*
 * 1. Reset
 * 2. Style
 */
/* Webkit */
.uk-range::-webkit-slider-thumb {
  /* 1 */
  -webkit-appearance: none;
  margin-top: -7px;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Firefox */
.uk-range::-moz-range-thumb {
  /* 1 */
  border: none;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Edge */
.uk-range::-ms-thumb {
  /* 1 */
  margin-top: 0; }

/* IE11 */
.uk-range::-ms-thumb {
  /* 1 */
  border: none;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Edge + IE11 */
.uk-range::-ms-tooltip {
  display: none; }

/* Track
 ========================================================================== */
/*
 * 1. Safari doesn't have a focus state. Using active instead.
 */
/* Webkit */
.uk-range::-webkit-slider-runnable-track {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-webkit-slider-runnable-track,
.uk-range:active::-webkit-slider-runnable-track {
  background: #d2d2d2; }

/* Firefox */
.uk-range::-moz-range-track {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-moz-range-track {
  background: #d2d2d2; }

/* Edge */
.uk-range::-ms-fill-lower,
.uk-range::-ms-fill-upper {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-ms-fill-lower,
.uk-range:focus::-ms-fill-upper {
  background: #d2d2d2; }

/* ========================================================================
   Component: Form
 ========================================================================== */
/*
 * 1. Define consistent box sizing.
 *    Default is `content-box` with following exceptions set to `border-box`
 *    `select`, `input[type="checkbox"]` and `input[type="radio"]`
 *    `input[type="search"]` in Chrome, Safari and Opera
 *    `input[type="color"]` in Firefox
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers.
 */
.uk-input,
.uk-select,
.uk-textarea,
.uk-radio,
.uk-checkbox {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit; }

/*
 * Show the overflow in Edge.
 */
.uk-input {
  overflow: visible; }

/*
 * Remove the inheritance of text transform in Firefox.
 */
.uk-select {
  text-transform: none; }

/*
 * 1. Change font properties to `inherit` in all browsers
 * 2. Don't inherit the `font-weight` and use `bold` instead.
 * NOTE: Both declarations don't work in Chrome, Safari and Opera.
 */
.uk-select optgroup {
  /* 1 */
  font: inherit;
  /* 2 */
  font-weight: bold; }

/*
 * Remove the default vertical scrollbar in IE 10+.
 */
.uk-textarea {
  overflow: auto; }

/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-input[type="search"]::-webkit-search-cancel-button,
.uk-input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
.uk-input[type="number"]::-webkit-inner-spin-button,
.uk-input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-input::-moz-placeholder,
.uk-textarea::-moz-placeholder {
  opacity: 1; }

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-radio:not(:disabled),
.uk-checkbox:not(:disabled) {
  cursor: pointer; }

/*
 * Define consistent border, margin, and padding.
 */
.uk-fieldset {
  border: none;
  margin: 0;
  padding: 0; }

/* Input, select and textarea
 * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`,  `month`,
            `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
 * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
 ========================================================================== */
/*
 * Remove default style in iOS.
 */
.uk-input,
.uk-textarea {
  -webkit-appearance: none; }

/*
 * 1. Prevent content overflow if a fixed width is used
 * 2. Take the full width
 * 3. Reset default
 * 4. Style
 */
.uk-input,
.uk-select,
.uk-textarea {
  /* 1 */
  max-width: 100%;
  /* 2 */
  width: 100%;
  /* 3 */
  border: 0 none;
  /* 4 */
  padding: 0 10px;
  background: #fff;
  color: #666;
  border: 1px solid #e5e5e5;
  -webkit-transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  -webkit-transition-property: color, background-color, border;
  -o-transition-property: color, background-color, border;
  transition-property: color, background-color, border; }

/*
 * Single-line
 * 1. Allow any element to look like an `input` or `select` element
 * 2. Make sure line-height is not larger than height
 *    Also needed to center the text vertically
 */
.uk-input,
.uk-select:not([multiple]):not([size]) {
  height: 40px;
  vertical-align: middle;
  /* 1 */
  display: inline-block; }

/* 2 */
.uk-input:not(input),
.uk-select:not(select) {
  line-height: 38px; }

/*
 * Multi-line
 */
.uk-select[multiple],
.uk-select[size],
.uk-textarea {
  padding-top: 4px;
  padding-bottom: 4px;
  vertical-align: top; }

/* Focus */
.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
  outline: none;
  background-color: #fff;
  color: #666;
  border-color: #1e87f0; }

/* Disabled */
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
  background-color: #f8f8f8;
  color: #999;
  border-color: #e5e5e5; }

/*
 * Placeholder
 */
.uk-input::-ms-input-placeholder {
  color: #999 !important; }

.uk-input::-webkit-input-placeholder {
  color: #999; }

.uk-input::-moz-placeholder {
  color: #999; }

.uk-input::placeholder {
  color: #999; }

.uk-textarea::-ms-input-placeholder {
  color: #999 !important; }

.uk-textarea::-webkit-input-placeholder {
  color: #999; }

.uk-textarea::-moz-placeholder {
  color: #999; }

.uk-textarea::placeholder {
  color: #999; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Small
 */
.uk-form-small {
  font-size: 0.875rem; }

.uk-form-small:not(textarea):not([multiple]):not([size]) {
  height: 30px;
  padding-left: 8px;
  padding-right: 8px; }

.uk-form-small:not(select):not(input):not(textarea) {
  line-height: 28px; }

/*
 * Large
 */
.uk-form-large {
  font-size: 1.25rem; }

.uk-form-large:not(textarea):not([multiple]):not([size]) {
  height: 55px;
  padding-left: 12px;
  padding-right: 12px; }

.uk-form-large:not(select):not(input):not(textarea) {
  line-height: 53px; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Error
 */
.uk-form-danger,
.uk-form-danger:focus {
  color: #f0506e;
  border-color: #f0506e; }

/*
 * Success
 */
.uk-form-success,
.uk-form-success:focus {
  color: #32d296;
  border-color: #32d296; }

/*
 * Blank
 */
.uk-form-blank {
  background: none;
  border-color: transparent; }

.uk-form-blank:focus {
  border-color: #e5e5e5;
  border-style: dashed; }

/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Fixed widths
 * Different widths for mini sized `input` and `select` elements
 */
input.uk-form-width-xsmall {
  width: 50px; }

select.uk-form-width-xsmall {
  width: 75px; }

.uk-form-width-small {
  width: 130px; }

.uk-form-width-medium {
  width: 200px; }

.uk-form-width-large {
  width: 500px; }

/* Select
 ========================================================================== */
/*
 * 1. Remove default style. Also works in Firefox
 * 2. Style
 * 3. Remove default style in IE 10/11
 * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
 */
.uk-select:not([multiple]):not([size]) {
  /* 1 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 2 */
  padding-right: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 100% 50%; }

/* 3 */
.uk-select:not([multiple]):not([size])::-ms-expand {
  display: none; }

/* 4 */
.uk-select:not([multiple]):not([size]) option {
  color: #444; }

/*
 * Disabled
 */
.uk-select:not([multiple]):not([size]):disabled {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* Datalist
 ========================================================================== */
/*
 * 1. Remove default style in Chrome
 */
.uk-input[list] {
  padding-right: 20px;
  background-repeat: no-repeat;
  background-position: 100% 50%; }

.uk-input[list]:hover,
.uk-input[list]:focus {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* 1 */
.uk-input[list]::-webkit-calendar-picker-indicator {
  display: none; }

/* Radio and checkbox
 * Note: Does not work in IE11
 ========================================================================== */
/*
 * 1. Style
 * 2. Make box more robust so it clips the child element
 * 3. Vertical alignment
 * 4. Remove default style
 * 5. Fix black background on iOS
 * 6. Center icons
 */
.uk-radio,
.uk-checkbox {
  /* 1 */
  display: inline-block;
  height: 16px;
  width: 16px;
  /* 2 */
  overflow: hidden;
  /* 3 */
  margin-top: -4px;
  vertical-align: middle;
  /* 4 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 5 */
  background-color: transparent;
  /* 6 */
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border: 1px solid #cccbcb;
  -webkit-transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  -webkit-transition-property: background-color, border;
  -o-transition-property: background-color, border;
  transition-property: background-color, border; }

.uk-radio {
  border-radius: 50%; }

/* Focus */
.uk-radio:focus,
.uk-checkbox:focus {
  outline: none;
  border-color: #1e87f0; }

/*
 * Checked
 */
.uk-radio:checked,
.uk-checkbox:checked,
.uk-checkbox:indeterminate {
  background-color: #1e87f0;
  border-color: transparent; }

/* Focus */
.uk-radio:checked:focus,
.uk-checkbox:checked:focus,
.uk-checkbox:indeterminate:focus {
  background-color: #0e6ecd; }

/*
 * Icons
 */
.uk-radio:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/*
 * Disabled
 */
.uk-radio:disabled,
.uk-checkbox:disabled {
  background-color: #f8f8f8;
  border-color: #e5e5e5; }

.uk-radio:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:disabled:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Legend
 ========================================================================== */
/*
 * Legend
 * 1. Behave like block element
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove padding so people aren't caught out if they zero out fieldsets.
 * 4. Style
 */
.uk-legend {
  /* 1 */
  width: 100%;
  /* 2 */
  color: inherit;
  /* 3 */
  padding: 0;
  /* 4 */
  font-size: 1.5rem;
  line-height: 1.4; }

/* Custom controls
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 */
.uk-form-custom {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle; }

/*
 * 1. Position and resize the form control to always cover its container
 * 2. Required for Firefox for positioning to the left
 * 3. Required for Webkit to make `height` work
 * 4. Hide controle and show cursor
 * 5. Needed for the cursor
 * 6. Clip height caused by 5. Needed for Webkit only
 */
.uk-form-custom select,
.uk-form-custom input[type="file"] {
  /* 1 */
  position: absolute;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  /* 2 */
  left: 0;
  /* 3 */
  -webkit-appearance: none;
  /* 4 */
  opacity: 0;
  cursor: pointer; }

.uk-form-custom input[type="file"] {
  /* 5 */
  font-size: 500px;
  /* 6 */
  overflow: hidden; }

/* Label
 ========================================================================== */
.uk-form-label {
  color: #333;
  font-size: 0.875rem; }

/* Layout
 ========================================================================== */
/*
 * Stacked
 */
.uk-form-stacked .uk-form-label {
  display: block;
  margin-bottom: 5px; }

/*
 * Horizontal
 */
/* Tablet portrait and smaller */
@media (max-width: 1023px) {
  /* Behave like `uk-form-stacked` */
  .uk-form-horizontal .uk-form-label {
    display: block;
    margin-bottom: 5px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-form-horizontal .uk-form-label {
    width: 200px;
    margin-top: 7px;
    float: left; }
  .uk-form-horizontal .uk-form-controls {
    margin-left: 215px; }
  /* Better vertical alignment if controls are checkboxes and radio buttons with text */
  .uk-form-horizontal .uk-form-controls-text {
    padding-top: 7px; } }

/* Icons
 ========================================================================== */
/*
 * 1. Set position
 * 2. Set width
 * 3. Center icon vertically and horizontally
 * 4. Style
 */
.uk-form-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 40px;
  /* 3 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 4 */
  color: #999; }

/*
 * Required for `a`.
 */
.uk-form-icon:hover {
  color: #666; }

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-form-icon:not(a):not(button):not(input) {
  pointer-events: none; }

/*
 * Input padding
 */
.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input {
  padding-left: 40px !important; }

/*
 * Position modifier
 */
.uk-form-icon-flip {
  right: 0;
  left: auto; }

.uk-form-icon-flip ~ .uk-input {
  padding-right: 40px !important; }

/* ========================================================================
   Component: Button
 ========================================================================== */
/*
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Address `overflow` set to `hidden` in IE.
 * 4. Correct `font` properties and `color` not being inherited for `button`.
 * 5. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 6. Remove default style for `input type="submit"`in iOS.
 * 7. Style
 * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
 *    Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
 * 9. Align text if button has a width
 * 10. Required for `a`.
 */
.uk-button {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  overflow: visible;
  /* 4 */
  font: inherit;
  color: inherit;
  /* 5 */
  text-transform: none;
  /* 6 */
  -webkit-appearance: none;
  border-radius: 0;
  /* 7 */
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 30px;
  vertical-align: middle;
  font-size: 0.875rem;
  /* 8 */
  line-height: 38px;
  /* 9 */
  text-align: center;
  /* 10 */
  text-decoration: none;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  -o-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color, border-color;
  -o-transition-property: color, background-color, border-color;
  transition-property: color, background-color, border-color; }

.uk-button:not(:disabled) {
  cursor: pointer; }

/*
 * Remove the inner border and padding in Firefox.
 */
.uk-button::-moz-focus-inner {
  border: 0;
  padding: 0; }

/* Hover */
.uk-button:hover {
  /* 9 */
  text-decoration: none; }

/* Focus */
.uk-button:focus {
  outline: none; }

/* OnClick + Active */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-button-default {
  background-color: transparent;
  color: #333;
  border: 1px solid #e5e5e5; }

/* Hover + Focus */
.uk-button-default:hover,
.uk-button-default:focus {
  background-color: transparent;
  color: #333;
  border-color: #b2b2b2; }

/* OnClick + Active */
.uk-button-default:active,
.uk-button-default.uk-active {
  background-color: transparent;
  color: #333;
  border-color: #999898; }

/*
 * Primary
 */
.uk-button-primary {
  background-color: #1e87f0;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-primary:hover,
.uk-button-primary:focus {
  background-color: #0f7ae5;
  color: #fff; }

/* OnClick + Active */
.uk-button-primary:active,
.uk-button-primary.uk-active {
  background-color: #0e6ecd;
  color: #fff; }

/*
 * Secondary
 */
.uk-button-secondary {
  background-color: #222;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-secondary:hover,
.uk-button-secondary:focus {
  background-color: #151515;
  color: #fff; }

/* OnClick + Active */
.uk-button-secondary:active,
.uk-button-secondary.uk-active {
  background-color: #090808;
  color: #fff; }

/*
 * Danger
 */
.uk-button-danger {
  background-color: #f0506e;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-danger:hover,
.uk-button-danger:focus {
  background-color: #ee395b;
  color: #fff; }

/* OnClick + Active */
.uk-button-danger:active,
.uk-button-danger.uk-active {
  background-color: #ec2147;
  color: #fff; }

/*
 * Disabled
 * The same for all style modifiers
 */
.uk-button-default:disabled,
.uk-button-primary:disabled,
.uk-button-secondary:disabled,
.uk-button-danger:disabled {
  background-color: transparent;
  color: #999;
  border-color: #e5e5e5; }

/* Size modifiers
 ========================================================================== */
.uk-button-small {
  padding: 0 15px;
  line-height: 28px;
  font-size: 0.875rem; }

.uk-button-large {
  padding: 0 40px;
  line-height: 53px;
  font-size: 0.875rem; }

/* Text modifiers
 ========================================================================== */
/*
 * Text
 * 1. Reset
 * 2. Style
 */
.uk-button-text {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #333;
  position: relative; }
  .uk-button-text::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 100%;
    border-bottom: 1px solid #333;
    -webkit-transition: right 0.3s ease-out;
    -o-transition: right 0.3s ease-out;
    transition: right 0.3s ease-out; }

/* Hover + Focus */
.uk-button-text:hover,
.uk-button-text:focus {
  color: #333; }
  .uk-button-text:hover::before,
  .uk-button-text:focus::before {
    right: 0; }

/* Disabled */
.uk-button-text:disabled {
  color: #999; }
  .uk-button-text:disabled::before {
    display: none; }

/*
 * Link
 * 1. Reset
 * 2. Style
 */
.uk-button-link {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #DA7D02; }

/* Hover + Focus */
.uk-button-link:hover,
.uk-button-link:focus {
  color: #0f6ecd;
  text-decoration: underline; }

/* Disabled */
.uk-button-link:disabled {
  color: #999;
  text-decoration: none; }

/* Group
 ========================================================================== */
/*
 * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements
 * 2. Behave like button
 * 3. Create position context
 */
.uk-button-group {
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  /* 2 */
  vertical-align: middle;
  /* 3 */
  position: relative; }

/* Group
     ========================================================================== */
/*
     * Collapse border
     */
.uk-button-group > .uk-button:nth-child(n+2),
.uk-button-group > div:nth-child(n+2) .uk-button {
  margin-left: -1px; }

/*
     * Create position context to superimpose the successor elements border
     * Known issue: If you use an `a` element as button and an icon inside,
     * the active state will not work if you click the icon inside the button
     * Workaround: Just use a `button` or `input` element as button
     */
.uk-button-group .uk-button:hover,
.uk-button-group .uk-button:focus,
.uk-button-group .uk-button:active,
.uk-button-group .uk-button.uk-active {
  position: relative;
  z-index: 1; }

/* ========================================================================
   Component: Section
 ========================================================================== */
/*
 * 1. Make it work with `100vh` and height in general
 */
.uk-section {
  display: flow-root;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding-top: 40px;
  padding-bottom: 40px; }

/* Desktop and bigger */
@media (min-width: 1024px) {
  .uk-section {
    padding-top: 70px;
    padding-bottom: 70px; } }

/*
 * Remove margin from the last-child
 */
.uk-section > :last-child {
  margin-bottom: 0; }

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-section-xsmall {
  padding-top: 20px;
  padding-bottom: 20px; }

/*
 * Small
 */
.uk-section-small {
  padding-top: 40px;
  padding-bottom: 40px; }

/*
 * Large
 */
.uk-section-large {
  padding-top: 70px;
  padding-bottom: 70px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-section-large {
    padding-top: 140px;
    padding-bottom: 140px; } }

/*
 * XLarge
 */
.uk-section-xlarge {
  padding-top: 140px;
  padding-bottom: 140px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-section-xlarge {
    padding-top: 210px;
    padding-bottom: 210px; } }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-section-default {
  background: #fff; }

/*
 * Muted
 */
.uk-section-muted {
  background: #f8f8f8; }

/*
 * Primary
 */
.uk-section-primary {
  background: #1e87f0; }

/*
 * Secondary
 */
.uk-section-secondary {
  background: #222; }

/* Overlap modifier
 ========================================================================== */
/*
 * Reserved modifier to make a section overlap another section with an border image
 * Implemented by the theme
 */
/* ========================================================================
   Component: Container
 ========================================================================== */
/*
 * 1. Box sizing has to be `content-box` so the max-width is always the same and
 *    unaffected by the padding on different breakpoints. It's important for the size modifiers.
 */
.uk-container {
  display: flow-root;
  /* 1 */
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container {
    padding-left: 30px;
    padding-right: 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Remove margin from the last-child
 */
.uk-container > :last-child {
  margin-bottom: 0; }

/*
 * Remove padding from nested containers
 */
.uk-container .uk-container {
  padding-left: 0;
  padding-right: 0; }

/* Size modifier
 ========================================================================== */
.uk-container-xsmall {
  max-width: 750px; }

.uk-container-small {
  max-width: 900px; }

.uk-container-large {
  max-width: 1400px; }

.uk-container-xlarge {
  max-width: 1600px; }

.uk-container-expand {
  max-width: none; }

/* Expand modifier
 ========================================================================== */
/*
 * Expand one side only
 */
.uk-container-expand-left {
  margin-left: 0; }

.uk-container-expand-right {
  margin-right: 0; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 30px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 30px); } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container-expand-left,
  .uk-container-expand-right {
    max-width: calc(50% + (1200px / 2) - 40px); }
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 40px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 40px); }
  .uk-container-expand-left.uk-container-large,
  .uk-container-expand-right.uk-container-large {
    max-width: calc(50% + (1400px / 2) - 40px); }
  .uk-container-expand-left.uk-container-xlarge,
  .uk-container-expand-right.uk-container-xlarge {
    max-width: calc(50% + (1600px / 2) - 40px); } }

/* Item
 ========================================================================== */
/*
 * Utility classes to reset container padding on the left or right side
 * Note: It has to be negative margin on the item, because it's specific to the item.
 */
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
  width: calc(100% + 15px); }

.uk-container-item-padding-remove-left {
  margin-left: -15px; }

.uk-container-item-padding-remove-right {
  margin-right: -15px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 30px); }
  .uk-container-item-padding-remove-left {
    margin-left: -30px; }
  .uk-container-item-padding-remove-right {
    margin-right: -30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 40px); }
  .uk-container-item-padding-remove-left {
    margin-left: -40px; }
  .uk-container-item-padding-remove-right {
    margin-right: -40px; } }

/* ========================================================================
   Component: Grid
 ========================================================================== */
/*
 * 1. Allow cells to wrap into the next line
 * 2. Reset list
 */
.uk-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Grid cell
 * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto
 * Reset margin for e.g. paragraphs
 */
.uk-grid > * {
  margin: 0; }

/*
 * Remove margin from the last-child
 */
.uk-grid > * > :last-child {
  margin-bottom: 0; }

/* Gutter
 ========================================================================== */
/*
 * Default
 */
/* Horizontal */
.uk-grid {
  margin-left: -30px; }

.uk-grid > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin,
* + .uk-grid-margin {
  margin-top: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid {
    margin-left: -40px; }
  .uk-grid > * {
    padding-left: 40px; }
  /* Vertical */
  .uk-grid + .uk-grid,
  .uk-grid > .uk-grid-margin,
  * + .uk-grid-margin {
    margin-top: 40px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-small,
.uk-grid-column-small {
  margin-left: -15px; }

.uk-grid-small > *,
.uk-grid-column-small > * {
  padding-left: 15px; }

/* Vertical */
.uk-grid + .uk-grid-small,
.uk-grid + .uk-grid-row-small,
.uk-grid-small > .uk-grid-margin,
.uk-grid-row-small > .uk-grid-margin,
* + .uk-grid-margin-small {
  margin-top: 15px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-medium,
.uk-grid-column-medium {
  margin-left: -30px; }

.uk-grid-medium > *,
.uk-grid-column-medium > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid-medium,
.uk-grid + .uk-grid-row-medium,
.uk-grid-medium > .uk-grid-margin,
.uk-grid-row-medium > .uk-grid-margin,
* + .uk-grid-margin-medium {
  margin-top: 30px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-large,
.uk-grid-column-large {
  margin-left: -40px; }

.uk-grid-large > *,
.uk-grid-column-large > * {
  padding-left: 40px; }

/* Vertical */
.uk-grid + .uk-grid-large,
.uk-grid + .uk-grid-row-large,
.uk-grid-large > .uk-grid-margin,
.uk-grid-row-large > .uk-grid-margin,
* + .uk-grid-margin-large {
  margin-top: 40px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-large,
  .uk-grid-column-large {
    margin-left: -56px; }
  .uk-grid-large > *,
  .uk-grid-column-large > * {
    padding-left: 56px; }
  /* Vertical */
  .uk-grid + .uk-grid-large,
  .uk-grid + .uk-grid-row-large,
  .uk-grid-large > .uk-grid-margin,
  .uk-grid-row-large > .uk-grid-margin,
  * + .uk-grid-margin-large {
    margin-top: 56px; } }

/*
 * Collapse
 */
/* Horizontal */
.uk-grid-collapse,
.uk-grid-column-collapse {
  margin-left: 0; }

.uk-grid-collapse > *,
.uk-grid-column-collapse > * {
  padding-left: 0; }

/* Vertical */
.uk-grid + .uk-grid-collapse,
.uk-grid + .uk-grid-row-collapse,
.uk-grid-collapse > .uk-grid-margin,
.uk-grid-row-collapse > .uk-grid-margin {
  margin-top: 0; }

/* Divider
 ========================================================================== */
.uk-grid-divider > * {
  position: relative; }

.uk-grid-divider > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  border-left: 1px solid #e5e5e5; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid #e5e5e5; }

/*
 * Default
 */
/* Horizontal */
.uk-grid-divider {
  margin-left: -60px; }

.uk-grid-divider > * {
  padding-left: 60px; }

.uk-grid-divider > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider {
    margin-left: -80px; }
  .uk-grid-divider > * {
    padding-left: 80px; }
  .uk-grid-divider > :not(.uk-first-column)::before {
    left: 40px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin {
    margin-top: 80px; }
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
    top: -40px;
    left: 80px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-divider.uk-grid-small,
.uk-grid-divider.uk-grid-column-small {
  margin-left: -30px; }

.uk-grid-divider.uk-grid-small > *,
.uk-grid-divider.uk-grid-column-small > * {
  padding-left: 30px; }

.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-small > :not(.uk-first-column)::before {
  left: 15px; }

/* Vertical */
.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin {
  margin-top: 30px; }

.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px;
  left: 30px; }

.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px; }

.uk-grid-divider.uk-grid-column-small.uk-grid-stack > .uk-grid-margin::before {
  left: 30px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-divider.uk-grid-medium,
.uk-grid-divider.uk-grid-column-medium {
  margin-left: -60px; }

.uk-grid-divider.uk-grid-medium > *,
.uk-grid-divider.uk-grid-column-medium > * {
  padding-left: 60px; }

.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-medium > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px; }

.uk-grid-divider.uk-grid-column-medium.uk-grid-stack > .uk-grid-margin::before {
  left: 60px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-divider.uk-grid-large,
.uk-grid-divider.uk-grid-column-large {
  margin-left: -80px; }

.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
  padding-left: 80px; }

.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
  left: 40px; }

/* Vertical */
.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
  margin-top: 80px; }

.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px;
  left: 80px; }

.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px; }

.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
  left: 80px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider.uk-grid-large,
  .uk-grid-divider.uk-grid-column-large {
    margin-left: -112px; }
  .uk-grid-divider.uk-grid-large > *,
  .uk-grid-divider.uk-grid-column-large > * {
    padding-left: 112px; }
  .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
  .uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
    left: 56px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
    margin-top: 112px; }
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
    top: -56px;
    left: 112px; }
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
    top: -56px; }
  .uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
    left: 112px; } }

/* Match child of a grid cell
 ========================================================================== */
/*
 * Behave like a block element
 * 1. Wrap into the next line
 * 2. Take the full width, at least 100%. Only if no class from the Width component is set.
 * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids)
 */
.uk-grid-match > *,
.uk-grid-item-match {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.uk-grid-match > * > :not([class*='uk-width']),
.uk-grid-item-match > :not([class*='uk-width']) {
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  /* 3 */
  -webkit-box-flex: 1;
      -ms-flex: auto;
          flex: auto; }

/* ========================================================================
   Component: Tile
 ========================================================================== */
.uk-tile {
  display: flow-root;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 40px;
  padding-bottom: 40px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-tile {
    padding-left: 30px;
    padding-right: 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile {
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 70px;
    padding-bottom: 70px; } }

/*
 * Remove margin from the last-child
 */
.uk-tile > :last-child {
  margin-bottom: 0; }

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-tile-xsmall {
  padding-top: 20px;
  padding-bottom: 20px; }

/*
 * Small
 */
.uk-tile-small {
  padding-top: 40px;
  padding-bottom: 40px; }

/*
 * Large
 */
.uk-tile-large {
  padding-top: 70px;
  padding-bottom: 70px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile-large {
    padding-top: 140px;
    padding-bottom: 140px; } }

/*
 * XLarge
 */
.uk-tile-xlarge {
  padding-top: 140px;
  padding-bottom: 140px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile-xlarge {
    padding-top: 210px;
    padding-bottom: 210px; } }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-tile-default {
  background: #fff; }

/*
 * Muted
 */
.uk-tile-muted {
  background: #f8f8f8; }

/*
 * Primary
 */
.uk-tile-primary {
  background: #1e87f0; }

/*
 * Secondary
 */
.uk-tile-secondary {
  background: #222; }

/* ========================================================================
   Component: Card
 ========================================================================== */
.uk-card {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #000; }

/* Sections
 ========================================================================== */
.uk-card-body {
  display: flow-root;
  padding: 30px 30px; }

.uk-card-header {
  display: flow-root;
  padding: 15px 30px; }

.uk-card-footer {
  display: flow-root;
  padding: 15px 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body {
    padding: 40px 40px; }
  .uk-card-header {
    padding: 20px 40px; }
  .uk-card-footer {
    padding: 20px 40px; } }

/*
 * Remove margin from the last-child
 */
.uk-card-body > :last-child,
.uk-card-header > :last-child,
.uk-card-footer > :last-child {
  margin-bottom: 0; }

/* Media
 ========================================================================== */
/*
 * Reserved alignment modifier to style the media element, e.g. with `border-radius`
 * Implemented by the theme
 */
/* Title
 ========================================================================== */
.uk-card-title {
  font-size: 1.5rem;
  line-height: 1.4; }

/* Badge
 ========================================================================== */
.uk-card-badge {
  position: absolute;
  top: 30px;
  right: 30px;
  z-index: 1; }

/*
 * Remove margin from adjacent element
 */
.uk-card-badge:first-child + * {
  margin-top: 0; }

/* Hover modifier
 ========================================================================== */
.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover {
  background: #fff;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 * Note: Header and Footer are only implemented for the default style
 */
.uk-card-default {
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-default .uk-card-title {
  color: #333; }

.uk-card-default.uk-card-hover:hover {
  background-color: #fff;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-card-default .uk-card-header {
  border-bottom: 1px solid #e5e5e5; }

.uk-card-default .uk-card-footer {
  border-top: 1px solid #e5e5e5; }

/*
 * Primary
 */
.uk-card-primary {
  background: #1e87f0;
  color: #fff;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-primary .uk-card-title {
  color: #fff; }

.uk-card-primary.uk-card-hover:hover {
  background-color: #1e87f0;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/*
 * Secondary
 */
.uk-card-secondary {
  background: #222;
  color: #fff;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-secondary .uk-card-title {
  color: #fff; }

.uk-card-secondary.uk-card-hover:hover {
  background-color: #222;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/* Size modifier
 ========================================================================== */
/*
 * Small
 */
.uk-card-small.uk-card-body,
.uk-card-small .uk-card-body {
  padding: 20px 20px; }

.uk-card-small .uk-card-header {
  padding: 13px 20px; }

.uk-card-small .uk-card-footer {
  padding: 13px 20px; }

/*
 * Large
 */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large.uk-card-body,
  .uk-card-large .uk-card-body {
    padding: 70px 70px; }
  .uk-card-large .uk-card-header {
    padding: 35px 70px; }
  .uk-card-large .uk-card-footer {
    padding: 35px 70px; } }

/*
     * Default
     */
.uk-card-body > .uk-nav-default {
  margin-left: -30px;
  margin-right: -30px; }

.uk-card-body > .uk-nav-default:only-child {
  margin-top: -15px;
  margin-bottom: -15px; }

.uk-card-body .uk-nav-default > li > a,
.uk-card-body .uk-nav-default .uk-nav-header,
.uk-card-body .uk-nav-default .uk-nav-divider {
  padding-left: 30px;
  padding-right: 30px; }

.uk-card-body .uk-nav-default .uk-nav-sub {
  padding-left: 45px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body > .uk-nav-default {
    margin-left: -40px;
    margin-right: -40px; }
  .uk-card-body > .uk-nav-default:only-child {
    margin-top: -25px;
    margin-bottom: -25px; }
  .uk-card-body .uk-nav-default > li > a,
  .uk-card-body .uk-nav-default .uk-nav-header,
  .uk-card-body .uk-nav-default .uk-nav-divider {
    padding-left: 40px;
    padding-right: 40px; }
  .uk-card-body .uk-nav-default .uk-nav-sub {
    padding-left: 55px; } }

/*
     * Small
     */
.uk-card-small > .uk-nav-default {
  margin-left: -20px;
  margin-right: -20px; }

.uk-card-small > .uk-nav-default:only-child {
  margin-top: -5px;
  margin-bottom: -5px; }

.uk-card-small .uk-nav-default > li > a,
.uk-card-small .uk-nav-default .uk-nav-header,
.uk-card-small .uk-nav-default .uk-nav-divider {
  padding-left: 20px;
  padding-right: 20px; }

.uk-card-small .uk-nav-default .uk-nav-sub {
  padding-left: 35px; }

/*
     * Large
     */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large > .uk-nav-default {
    margin: 0; }
  .uk-card-large > .uk-nav-default:only-child {
    margin: 0; }
  .uk-card-large .uk-nav-default > li > a,
  .uk-card-large .uk-nav-default .uk-nav-header,
  .uk-card-large .uk-nav-default .uk-nav-divider {
    padding-left: 0;
    padding-right: 0; }
  .uk-card-large .uk-nav-default .uk-nav-sub {
    padding-left: 15px; } }

/* ========================================================================
   Component: Close
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-close {
  color: #999;
  -webkit-transition: 0.1s ease-in-out;
  -o-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, opacity;
  -o-transition-property: color, opacity;
  transition-property: color, opacity; }

/* Hover + Focus */
.uk-close:hover,
.uk-close:focus {
  color: #666;
  outline: none; }

/* ========================================================================
   Component: Spinner
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
/* SVG
 ========================================================================== */
.uk-spinner > * {
  -webkit-animation: uk-spinner-rotate 1.4s linear infinite;
          animation: uk-spinner-rotate 1.4s linear infinite; }

@-webkit-keyframes uk-spinner-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

@keyframes uk-spinner-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

/*
 * Circle
 */
.uk-spinner > * > * {
  stroke-dasharray: 88px;
  stroke-dashoffset: 0;
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-animation: uk-spinner-dash 1.4s ease-in-out infinite;
          animation: uk-spinner-dash 1.4s ease-in-out infinite;
  stroke-width: 1;
  stroke-linecap: round; }

@-webkit-keyframes uk-spinner-dash {
  0% {
    stroke-dashoffset: 88px; }
  50% {
    stroke-dashoffset: 22px;
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  100% {
    stroke-dashoffset: 88px;
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg); } }

@keyframes uk-spinner-dash {
  0% {
    stroke-dashoffset: 88px; }
  50% {
    stroke-dashoffset: 22px;
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  100% {
    stroke-dashoffset: 88px;
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg); } }

/* ========================================================================
   Component: Totop
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-totop {
  padding: 5px;
  color: #999;
  -webkit-transition: color 0.1s ease-in-out;
  -o-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-totop:hover,
.uk-totop:focus {
  color: #666;
  outline: none; }

/* OnClick */
.uk-totop:active {
  color: #333; }

/* ========================================================================
   Component: Marker
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-marker {
  padding: 5px;
  background: #222;
  color: #fff;
  border-radius: 500px; }

/* Hover + Focus */
.uk-marker:hover,
.uk-marker:focus {
  color: #fff;
  outline: none; }

/* ========================================================================
   Component: Alert
 ========================================================================== */
.uk-alert {
  position: relative;
  margin-bottom: 20px;
  padding: 15px 29px 15px 15px;
  background: #f8f8f8;
  color: #666; }

/* Add margin if adjacent element */
* + .uk-alert {
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-alert > :last-child {
  margin-bottom: 0; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-alert-close {
  position: absolute;
  top: 20px;
  right: 15px;
  color: inherit;
  opacity: 0.4; }

/*
 * Remove margin from adjacent element
 */
.uk-alert-close:first-child + * {
  margin-top: 0; }

/*
 * Hover + Focus
 */
.uk-alert-close:hover,
.uk-alert-close:focus {
  color: inherit;
  opacity: 0.8; }

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-alert-primary {
  background: #d8eafc;
  color: #1e87f0; }

/*
 * Success
 */
.uk-alert-success {
  background: #edfbf6;
  color: #32d296; }

/*
 * Warning
 */
.uk-alert-warning {
  background: #fef5ee;
  color: #faa05a; }

/*
 * Danger
 */
.uk-alert-danger {
  background: #fef4f6;
  color: #f0506e; }

/*
     * Content
     */
.uk-alert h1,
.uk-alert h2,
.uk-alert h3,
.uk-alert h4,
.uk-alert h5,
.uk-alert h6 {
  color: inherit; }

.uk-alert a:not([class]) {
  color: inherit;
  text-decoration: underline; }

.uk-alert a:not([class]):hover {
  color: inherit;
  text-decoration: underline; }

/* ========================================================================
   Component: Badge
 ========================================================================== */
/*
 * 1. Style
 * 2. Center child vertically and horizontally
 */
.uk-badge {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  border-radius: 500px;
  vertical-align: middle;
  /* 1 */
  background: #1e87f0;
  color: #fff;
  font-size: 0.875rem;
  /* 2 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Required for `a`
 */
.uk-badge:hover,
.uk-badge:focus {
  color: #fff;
  text-decoration: none;
  outline: none; }

/* ========================================================================
   Component: Label
 ========================================================================== */
.uk-label {
  display: inline-block;
  padding: 0 10px;
  background: #1e87f0;
  line-height: 1.5;
  font-size: 0.875rem;
  color: #fff;
  vertical-align: middle;
  white-space: nowrap;
  border-radius: 2px;
  text-transform: uppercase; }

/* Color modifiers
 ========================================================================== */
/*
 * Success
 */
.uk-label-success {
  background-color: #32d296;
  color: #fff; }

/*
 * Warning
 */
.uk-label-warning {
  background-color: #faa05a;
  color: #fff; }

/*
 * Danger
 */
.uk-label-danger {
  background-color: #f0506e;
  color: #fff; }

/* ========================================================================
   Component: Overlay
 ========================================================================== */
.uk-overlay {
  padding: 30px 30px; }

/*
 * Remove margin from the last-child
 */
.uk-overlay > :last-child {
  margin-bottom: 0; }

/* Icon
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-overlay-default {
  background: rgba(255, 255, 255, 0.8); }

/*
 * Primary
 */
.uk-overlay-primary {
  background: rgba(34, 34, 34, 0.8); }

/* ========================================================================
   Component: Article
 ========================================================================== */
.uk-article {
  display: flow-root; }

/*
 * Remove margin from the last-child
 */
.uk-article > :last-child {
  margin-bottom: 0; }

/* Adjacent sibling
 ========================================================================== */
.uk-article + .uk-article {
  margin-top: 70px; }

/* Title
 ========================================================================== */
.uk-article-title {
  font-size: 2.23125rem;
  line-height: 1.2; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-article-title {
    font-size: 2.625rem; } }

/* Meta
 ========================================================================== */
.uk-article-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }
  .uk-article-meta a {
    color: #999; }
  .uk-article-meta a:hover {
    color: #666;
    text-decoration: none; }

/* ========================================================================
   Component: Comment
 ========================================================================== */
/* Sections
 ========================================================================== */
.uk-comment-body {
  display: flow-root;
  overflow-wrap: break-word;
  word-wrap: break-word; }

.uk-comment-header {
  display: flow-root;
  margin-bottom: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-comment-body > :last-child,
.uk-comment-header > :last-child {
  margin-bottom: 0; }

/* Title
 ========================================================================== */
.uk-comment-title {
  font-size: 1.25rem;
  line-height: 1.4; }

/* Meta
 ========================================================================== */
.uk-comment-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }

/* Avatar
 ========================================================================== */
/* List
 ========================================================================== */
.uk-comment-list {
  padding: 0;
  list-style: none; }

/* Adjacent siblings */
.uk-comment-list > :nth-child(n+2) {
  margin-top: 70px; }

/*
 * Sublists
 * Note: General sibling selector allows reply block between comment and sublist
 */
.uk-comment-list .uk-comment ~ ul {
  margin: 70px 0 0 0;
  padding-left: 30px;
  list-style: none; }

/* Tablet and bigger */
@media (min-width: 1024px) {
  .uk-comment-list .uk-comment ~ ul {
    padding-left: 100px; } }

/* Adjacent siblings */
.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) {
  margin-top: 70px; }

/* Style modifier
 ========================================================================== */
.uk-comment-primary {
  padding: 30px;
  background-color: #f8f8f8; }

/* ========================================================================
   Component: Search
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Reset `form`
 */
.uk-search {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  margin: 0; }

/* Input
 ========================================================================== */
/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-search-input::-webkit-search-cancel-button,
.uk-search-input::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-search-input::-moz-placeholder {
  opacity: 1; }

/*
 * 1. Define consistent box sizing.
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers
 * 5. Show the overflow in Edge.
 * 6. Remove default style in iOS.
 * 7. Vertical alignment
 * 8. Take the full container width
 * 9. Style
 */
.uk-search-input {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit;
  /* 5 */
  overflow: visible;
  /* 6 */
  -webkit-appearance: none;
  /* 7 */
  vertical-align: middle;
  /* 8 */
  width: 100%;
  /* 9 */
  border: none;
  color: #666; }

.uk-search-input:focus {
  outline: none; }

/* Placeholder */
.uk-search-input:-ms-input-placeholder {
  color: #999 !important; }

.uk-search-input::-webkit-input-placeholder {
  color: #999; }

.uk-search-input::-moz-placeholder {
  color: #999; }

.uk-search-input::-ms-input-placeholder {
  color: #999; }

.uk-search-input::placeholder {
  color: #999; }

/* Icon (Adopts `uk-icon`)
 ========================================================================== */
/*
 * Remove default focus style
 */
.uk-search-icon:focus {
  outline: none; }

/*
 * Position above input
 * 1. Set position
 * 2. Center icon vertically and horizontally
 * 3. Style
 */
.uk-search .uk-search-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 3 */
  color: #999; }

/*
 * Required for `a`.
 */
.uk-search .uk-search-icon:hover {
  color: #999; }

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-search .uk-search-icon:not(a):not(button):not(input) {
  pointer-events: none; }

/*
 * Position modifier
 */
.uk-search .uk-search-icon-flip {
  right: 0;
  left: auto; }

/* Default modifier
 ========================================================================== */
.uk-search-default {
  width: 180px; }

/*
 * Input
 */
.uk-search-default .uk-search-input {
  height: 40px;
  padding-left: 6px;
  padding-right: 6px;
  background: transparent;
  border: 1px solid #e5e5e5; }

/* Focus */
.uk-search-default .uk-search-input:focus {
  background-color: transparent; }

/*
 * Icon
 */
.uk-search-default .uk-search-icon {
  width: 40px; }

.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 40px; }

.uk-search-default .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 40px; }

/* Navbar modifier
 ========================================================================== */
.uk-search-navbar {
  width: 400px; }

/*
 * Input
 */
.uk-search-navbar .uk-search-input {
  height: 40px;
  background: transparent;
  font-size: 1.5rem; }

/*
 * Icon
 */
.uk-search-navbar .uk-search-icon {
  width: 40px; }

.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 40px; }

.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 40px; }

/* Large modifier
 ========================================================================== */
.uk-search-large {
  width: 500px; }

/*
 * Input
 */
.uk-search-large .uk-search-input {
  height: 80px;
  background: transparent;
  font-size: 2.625rem; }

/*
 * Icon
 */
.uk-search-large .uk-search-icon {
  width: 80px; }

.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 80px; }

.uk-search-large .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 80px; }

/* Toggle
 ========================================================================== */
.uk-search-toggle {
  color: #999; }

/* Hover + Focus */
.uk-search-toggle:hover,
.uk-search-toggle:focus {
  color: #666; }

/* ========================================================================
   Component: Nav
 ========================================================================== */
/*
 * Reset
 * 1. Prepare lists
 * 2. Prepare links
 * 3. Remove default focus style
 */
/* 1 */
.uk-nav,
.uk-nav ul {
  margin: 0;
  padding: 0;
  list-style: none; }

/* 2 */
.uk-nav li > a {
  display: block;
  text-decoration: none; }

/* 3 */
.uk-nav li > a:focus {
  outline: none; }

/*
 * Items
 * Must target `a` elements to exclude other elements (e.g. lists)
 */
.uk-nav > li > a {
  padding: 5px 0; }

/* Sublists
 ========================================================================== */
/*
 * Level 2
 * `ul` needed for higher specificity to override padding
 */
ul.uk-nav-sub {
  padding: 5px 0 5px 15px; }

/*
 * Level 3 and deeper
 */
.uk-nav-sub ul {
  padding-left: 15px; }

/*
 * Items
 */
.uk-nav-sub a {
  padding: 2px 0; }

/* Parent icon modifier
 ========================================================================== */
.uk-nav-parent-icon > .uk-parent > a::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  float: right;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-nav-parent-icon > .uk-parent.uk-open > a::after {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Header
 ========================================================================== */
.uk-nav-header {
  padding: 5px 0;
  text-transform: uppercase;
  font-size: 0.875rem; }

.uk-nav-header:not(:first-child) {
  margin-top: 20px; }

/* Divider
 ========================================================================== */
.uk-nav-divider {
  margin: 5px 0; }

/* Default modifier
 ========================================================================== */
.uk-nav-default {
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-nav-default > li > a {
  color: #999; }

/* Hover + Focus */
.uk-nav-default > li > a:hover,
.uk-nav-default > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-default > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-default .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-default .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-default .uk-nav-sub a {
  color: #999; }

.uk-nav-default .uk-nav-sub a:hover,
.uk-nav-default .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-default .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Primary modifier
 ========================================================================== */
/*
 * Items
 */
.uk-nav-primary > li > a {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #999; }

/* Hover + Focus */
.uk-nav-primary > li > a:hover,
.uk-nav-primary > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-primary > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-primary .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-primary .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-primary .uk-nav-sub a {
  color: #999; }

.uk-nav-primary .uk-nav-sub a:hover,
.uk-nav-primary .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-primary .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Alignment modifier
 ========================================================================== */
.uk-nav-center {
  text-align: center; }

/* Sublists */
.uk-nav-center .uk-nav-sub,
.uk-nav-center .uk-nav-sub ul {
  padding-left: 0; }

/* Parent icon modifier  */
.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after {
  position: absolute; }

/* ========================================================================
   Component: Navbar
 ========================================================================== */
/*
 * 1. Create position context to center navbar group
 */
.uk-navbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  position: relative; }

/* Container
 ========================================================================== */
.uk-navbar-container:not(.uk-navbar-transparent) {
  background: #f8f8f8; }

/*
 * Remove pseudo elements created by micro clearfix as precaution (if Container component is used)
 */
.uk-navbar-container > ::before,
.uk-navbar-container > ::after {
  display: none !important; }

/* Groups
 ========================================================================== */
/*
 * 1. Align navs and items vertically if they have a different height
 * 2. Note: IE 11 requires an extra `div` which affects the center selector
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center,
.uk-navbar-center-left > *,
.uk-navbar-center-right > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Horizontal alignment
 * 1. Create position context for centered navbar with sub groups (left/right)
 * 2. Fix text wrapping if content is larger than 50% of the container.
 * 3. Needed for dropdowns because a new position context is created
 *    `z-index` must be smaller than off-canvas
 * 4. Align sub groups for centered navbar
 */
.uk-navbar-right {
  margin-left: auto; }

.uk-navbar-center:only-child {
  margin-left: auto;
  margin-right: auto;
  /* 1 */
  position: relative; }

.uk-navbar-center:not(:only-child) {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  /* 2 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 3 */
  z-index: 990; }

/* 4 */
.uk-navbar-center-left,
.uk-navbar-center-right {
  position: absolute;
  top: 0; }

.uk-navbar-center-left {
  right: 100%; }

.uk-navbar-center-right {
  left: 100%; }

[class*='uk-navbar-center-'] {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* Nav
 ========================================================================== */
/*
 * 1. Reset list
 */
.uk-navbar-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Allow items to wrap into the next line
 * Only not `absolute` positioned groups
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center:only-child {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

/*
 * Items
 * 1. Center content vertically and horizontally
 * 2. Dimensions
 * 3. Style
 * 4. Required for `a`
 */
.uk-navbar-nav > li > a,
.uk-navbar-item,
.uk-navbar-toggle {
  /* 1 */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 80px;
  padding: 0 15px;
  /* 3 */
  font-size: 0.875rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  text-decoration: none; }

/*
 * Nav items
 */
.uk-navbar-nav > li > a {
  color: #999;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  -o-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  -o-transition-property: color, background-color;
  transition-property: color, background-color; }

/*
 * Hover
 * Apply hover style also to focus state and if dropdown is opened
 */
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a.uk-open {
  color: #666;
  outline: none; }

/* OnClick */
.uk-navbar-nav > li > a:active {
  color: #333; }

/* Active */
.uk-navbar-nav > li.uk-active > a {
  color: #333; }

/* Item
 ========================================================================== */
.uk-navbar-item {
  color: #666; }

/* Toggle
 ========================================================================== */
.uk-navbar-toggle {
  color: #999; }

.uk-navbar-toggle:hover,
.uk-navbar-toggle:focus,
.uk-navbar-toggle.uk-open {
  color: #666;
  outline: none;
  text-decoration: none; }

/*
 * Icon
 * Adopts `uk-icon`
 */
/* Hover + Focus */
/* Subtitle
 ========================================================================== */
.uk-navbar-subtitle {
  font-size: 0.875rem; }

/* Style modifiers
 ========================================================================== */
/* Dropdown
 ========================================================================== */
/*
 * Adopts `uk-dropdown`
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-navbar-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 200px;
  /* 4 */
  padding: 25px;
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15); }

/* Show */
.uk-navbar-dropdown.uk-open {
  display: block; }

/*
 * Direction / Alignment modifiers
 */
/* Direction */
[class*='uk-navbar-dropdown-top'] {
  margin-top: -15px; }

[class*='uk-navbar-dropdown-bottom'] {
  margin-top: 15px; }

[class*='uk-navbar-dropdown-left'] {
  margin-left: -15px; }

[class*='uk-navbar-dropdown-right'] {
  margin-left: 15px; }

/*
 * Grid
 * Adopts `uk-grid`
 */
/* Gutter Horizontal */
.uk-navbar-dropdown-grid {
  margin-left: -50px; }

.uk-navbar-dropdown-grid > * {
  padding-left: 50px; }

/* Gutter Vertical */
.uk-navbar-dropdown-grid > .uk-grid-margin {
  margin-top: 50px; }

/* Stack */
.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * {
  width: 100% !important; }

/*
 * Width modifier
 */
.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) {
  width: 400px; }

.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) {
  width: 600px; }

.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) {
  width: 800px; }

.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) {
  width: 1000px; }

/*
 * Dropbar modifier
 */
.uk-navbar-dropdown-dropbar {
  margin-top: 0;
  margin-bottom: 0;
  -webkit-box-shadow: none;
          box-shadow: none; }

/* Dropdown Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-navbar-dropdown-nav {
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-navbar-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus */
.uk-navbar-dropdown-nav > li > a:hover,
.uk-navbar-dropdown-nav > li > a:focus {
  color: #666; }

/* Active */
.uk-navbar-dropdown-nav > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-navbar-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-navbar-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-navbar-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-navbar-dropdown-nav .uk-nav-sub a:hover,
.uk-navbar-dropdown-nav .uk-nav-sub a:focus {
  color: #666; }

.uk-navbar-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Dropbar
 ========================================================================== */
.uk-navbar-dropbar {
  background: #fff; }

/*
 * Slide modifier
 */
.uk-navbar-dropbar-slide {
  position: absolute;
  z-index: 980;
  left: 0;
  right: 0;
  -webkit-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05);
          box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05); }

/*
     * Navbar
     */
.uk-navbar-container > .uk-container .uk-navbar-left {
  margin-left: -15px;
  margin-right: -15px; }

.uk-navbar-container > .uk-container .uk-navbar-right {
  margin-right: -15px; }

/*
     * Grid Divider
     */
.uk-navbar-dropdown-grid > * {
  position: relative; }

.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 25px;
  border-left: 1px solid #e5e5e5; }

/* Vertical */
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  top: -25px;
  left: 50px;
  right: 0;
  border-top: 1px solid #e5e5e5; }

/* ========================================================================
   Component: Subnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-subnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: -20px;
  /* 3 */
  padding: 0;
  list-style: none; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-subnav > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * Using `:first-child` instead of `a` to support `span` elements for text
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-subnav > * > :first-child {
  /* 1 */
  display: block;
  /* 2 */
  color: #999;
  font-size: 0.875rem;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  -o-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  -o-transition-property: color, background-color;
  transition-property: color, background-color; }

/* Hover + Focus */
.uk-subnav > * > a:hover,
.uk-subnav > * > a:focus {
  color: #666;
  text-decoration: none;
  outline: none; }

/* Active */
.uk-subnav > .uk-active > a {
  color: #333; }

/* Divider modifier
 ========================================================================== */
/*
 * Set gutter 
 */
.uk-subnav-divider {
  margin-left: -41px; }

/*
 * Align items and divider vertically
 */
.uk-subnav-divider > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Divider
 * 1. `nth-child` makes it also work without JS if it's only one row
 */
.uk-subnav-divider > ::before {
  content: "";
  height: 1.5em;
  margin-left: 0px;
  margin-right: 20px;
  border-left: 1px solid transparent; }

/* 1 */
.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
  border-left-color: #e5e5e5; }

/* Pill modifier
 ========================================================================== */
.uk-subnav-pill > * > :first-child {
  padding: 5px 10px;
  background: transparent;
  color: #999; }

/* Hover + Focus */
.uk-subnav-pill > * > a:hover,
.uk-subnav-pill > * > a:focus {
  background-color: #f8f8f8;
  color: #666; }

/* OnClick */
.uk-subnav-pill > * > a:active {
  background-color: #f8f8f8;
  color: #666; }

/* Active */
.uk-subnav-pill > .uk-active > a {
  background-color: #1e87f0;
  color: #fff; }

/* Disabled
 * The same for all style modifiers
 ========================================================================== */
.uk-subnav > .uk-disabled > a {
  color: #999; }

/* ========================================================================
   Component: Breadcrumb
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 */
.uk-breadcrumb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  padding: 0;
  list-style: none; }

/*
 * Space is allocated solely based on content dimensions: 0 0 auto
 */
.uk-breadcrumb > * {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none; }

/* Items
 ========================================================================== */
.uk-breadcrumb > * > * {
  display: inline-block;
  font-size: 0.875rem;
  color: #999; }

/* Hover + Focus */
.uk-breadcrumb > * > :hover,
.uk-breadcrumb > * > :focus {
  color: #666;
  text-decoration: none; }

/* Disabled */
/* Active */
.uk-breadcrumb > :last-child > span,
.uk-breadcrumb > :last-child > a:not([href]) {
  color: #666; }

/*
 * Divider
 * `nth-child` makes it also work without JS if it's only one row
 */
.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
  content: "/";
  display: inline-block;
  margin: 0 20px;
  font-size: 0.875rem;
  color: #999; }

/* ========================================================================
   Component: Pagination
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: -20px;
  /* 3 */
  padding: 0;
  list-style: none; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-pagination > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-pagination > * > * {
  /* 1 */
  display: block;
  /* 2 */
  color: #999;
  -webkit-transition: color 0.1s ease-in-out;
  -o-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-pagination > * > :hover,
.uk-pagination > * > :focus {
  color: #666;
  text-decoration: none; }

/* Active */
.uk-pagination > .uk-active > * {
  color: #666; }

/* Disabled */
.uk-pagination > .uk-disabled > * {
  color: #999; }

/* ========================================================================
   Component: Tab
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: -20px;
  /* 3 */
  padding: 0;
  list-style: none;
  position: relative; }
  .uk-tab::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 20px;
    right: 0;
    border-bottom: 1px solid #e5e5e5; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-tab > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center text if a width is set
 * 2. Style
 */
.uk-tab > * > a {
  /* 1 */
  display: block;
  text-align: center;
  /* 2 */
  padding: 5px 10px;
  color: #999;
  border-bottom: 1px solid transparent;
  font-size: 0.875rem;
  text-transform: uppercase;
  -webkit-transition: color 0.1s ease-in-out;
  -o-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-tab > * > a:hover,
.uk-tab > * > a:focus {
  color: #666;
  text-decoration: none; }

/* Active */
.uk-tab > .uk-active > a {
  color: #333;
  border-color: #1e87f0; }

/* Disabled */
.uk-tab > .uk-disabled > a {
  color: #999; }

/* Position modifier
 ========================================================================== */
/*
 * Bottom
 */
.uk-tab-bottom::before {
  top: 0;
  bottom: auto; }

.uk-tab-bottom > * > a {
  border-top: 1px solid transparent;
  border-bottom: none; }

/*
 * Left + Right
 * 1. Reset Gutter
 */
.uk-tab-left,
.uk-tab-right {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 1 */
  margin-left: 0; }

/* 1 */
.uk-tab-left > *,
.uk-tab-right > * {
  padding-left: 0; }

.uk-tab-left::before {
  top: 0;
  bottom: 0;
  left: auto;
  right: 0;
  border-left: 1px solid #e5e5e5;
  border-bottom: none; }

.uk-tab-right::before {
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  border-left: 1px solid #e5e5e5;
  border-bottom: none; }

.uk-tab-left > * > a {
  text-align: left;
  border-right: 1px solid transparent;
  border-bottom: none; }

.uk-tab-right > * > a {
  text-align: left;
  border-left: 1px solid transparent;
  border-bottom: none; }

.uk-tab .uk-dropdown {
  margin-left: 30px; }

/* ========================================================================
   Component: Slidenav
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-slidenav {
  padding: 5px 10px;
  color: rgba(102, 102, 102, 0.5);
  -webkit-transition: color 0.1s ease-in-out;
  -o-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-slidenav:hover,
.uk-slidenav:focus {
  color: rgba(102, 102, 102, 0.9);
  outline: none; }

/* OnClick */
.uk-slidenav:active {
  color: rgba(102, 102, 102, 0.5); }

/* Icon modifier
 ========================================================================== */
/*
 * Previous
 */
/*
 * Next
 */
/* Size modifier
 ========================================================================== */
.uk-slidenav-large {
  padding: 10px 10px; }

/* Container
 ========================================================================== */
.uk-slidenav-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

/* ========================================================================
   Component: Dotnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-dotnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -12px; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 */
.uk-dotnav > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 12px; }

/* Items
 ========================================================================== */
/*
 * Items
 * 1. Hide text if present
 */
.uk-dotnav > * > * {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: transparent;
  /* 1 */
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
  border: 1px solid rgba(102, 102, 102, 0.4);
  -webkit-transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  -webkit-transition-property: background-color, border-color;
  -o-transition-property: background-color, border-color;
  transition-property: background-color, border-color; }

/* Hover + Focus */
.uk-dotnav > * > :hover,
.uk-dotnav > * > :focus {
  background-color: rgba(102, 102, 102, 0.6);
  outline: none;
  border-color: transparent; }

/* OnClick */
.uk-dotnav > * > :active {
  background-color: rgba(102, 102, 102, 0.2);
  border-color: transparent; }

/* Active */
.uk-dotnav > .uk-active > * {
  background-color: rgba(102, 102, 102, 0.6);
  border-color: transparent; }

/* Modifier: 'uk-dotnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-dotnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -12px; }

/* 2 */
.uk-dotnav-vertical > * {
  padding-left: 0;
  padding-top: 12px; }

/* ========================================================================
   Component: Thumbnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-thumbnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -15px; }

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-thumbnav > * {
  /* 1 */
  padding-left: 15px; }

/* Items
 ========================================================================== */
/*
 * Items
 */
.uk-thumbnav > * > * {
  display: inline-block;
  position: relative; }
  .uk-thumbnav > * > *::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.4);
    -webkit-transition: background-color 0.1s ease-in-out;
    -o-transition: background-color 0.1s ease-in-out;
    transition: background-color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-thumbnav > * > :hover,
.uk-thumbnav > * > :focus {
  outline: none; }
  .uk-thumbnav > * > :hover::after,
  .uk-thumbnav > * > :focus::after {
    background-color: transparent; }

/* Active */
.uk-thumbnav > .uk-active > *::after {
  background-color: transparent; }

/* Modifier: 'uk-thumbnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-thumbnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -15px; }

/* 2 */
.uk-thumbnav-vertical > * {
  padding-left: 0;
  padding-top: 15px; }

/* ========================================================================
   Component: Accordion
 ========================================================================== */
.uk-accordion {
  padding: 0;
  list-style: none; }

/* Item
 ========================================================================== */
.uk-accordion > :nth-child(n+2) {
  margin-top: 20px; }

/* Title
 ========================================================================== */
.uk-accordion-title {
  display: block;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333;
  overflow: hidden; }
  .uk-accordion-title::before {
    content: "";
    width: 1.4em;
    height: 1.4em;
    margin-left: 10px;
    float: right;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: 50% 50%; }
  .uk-open > .uk-accordion-title::before {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Hover + Focus */
.uk-accordion-title:hover,
.uk-accordion-title:focus {
  color: #666;
  text-decoration: none;
  outline: none; }

/* Content
 ========================================================================== */
.uk-accordion-content {
  display: flow-root;
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-accordion-content > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Drop
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */
.uk-drop {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 300px; }

/* Show */
.uk-drop.uk-open {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-drop-top'] {
  margin-top: -20px; }

[class*='uk-drop-bottom'] {
  margin-top: 20px; }

[class*='uk-drop-left'] {
  margin-left: -20px; }

[class*='uk-drop-right'] {
  margin-left: 20px; }

/* Grid modifiers
 ========================================================================== */
.uk-drop-stack .uk-drop-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Dropdown
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-width: 200px;
  /* 4 */
  padding: 25px;
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15); }

/* Show */
.uk-dropdown.uk-open {
  display: block; }

/* Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-dropdown-nav {
  white-space: nowrap;
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus + Active */
.uk-dropdown-nav > li > a:hover,
.uk-dropdown-nav > li > a:focus,
.uk-dropdown-nav > li.uk-active > a {
  color: #666; }

/*
 * Header
 */
.uk-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-dropdown-nav .uk-nav-sub a:hover,
.uk-dropdown-nav .uk-nav-sub a:focus,
.uk-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #666; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-dropdown-top'] {
  margin-top: -10px; }

[class*='uk-dropdown-bottom'] {
  margin-top: 10px; }

[class*='uk-dropdown-left'] {
  margin-left: -10px; }

[class*='uk-dropdown-right'] {
  margin-left: 10px; }

/* Grid modifiers
 ========================================================================== */
.uk-dropdown-stack .uk-dropdown-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Modal
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 */
.uk-modal {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* 4 */
  padding: 32px 32px;
  /* 5 */
  background: rgba(0, 0, 0, 0.75);
  /* 6 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-modal {
    padding: 50px 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-modal {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Open
 */
.uk-modal.uk-open {
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-modal-page {
  overflow: hidden; }

/* Dialog
 ========================================================================== */
/*
 * 1. Create position context for spinner and close button
 * 2. Dimensions
 * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11
 *    `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests
 * 4. Style
 * 5. Slide-in transition
 */
.uk-modal-dialog {
  /* 1 */
  position: relative;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  width: 600px;
  /* 3 */
  max-width: calc(100% - 0.01px) !important;
  /* 4 */
  background: #fff;
  /* 5 */
  opacity: 0;
  -webkit-transform: translateY(-100px);
      -ms-transform: translateY(-100px);
          transform: translateY(-100px);
  -webkit-transition: 0.3s linear;
  -o-transition: 0.3s linear;
  transition: 0.3s linear;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: opacity, transform;
  transition-property: opacity, transform;
  transition-property: opacity, transform, -webkit-transform; }

/*
 * Open
 */
.uk-open > .uk-modal-dialog {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

/* Size modifier
 ========================================================================== */
/*
 * Container size
 * Take the same size as the Container component
 */
.uk-modal-container .uk-modal-dialog {
  width: 1200px; }

/*
 * Full size
 * 1. Remove padding and background from modal
 * 2. Reset all default declarations from modal dialog
 */
/* 1 */
.uk-modal-full {
  padding: 0;
  background: none; }

/* 2 */
.uk-modal-full .uk-modal-dialog {
  margin: 0;
  width: 100%;
  max-width: 100%;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

/* Sections
 ========================================================================== */
.uk-modal-body {
  display: flow-root;
  padding: 16px 16px; }

.uk-modal-header {
  display: flow-root;
  padding: 15px 30px;
  background: #fff;
  border-bottom: 1px solid #e5e5e5; }

.uk-modal-footer {
  display: flow-root;
  padding: 15px 30px;
  background: #fff;
  border-top: 1px solid #e5e5e5; }

/*
 * Remove margin from the last-child
 */
.uk-modal-body > :last-child,
.uk-modal-header > :last-child,
.uk-modal-footer > :last-child {
  margin-bottom: 0; }

/* Title
 ========================================================================== */
.uk-modal-title {
  font-size: 2rem;
  line-height: 1.3; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
[class*='uk-modal-close-'] {
  position: absolute;
  z-index: 1010;
  top: 10px;
  right: 10px;
  padding: 5px; }

/*
 * Remove margin from adjacent element
 */
[class*='uk-modal-close-']:first-child + * {
  margin-top: 0; }

/*
 * Hover
 */
/*
 * Default
 */
/*
 * Outside
 * 1. Prevent scrollbar on small devices
 */
.uk-modal-close-outside {
  top: 0;
  /* 1 */
  right: -5px;
  -webkit-transform: translate(0, -100%);
      -ms-transform: translate(0, -100%);
          transform: translate(0, -100%);
  color: white; }

.uk-modal-close-outside:hover {
  color: #fff; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  /* 1 */
  .uk-modal-close-outside {
    right: 0;
    -webkit-transform: translate(100%, -100%);
        -ms-transform: translate(100%, -100%);
            transform: translate(100%, -100%); } }

/*
 * Full
 */
.uk-modal-close-full {
  top: 0;
  right: 0;
  padding: 20px;
  background: #fff; }

/* ========================================================================
   Component: Lightbox
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 * 7. Prevent cancellation of pointer events while dragging
 */
.uk-lightbox {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 5 */
  background: #000;
  /* 6 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
  /* 7 */
  -ms-touch-action: pinch-zoom;
      touch-action: pinch-zoom; }

/*
 * Open
 * 1. Center child
 * 2. Fade-in
 */
.uk-lightbox.uk-open {
  display: block;
  /* 2 */
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-lightbox-page {
  overflow: hidden; }

/* Item
 ========================================================================== */
/*
 * 1. Center child within the viewport
 * 2. Not visible by default
 * 3. Color needed for spinner icon
 * 4. Optimize animation
 * 5. Responsiveness
 *    Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera
 *    Using `vh` and `vw` to make responsive image work in IE11
 * 6. Suppress outline on focus
 */
.uk-lightbox-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: none;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 3 */
  color: rgba(255, 255, 255, 0.7);
  /* 4 */
  will-change: transform, opacity; }

/* 5 */
.uk-lightbox-items > * > * {
  max-width: 100vw;
  max-height: 100vh; }

/* 6 */
.uk-lightbox-items > :focus {
  outline: none; }

.uk-lightbox-items > * > :not(iframe) {
  width: auto;
  height: auto; }

.uk-lightbox-items > .uk-active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

/* Toolbar
 ========================================================================== */
.uk-lightbox-toolbar {
  padding: 10px 10px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7); }

.uk-lightbox-toolbar > * {
  color: rgba(255, 255, 255, 0.7); }

/* Toolbar Icon (Close)
 ========================================================================== */
.uk-lightbox-toolbar-icon {
  padding: 5px;
  color: rgba(255, 255, 255, 0.7); }

/*
 * Hover
 */
.uk-lightbox-toolbar-icon:hover {
  color: #fff; }

/* Button (Slidenav)
 ========================================================================== */
/*
 * 1. Center icon vertically and horizontally
 */
.uk-lightbox-button {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 50px;
  height: 50px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7);
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Hover
 */
.uk-lightbox-button:hover {
  color: #fff; }

/* Caption
 ========================================================================== */
.uk-lightbox-caption:empty {
  display: none; }

/* Iframe
 ========================================================================== */
.uk-lightbox-iframe {
  width: 80%;
  height: 80%; }

/* ========================================================================
   Component: Slideshow
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slideshow {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/* Items
 ========================================================================== */
/*
 * 1. Create position and stacking context
 * 2. Reset list
 * 3. Clip child elements
 * 4. Prevent displaying the callout information on iOS.
 */
.uk-slideshow-items {
  /* 1 */
  position: relative;
  z-index: 0;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  overflow: hidden;
  /* 4 */
  -webkit-touch-callout: none; }

/* Item
 ========================================================================== */
/*
 * 1. Position items above each other
 * 2. Take the full width
 * 3. Clip child elements, e.g. for `uk-cover`
 * 4. Optimize animation
 * 5. Disable horizontal panning gestures in IE11 and Edge
 * 6. Suppress outline on focus
 */
.uk-slideshow-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  left: 0;
  /* 2 */
  right: 0;
  bottom: 0;
  /* 3 */
  overflow: hidden;
  /* 4 */
  will-change: transform, opacity;
  /* 5 */
  -ms-touch-action: pan-y;
      touch-action: pan-y; }

/* 6 */
.uk-slideshow-items > :focus {
  outline: none; }

/*
 * Hide not active items
 */
.uk-slideshow-items > :not(.uk-active) {
  display: none; }

/* ========================================================================
   Component: Slider
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slider {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/* Container
 ========================================================================== */
/*
 * 1. Clip child elements
 */
.uk-slider-container {
  /* 1 */
  overflow: hidden; }

/* Items
 ========================================================================== */
/*
 * 1. Optimize animation
 * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
 */
.uk-slider-items {
  /* 1 */
  will-change: transform;
  /* 2 */
  position: relative; }

/*
 * 1. Reset list style without interfering with grid
 * 2. Prevent displaying the callout information on iOS.
 */
.uk-slider-items:not(.uk-grid) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 2 */
  -webkit-touch-callout: none; }

.uk-slider-items.uk-grid {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

/* Item
 ========================================================================== */
/*
 * 1. Let items take content dimensions (0 0 auto)
 * 2. Create position context
 * 3. Disable horizontal panning gestures in IE11 and Edge
 * 4. Suppress outline on focus
 */
.uk-slider-items > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  position: relative;
  /* 3 */
  -ms-touch-action: pan-y;
      touch-action: pan-y; }

/* 4 */
.uk-slider-items > :focus {
  outline: none; }

/* ========================================================================
   Component: Sticky
 ========================================================================== */
/*
 * 1. Resolve frame rate issues on devices with lower frame rates by forcing hardware acceleration
 */
.uk-sticky-fixed {
  z-index: 980;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 !important;
  /* 1 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

/*
 * Faster animations
 */
.uk-sticky[class*='uk-animation-'] {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s; }

.uk-sticky.uk-animation-reverse {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s; }

/* ========================================================================
   Component: Off-canvas
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 */
.uk-offcanvas {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1000; }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas {
  right: 0;
  left: auto; }

/* Bar
 ========================================================================== */
/*
 * 1. Set position
 * 2. Size and style
 * 3. Allow scrolling
 */
.uk-offcanvas-bar {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: -270px;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 270px;
  padding: 20px 20px;
  background: #222;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-offcanvas-bar {
    left: -350px;
    width: 350px;
    padding: 40px 40px; } }

/* Flip modifier */
.uk-offcanvas-flip .uk-offcanvas-bar {
  left: auto;
  right: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-offcanvas-flip .uk-offcanvas-bar {
    right: -350px; } }

/*
 * Open
 */
.uk-open > .uk-offcanvas-bar {
  left: 0; }

.uk-offcanvas-flip .uk-open > .uk-offcanvas-bar {
  left: auto;
  right: 0; }

/*
 * Slide Animation (Used in slide and push mode)
 */
.uk-offcanvas-bar-animation {
  -webkit-transition: left 0.3s ease-out;
  -o-transition: left 0.3s ease-out;
  transition: left 0.3s ease-out; }

.uk-offcanvas-flip .uk-offcanvas-bar-animation {
  -webkit-transition-property: right;
  -o-transition-property: right;
  transition-property: right; }

/*
 * Reveal Animation
 * 1. Set position
 * 2. Clip the bar
 * 3. Animation
 * 4. Reset position
 */
.uk-offcanvas-reveal {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 0;
  overflow: hidden;
  /* 3 */
  -webkit-transition: width 0.3s ease-out;
  -o-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out; }

.uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: 0; }

.uk-offcanvas-flip .uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: auto;
  right: 0; }

.uk-open > .uk-offcanvas-reveal {
  width: 270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-open > .uk-offcanvas-reveal {
    width: 350px; } }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas-reveal {
  right: 0;
  left: auto; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-offcanvas-close {
  position: absolute;
  z-index: 1000;
  top: 20px;
  right: 20px;
  padding: 5px; }

/* Overlay
 ========================================================================== */
/*
 * Overlay the whole page. Needed for the `::before`
 * 1. Using `100vw` so no modification is needed when off-canvas is flipped
 * 2. Allow for closing with swipe gesture on devices with pointer events.
 */
.uk-offcanvas-overlay {
  /* 1 */
  width: 100vw;
  /* 2 */
  -ms-touch-action: none;
      touch-action: none; }

/*
 * 1. Mask the whole page
 * 2. Fade-in transition
 */
.uk-offcanvas-overlay::before {
  /* 1 */
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.1);
  /* 2 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear; }

.uk-offcanvas-overlay.uk-open::before {
  opacity: 1; }

/* Prevent scrolling
 ========================================================================== */
/*
 * Prevent horizontal scrollbar when the content is slide-out
 * Has to be on the `html` element too to make it work on the `body`
 */
.uk-offcanvas-page,
.uk-offcanvas-container {
  overflow-x: hidden; }

/* Container
 ========================================================================== */
/*
 * Prepare slide-out animation (Used in reveal and push mode)
 * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars
 * lose their fixed state and behaves like `absolute` within a transformed container
 * 1. Provide a fixed width and prevent shrinking
 */
.uk-offcanvas-container {
  position: relative;
  left: 0;
  -webkit-transition: left 0.3s ease-out;
  -o-transition: left 0.3s ease-out;
  transition: left 0.3s ease-out;
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%; }

/*
 * Activate slide-out animation
 */
:not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
  left: 270px; }

.uk-offcanvas-flip.uk-offcanvas-container-animation {
  left: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  :not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
    left: 350px; }
  .uk-offcanvas-flip.uk-offcanvas-container-animation {
    left: -350px; } }

/* ========================================================================
   Component: Switcher
 ========================================================================== */
/*
 * Reset list
 */
.uk-switcher {
  margin: 0;
  padding: 0;
  list-style: none; }

/* Items
 ========================================================================== */
/*
 * Hide not active items
 */
.uk-switcher > :not(.uk-active) {
  display: none; }

/*
 * Remove margin from the last-child
 */
.uk-switcher > * > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Leader
 ========================================================================== */
.uk-leader {
  overflow: hidden; }

/*
 * 1. Place element in text flow
 * 2. Never break into a new line
 * 3. Get a string back with as many repeating characters to fill the container
 * 4. Prevent wrapping. Overflowing characters will be clipped by the container
 */
.uk-leader-fill::after {
  /* 1 */
  display: inline-block;
  margin-left: 15px;
  /* 2 */
  width: 0;
  /* 3 */
  content: attr(data-fill);
  /* 4 */
  white-space: nowrap; }

/*
 * Hide if media does not match
 */
.uk-leader-fill.uk-leader-hide::after {
  display: none; }

/*
 * Pass fill character to JS
 */
.uk-leader-fill-content::before {
  content: "."; }

:root {
  --uk-leader-fill-content: .; }

/* ========================================================================
   Component: Iconnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-iconnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -10px; }

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-iconnav > * {
  /* 1 */
  padding-left: 10px; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-iconnav > * > a {
  /* 1 */
  display: block;
  /* 2 */
  color: #999; }

/* Hover + Focus */
.uk-iconnav > * > a:hover,
.uk-iconnav > * > a:focus {
  color: #666;
  outline: none; }

/* Active */
.uk-iconnav > .uk-active > a {
  color: #666; }

/* Modifier: 'uk-iconnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-iconnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -10px; }

/* 2 */
.uk-iconnav-vertical > * {
  padding-left: 0;
  padding-top: 10px; }

/* ========================================================================
   Component: Notification
 ========================================================================== */
/*
 * 1. Set position
 * 2. Dimensions
 */
.uk-notification {
  /* 1 */
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 1040;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 350px; }

/* Position modifiers
========================================================================== */
.uk-notification-top-right,
.uk-notification-bottom-right {
  left: auto;
  right: 10px; }

.uk-notification-top-center,
.uk-notification-bottom-center {
  left: 50%;
  margin-left: -175px; }

.uk-notification-bottom-left,
.uk-notification-bottom-right,
.uk-notification-bottom-center {
  top: auto;
  bottom: 10px; }

/* Responsiveness
========================================================================== */
/* Phones portrait and smaller */
@media (max-width: 767px) {
  .uk-notification {
    left: 10px;
    right: 10px;
    width: auto;
    margin: 0; } }

/* Message
========================================================================== */
.uk-notification-message {
  position: relative;
  padding: 15px;
  background: #f8f8f8;
  color: #666;
  font-size: 1.25rem;
  line-height: 1.4;
  cursor: pointer; }

* + .uk-notification-message {
  margin-top: 10px; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-notification-close {
  display: none;
  position: absolute;
  top: 20px;
  right: 15px; }

.uk-notification-message:hover .uk-notification-close {
  display: block; }

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-notification-message-primary {
  color: #1e87f0; }

/*
 * Success
 */
.uk-notification-message-success {
  color: #32d296; }

/*
 * Warning
 */
.uk-notification-message-warning {
  color: #faa05a; }

/*
 * Danger
 */
.uk-notification-message-danger {
  color: #f0506e; }

/* ========================================================================
   Component: Tooltip
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Position
 * 3. Remove tooltip from document flow to keep the UIkit container from changing its size when injected into the document initially
 * 4. Dimensions
 * 5. Style
 */
.uk-tooltip {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1030;
  /* 3 */
  top: 0;
  /* 4 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  max-width: 200px;
  padding: 3px 6px;
  /* 5 */
  background: #666;
  border-radius: 2px;
  color: #fff;
  font-size: 12px; }

/* Show */
.uk-tooltip.uk-active {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-tooltip-top'] {
  margin-top: -10px; }

[class*='uk-tooltip-bottom'] {
  margin-top: 10px; }

[class*='uk-tooltip-left'] {
  margin-left: -10px; }

[class*='uk-tooltip-right'] {
  margin-left: 10px; }

/* ========================================================================
   Component: Placeholder
 ========================================================================== */
.uk-placeholder {
  margin-bottom: 20px;
  padding: 30px 30px;
  background: transparent;
  border: 1px dashed #e5e5e5; }

/* Add margin if adjacent element */
* + .uk-placeholder {
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-placeholder > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Progress
 ========================================================================== */
/*
 * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 * 2. Remove default style
 * 3. Behave like a block element
 * 4. Remove borders in Firefox and Edge
 * 5. Set background color for progress container in Firefox, IE11 and Edge
 * 6. Style
 */
.uk-progress {
  /* 1 */
  vertical-align: baseline;
  /* 2 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 3 */
  display: block;
  width: 100%;
  /* 4 */
  border: 0;
  /* 5 */
  background-color: #f8f8f8;
  /* 6 */
  margin-bottom: 20px;
  height: 15px;
  border-radius: 500px;
  overflow: hidden; }

/* Add margin if adjacent element */
* + .uk-progress {
  margin-top: 20px; }

/*
 * Remove animated circles for indeterminate state in IE11 and Edge
 */
.uk-progress:indeterminate {
  color: transparent; }

/*
 * Progress container
 * 2. Remove progress bar for indeterminate state in Firefox
 */
.uk-progress::-webkit-progress-bar {
  background-color: #f8f8f8;
  border-radius: 500px;
  overflow: hidden; }

/* 2 */
.uk-progress:indeterminate::-moz-progress-bar {
  width: 0; }

/*
 * Progress bar
 * 1. Remove right border in IE11 and Edge
 */
.uk-progress::-webkit-progress-value {
  background-color: #1e87f0;
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease; }

.uk-progress::-moz-progress-bar {
  background-color: #1e87f0; }

.uk-progress::-ms-fill {
  background-color: #1e87f0;
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
  /* 1 */
  border: 0; }

/* ========================================================================
   Component: Sortable
 ========================================================================== */
.uk-sortable {
  position: relative; }

/*
 * Deactivate pointer-events on SVGs in Safari
 */
.uk-sortable svg {
  pointer-events: none; }

/*
 * Remove margin from the last-child
 */
.uk-sortable > :last-child {
  margin-bottom: 0; }

/* Drag
 ========================================================================== */
.uk-sortable-drag {
  position: fixed !important;
  z-index: 1050 !important;
  pointer-events: none; }

/* Placeholder
 ========================================================================== */
.uk-sortable-placeholder {
  opacity: 0;
  pointer-events: none; }

/* Empty modifier
 ========================================================================== */
.uk-sortable-empty {
  min-height: 50px; }

/* Handle
 ========================================================================== */
/* Hover */
.uk-sortable-handle:hover {
  cursor: move; }

/* ========================================================================
   Component: Countdown
 ========================================================================== */
/* Item
 ========================================================================== */
/* Number
 ========================================================================== */
/*
 * 1. Make numbers all of the same size to prevent jumping. Must be supported by the font.
 * 2. Style
 */
.uk-countdown-number {
  /* 1 */
  font-variant-numeric: tabular-nums;
  /* 2 */
  font-size: 2rem;
  line-height: 0.8; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-countdown-number {
    font-size: 4rem; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-countdown-number {
    font-size: 6rem; } }

/* Separator
 ========================================================================== */
.uk-countdown-separator {
  font-size: 1rem;
  line-height: 1.6; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-countdown-separator {
    font-size: 2rem; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-countdown-separator {
    font-size: 3rem; } }

/* Label
 ========================================================================== */
/* ========================================================================
   Component: Animation
 ========================================================================== */
[class*='uk-animation-'] {
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

/* Animations
 ========================================================================== */
/*
 * Fade
 */
.uk-animation-fade {
  -webkit-animation-name: uk-fade;
          animation-name: uk-fade;
  -webkit-animation-duration: 0.8s;
          animation-duration: 0.8s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear; }

/*
 * Scale
 */
.uk-animation-scale-up {
  -webkit-animation-name: uk-fade-scale-02;
          animation-name: uk-fade-scale-02; }

.uk-animation-scale-down {
  -webkit-animation-name: uk-fade-scale-18;
          animation-name: uk-fade-scale-18; }

/*
 * Slide
 */
.uk-animation-slide-top {
  -webkit-animation-name: uk-fade-top;
          animation-name: uk-fade-top; }

.uk-animation-slide-bottom {
  -webkit-animation-name: uk-fade-bottom;
          animation-name: uk-fade-bottom; }

.uk-animation-slide-left {
  -webkit-animation-name: uk-fade-left;
          animation-name: uk-fade-left; }

.uk-animation-slide-right {
  -webkit-animation-name: uk-fade-right;
          animation-name: uk-fade-right; }

/*
 * Slide Small
 */
.uk-animation-slide-top-small {
  -webkit-animation-name: uk-fade-top-small;
          animation-name: uk-fade-top-small; }

.uk-animation-slide-bottom-small {
  -webkit-animation-name: uk-fade-bottom-small;
          animation-name: uk-fade-bottom-small; }

.uk-animation-slide-left-small {
  -webkit-animation-name: uk-fade-left-small;
          animation-name: uk-fade-left-small; }

.uk-animation-slide-right-small {
  -webkit-animation-name: uk-fade-right-small;
          animation-name: uk-fade-right-small; }

/*
 * Slide Medium
 */
.uk-animation-slide-top-medium {
  -webkit-animation-name: uk-fade-top-medium;
          animation-name: uk-fade-top-medium; }

.uk-animation-slide-bottom-medium {
  -webkit-animation-name: uk-fade-bottom-medium;
          animation-name: uk-fade-bottom-medium; }

.uk-animation-slide-left-medium {
  -webkit-animation-name: uk-fade-left-medium;
          animation-name: uk-fade-left-medium; }

.uk-animation-slide-right-medium {
  -webkit-animation-name: uk-fade-right-medium;
          animation-name: uk-fade-right-medium; }

/*
 * Kenburns
 */
.uk-animation-kenburns {
  -webkit-animation-name: uk-scale-kenburns;
          animation-name: uk-scale-kenburns;
  -webkit-animation-duration: 15s;
          animation-duration: 15s; }

/*
 * Shake
 */
.uk-animation-shake {
  -webkit-animation-name: uk-shake;
          animation-name: uk-shake; }

/*
 * SVG Stroke
 * The `--uk-animation-stroke` custom property contains the longest path length.
 * Set it manually or use `uk-svg="stroke-animation: true"` to set it automatically.
 * All strokes are animated by the same pace and doesn't end simultaneously.
 * To end simultaneously, `pathLength="1"` could be used, but it's not working in Safari yet.
 */
.uk-animation-stroke {
  -webkit-animation-name: uk-stroke;
          animation-name: uk-stroke;
  stroke-dasharray: var(--uk-animation-stroke);
  -webkit-animation-duration: 2s;
          animation-duration: 2s; }

/* Direction modifier
 ========================================================================== */
.uk-animation-reverse {
  animation-direction: reverse;
  -webkit-animation-timing-function: ease-in;
          animation-timing-function: ease-in; }

/* Duration modifier
 ========================================================================== */
.uk-animation-fast {
  -webkit-animation-duration: 0.1s;
          animation-duration: 0.1s; }

/* Toggle (Hover + Focus)
========================================================================== */
/*
 * The toggle is triggered on touch devices using `:focus` and tabindex
 */
.uk-animation-toggle:not(:hover):not(:focus) [class*='uk-animation-'] {
  -webkit-animation-name: none;
          animation-name: none; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-animation-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-animation-toggle:focus {
  outline: none; }

/* Keyframes used by animation classes
 ========================================================================== */
/*
 * Fade
 */
@-webkit-keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

/*
 * Slide Top
 */
@-webkit-keyframes uk-fade-top {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom
 */
@-webkit-keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left
 */
@-webkit-keyframes uk-fade-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right
 */
@-webkit-keyframes uk-fade-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Top Small
 */
@-webkit-keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom Small
 */
@-webkit-keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left Small
 */
@-webkit-keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right Small
 */
@-webkit-keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Top Medium
 */
@-webkit-keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom Medium
 */
@-webkit-keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left Medium
 */
@-webkit-keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right Medium
 */
@-webkit-keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50px);
            transform: translateX(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50px);
            transform: translateX(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Scale Up
 */
@-webkit-keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.2);
            transform: scale(0.2); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }
@keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.2);
            transform: scale(0.2); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 * Scale Down
 */
@-webkit-keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.8);
            transform: scale(1.8); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }
@keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.8);
            transform: scale(1.8); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 * Kenburns
 */
@-webkit-keyframes uk-scale-kenburns {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2); } }
@keyframes uk-scale-kenburns {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2); } }

/*
 * Shake
 */
@-webkit-keyframes uk-shake {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  10% {
    -webkit-transform: translateX(-9px);
            transform: translateX(-9px); }
  20% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px); }
  30% {
    -webkit-transform: translateX(-7px);
            transform: translateX(-7px); }
  40% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px); }
  50% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); }
  60% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px); }
  70% {
    -webkit-transform: translateX(-3px);
            transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
            transform: translateX(2px); }
  90% {
    -webkit-transform: translateX(-1px);
            transform: translateX(-1px); } }
@keyframes uk-shake {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  10% {
    -webkit-transform: translateX(-9px);
            transform: translateX(-9px); }
  20% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px); }
  30% {
    -webkit-transform: translateX(-7px);
            transform: translateX(-7px); }
  40% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px); }
  50% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); }
  60% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px); }
  70% {
    -webkit-transform: translateX(-3px);
            transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
            transform: translateX(2px); }
  90% {
    -webkit-transform: translateX(-1px);
            transform: translateX(-1px); } }

/*
 * Stroke
 */
@-webkit-keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }
@keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }

/* ========================================================================
   Component: Width
 ========================================================================== */
/* Equal child widths
 ========================================================================== */
[class*='uk-child-width'] > * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%; }

.uk-child-width-1-2 > * {
  width: 50%; }

.uk-child-width-1-3 > * {
  width: calc(100% * 1 / 3.001); }

.uk-child-width-1-4 > * {
  width: 25%; }

.uk-child-width-1-5 > * {
  width: 20%; }

.uk-child-width-1-6 > * {
  width: calc(100% * 1 / 6.001); }

.uk-child-width-auto > * {
  width: auto; }

/*
 * 1. Reset the `min-width`, which is set to auto by default, because
 *    flex items won't shrink below their minimum intrinsic content size.
 *    Using `1px` instead of `0`, so items still wrap into the next line,
 *    if they have zero width and padding and the predecessor is 100% wide.
 */
.uk-child-width-expand > :not([class*='uk-width']) {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  /* 1 */
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-child-width-1-1\@s > * {
    width: 100%; }
  .uk-child-width-1-2\@s > * {
    width: 50%; }
  .uk-child-width-1-3\@s > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@s > * {
    width: 25%; }
  .uk-child-width-1-5\@s > * {
    width: 20%; }
  .uk-child-width-1-6\@s > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@s > * {
    width: auto; }
  .uk-child-width-expand\@s > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-child-width-1-1\@m > * {
    width: 100%; }
  .uk-child-width-1-2\@m > * {
    width: 50%; }
  .uk-child-width-1-3\@m > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@m > * {
    width: 25%; }
  .uk-child-width-1-5\@m > * {
    width: 20%; }
  .uk-child-width-1-6\@m > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@m > * {
    width: auto; }
  .uk-child-width-expand\@m > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-child-width-1-1\@l > * {
    width: 100%; }
  .uk-child-width-1-2\@l > * {
    width: 50%; }
  .uk-child-width-1-3\@l > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@l > * {
    width: 25%; }
  .uk-child-width-1-5\@l > * {
    width: 20%; }
  .uk-child-width-1-6\@l > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@l > * {
    width: auto; }
  .uk-child-width-expand\@l > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-child-width-1-1\@xl > * {
    width: 100%; }
  .uk-child-width-1-2\@xl > * {
    width: 50%; }
  .uk-child-width-1-3\@xl > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@xl > * {
    width: 25%; }
  .uk-child-width-1-5\@xl > * {
    width: 20%; }
  .uk-child-width-1-6\@xl > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@xl > * {
    width: auto; }
  .uk-child-width-expand\@xl > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Single Widths
 ========================================================================== */
/*
 * 1. `max-width` is needed for the pixel-based classes
 */
[class*='uk-width'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  /* 1 */
  max-width: 100%; }

/* Halves */
.uk-width-1-2 {
  width: 50%; }

/* Thirds */
.uk-width-1-3 {
  width: calc(100% * 1 / 3.001); }

.uk-width-2-3 {
  width: calc(100% * 2 / 3.001); }

/* Quarters */
.uk-width-1-4 {
  width: 25%; }

.uk-width-3-4 {
  width: 75%; }

/* Fifths */
.uk-width-1-5 {
  width: 20%; }

.uk-width-2-5 {
  width: 40%; }

.uk-width-3-5 {
  width: 60%; }

.uk-width-4-5 {
  width: 80%; }

/* Sixths */
.uk-width-1-6 {
  width: calc(100% * 1 / 6.001); }

.uk-width-5-6 {
  width: calc(100% * 5 / 6.001); }

/* Pixel */
.uk-width-small {
  width: 150px; }

.uk-width-medium {
  width: 300px; }

.uk-width-large {
  width: 450px; }

.uk-width-xlarge {
  width: 600px; }

.uk-width-2xlarge {
  width: 750px; }

/* Auto */
.uk-width-auto {
  width: auto; }

/* Expand */
.uk-width-expand {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  /* Whole */
  .uk-width-1-1\@s {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@s {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@s {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@s {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@s {
    width: 25%; }
  .uk-width-3-4\@s {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@s {
    width: 20%; }
  .uk-width-2-5\@s {
    width: 40%; }
  .uk-width-3-5\@s {
    width: 60%; }
  .uk-width-4-5\@s {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@s {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@s {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@s {
    width: 150px; }
  .uk-width-medium\@s {
    width: 300px; }
  .uk-width-large\@s {
    width: 450px; }
  .uk-width-xlarge\@s {
    width: 600px; }
  .uk-width-2xlarge\@s {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@s {
    width: auto; }
  /* Expand */
  .uk-width-expand\@s {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  /* Whole */
  .uk-width-1-1\@m {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@m {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@m {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@m {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@m {
    width: 25%; }
  .uk-width-3-4\@m {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@m {
    width: 20%; }
  .uk-width-2-5\@m {
    width: 40%; }
  .uk-width-3-5\@m {
    width: 60%; }
  .uk-width-4-5\@m {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@m {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@m {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@m {
    width: 150px; }
  .uk-width-medium\@m {
    width: 300px; }
  .uk-width-large\@m {
    width: 450px; }
  .uk-width-xlarge\@m {
    width: 600px; }
  .uk-width-2xlarge\@m {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@m {
    width: auto; }
  /* Expand */
  .uk-width-expand\@m {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Whole */
  .uk-width-1-1\@l {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@l {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@l {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@l {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@l {
    width: 25%; }
  .uk-width-3-4\@l {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@l {
    width: 20%; }
  .uk-width-2-5\@l {
    width: 40%; }
  .uk-width-3-5\@l {
    width: 60%; }
  .uk-width-4-5\@l {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@l {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@l {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@l {
    width: 150px; }
  .uk-width-medium\@l {
    width: 300px; }
  .uk-width-large\@l {
    width: 450px; }
  .uk-width-xlarge\@l {
    width: 600px; }
  .uk-width-2xlarge\@l {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@l {
    width: auto; }
  /* Expand */
  .uk-width-expand\@l {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  /* Whole */
  .uk-width-1-1\@xl {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@xl {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@xl {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@xl {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@xl {
    width: 25%; }
  .uk-width-3-4\@xl {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@xl {
    width: 20%; }
  .uk-width-2-5\@xl {
    width: 40%; }
  .uk-width-3-5\@xl {
    width: 60%; }
  .uk-width-4-5\@xl {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@xl {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@xl {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@xl {
    width: 150px; }
  .uk-width-medium\@xl {
    width: 300px; }
  .uk-width-large\@xl {
    width: 450px; }
  .uk-width-xlarge\@xl {
    width: 600px; }
  .uk-width-2xlarge\@xl {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@xl {
    width: auto; }
  /* Expand */
  .uk-width-expand\@xl {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* ========================================================================
   Component: Height
 ========================================================================== */
[class*='uk-height'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * Only works if parent element has a height set
 */
.uk-height-1-1 {
  height: 100%; }

/*
 * Useful to create image teasers
 */
.uk-height-viewport {
  min-height: 100vh; }

/*
 * Pixel
 * Useful for `overflow: auto`
 */
.uk-height-small {
  height: 150px; }

.uk-height-medium {
  height: 300px; }

.uk-height-large {
  height: 450px; }

.uk-height-max-small {
  max-height: 150px; }

.uk-height-max-medium {
  max-height: 300px; }

.uk-height-max-large {
  max-height: 450px; }

/* ========================================================================
   Component: Text
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
.uk-text-lead {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #333; }

.uk-text-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }
  .uk-text-meta a {
    color: #999; }
  .uk-text-meta a:hover {
    color: #666;
    text-decoration: none; }

/* Size modifiers
 ========================================================================== */
.uk-text-small {
  font-size: 0.875rem;
  line-height: 1.5; }

.uk-text-large {
  font-size: 1.5rem;
  line-height: 1.5; }

/* Weight modifier
 ========================================================================== */
.uk-text-light {
  font-weight: 300; }

.uk-text-normal {
  font-weight: 400; }

.uk-text-bold {
  font-weight: 700; }

.uk-text-lighter {
  font-weight: lighter; }

.uk-text-bolder {
  font-weight: bolder; }

/* Style modifier
 ========================================================================== */
.uk-text-italic {
  font-style: italic; }

/* Transform modifier
 ========================================================================== */
.uk-text-capitalize {
  text-transform: capitalize !important; }

.uk-text-uppercase {
  text-transform: uppercase !important; }

.uk-text-lowercase {
  text-transform: lowercase !important; }

/* Color modifiers
 ========================================================================== */
.uk-text-muted {
  color: #999 !important; }

.uk-text-emphasis {
  color: #333 !important; }

.uk-text-primary {
  color: #1e87f0 !important; }

.uk-text-secondary {
  color: #222 !important; }

.uk-text-success {
  color: #32d296 !important; }

.uk-text-warning {
  color: #faa05a !important; }

.uk-text-danger {
  color: #f0506e !important; }

/* Background modifier
 ========================================================================== */
/*
 * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera
 *    Default color is set to transparent
 * 2. Container fits the text
 * 3. Fallback color for IE11
 */
.uk-text-background {
  /* 1 */
  -webkit-background-clip: text;
  /* 2 */
  display: inline-block;
  /* 3 */
  color: #1e87f0 !important; }

@supports (-webkit-background-clip: text) {
  .uk-text-background {
    background-color: #1e87f0;
    color: transparent !important; } }

/* Alignment modifiers
 ========================================================================== */
.uk-text-left {
  text-align: left !important; }

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

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

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

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-text-left\@s {
    text-align: left !important; }
  .uk-text-right\@s {
    text-align: right !important; }
  .uk-text-center\@s {
    text-align: center !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-text-left\@m {
    text-align: left !important; }
  .uk-text-right\@m {
    text-align: right !important; }
  .uk-text-center\@m {
    text-align: center !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-text-left\@l {
    text-align: left !important; }
  .uk-text-right\@l {
    text-align: right !important; }
  .uk-text-center\@l {
    text-align: center !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-text-left\@xl {
    text-align: left !important; }
  .uk-text-right\@xl {
    text-align: right !important; }
  .uk-text-center\@xl {
    text-align: center !important; } }

/*
 * Vertical
 */
.uk-text-top {
  vertical-align: top !important; }

.uk-text-middle {
  vertical-align: middle !important; }

.uk-text-bottom {
  vertical-align: bottom !important; }

.uk-text-baseline {
  vertical-align: baseline !important; }

/* Wrap modifiers
 ========================================================================== */
/*
 * Prevent text from wrapping onto multiple lines
 */
.uk-text-nowrap {
  white-space: nowrap; }

/*
 * 1. Make sure a max-width is set after which truncation can occur
 * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis
 * 3. Fix for table cells
 */
.uk-text-truncate {
  /* 1 */
  max-width: 100%;
  /* 2 */
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap; }

/* 2 */
th.uk-text-truncate,
td.uk-text-truncate {
  max-width: 0; }

/*
 * 1. Wrap long words onto the next line and break them if they are too long to fit
 * 2. Legacy `word-wrap` as fallback for `overflow-wrap`
 * 3. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge
 *    Must use `break-all` to support IE11 and Edge
 * Note: Not using `hyphens: auto;` because it hyphenates text even if not needed
 */
.uk-text-break {
  /* 1 */
  overflow-wrap: break-word;
  /* 2 */
  word-wrap: break-word; }

/* 3 */
th.uk-text-break,
td.uk-text-break {
  word-break: break-all; }

/* ========================================================================
   Component: Column
 ========================================================================== */
[class*='uk-column-'] {
  -webkit-column-gap: 30px;
     -moz-column-gap: 30px;
          column-gap: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  [class*='uk-column-'] {
    -webkit-column-gap: 40px;
       -moz-column-gap: 40px;
            column-gap: 40px; } }

/*
 * Fix image 1px line wrapping into the next column in Chrome
 */
[class*='uk-column-'] img {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }

/* Divider
 ========================================================================== */
/*
 * 1. Double the column gap
 */
.uk-column-divider {
  -webkit-column-rule: 1px solid #e5e5e5;
     -moz-column-rule: 1px solid #e5e5e5;
          column-rule: 1px solid #e5e5e5;
  /* 1 */
  -webkit-column-gap: 60px;
     -moz-column-gap: 60px;
          column-gap: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-divider {
    -webkit-column-gap: 80px;
       -moz-column-gap: 80px;
            column-gap: 80px; } }

/* Width modifiers
 ========================================================================== */
.uk-column-1-2 {
  -webkit-column-count: 2;
     -moz-column-count: 2;
          column-count: 2; }

.uk-column-1-3 {
  -webkit-column-count: 3;
     -moz-column-count: 3;
          column-count: 3; }

.uk-column-1-4 {
  -webkit-column-count: 4;
     -moz-column-count: 4;
          column-count: 4; }

.uk-column-1-5 {
  -webkit-column-count: 5;
     -moz-column-count: 5;
          column-count: 5; }

.uk-column-1-6 {
  -webkit-column-count: 6;
     -moz-column-count: 6;
          column-count: 6; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-column-1-2\@s {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@s {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@s {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@s {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@s {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-column-1-2\@m {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@m {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@m {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@m {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@m {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-1-2\@l {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@l {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@l {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@l {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@l {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-column-1-2\@xl {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@xl {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@xl {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@xl {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@xl {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Make element span across all columns
 * Does not work in Firefox yet
 ========================================================================== */
.uk-column-span {
  -webkit-column-span: all;
     -moz-column-span: all;
          column-span: all; }

/* ========================================================================
   Component: Cover
 ========================================================================== */
/*
 * Works with iframes and embedded content
 * 1. Reset responsiveness for embedded content
 * 2. Center object
 * Note: Percent values on the `top` property only works if this element
 *       is absolute positioned or if the container has a height
 */
.uk-cover {
  /* 1 */
  max-width: none;
  /* 2 */
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }

iframe.uk-cover {
  pointer-events: none; }

/* Container
 ========================================================================== */
/*
 * 1. Parent container which clips resized object
 * 2. Needed if the child is positioned absolute. See note above
 */
.uk-cover-container {
  /* 1 */
  overflow: hidden;
  /* 2 */
  position: relative; }

/* ========================================================================
   Component: Background
 ========================================================================== */
/* Color
 ========================================================================== */
.uk-background-default {
  background-color: #fff; }

.uk-background-muted {
  background-color: #f8f8f8; }

.uk-background-primary {
  background-color: #1e87f0; }

.uk-background-secondary {
  background-color: #222; }

/* Size
 ========================================================================== */
.uk-background-cover,
.uk-background-contain {
  background-position: 50% 50%;
  background-repeat: no-repeat; }

.uk-background-cover {
  background-size: cover; }

.uk-background-contain {
  background-size: contain; }

/* Position
 ========================================================================== */
.uk-background-top-left {
  background-position: 0 0; }

.uk-background-top-center {
  background-position: 50% 0; }

.uk-background-top-right {
  background-position: 100% 0; }

.uk-background-center-left {
  background-position: 0 50%; }

.uk-background-center-center {
  background-position: 50% 50%; }

.uk-background-center-right {
  background-position: 100% 50%; }

.uk-background-bottom-left {
  background-position: 0 100%; }

.uk-background-bottom-center {
  background-position: 50% 100%; }

.uk-background-bottom-right {
  background-position: 100% 100%; }

/* Repeat
 ========================================================================== */
.uk-background-norepeat {
  background-repeat: no-repeat; }

/* Attachment
 ========================================================================== */
/*
 * 1. Fix bug introduced in Chrome 67: the background image is not visible if any element on the page uses `translate3d`
 */
.uk-background-fixed {
  background-attachment: fixed;
  /* 1 */
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

/*
 * Exclude touch devices because `fixed` doesn't work on iOS and Android
 */
@media (pointer: coarse) {
  .uk-background-fixed {
    background-attachment: scroll; } }

/* Image
 ========================================================================== */
/* Phone portrait and smaller */
@media (max-width: 767px) {
  .uk-background-image\@s {
    background-image: none !important; } }

/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-background-image\@m {
    background-image: none !important; } }

/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-background-image\@l {
    background-image: none !important; } }

/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-background-image\@xl {
    background-image: none !important; } }

/* Blend modes
 ========================================================================== */
.uk-background-blend-multiply {
  background-blend-mode: multiply; }

.uk-background-blend-screen {
  background-blend-mode: screen; }

.uk-background-blend-overlay {
  background-blend-mode: overlay; }

.uk-background-blend-darken {
  background-blend-mode: darken; }

.uk-background-blend-lighten {
  background-blend-mode: lighten; }

.uk-background-blend-color-dodge {
  background-blend-mode: color-dodge; }

.uk-background-blend-color-burn {
  background-blend-mode: color-burn; }

.uk-background-blend-hard-light {
  background-blend-mode: hard-light; }

.uk-background-blend-soft-light {
  background-blend-mode: soft-light; }

.uk-background-blend-difference {
  background-blend-mode: difference; }

.uk-background-blend-exclusion {
  background-blend-mode: exclusion; }

.uk-background-blend-hue {
  background-blend-mode: hue; }

.uk-background-blend-saturation {
  background-blend-mode: saturation; }

.uk-background-blend-color {
  background-blend-mode: color; }

.uk-background-blend-luminosity {
  background-blend-mode: luminosity; }

/* ========================================================================
   Component: Align
 ========================================================================== */
/*
 * Default
 */
[class*='uk-align'] {
  display: block;
  margin-bottom: 30px; }

* + [class*='uk-align'] {
  margin-top: 30px; }

/*
 * Center
 */
.uk-align-center {
  margin-left: auto;
  margin-right: auto; }

/*
 * Left/Right
 */
.uk-align-left {
  margin-top: 0;
  margin-right: 30px;
  float: left; }

.uk-align-right {
  margin-top: 0;
  margin-left: 30px;
  float: right; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-align-left\@s {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@s {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-align-left\@m {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@m {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-align-left\@l {
    margin-top: 0;
    float: left; }
  .uk-align-right\@l {
    margin-top: 0;
    float: right; }
  .uk-align-left,
  .uk-align-left\@s,
  .uk-align-left\@m,
  .uk-align-left\@l {
    margin-right: 40px; }
  .uk-align-right,
  .uk-align-right\@s,
  .uk-align-right\@m,
  .uk-align-right\@l {
    margin-left: 40px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-align-left\@xl {
    margin-top: 0;
    margin-right: 40px;
    float: left; }
  .uk-align-right\@xl {
    margin-top: 0;
    margin-left: 40px;
    float: right; } }

/* ========================================================================
   Component: SVG
 ========================================================================== */
/*
 * 1. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 2. Set the fill and stroke color of all SVG elements to the current text color
 */
/* 1 */
.uk-svg,
.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-svg {
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0); }

/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Panel
 ========================================================================== */
.uk-panel {
  display: flow-root;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * Remove margin from the last-child
 */
.uk-panel > :last-child {
  margin-bottom: 0; }

/*
 * Scrollable
 */
.uk-panel-scrollable {
  height: 170px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  resize: both; }

/* Clearfix
 ========================================================================== */
/*
 * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit
 * 2. `table` is used again with `::after` because `clear` only works with block elements.
 * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari
 */
/* 1 */
.uk-clearfix::before {
  content: "";
  display: table-cell; }

/* 2 */
.uk-clearfix::after {
  content: "";
  display: table;
  clear: both; }

/* Float
 ========================================================================== */
/*
 * 1. Prevent content overflow
 */
.uk-float-left {
  float: left; }

.uk-float-right {
  float: right; }

/* 1 */
[class*='uk-float-'] {
  max-width: 100%; }

/* Overfow
 ========================================================================== */
.uk-overflow-hidden {
  overflow: hidden; }

/*
 * Enable scrollbars if content is clipped
 * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518
 */
.uk-overflow-auto {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

.uk-overflow-auto > :last-child {
  margin-bottom: 0; }

/* Resize
 ========================================================================== */
.uk-resize {
  resize: both; }

.uk-resize-vertical {
  resize: vertical; }

/* Display
 ========================================================================== */
.uk-display-block {
  display: block !important; }

.uk-display-inline {
  display: inline !important; }

.uk-display-inline-block {
  display: inline-block !important; }

/* Inline
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 * 5. Force hardware acceleration without creating a new stacking context
 *    to fix 1px glitch when combined with overlays and transitions in Webkit
 * 6. Clip child elements
 */
[class*='uk-inline'] {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle;
  /* 5 */
  -webkit-backface-visibility: hidden; }

.uk-inline-clip {
  /* 6 */
  overflow: hidden; }

/* Responsive objects
 ========================================================================== */
/*
 * Preserve original dimensions
 * Because `img, `video`, `canvas` and  `audio` are already responsive by default, see Base component
 */
.uk-preserve-width,
.uk-preserve-width canvas,
.uk-preserve-width img,
.uk-preserve-width svg,
.uk-preserve-width video {
  max-width: none; }

/*
 * Responsiveness
 * Corrects `max-width` and `max-height` behavior if padding and border are used
 */
.uk-responsive-width,
.uk-responsive-height {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * 1. Set a maximum width. `important` needed to override `uk-preserve-width img`
 * 2. Auto scale the height. Only needed if `height` attribute is present
 */
.uk-responsive-width {
  /* 1 */
  max-width: 100% !important;
  /* 2 */
  height: auto; }

/*
 * 1. Set a maximum height. Only works if the parent element has a fixed height
 * 2. Auto scale the width. Only needed if `width` attribute is present
 * 3. Reset max-width, which `img, `video`, `canvas` and  `audio` already have by default
 */
.uk-responsive-height {
  /* 1 */
  max-height: 100%;
  /* 2 */
  width: auto;
  /* 3 */
  max-width: none; }

/* Border
 ========================================================================== */
.uk-border-circle {
  border-radius: 50%; }

.uk-border-pill {
  border-radius: 500px; }

.uk-border-rounded {
  border-radius: 5px; }

/*
 * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit
 */
.uk-inline-clip[class*='uk-border-'] {
  -webkit-transform: translateZ(0); }

/* Box-shadow
 ========================================================================== */
.uk-box-shadow-small {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-medium {
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-large {
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-xlarge {
  -webkit-box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
          box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/*
 * Hover
 */
[class*='uk-box-shadow-hover'] {
  -webkit-transition: -webkit-box-shadow 0.1s ease-in-out;
  transition: -webkit-box-shadow 0.1s ease-in-out;
  -o-transition: box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out; }

.uk-box-shadow-hover-small:hover {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-medium:hover {
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-large:hover {
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-hover-xlarge:hover {
  -webkit-box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
          box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/* Box-shadow bottom
 ========================================================================== */
/*
 * 1. Set position.
 * 2. Set style
 * 3. Blur doesn't work on pseudo elements with negative `z-index` in Edge.
 *    Solved by using `before` and add position context to child elements.
 */
@supports ((-webkit-filter: blur(0)) or (filter: blur(0))) {
  .uk-box-shadow-bottom {
    display: inline-block;
    position: relative;
    max-width: 100%;
    vertical-align: middle; }
  .uk-box-shadow-bottom::before {
    content: '';
    /* 1 */
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    /* 2 */
    height: 30px;
    border-radius: 100%;
    background: #444;
    -webkit-filter: blur(20px);
            filter: blur(20px); }
  /* 3 */
  .uk-box-shadow-bottom > * {
    position: relative; } }

/* Drop cap
 ========================================================================== */
/*
 * 1. Firefox doesn't apply `::first-letter` if the first letter is inside child elements
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=214004
 * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=317933
 * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
 *    This doubles the `font-size` exponential when using the `em` unit.
 */
.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
  display: block;
  margin-right: 10px;
  float: left;
  font-size: 4.5em;
  line-height: 1;
  margin-bottom: -2px; }

/* 2 */
@-moz-document url-prefix() {
  .uk-dropcap::first-letter,
  .uk-dropcap > p:first-of-type::first-letter {
    margin-top: 1.1%; } }

/* 3 */
@supports (-ms-ime-align: auto) {
  .uk-dropcap > p:first-of-type::first-letter {
    font-size: 1em; } }

/* Logo
 ========================================================================== */
/*
 * 1. Required for `a`
 */
.uk-logo {
  font-size: 1.5rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  color: #666;
  /* 1 */
  text-decoration: none; }

/* Hover + Focus */
.uk-logo:hover,
.uk-logo:focus {
  color: #666;
  outline: none;
  /* 1 */
  text-decoration: none; }

.uk-logo-inverse {
  display: none; }

/* Disabled State
 ========================================================================== */
.uk-disabled {
  pointer-events: none; }

/* Drag State
 ========================================================================== */
/*
 * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons
 * 2. Fix dragging over iframes
 */
.uk-drag,
.uk-drag * {
  cursor: move; }

/* 2 */
.uk-drag iframe {
  pointer-events: none; }

/* Dragover State
 ========================================================================== */
/*
 * Create a box-shadow when dragging a file over the upload area
 */
.uk-dragover {
  -webkit-box-shadow: 0 0 20px rgba(100, 100, 100, 0.3);
          box-shadow: 0 0 20px rgba(100, 100, 100, 0.3); }

/* Blend modes
 ========================================================================== */
.uk-blend-multiply {
  mix-blend-mode: multiply; }

.uk-blend-screen {
  mix-blend-mode: screen; }

.uk-blend-overlay {
  mix-blend-mode: overlay; }

.uk-blend-darken {
  mix-blend-mode: darken; }

.uk-blend-lighten {
  mix-blend-mode: lighten; }

.uk-blend-color-dodge {
  mix-blend-mode: color-dodge; }

.uk-blend-color-burn {
  mix-blend-mode: color-burn; }

.uk-blend-hard-light {
  mix-blend-mode: hard-light; }

.uk-blend-soft-light {
  mix-blend-mode: soft-light; }

.uk-blend-difference {
  mix-blend-mode: difference; }

.uk-blend-exclusion {
  mix-blend-mode: exclusion; }

.uk-blend-hue {
  mix-blend-mode: hue; }

.uk-blend-saturation {
  mix-blend-mode: saturation; }

.uk-blend-color {
  mix-blend-mode: color; }

.uk-blend-luminosity {
  mix-blend-mode: luminosity; }

/* Transform
========================================================================== */
.uk-transform-center {
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }

/* Transform Origin
========================================================================== */
.uk-transform-origin-top-left {
  -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
          transform-origin: 0 0; }

.uk-transform-origin-top-center {
  -webkit-transform-origin: 50% 0;
      -ms-transform-origin: 50% 0;
          transform-origin: 50% 0; }

.uk-transform-origin-top-right {
  -webkit-transform-origin: 100% 0;
      -ms-transform-origin: 100% 0;
          transform-origin: 100% 0; }

.uk-transform-origin-center-left {
  -webkit-transform-origin: 0 50%;
      -ms-transform-origin: 0 50%;
          transform-origin: 0 50%; }

.uk-transform-origin-center-right {
  -webkit-transform-origin: 100% 50%;
      -ms-transform-origin: 100% 50%;
          transform-origin: 100% 50%; }

.uk-transform-origin-bottom-left {
  -webkit-transform-origin: 0 100%;
      -ms-transform-origin: 0 100%;
          transform-origin: 0 100%; }

.uk-transform-origin-bottom-center {
  -webkit-transform-origin: 50% 100%;
      -ms-transform-origin: 50% 100%;
          transform-origin: 50% 100%; }

.uk-transform-origin-bottom-right {
  -webkit-transform-origin: 100% 100%;
      -ms-transform-origin: 100% 100%;
          transform-origin: 100% 100%; }

/* ========================================================================
   Component: Flex
 ========================================================================== */
.uk-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.uk-flex-inline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }

/*
 * Remove pseudo elements created by micro clearfix as precaution
 */
.uk-flex::before,
.uk-flex::after,
.uk-flex-inline::before,
.uk-flex-inline::after {
  display: none; }

/* Alignment
 ========================================================================== */
/*
 * Align items along the main axis of the current line of the flex container
 * Row: Horizontal
 */
.uk-flex-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.uk-flex-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.uk-flex-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.uk-flex-between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.uk-flex-around {
  -ms-flex-pack: distribute;
      justify-content: space-around; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-flex-left\@s {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@s {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@s {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@s {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@s {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-flex-left\@m {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@m {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@m {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@m {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@m {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-left\@l {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@l {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@l {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@l {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@l {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-left\@xl {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@xl {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@xl {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@xl {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@xl {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/*
 * Align items in the cross axis of the current line of the flex container
 * Row: Vertical
 */
.uk-flex-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.uk-flex-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.uk-flex-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.uk-flex-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

/* Direction
 ========================================================================== */
.uk-flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.uk-flex-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.uk-flex-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.uk-flex-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

/* Wrap
 ========================================================================== */
.uk-flex-nowrap {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.uk-flex-wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.uk-flex-wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
      flex-wrap: wrap-reverse; }

/*
 * Aligns items within the flex container when there is extra space in the cross-axis
 * Only works if there is more than one line of flex items
 */
.uk-flex-wrap-stretch {
  -ms-flex-line-pack: stretch;
      align-content: stretch; }

.uk-flex-wrap-top {
  -ms-flex-line-pack: start;
      align-content: flex-start; }

.uk-flex-wrap-middle {
  -ms-flex-line-pack: center;
      align-content: center; }

.uk-flex-wrap-bottom {
  -ms-flex-line-pack: end;
      align-content: flex-end; }

.uk-flex-wrap-between {
  -ms-flex-line-pack: justify;
      align-content: space-between; }

.uk-flex-wrap-around {
  -ms-flex-line-pack: distribute;
      align-content: space-around; }

/* Item ordering
 ========================================================================== */
/*
 * Default is 0
 */
.uk-flex-first {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1; }

.uk-flex-last {
  -webkit-box-ordinal-group: 100;
      -ms-flex-order: 99;
          order: 99; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-flex-first\@s {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@s {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-flex-first\@m {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@m {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-first\@l {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@l {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-first\@xl {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@xl {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Item dimensions
 ========================================================================== */
/*
 * Initial: 0 1 auto
 * Content dimensions, but shrinks
 */
/*
 * No Flex: 0 0 auto
 * Content dimensions
 */
.uk-flex-none {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none; }

/*
 * Relative Flex: 1 1 auto
 * Space is allocated considering content
 */
.uk-flex-auto {
  -webkit-box-flex: 1;
      -ms-flex: auto;
          flex: auto; }

/*
 * Absolute Flex: 1 1 0%
 * Space is allocated solely based on flex
 */
.uk-flex-1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

/* ========================================================================
   Component: Margin
 ========================================================================== */
/*
 * Default
 */
.uk-margin {
  margin-bottom: 20px; }

* + .uk-margin {
  margin-top: 20px !important; }

.uk-margin-top {
  margin-top: 20px !important; }

.uk-margin-bottom {
  margin-bottom: 20px !important; }

.uk-margin-left {
  margin-left: 20px !important; }

.uk-margin-right {
  margin-right: 20px !important; }

/* Small
 ========================================================================== */
.uk-margin-small {
  margin-bottom: 10px; }

* + .uk-margin-small {
  margin-top: 10px !important; }

.uk-margin-small-top {
  margin-top: 10px !important; }

.uk-margin-small-bottom {
  margin-bottom: 10px !important; }

.uk-margin-small-left {
  margin-left: 10px !important; }

.uk-margin-small-right {
  margin-right: 10px !important; }

/* Medium
 ========================================================================== */
.uk-margin-medium {
  margin-bottom: 40px; }

* + .uk-margin-medium {
  margin-top: 40px !important; }

.uk-margin-medium-top {
  margin-top: 40px !important; }

.uk-margin-medium-bottom {
  margin-bottom: 40px !important; }

.uk-margin-medium-left {
  margin-left: 40px !important; }

.uk-margin-medium-right {
  margin-right: 40px !important; }

/* Large
 ========================================================================== */
.uk-margin-large {
  margin-bottom: 40px; }

* + .uk-margin-large {
  margin-top: 40px !important; }

.uk-margin-large-top {
  margin-top: 40px !important; }

.uk-margin-large-bottom {
  margin-bottom: 40px !important; }

.uk-margin-large-left {
  margin-left: 40px !important; }

.uk-margin-large-right {
  margin-right: 40px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-large {
    margin-bottom: 70px; }
  * + .uk-margin-large {
    margin-top: 70px !important; }
  .uk-margin-large-top {
    margin-top: 70px !important; }
  .uk-margin-large-bottom {
    margin-bottom: 70px !important; }
  .uk-margin-large-left {
    margin-left: 70px !important; }
  .uk-margin-large-right {
    margin-right: 70px !important; } }

/* XLarge
 ========================================================================== */
.uk-margin-xlarge {
  margin-bottom: 70px; }

* + .uk-margin-xlarge {
  margin-top: 70px !important; }

.uk-margin-xlarge-top {
  margin-top: 70px !important; }

.uk-margin-xlarge-bottom {
  margin-bottom: 70px !important; }

.uk-margin-xlarge-left {
  margin-left: 70px !important; }

.uk-margin-xlarge-right {
  margin-right: 70px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-xlarge {
    margin-bottom: 140px; }
  * + .uk-margin-xlarge {
    margin-top: 140px !important; }
  .uk-margin-xlarge-top {
    margin-top: 140px !important; }
  .uk-margin-xlarge-bottom {
    margin-bottom: 140px !important; }
  .uk-margin-xlarge-left {
    margin-left: 140px !important; }
  .uk-margin-xlarge-right {
    margin-right: 140px !important; } }

/* Auto
 ========================================================================== */
.uk-margin-auto {
  margin-left: auto !important;
  margin-right: auto !important; }

.uk-margin-auto-top {
  margin-top: auto !important; }

.uk-margin-auto-bottom {
  margin-bottom: auto !important; }

.uk-margin-auto-left {
  margin-left: auto !important; }

.uk-margin-auto-right {
  margin-right: auto !important; }

.uk-margin-auto-vertical {
  margin-top: auto !important;
  margin-bottom: auto !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-margin-auto\@s {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@s {
    margin-left: auto !important; }
  .uk-margin-auto-right\@s {
    margin-right: auto !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-margin-auto\@m {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@m {
    margin-left: auto !important; }
  .uk-margin-auto-right\@m {
    margin-right: auto !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-auto\@l {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@l {
    margin-left: auto !important; }
  .uk-margin-auto-right\@l {
    margin-right: auto !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-auto\@xl {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@xl {
    margin-left: auto !important; }
  .uk-margin-auto-right\@xl {
    margin-right: auto !important; } }

/* Remove
 ========================================================================== */
.uk-margin-remove {
  margin: 0 !important; }

.uk-margin-remove-top {
  margin-top: 0 !important; }

.uk-margin-remove-bottom {
  margin-bottom: 0 !important; }

.uk-margin-remove-left {
  margin-left: 0 !important; }

.uk-margin-remove-right {
  margin-right: 0 !important; }

.uk-margin-remove-vertical {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }

.uk-margin-remove-adjacent + *,
.uk-margin-remove-first-child > :first-child {
  margin-top: 0 !important; }

.uk-margin-remove-last-child > :last-child {
  margin-bottom: 0 !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-margin-remove-left\@s {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@s {
    margin-right: 0 !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-margin-remove-left\@m {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@m {
    margin-right: 0 !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-remove-left\@l {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@l {
    margin-right: 0 !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-remove-left\@xl {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@xl {
    margin-right: 0 !important; } }

/* ========================================================================
   Component: Padding
 ========================================================================== */
.uk-padding {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding {
    padding: 40px; } }

/* Small
 ========================================================================== */
.uk-padding-small {
  padding: 15px; }

/* Large
 ========================================================================== */
.uk-padding-large {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding-large {
    padding: 70px; } }

/* Remove
 ========================================================================== */
.uk-padding-remove {
  padding: 0 !important; }

.uk-padding-remove-top {
  padding-top: 0 !important; }

.uk-padding-remove-bottom {
  padding-bottom: 0 !important; }

.uk-padding-remove-left {
  padding-left: 0 !important; }

.uk-padding-remove-right {
  padding-right: 0 !important; }

.uk-padding-remove-vertical {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.uk-padding-remove-horizontal {
  padding-left: 0 !important;
  padding-right: 0 !important; }

/* ========================================================================
   Component: Position
 ========================================================================== */
/* Directions
 ========================================================================== */
/*
 * 1. Prevent content overflow if `max-width: 100%` is used inside position container.
 */
[class*='uk-position-top'],
[class*='uk-position-bottom'],
[class*='uk-position-left'],
[class*='uk-position-right'],
[class*='uk-position-center'] {
  position: absolute !important;
  /* 1 */
  max-width: 100%; }

/* Edges
 ========================================================================== */
/* Don't use `width: 100%` because it is wrong if the parent has padding. */
.uk-position-top {
  top: 0;
  left: 0;
  right: 0; }

.uk-position-bottom {
  bottom: 0;
  left: 0;
  right: 0; }

.uk-position-left {
  top: 0;
  bottom: 0;
  left: 0; }

.uk-position-right {
  top: 0;
  bottom: 0;
  right: 0; }

/* Corners
 ========================================================================== */
.uk-position-top-left {
  top: 0;
  left: 0; }

.uk-position-top-right {
  top: 0;
  right: 0; }

.uk-position-bottom-left {
  bottom: 0;
  left: 0; }

.uk-position-bottom-right {
  bottom: 0;
  right: 0; }

/*
 * Center
 * 1. Fix text wrapping if content is larger than 50% of the container.
 */
.uk-position-center {
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* Vertical */
[class*='uk-position-center-left'],
[class*='uk-position-center-right'] {
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

.uk-position-center-left {
  left: 0; }

.uk-position-center-right {
  right: 0; }

.uk-position-center-left-out {
  right: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

.uk-position-center-right-out {
  left: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

/* Horizontal */
.uk-position-top-center,
.uk-position-bottom-center {
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

.uk-position-top-center {
  top: 0; }

.uk-position-bottom-center {
  bottom: 0; }

/* Cover
 ========================================================================== */
.uk-position-cover {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0; }

/* Utility
 ========================================================================== */
.uk-position-relative {
  position: relative !important; }

.uk-position-absolute {
  position: absolute !important; }

.uk-position-fixed {
  position: fixed !important; }

.uk-position-z-index {
  z-index: 1; }

/* Margin modifier
 ========================================================================== */
/*
 * Small
 */
.uk-position-small {
  max-width: calc(100% - (15px * 2));
  margin: 15px; }

.uk-position-small.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-15px, -15px);
      -ms-transform: translate(-50%, -50%) translate(-15px, -15px);
          transform: translate(-50%, -50%) translate(-15px, -15px); }

.uk-position-small[class*='uk-position-center-left'],
.uk-position-small[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-15px);
      -ms-transform: translateY(-50%) translateY(-15px);
          transform: translateY(-50%) translateY(-15px); }

.uk-position-small.uk-position-top-center,
.uk-position-small.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-15px);
      -ms-transform: translateX(-50%) translateX(-15px);
          transform: translateX(-50%) translateX(-15px); }

/*
 * Medium
 */
.uk-position-medium {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-medium.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-30px, -30px);
      -ms-transform: translate(-50%, -50%) translate(-30px, -30px);
          transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-medium[class*='uk-position-center-left'],
.uk-position-medium[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-30px);
      -ms-transform: translateY(-50%) translateY(-30px);
          transform: translateY(-50%) translateY(-30px); }

.uk-position-medium.uk-position-top-center,
.uk-position-medium.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-30px);
      -ms-transform: translateX(-50%) translateX(-30px);
          transform: translateX(-50%) translateX(-30px); }

/*
 * Large
 */
.uk-position-large {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-large.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-30px, -30px);
      -ms-transform: translate(-50%, -50%) translate(-30px, -30px);
          transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-large[class*='uk-position-center-left'],
.uk-position-large[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-30px);
      -ms-transform: translateY(-50%) translateY(-30px);
          transform: translateY(-50%) translateY(-30px); }

.uk-position-large.uk-position-top-center,
.uk-position-large.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-30px);
      -ms-transform: translateX(-50%) translateX(-30px);
          transform: translateX(-50%) translateX(-30px); }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-position-large {
    max-width: calc(100% - (50px * 2));
    margin: 50px; }
  .uk-position-large.uk-position-center {
    -webkit-transform: translate(-50%, -50%) translate(-50px, -50px);
        -ms-transform: translate(-50%, -50%) translate(-50px, -50px);
            transform: translate(-50%, -50%) translate(-50px, -50px); }
  .uk-position-large[class*='uk-position-center-left'],
  .uk-position-large[class*='uk-position-center-right'] {
    -webkit-transform: translateY(-50%) translateY(-50px);
        -ms-transform: translateY(-50%) translateY(-50px);
            transform: translateY(-50%) translateY(-50px); }
  .uk-position-large.uk-position-top-center,
  .uk-position-large.uk-position-bottom-center {
    -webkit-transform: translateX(-50%) translateX(-50px);
        -ms-transform: translateX(-50%) translateX(-50px);
            transform: translateX(-50%) translateX(-50px); } }

/* ========================================================================
   Component: Transition
 ========================================================================== */
/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-transition-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-transition-toggle:focus {
  outline: none; }

/* Transitions
 ========================================================================== */
/*
 * The toggle is triggered on touch devices by two methods:
 * 1. Using `:focus` and tabindex
 * 2. Using `:hover` and a `touchstart` event listener registered on the document
 *    (Doesn't work on Surface touch devices)
 *
 * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`,
 *       therefore it's recommended to use an extra `div` for the transition.
 */
.uk-transition-fade,
[class*='uk-transition-scale'],
[class*='uk-transition-slide'] {
  -webkit-transition: 0.3s ease-out;
  -o-transition: 0.3s ease-out;
  transition: 0.3s ease-out;
  -webkit-transition-property: opacity, -webkit-transform, -webkit-filter;
  transition-property: opacity, -webkit-transform, -webkit-filter;
  -o-transition-property: opacity, transform, filter;
  transition-property: opacity, transform, filter;
  transition-property: opacity, transform, filter, -webkit-transform, -webkit-filter;
  opacity: 0; }

/*
 * Fade
 */
.uk-transition-toggle:hover .uk-transition-fade,
.uk-transition-toggle:focus .uk-transition-fade,
.uk-transition-active.uk-active .uk-transition-fade {
  opacity: 1; }

/*
 * Scale
 */
.uk-transition-scale-up {
  -webkit-transform: scale(1, 1);
      -ms-transform: scale(1, 1);
          transform: scale(1, 1); }

.uk-transition-scale-down {
  -webkit-transform: scale(1.1, 1.1);
      -ms-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1); }

/* Show */
.uk-transition-toggle:hover .uk-transition-scale-up,
.uk-transition-toggle:focus .uk-transition-scale-up,
.uk-transition-active.uk-active .uk-transition-scale-up {
  opacity: 1;
  -webkit-transform: scale(1.1, 1.1);
      -ms-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1); }

.uk-transition-toggle:hover .uk-transition-scale-down,
.uk-transition-toggle:focus .uk-transition-scale-down,
.uk-transition-active.uk-active .uk-transition-scale-down {
  opacity: 1;
  -webkit-transform: scale(1, 1);
      -ms-transform: scale(1, 1);
          transform: scale(1, 1); }

/*
 * Slide
 */
.uk-transition-slide-top {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.uk-transition-slide-bottom {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.uk-transition-slide-left {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

.uk-transition-slide-right {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.uk-transition-slide-top-small {
  -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
          transform: translateY(-10px); }

.uk-transition-slide-bottom-small {
  -webkit-transform: translateY(10px);
      -ms-transform: translateY(10px);
          transform: translateY(10px); }

.uk-transition-slide-left-small {
  -webkit-transform: translateX(-10px);
      -ms-transform: translateX(-10px);
          transform: translateX(-10px); }

.uk-transition-slide-right-small {
  -webkit-transform: translateX(10px);
      -ms-transform: translateX(10px);
          transform: translateX(10px); }

.uk-transition-slide-top-medium {
  -webkit-transform: translateY(-50px);
      -ms-transform: translateY(-50px);
          transform: translateY(-50px); }

.uk-transition-slide-bottom-medium {
  -webkit-transform: translateY(50px);
      -ms-transform: translateY(50px);
          transform: translateY(50px); }

.uk-transition-slide-left-medium {
  -webkit-transform: translateX(-50px);
      -ms-transform: translateX(-50px);
          transform: translateX(-50px); }

.uk-transition-slide-right-medium {
  -webkit-transform: translateX(50px);
      -ms-transform: translateX(50px);
          transform: translateX(50px); }

/* Show */
.uk-transition-toggle:hover [class*='uk-transition-slide'],
.uk-transition-toggle:focus [class*='uk-transition-slide'],
.uk-transition-active.uk-active [class*='uk-transition-slide'] {
  opacity: 1;
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0); }

/* Opacity modifier
 ========================================================================== */
.uk-transition-opaque {
  opacity: 1; }

/* Duration modifiers
 ========================================================================== */
.uk-transition-slow {
  -webkit-transition-duration: 0.7s;
       -o-transition-duration: 0.7s;
          transition-duration: 0.7s; }

/* ========================================================================
   Component: Visibility
 ========================================================================== */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.uk-hidden {
  display: none !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-hidden\@s {
    display: none !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-hidden\@m {
    display: none !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-hidden\@l {
    display: none !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-hidden\@xl {
    display: none !important; } }

/*
 * Visible
 */
/* Phone portrait and smaller */
@media (max-width: 767px) {
  .uk-visible\@s {
    display: none !important; } }

/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-visible\@m {
    display: none !important; } }

/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-visible\@l {
    display: none !important; } }

/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-visible\@xl {
    display: none !important; } }

/* Visibility
 ========================================================================== */
.uk-invisible {
  visibility: hidden !important; }

/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * Hidden
 * 1. The toggle is triggered on touch devices using `:focus` and tabindex
 * 2. The target stays visible if any element within receives focus through keyboard
 *    Doesn't work in Edge, yet.
 * 3. Can't use `display: none` nor `visibility: hidden` because both are not focusable.
 *
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-hidden-hover:not(:focus-within) {
  /* 3 */
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important; }

/*
 * Invisible
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-invisible-hover:not(:focus-within) {
  /* 3 */
  opacity: 0 !important; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-visible-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-visible-toggle:focus {
  outline: none; }

/* Touch
 ========================================================================== */
/*
 * Hide if primary pointing device has limited accuracy, e.g. a touch screen.
 * Works on mobile browsers: Safari, Chrome and Android browser
 */
@media (pointer: coarse) {
  .uk-hidden-touch {
    display: none !important; } }

/*
 * Hide if primary pointing device is accurate, e.g. mouse.
 * 1. Fallback for IE11 and Firefox, because `pointer` is not supported
 * 2. Reset if supported
 */
/* 1 */
.uk-hidden-notouch {
  display: none !important; }

@media (pointer: coarse) {
  .uk-hidden-notouch {
    display: block !important; } }

/* ========================================================================
   Component: Inverse
 ========================================================================== */
/*
 * Implemented class depends on the general theme color
 * `uk-light` is for light colors on dark backgrounds
 * `uk-dark` is or dark colors on light backgrounds
 */
/* ========================================================================
   Component: Print
 ========================================================================== */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: black !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

/******************************************************************
Site Name:
Author:

Stylesheet: Sass Functions

You can do a lot of really cool things in Sass. Functions help you
make repeated actions a lot easier. They are really similar to mixins,
but can be used for so much more.

Anyway, keep them all in here so it's easier to find when you're
looking for one.

For more info on functions, go here:
http://sass-lang.com/documentation/Sass/Script/Functions.html

******************************************************************/
/*********************
COLOR FUNCTIONS
These are helpful when you're working
with shadows and such things. It's essentially
a quicker way to write RGBA.

Example:
box-shadow: 0 0 4px black(0.3);
compiles to:
box-shadow: 0 0 4px rgba(0,0,0,0.3);
*********************/
/*********************
RESPONSIVE HELPER FUNCTION
If you're creating a responsive site, then
you've probably already read
Responsive Web Design: http://www.abookapart.com/products/responsive-web-design

Here's a nice little helper function for calculating
target / context
as mentioned in that book.

Example:
width: cp(650px, 1000px);
or
width: calc-percent(650px, 1000px);
both compile to:
width: 65%;
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Mixins Stylesheet

This is where you can take advantage of Sass' great features: Mixins.
I won't go in-depth on how they work exactly,
there are a few articles below that will help do that. What I will
tell you is that this will help speed up simple changes like
changing a color or adding CSS3 techniques gradients.

A WORD OF WARNING: It's very easy to overdo it here. Be careful and
remember less is more.

Helpful:
http://sachagreif.com/useful-sass-mixins/
http://thesassway.com/intermediate/leveraging-sass-mixins-for-cleaner-code
http://web-design-weekly.com/blog/2013/05/12/handy-sass-mixins/

******************************************************************/
/*********************
TRANSITION
*********************/
/*
I totally rewrote this to be cleaner and easier to use.
You'll need to be using Sass 3.2+ for these to work.
Thanks to @anthonyshort for the inspiration on these.
USAGE: @include transition(all 0.2s ease-in-out);
*/
/*********************
CSS3 GRADIENTS
Be careful with these since they can
really slow down your CSS. Don't overdo it.
*********************/
/* @include css-gradient(#dfdfdf,#f8f8f8); */
/*********************
BOX SIZING
*********************/
/* @include box-sizing(border-box); */
/* NOTE: value of "padding-box" is only supported in Gecko. So
probably best not to use it. I mean, were you going to anyway? */
/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */
.hamburger {
  padding: 15px 15px;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  -o-transition-property: opacity, filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
       -o-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
       -o-transition-timing-function: linear;
          transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible; }
  .hamburger:hover {
    opacity: 0.7; }
  .hamburger.is-active:hover {
    opacity: 0.7; }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: #f55028; }

.hamburger-box {
  width: 20px;
  height: 12px;
  display: inline-block;
  position: relative; }

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -1px; }
  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 20px;
    height: 2px;
    background-color: #f55028;
    border-radius: 0;
    position: absolute;
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    -o-transition-property: transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    -webkit-transition-duration: 0.15s;
         -o-transition-duration: 0.15s;
            transition-duration: 0.15s;
    -webkit-transition-timing-function: ease;
         -o-transition-timing-function: ease;
            transition-timing-function: ease; }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block; }
  .hamburger-inner::before {
    top: -5px; }
  .hamburger-inner::after {
    bottom: -5px; }

/*
   * 3DX
   */
.hamburger--3dx .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dx .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dx .hamburger-inner::before, .hamburger--3dx .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dx.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }
  .hamburger--3dx.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dx.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DX Reverse
   */
.hamburger--3dx-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dx-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dx-r .hamburger-inner::before, .hamburger--3dx-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dx-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg); }
  .hamburger--3dx-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dx-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DY
   */
.hamburger--3dy .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dy .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dy .hamburger-inner::before, .hamburger--3dy .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dy.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(-180deg);
          transform: rotateX(-180deg); }
  .hamburger--3dy.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dy.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DY Reverse
   */
.hamburger--3dy-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dy-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dy-r .hamburger-inner::before, .hamburger--3dy-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dy-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg);
          transform: rotateX(180deg); }
  .hamburger--3dy-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dy-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DXY
   */
.hamburger--3dxy .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dxy .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dxy .hamburger-inner::before, .hamburger--3dxy .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dxy.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg) rotateY(180deg);
          transform: rotateX(180deg) rotateY(180deg); }
  .hamburger--3dxy.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dxy.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DXY Reverse
   */
.hamburger--3dxy-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dxy-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  -o-transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dxy-r .hamburger-inner::before, .hamburger--3dxy-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    -o-transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dxy-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg);
          transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg); }
  .hamburger--3dxy-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dxy-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * Arrow
   */
.hamburger--arrow.is-active .hamburger-inner::before {
  -webkit-transform: translate3d(-4px, 0, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(-4px, 0, 0) rotate(-45deg) scale(0.7, 1); }

.hamburger--arrow.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(-4px, 0, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(-4px, 0, 0) rotate(45deg) scale(0.7, 1); }

/*
   * Arrow Right
   */
.hamburger--arrow-r.is-active .hamburger-inner::before {
  -webkit-transform: translate3d(4px, 0, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(4px, 0, 0) rotate(45deg) scale(0.7, 1); }

.hamburger--arrow-r.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(4px, 0, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(4px, 0, 0) rotate(-45deg) scale(0.7, 1); }

/*
   * Arrow Alt
   */
.hamburger--arrowalt .hamburger-inner::before {
  -webkit-transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  -o-transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt .hamburger-inner::after {
  -webkit-transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  -o-transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transform: translate3d(-4px, -5px, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(-4px, -5px, 0) rotate(-45deg) scale(0.7, 1);
  -webkit-transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  -o-transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

.hamburger--arrowalt.is-active .hamburger-inner::after {
  bottom: 0;
  -webkit-transform: translate3d(-4px, 5px, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(-4px, 5px, 0) rotate(45deg) scale(0.7, 1);
  -webkit-transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  -o-transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

/*
   * Arrow Alt Right
   */
.hamburger--arrowalt-r .hamburger-inner::before {
  -webkit-transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  -o-transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt-r .hamburger-inner::after {
  -webkit-transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  -o-transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt-r.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transform: translate3d(4px, -5px, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(4px, -5px, 0) rotate(45deg) scale(0.7, 1);
  -webkit-transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  -o-transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

.hamburger--arrowalt-r.is-active .hamburger-inner::after {
  bottom: 0;
  -webkit-transform: translate3d(4px, 5px, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(4px, 5px, 0) rotate(-45deg) scale(0.7, 1);
  -webkit-transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  -o-transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

/*
   * Arrow Turn
   */
.hamburger--arrowturn.is-active .hamburger-inner {
  -webkit-transform: rotate(-180deg);
      -ms-transform: rotate(-180deg);
          transform: rotate(-180deg); }
  .hamburger--arrowturn.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1);
            transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  .hamburger--arrowturn.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1);
            transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); }

/*
   * Arrow Turn Right
   */
.hamburger--arrowturn-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-180deg);
      -ms-transform: rotate(-180deg);
          transform: rotate(-180deg); }
  .hamburger--arrowturn-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1);
            transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  .hamburger--arrowturn-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1);
            transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); }

/*
   * Boring
   */
.hamburger--boring .hamburger-inner, .hamburger--boring .hamburger-inner::before, .hamburger--boring .hamburger-inner::after {
  -webkit-transition-property: none;
  -o-transition-property: none;
  transition-property: none; }

.hamburger--boring.is-active .hamburger-inner {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg); }
  .hamburger--boring.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--boring.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg); }

/*
   * Collapse
   */
.hamburger--collapse .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
       -o-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0.13s;
       -o-transition-delay: 0.13s;
          transition-delay: 0.13s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--collapse .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    -o-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  .hamburger--collapse .hamburger-inner::before {
    -webkit-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--collapse.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
          transform: translate3d(0, -5px, 0) rotate(-45deg);
  -webkit-transition-delay: 0.22s;
       -o-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--collapse.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    -o-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  .hamburger--collapse.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Collapse Reverse
   */
.hamburger--collapse-r .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
       -o-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0.13s;
       -o-transition-delay: 0.13s;
          transition-delay: 0.13s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--collapse-r .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    -o-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  .hamburger--collapse-r .hamburger-inner::before {
    -webkit-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--collapse-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(45deg);
          transform: translate3d(0, -5px, 0) rotate(45deg);
  -webkit-transition-delay: 0.22s;
       -o-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--collapse-r.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    -o-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  .hamburger--collapse-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Elastic
   */
.hamburger--elastic .hamburger-inner {
  top: 1px;
  -webkit-transition-duration: 0.275s;
       -o-transition-duration: 0.275s;
          transition-duration: 0.275s;
  -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
       -o-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
          transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  .hamburger--elastic .hamburger-inner::before {
    top: 5px;
    -webkit-transition: opacity 0.125s 0.275s ease;
    -o-transition: opacity 0.125s 0.275s ease;
    transition: opacity 0.125s 0.275s ease; }
  .hamburger--elastic .hamburger-inner::after {
    top: 10px;
    -webkit-transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    -o-transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }

.hamburger--elastic.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(135deg);
          transform: translate3d(0, 5px, 0) rotate(135deg);
  -webkit-transition-delay: 0.075s;
       -o-transition-delay: 0.075s;
          transition-delay: 0.075s; }
  .hamburger--elastic.is-active .hamburger-inner::before {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
    opacity: 0; }
  .hamburger--elastic.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(-270deg);
            transform: translate3d(0, -10px, 0) rotate(-270deg);
    -webkit-transition-delay: 0.075s;
         -o-transition-delay: 0.075s;
            transition-delay: 0.075s; }

/*
   * Elastic Reverse
   */
.hamburger--elastic-r .hamburger-inner {
  top: 1px;
  -webkit-transition-duration: 0.275s;
       -o-transition-duration: 0.275s;
          transition-duration: 0.275s;
  -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
       -o-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
          transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  .hamburger--elastic-r .hamburger-inner::before {
    top: 5px;
    -webkit-transition: opacity 0.125s 0.275s ease;
    -o-transition: opacity 0.125s 0.275s ease;
    transition: opacity 0.125s 0.275s ease; }
  .hamburger--elastic-r .hamburger-inner::after {
    top: 10px;
    -webkit-transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    -o-transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }

.hamburger--elastic-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(-135deg);
          transform: translate3d(0, 5px, 0) rotate(-135deg);
  -webkit-transition-delay: 0.075s;
       -o-transition-delay: 0.075s;
          transition-delay: 0.075s; }
  .hamburger--elastic-r.is-active .hamburger-inner::before {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
    opacity: 0; }
  .hamburger--elastic-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(270deg);
            transform: translate3d(0, -10px, 0) rotate(270deg);
    -webkit-transition-delay: 0.075s;
         -o-transition-delay: 0.075s;
            transition-delay: 0.075s; }

/*
   * Emphatic
   */
.hamburger--emphatic {
  overflow: hidden; }
  .hamburger--emphatic .hamburger-inner {
    -webkit-transition: background-color 0.125s 0.175s ease-in;
    -o-transition: background-color 0.125s 0.175s ease-in;
    transition: background-color 0.125s 0.175s ease-in; }
    .hamburger--emphatic .hamburger-inner::before {
      left: 0;
      -webkit-transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      -o-transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
    .hamburger--emphatic .hamburger-inner::after {
      top: 5px;
      right: 0;
      -webkit-transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      -o-transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
  .hamburger--emphatic.is-active .hamburger-inner {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transition-timing-function: ease-out;
         -o-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
    background-color: transparent !important; }
    .hamburger--emphatic.is-active .hamburger-inner::before {
      left: -40px;
      top: -40px;
      -webkit-transform: translate3d(40px, 40px, 0) rotate(45deg);
              transform: translate3d(40px, 40px, 0) rotate(45deg);
      -webkit-transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      -o-transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
    .hamburger--emphatic.is-active .hamburger-inner::after {
      right: -40px;
      top: -40px;
      -webkit-transform: translate3d(-40px, 40px, 0) rotate(-45deg);
              transform: translate3d(-40px, 40px, 0) rotate(-45deg);
      -webkit-transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      -o-transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }

/*
   * Emphatic Reverse
   */
.hamburger--emphatic-r {
  overflow: hidden; }
  .hamburger--emphatic-r .hamburger-inner {
    -webkit-transition: background-color 0.125s 0.175s ease-in;
    -o-transition: background-color 0.125s 0.175s ease-in;
    transition: background-color 0.125s 0.175s ease-in; }
    .hamburger--emphatic-r .hamburger-inner::before {
      left: 0;
      -webkit-transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      -o-transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
    .hamburger--emphatic-r .hamburger-inner::after {
      top: 5px;
      right: 0;
      -webkit-transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      -o-transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
  .hamburger--emphatic-r.is-active .hamburger-inner {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transition-timing-function: ease-out;
         -o-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
    background-color: transparent !important; }
    .hamburger--emphatic-r.is-active .hamburger-inner::before {
      left: -40px;
      top: 40px;
      -webkit-transform: translate3d(40px, -40px, 0) rotate(-45deg);
              transform: translate3d(40px, -40px, 0) rotate(-45deg);
      -webkit-transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      -o-transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
    .hamburger--emphatic-r.is-active .hamburger-inner::after {
      right: -40px;
      top: 40px;
      -webkit-transform: translate3d(-40px, -40px, 0) rotate(45deg);
              transform: translate3d(-40px, -40px, 0) rotate(45deg);
      -webkit-transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      -o-transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }

/*
   * Minus
   */
.hamburger--minus .hamburger-inner::before, .hamburger--minus .hamburger-inner::after {
  -webkit-transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear;
  -o-transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear;
  transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear; }

.hamburger--minus.is-active .hamburger-inner::before, .hamburger--minus.is-active .hamburger-inner::after {
  opacity: 0;
  -webkit-transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear;
  -o-transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear;
  transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear; }

.hamburger--minus.is-active .hamburger-inner::before {
  top: 0; }

.hamburger--minus.is-active .hamburger-inner::after {
  bottom: 0; }

/*
   * Slider
   */
.hamburger--slider .hamburger-inner {
  top: 1px; }
  .hamburger--slider .hamburger-inner::before {
    top: 5px;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-timing-function: ease;
         -o-transition-timing-function: ease;
            transition-timing-function: ease;
    -webkit-transition-duration: 0.15s;
         -o-transition-duration: 0.15s;
            transition-duration: 0.15s; }
  .hamburger--slider .hamburger-inner::after {
    top: 10px; }

.hamburger--slider.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
          transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--slider.is-active .hamburger-inner::before {
    -webkit-transform: rotate(-45deg) translate3d(-2.8571428571px, -3px, 0);
            transform: rotate(-45deg) translate3d(-2.8571428571px, -3px, 0);
    opacity: 0; }
  .hamburger--slider.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(-90deg);
            transform: translate3d(0, -10px, 0) rotate(-90deg); }

/*
   * Slider Reverse
   */
.hamburger--slider-r .hamburger-inner {
  top: 1px; }
  .hamburger--slider-r .hamburger-inner::before {
    top: 5px;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-timing-function: ease;
         -o-transition-timing-function: ease;
            transition-timing-function: ease;
    -webkit-transition-duration: 0.15s;
         -o-transition-duration: 0.15s;
            transition-duration: 0.15s; }
  .hamburger--slider-r .hamburger-inner::after {
    top: 10px; }

.hamburger--slider-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(-45deg);
          transform: translate3d(0, 5px, 0) rotate(-45deg); }
  .hamburger--slider-r.is-active .hamburger-inner::before {
    -webkit-transform: rotate(45deg) translate3d(2.8571428571px, -3px, 0);
            transform: rotate(45deg) translate3d(2.8571428571px, -3px, 0);
    opacity: 0; }
  .hamburger--slider-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(90deg);
            transform: translate3d(0, -10px, 0) rotate(90deg); }

/*
   * Spin
   */
.hamburger--spin .hamburger-inner {
  -webkit-transition-duration: 0.22s;
       -o-transition-duration: 0.22s;
          transition-duration: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spin .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    -o-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  .hamburger--spin .hamburger-inner::after {
    -webkit-transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spin.is-active .hamburger-inner {
  -webkit-transform: rotate(225deg);
      -ms-transform: rotate(225deg);
          transform: rotate(225deg);
  -webkit-transition-delay: 0.12s;
       -o-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spin.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    -o-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  .hamburger--spin.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Spin Reverse
   */
.hamburger--spin-r .hamburger-inner {
  -webkit-transition-duration: 0.22s;
       -o-transition-duration: 0.22s;
          transition-duration: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spin-r .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    -o-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  .hamburger--spin-r .hamburger-inner::after {
    -webkit-transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spin-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-225deg);
      -ms-transform: rotate(-225deg);
          transform: rotate(-225deg);
  -webkit-transition-delay: 0.12s;
       -o-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spin-r.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    -o-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  .hamburger--spin-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Spring
   */
.hamburger--spring .hamburger-inner {
  top: 1px;
  -webkit-transition: background-color 0s 0.13s linear;
  -o-transition: background-color 0s 0.13s linear;
  transition: background-color 0s 0.13s linear; }
  .hamburger--spring .hamburger-inner::before {
    top: 5px;
    -webkit-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spring .hamburger-inner::after {
    top: 10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spring.is-active .hamburger-inner {
  -webkit-transition-delay: 0.22s;
       -o-transition-delay: 0.22s;
          transition-delay: 0.22s;
  background-color: transparent !important; }
  .hamburger--spring.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--spring.is-active .hamburger-inner::after {
    top: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 5px, 0) rotate(-45deg);
            transform: translate3d(0, 5px, 0) rotate(-45deg); }

/*
   * Spring Reverse
   */
.hamburger--spring-r .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
       -o-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0s;
       -o-transition-delay: 0s;
          transition-delay: 0s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spring-r .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear;
    -o-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear; }
  .hamburger--spring-r .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spring-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
          transform: translate3d(0, -5px, 0) rotate(-45deg);
  -webkit-transition-delay: 0.22s;
       -o-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spring-r.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear;
    -o-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear; }
  .hamburger--spring-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Stand
   */
.hamburger--stand .hamburger-inner {
  -webkit-transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  -o-transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--stand.is-active .hamburger-inner {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  background-color: transparent !important;
  -webkit-transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  -o-transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Stand Reverse
   */
.hamburger--stand-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  -o-transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand-r .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand-r .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--stand-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg);
  background-color: transparent !important;
  -webkit-transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  -o-transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Squeeze
   */
.hamburger--squeeze .hamburger-inner {
  -webkit-transition-duration: 0.075s;
       -o-transition-duration: 0.075s;
          transition-duration: 0.075s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
       -o-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--squeeze .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.12s ease, opacity 0.075s ease;
    -o-transition: top 0.075s 0.12s ease, opacity 0.075s ease;
    transition: top 0.075s 0.12s ease, opacity 0.075s ease; }
  .hamburger--squeeze .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.12s ease, -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    -o-transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--squeeze.is-active .hamburger-inner {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition-delay: 0.12s;
       -o-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
       -o-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--squeeze.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.075s ease, opacity 0.075s 0.12s ease;
    -o-transition: top 0.075s ease, opacity 0.075s 0.12s ease;
    transition: top 0.075s ease, opacity 0.075s 0.12s ease; }
  .hamburger--squeeze.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: bottom 0.075s ease, -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    -o-transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Vortex
   */
.hamburger--vortex .hamburger-inner {
  -webkit-transition-duration: 0.2s;
       -o-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
       -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex .hamburger-inner::before, .hamburger--vortex .hamburger-inner::after {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s;
    -webkit-transition-delay: 0.1s;
         -o-transition-delay: 0.1s;
            transition-delay: 0.1s;
    -webkit-transition-timing-function: linear;
         -o-transition-timing-function: linear;
            transition-timing-function: linear; }
  .hamburger--vortex .hamburger-inner::before {
    -webkit-transition-property: top, opacity;
    -o-transition-property: top, opacity;
    transition-property: top, opacity; }
  .hamburger--vortex .hamburger-inner::after {
    -webkit-transition-property: bottom, -webkit-transform;
    transition-property: bottom, -webkit-transform;
    -o-transition-property: bottom, transform;
    transition-property: bottom, transform;
    transition-property: bottom, transform, -webkit-transform; }

.hamburger--vortex.is-active .hamburger-inner {
  -webkit-transform: rotate(765deg);
      -ms-transform: rotate(765deg);
          transform: rotate(765deg);
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
       -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex.is-active .hamburger-inner::before, .hamburger--vortex.is-active .hamburger-inner::after {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s; }
  .hamburger--vortex.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--vortex.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg); }

/*
   * Vortex Reverse
   */
.hamburger--vortex-r .hamburger-inner {
  -webkit-transition-duration: 0.2s;
       -o-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
       -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex-r .hamburger-inner::before, .hamburger--vortex-r .hamburger-inner::after {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s;
    -webkit-transition-delay: 0.1s;
         -o-transition-delay: 0.1s;
            transition-delay: 0.1s;
    -webkit-transition-timing-function: linear;
         -o-transition-timing-function: linear;
            transition-timing-function: linear; }
  .hamburger--vortex-r .hamburger-inner::before {
    -webkit-transition-property: top, opacity;
    -o-transition-property: top, opacity;
    transition-property: top, opacity; }
  .hamburger--vortex-r .hamburger-inner::after {
    -webkit-transition-property: bottom, -webkit-transform;
    transition-property: bottom, -webkit-transform;
    -o-transition-property: bottom, transform;
    transition-property: bottom, transform;
    transition-property: bottom, transform, -webkit-transform; }

.hamburger--vortex-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-765deg);
      -ms-transform: rotate(-765deg);
          transform: rotate(-765deg);
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
       -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex-r.is-active .hamburger-inner::before, .hamburger--vortex-r.is-active .hamburger-inner::after {
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s; }
  .hamburger--vortex-r.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--vortex-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg); }

/*********************
IMPORTING MODULES
Modules are reusable blocks or elements we use throughout the project.
We can break them up as much as we want or just keep them all in one.
I mean, you can do whatever you want. The world is your oyster. Unless
you hate oysters, then the world is your peanut butter & jelly sandwich.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Alert Styles

If you want to use these alerts in your design, you can. If not,
you can just remove this stylesheet.

******************************************************************/
.alert-help, .alert-info, .alert-error, .alert-success {
  margin: 10px;
  padding: 5px 18px;
  border: 1px solid; }

.alert-help {
  border-color: #e8dc59;
  background: #ebe16f; }

.alert-info {
  border-color: #bfe4f4;
  background: #d5edf8; }

.alert-error {
  border-color: #f8cdce;
  background: #fbe3e4; }

.alert-success {
  border-color: #deeaae;
  background: #e6efc2; }

/******************************************************************
Site Name:
Author:

Stylesheet: Button Styles

Buttons are a pretty important part of your site's style, so it's
important to have a consistent baseline for them. Use this stylesheet
to create all kinds of buttons.

Helpful Links:
http://galp.in/blog/2011/08/02/the-ui-guide-part-1-buttons/

******************************************************************/
/*********************
BUTTON DEFAULTS
We're gonna use a placeholder selector here
so we can use common styles. We then use this
to load up the defaults in all our buttons.

Here's a quick video to show how it works:
http://www.youtube.com/watch?v=hwdVpKiJzac

*********************/
a.white-btn,
a.white-btn:visited,
.white-btn, a.orange-btn,
a.orange-btn:visited,
.orange-btn {
  display: inline-block;
  position: relative;
  font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif;
  text-decoration: none;
  min-height: 48px;
  border-radius: 24px;
  -webkit-box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.25);
  background-color: #f55028;
  font-weight: normal;
  border: 0;
  cursor: pointer;
  font-size: 1.8em;
  line-height: 24px;
  font-weight: 600;
  font-stretch: normal;
  font-style: normal;
  letter-spacing: normal;
  text-align: center;
  color: #fff;
  position: relative;
  padding: 12px 24px; }
  
  a.with-arrow.white-btn:visited,
  .with-arrow.white-btn,
  a.with-arrow.orange-btn:visited,
  .with-arrow.orange-btn {
    padding-right: 36px; }
    
    .with-arrow.white-btn:after,
    .with-arrow.orange-btn:after {
      content: "";
      width: 6px;
      height: 12px;
      position: absolute;
      top: 50%;
      margin-top: -5px;
      right: 18px;
      display: block;
      background-position: -9px -147px;
      background-repeat: no-repeat;
      background-image: url(../images/sprite.svg); }
  
  a.white-btn:hover:visited,
  .white-btn:hover,
  a.orange-btn:hover:visited,
  .orange-btn:hover,
  a.white-btn:focus:visited,
  .white-btn:focus,
  a.orange-btn:focus:visited,
  .orange-btn:focus {
    color: #fff;
    text-decoration: none;
    outline: none;
    -webkit-box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.275);
            box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.275); }

/*
An example button.
You can use this example if you want. Just replace all the variables
and it will create a button dependant on those variables.
*/
a.white-btn,
a.white-btn:visited,
.white-btn {
  background-color: #fff;
  color: #f55028;
  border: 1px solid #f55028; }
  a.white-btn:hover, a.white-btn:focus,
  a.white-btn:visited:hover,
  a.white-btn:visited:focus,
  .white-btn:hover,
  .white-btn:focus {
    background-color: #fff;
    color: #f55028; }
  a.white-btn:active,
  a.white-btn:visited:active,
  .white-btn:active {
    background-color: #fff;
    color: #f55028; }

a.orange-btn,
a.orange-btn:visited,
.orange-btn {
  background-color: #f55028; }
  a.orange-btn:hover, a.orange-btn:focus,
  a.orange-btn:visited:hover,
  a.orange-btn:visited:focus,
  .orange-btn:hover,
  .orange-btn:focus {
    background-color: #f44015; }
  a.orange-btn:active,
  a.orange-btn:visited:active,
  .orange-btn:active {
    background-color: #f43c10; }

/******************************************************************
Site Name:
Author:

Stylesheet: Form Styles

We put all the form and button styles in here to setup a consistent
look. If we need to customize them, we can do this in the main
stylesheets and just override them. Easy Peasy.

You're gonna see a few data-uri thingies down there. If you're not
sure what they are, check this link out:
http://css-tricks.com/data-uris/
If you want to create your own, use this helpful link:
http://websemantics.co.uk/online_tools/image_to_data_uri_convertor/

******************************************************************/
/*********************
INPUTS
*********************/
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
select,
textarea,
.field {
  display: block;
  height: 40px;
  line-height: 1em;
  padding: 0 12px;
  margin-bottom: 14px;
  font-size: 1em;
  color: #5c6b80;
  border-radius: 3px;
  vertical-align: middle;
  -webkit-box-shadow: none;
          box-shadow: none;
  border: 0;
  width: 100%;
  font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif;
  background-color: #eaedf2;
  -webkit-transition: background-color 0.24s ease-in-out;
  -o-transition: background-color 0.24s ease-in-out;
  transition: background-color 0.24s ease-in-out; }
  input[type="text"]:focus, input[type="text"]:active,
  input[type="password"]:focus,
  input[type="password"]:active,
  input[type="datetime"]:focus,
  input[type="datetime"]:active,
  input[type="datetime-local"]:focus,
  input[type="datetime-local"]:active,
  input[type="date"]:focus,
  input[type="date"]:active,
  input[type="month"]:focus,
  input[type="month"]:active,
  input[type="time"]:focus,
  input[type="time"]:active,
  input[type="week"]:focus,
  input[type="week"]:active,
  input[type="number"]:focus,
  input[type="number"]:active,
  input[type="email"]:focus,
  input[type="email"]:active,
  input[type="url"]:focus,
  input[type="url"]:active,
  input[type="search"]:focus,
  input[type="search"]:active,
  input[type="tel"]:focus,
  input[type="tel"]:active,
  input[type="color"]:focus,
  input[type="color"]:active,
  select:focus,
  select:active,
  textarea:focus,
  textarea:active,
  .field:focus,
  .field:active {
    background-color: #f7f8fa;
    outline: none; }
  input[type="text"].error, input[type="text"].is-invalid,
  input[type="password"].error,
  input[type="password"].is-invalid,
  input[type="datetime"].error,
  input[type="datetime"].is-invalid,
  input[type="datetime-local"].error,
  input[type="datetime-local"].is-invalid,
  input[type="date"].error,
  input[type="date"].is-invalid,
  input[type="month"].error,
  input[type="month"].is-invalid,
  input[type="time"].error,
  input[type="time"].is-invalid,
  input[type="week"].error,
  input[type="week"].is-invalid,
  input[type="number"].error,
  input[type="number"].is-invalid,
  input[type="email"].error,
  input[type="email"].is-invalid,
  input[type="url"].error,
  input[type="url"].is-invalid,
  input[type="search"].error,
  input[type="search"].is-invalid,
  input[type="tel"].error,
  input[type="tel"].is-invalid,
  input[type="color"].error,
  input[type="color"].is-invalid,
  select.error,
  select.is-invalid,
  textarea.error,
  textarea.is-invalid,
  .field.error,
  .field.is-invalid {
    color: #fbe3e4;
    border-color: #fbe3e4;
    background-color: #fff;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDREQkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDREQ0YwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3ODRGRkE2RjA0QTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERBRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U8iT5wAAAedJREFUeNqk1U9I02Ecx/HtV3aIFAc1hcRDUoGXRAq0oNLA2CrsEFmHbikZu0iQYIFGYAiegkCpLipBxPpDEBMUzB0EhSG2LhG7hMR2GviPgUTvB57Bw8P3+U23B16HPX8+e/b8nt93wezZSMCnhXETF3AcB5BDCnH8Dq98ExcGHcFn8Ah3cdDni+fxnPDv9oAnTB7CKu6VCFXtChZy56LxUjt+jfuB8toSOth9wd7xWAWhqrUjYR/FRTwWJm+iIPT/w7bQf5ljiZnBg45dtKFX6H+LU8gIY8OEV6vgTkStwXWE8BPTGDHGPqNPz2mCfSOOYkA99TvCt1bhGPL68zMcwmncMuape10jrI+q4BbHi/FLn31S9z2x5tRhTc+1W506ipM+T3oRD4X+8+qtc4SqFvL0z/Fr14S+Szjis8bz9Lvvaq8cwS/wwGfdlqfPSWqTiFlX77o13u9Ym1PBs8JAytpRoy44X9Ft9E/gvbA+rYKn8NcaaMVc8UHgBw4b9/iqUQZ6hOAJFbyDcUflmsEX4a6+wTtHGfhAIUqa1U29Zc2BytouThD8x6xuN5CtMPi2CrXLZkZf/HyZoRFCP7n+QVR4PV7uI/AjGghN7OU/r1ilnqILtfpNC+o6vIFljBKYlhb/F2AAgaBsWR5wRiIAAAAASUVORK5CYII=);
    outline-color: #fbe3e4; }
  input[type="text"].success, input[type="text"].is-valid,
  input[type="password"].success,
  input[type="password"].is-valid,
  input[type="datetime"].success,
  input[type="datetime"].is-valid,
  input[type="datetime-local"].success,
  input[type="datetime-local"].is-valid,
  input[type="date"].success,
  input[type="date"].is-valid,
  input[type="month"].success,
  input[type="month"].is-valid,
  input[type="time"].success,
  input[type="time"].is-valid,
  input[type="week"].success,
  input[type="week"].is-valid,
  input[type="number"].success,
  input[type="number"].is-valid,
  input[type="email"].success,
  input[type="email"].is-valid,
  input[type="url"].success,
  input[type="url"].is-valid,
  input[type="search"].success,
  input[type="search"].is-valid,
  input[type="tel"].success,
  input[type="tel"].is-valid,
  input[type="color"].success,
  input[type="color"].is-valid,
  select.success,
  select.is-valid,
  textarea.success,
  textarea.is-valid,
  .field.success,
  .field.is-valid {
    color: #e6efc2;
    border-color: #e6efc2;
    background-color: #fff;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDRERkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDRFMEYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzQ0NERERjA0QjExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERFRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7olkTQAAAfhJREFUeNqklU9oE0EUhzdroWjw0tBeWlDxkEaIp55TsCU9VKIgCrHBelA8CQ1Kr1WPbZrQ3gqtQqvGqxpQc2jBk6BIIaAGD4qNCKURpDSKiPi98gLDsJt//uBjsztvfnk7895sIPAw6/joGMThFJyAXn2+A+9gA57/TaY/eU0OeBgfhGm4DiGnsb7DAszxBz/NAdcKjMJLuNWCqagHbsscN5+L+hmH4QkMOe1L5jzFfNA2PgT34ajTuY7AGuZB0/hmh5m+gS0r8xv1zRvg+gGCHZiOwnF4DP3iB3sQkYxPd2C6CWfhB9Xwlus5+K1j4jXuaq3a+gM1H9OPcAa+7q9lPidZJqHbiIm7Wg22rsEI7FrPSzAMX/T+ADyAKSsu7Fr1KplehLvwCs5DvfBf65p+MypqRbO1FXK9utH4/QKuaqYTsG3E3INJv00Q46px3+XxanJ/Ute2/vqP4FKDza2KcdljIKdnhS0xXYULTaqmLMZFn8FFSFtvt6x70ExFCS5oUXspq2ssa7oEl1swFa+CGFdgtkHgPDyDKy02zyxNU6lXRUZb1EuHYayNNs+Yh5B0WQo+/8fpJnNTZFuzz2OpjoQ2QruSOQlMy35fEGmEGMxY9e1brxobw7TkWA1h6xfckUPb+JhGoE/Hpfvew7qUld/H9J8AAwDpw3WYrxcZ3QAAAABJRU5ErkJggg==);
    outline-color: #e6efc2; }
  input[type="text"][disabled], input[type="text"].is-disabled,
  input[type="password"][disabled],
  input[type="password"].is-disabled,
  input[type="datetime"][disabled],
  input[type="datetime"].is-disabled,
  input[type="datetime-local"][disabled],
  input[type="datetime-local"].is-disabled,
  input[type="date"][disabled],
  input[type="date"].is-disabled,
  input[type="month"][disabled],
  input[type="month"].is-disabled,
  input[type="time"][disabled],
  input[type="time"].is-disabled,
  input[type="week"][disabled],
  input[type="week"].is-disabled,
  input[type="number"][disabled],
  input[type="number"].is-disabled,
  input[type="email"][disabled],
  input[type="email"].is-disabled,
  input[type="url"][disabled],
  input[type="url"].is-disabled,
  input[type="search"][disabled],
  input[type="search"].is-disabled,
  input[type="tel"][disabled],
  input[type="tel"].is-disabled,
  input[type="color"][disabled],
  input[type="color"].is-disabled,
  select[disabled],
  select.is-disabled,
  textarea[disabled],
  textarea.is-disabled,
  .field[disabled],
  .field.is-disabled {
    cursor: not-allowed;
    border-color: #cfcfcf;
    opacity: 0.6; }
    input[type="text"][disabled]:focus, input[type="text"][disabled]:active, input[type="text"].is-disabled:focus, input[type="text"].is-disabled:active,
    input[type="password"][disabled]:focus,
    input[type="password"][disabled]:active,
    input[type="password"].is-disabled:focus,
    input[type="password"].is-disabled:active,
    input[type="datetime"][disabled]:focus,
    input[type="datetime"][disabled]:active,
    input[type="datetime"].is-disabled:focus,
    input[type="datetime"].is-disabled:active,
    input[type="datetime-local"][disabled]:focus,
    input[type="datetime-local"][disabled]:active,
    input[type="datetime-local"].is-disabled:focus,
    input[type="datetime-local"].is-disabled:active,
    input[type="date"][disabled]:focus,
    input[type="date"][disabled]:active,
    input[type="date"].is-disabled:focus,
    input[type="date"].is-disabled:active,
    input[type="month"][disabled]:focus,
    input[type="month"][disabled]:active,
    input[type="month"].is-disabled:focus,
    input[type="month"].is-disabled:active,
    input[type="time"][disabled]:focus,
    input[type="time"][disabled]:active,
    input[type="time"].is-disabled:focus,
    input[type="time"].is-disabled:active,
    input[type="week"][disabled]:focus,
    input[type="week"][disabled]:active,
    input[type="week"].is-disabled:focus,
    input[type="week"].is-disabled:active,
    input[type="number"][disabled]:focus,
    input[type="number"][disabled]:active,
    input[type="number"].is-disabled:focus,
    input[type="number"].is-disabled:active,
    input[type="email"][disabled]:focus,
    input[type="email"][disabled]:active,
    input[type="email"].is-disabled:focus,
    input[type="email"].is-disabled:active,
    input[type="url"][disabled]:focus,
    input[type="url"][disabled]:active,
    input[type="url"].is-disabled:focus,
    input[type="url"].is-disabled:active,
    input[type="search"][disabled]:focus,
    input[type="search"][disabled]:active,
    input[type="search"].is-disabled:focus,
    input[type="search"].is-disabled:active,
    input[type="tel"][disabled]:focus,
    input[type="tel"][disabled]:active,
    input[type="tel"].is-disabled:focus,
    input[type="tel"].is-disabled:active,
    input[type="color"][disabled]:focus,
    input[type="color"][disabled]:active,
    input[type="color"].is-disabled:focus,
    input[type="color"].is-disabled:active,
    select[disabled]:focus,
    select[disabled]:active,
    select.is-disabled:focus,
    select.is-disabled:active,
    textarea[disabled]:focus,
    textarea[disabled]:active,
    textarea.is-disabled:focus,
    textarea.is-disabled:active,
    .field[disabled]:focus,
    .field[disabled]:active,
    .field.is-disabled:focus,
    .field.is-disabled:active {
      background-color: #d5edf8; }

input[type="password"] {
  letter-spacing: 0.3em; }

textarea {
  max-width: 100%;
  min-height: 120px;
  line-height: 1.5em; }

select {
  -webkit-appearance: none;
  /* 1 */
  -moz-appearance: none;
  appearance: none;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 97.5% center; }

/*********************
BASE (MOBILE) SIZE
This are the mobile styles. It's what people see on their phones. If
you set a great foundation, you won't need to add too many styles in
the other stylesheets. Remember, keep it light: Speed is Important.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Base Mobile Stylesheet

Be light and don't over style since everything here will be
loaded by mobile devices. You want to keep it as minimal as
possible. This is called at the top of the main stylsheet
and will be used across all viewports.

******************************************************************/
/*********************
GENERAL STYLES
*********************/
body {
  font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif;
  font-size: 62.5%;
  line-height: 1.5;
  color: #5c6b80;
  background-color: white;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/*********************
LAYOUT & GRID STYLES
*********************/
#inner-header,
.wrap {
  margin: 0 auto;
  padding: 0 20px; }

.wrap {
  max-width: 100%; }
  @media (min-width: 600px) {
    .wrap {
      max-width: 85%; } }
  @media (min-width: 768px) {
    .wrap {
      padding: 0 40px;
      max-width: 100%; } }
  @media (min-width: 1024px) {
    .wrap {
      padding: 0 15px;
      max-width: 1240px; } }

#inner-header {
  padding: 0 20px; }
  @media (min-width: 1024px) {
    #inner-header {
      padding: 0 0 0 15px;
      max-width: 1240px; } }

#content {
  position: relative;
  overflow: hidden; }
  #content div.notify-bird {
    position: absolute;
    bottom: 60px;
    left: 120px;
    background-image: url(../images/notify-bird.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 200px;
    height: 360px;
    z-index: 0; }
  #content div.notify-bird-shadow {
    position: absolute;
    bottom: -440px;
    left: -330px;
    background-image: url(../images/notify-bird-shadow.svg);
    background-position: right top;
    background-size: contain;
    background-repeat: no-repeat;
    width: 1010px;
    height: 1050px;
    z-index: 0; }
  #content .page-section,
  #content .big-featured-image,
  #content #inner-content {
    z-index: 1;
    position: relative; }

/*********************
LINK STYLES
*********************/
a,
a:visited {
  color: #f01d4f;
  /* on hover */
  /* on click */ }
  a:hover, a:focus, a:visited:hover, a:visited:focus {
    color: #d10e3c; }

/******************************************************************
H1, H2, H3, H4, H5 STYLES
******************************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
  text-rendering: optimizelegibility;
  font-weight: 500;
  /*
	if you're going to use webfonts, be sure to check your weights
	http://css-tricks.com/watch-your-font-weight/
	*/
  /* removing text decoration from all headline links */ }
  h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a {
    text-decoration: none; }

h1, .h1 {
  line-height: 1em;
  font-size: 3.2em;
  font-weight: 500;
  font-stretch: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  color: #f55028;
  margin-bottom: 32px; }

h2, .h2 {
  font-size: 1.75em;
  line-height: 1.4em;
  margin-bottom: 0.375em; }

h3, .h3 {
  font-size: 1.125em; }

h4, .h4 {
  font-size: 1.1em;
  font-weight: 700; }

h5, .h5 {
  font-size: 0.846em;
  line-height: 2.09em;
  text-transform: uppercase;
  letter-spacing: 2px; }

/*********************
POSTS & CONTENT STYLES
*********************/
/* entry content */
.entry-content {
  /*
	image alignment on a screen this size may be
	a bit difficult. It's set to start aligning
	and floating images at the next breakpoint,
	but it's up to you. Feel free to change it up.
	*/ }
  .entry-content p {
    margin: 0 0 1em; }
  .entry-content table {
    width: 100%;
    border: 1px solid #eaedf2;
    margin-bottom: 1.5em; }
    .entry-content table caption {
      margin: 0 0 7px;
      font-size: 0.75em;
      color: #9fa6b4;
      text-transform: uppercase;
      letter-spacing: 1px; }
  .entry-content tr {
    border-bottom: 1px solid #eaedf2; }
    .entry-content tr:nth-child(even) {
      background-color: #f8f9fa; }
  .entry-content td {
    padding: 7px;
    border-right: 1px solid #eaedf2; }
    .entry-content td:last-child {
      border-right: 0; }
  .entry-content th {
    background-color: #f8f9fa;
    border-bottom: 1px solid #eaedf2;
    border-right: 1px solid #eaedf2; }
    .entry-content th:last-child {
      border-right: 0; }
  .entry-content blockquote {
    margin: 0 0 1.5em 0.75em;
    padding: 0 0 0 0.75em;
    border-left: 3px solid #2980b9;
    font-style: italic;
    color: #9fa6b4; }
  .entry-content dd {
    margin-left: 0;
    font-size: 0.9em;
    color: #787878;
    margin-bottom: 1.5em; }
  .entry-content img {
    margin: 0 0 1.5em 0;
    max-width: 100%;
    height: auto; }
  .entry-content .size-auto,
  .entry-content .size-full,
  .entry-content .size-large,
  .entry-content .size-medium,
  .entry-content .size-thumbnail {
    max-width: 100%;
    height: auto; }
  .entry-content pre {
    background: #323944;
    color: #f8f9fa;
    font-size: 0.9em;
    padding: 1.5em;
    margin: 0 0 1.5em;
    border-radius: 3px; }

/* end .entry-content */
.wp-caption {
  max-width: 100%;
  background: #eee;
  padding: 5px;
  /* images inside wp-caption */ }
  .wp-caption img {
    max-width: 100%;
    margin-bottom: 0;
    width: 100%; }
  .wp-caption p.wp-caption-text {
    font-size: 0.85em;
    margin: 4px 0 7px;
    text-align: center; }

/* end .wp-caption */
.page-section {
  margin-bottom: 90px; }
  .page-section.try-now, .page-section.schrijf-je-in {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
    .page-section.try-now h1, .page-section.schrijf-je-in h1 {
      color: #464b50;
      margin-bottom: 60px; }
  .page-section.try-now {
    margin-top: 180px;
    margin-bottom: 240px; }
    .page-section.try-now .button-holder {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
      .page-section.try-now .button-holder a {
        margin: 0 18px; }
  .page-section .newsletter-section {
    margin: 0 auto;
    width: 100%;
    max-width: 800px; }
    .page-section .newsletter-section .mauticform-error,
    .page-section .newsletter-section .mauticform-message {
      font-size: 1.6em;
      font-weight: 400;
      font-stretch: normal;
      font-style: normal;
      line-height: 1;
      letter-spacing: normal;
      color: #323944;
      display: block;
      margin-top: 24px;
      margin-bottom: 32px;
      text-align: left;
      padding: 0 24px 0 24px;
      font-weight: 500;
      text-align: center; }
    .page-section .newsletter-section .mauticform-page-wrapper {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: flex !important;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
      .page-section .newsletter-section .mauticform-page-wrapper .mauticform-errormsg {
        font-size: 1.4em;
        font-weight: 400;
        font-stretch: normal;
        font-style: normal;
        line-height: 1;
        letter-spacing: normal;
        color: #f55028;
        display: block;
        margin-bottom: 18px;
        margin-top: 0;
        text-align: left;
        padding: 0 24px;
        font-weight: 500; }
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_company,
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_full_name {
        -ms-flex-preferred-size: 100%;
            flex-basis: 100%; }
        @media (min-width: 480px) {
          .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_company,
          .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_full_name {
            -ms-flex-preferred-size: 50%;
                flex-basis: 50%; } }
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_your_email {
        -ms-flex-preferred-size: 100%;
            flex-basis: 100%;
        margin-top: 9px; }
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_company,
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_full_name,
      .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_your_email {
        padding: 0 16px; }
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_company input[type=email],
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_company input[type=text],
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_full_name input[type=email],
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_full_name input[type=text],
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_your_email input[type=email],
        .page-section .newsletter-section .mauticform-page-wrapper #mauticform_subscribetonewsletter_your_email input[type=text] {
          line-height: 48px;
          height: 48px;
          border-radius: 24px;
          background-color: #eaeced;
          padding: 0 24px;
          font-size: 1.8em;
          font-weight: normal;
          font-stretch: normal;
          font-style: normal;
          line-height: 1;
          letter-spacing: normal;
          color: #272e45;
          margin-bottom: 15px; }
      .page-section .newsletter-section .mauticform-page-wrapper button[type=submit],
      .page-section .newsletter-section .mauticform-page-wrapper input[type=submit] {
        line-height: 48px;
        height: 48px;
        border-radius: 24px;
        -webkit-box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.25);
                box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.25);
        background-color: #5fdccd;
        color: white;
        font-size: 1.8em;
        font-weight: normal;
        font-stretch: normal;
        font-style: normal;
        line-height: 1;
        letter-spacing: normal;
        border: 0;
        padding: 0 36px 0 24px;
        margin: 17px 16px 0 16px;
        -webkit-transition: all .2s ease;
        -o-transition: all .2s ease;
        transition: all .2s ease;
        position: relative;
        left: 0; }
        .page-section .newsletter-section .mauticform-page-wrapper button[type=submit]:hover, .page-section .newsletter-section .mauticform-page-wrapper button[type=submit]:focus,
        .page-section .newsletter-section .mauticform-page-wrapper input[type=submit]:hover,
        .page-section .newsletter-section .mauticform-page-wrapper input[type=submit]:focus {
          -webkit-box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.275);
                  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.275);
          background-color: #4ed8c8; }
        .page-section .newsletter-section .mauticform-page-wrapper button[type=submit]:active,
        .page-section .newsletter-section .mauticform-page-wrapper input[type=submit]:active {
          background-color: #4ad7c6; }

.newsletter-holder {
  -webkit-box-shadow: 0 32px 64px 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 32px 64px 0 rgba(0, 0, 0, 0.25);
  padding: 32px; }
  .newsletter-holder h1 {
    font-size: 2.4em;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: normal;
    color: #464b50;
    margin-bottom: 24px; }
  .newsletter-holder label {
    font-size: 1.6em;
    font-weight: 500;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    color: #f55028;
    margin-top: 24px;
    margin-bottom: 16px;
    display: block; }
  .newsletter-holder #mauticform_subscribetonewsletter_full_name:before {
    content: "Last Name"; }
  .newsletter-holder #mauticform_subscribetonewsletter_company:before {
    content: "First Name"; }
  .newsletter-holder #mauticform_subscribetonewsletter_your_email:before {
    content: "Email Address"; }
  .newsletter-holder #mauticform_subscribetonewsletter_full_name:before,
  .newsletter-holder #mauticform_subscribetonewsletter_company:before,
  .newsletter-holder #mauticform_subscribetonewsletter_your_email:before {
    font-size: 1.6em;
    font-weight: 500;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    color: #f55028;
    margin-top: 24px;
    margin-bottom: 16px;
    display: block; }
  .newsletter-holder #mauticform_subscribetonewsletter_full_name,
  .newsletter-holder #mauticform_subscribetonewsletter_company,
  .newsletter-holder #mauticform_subscribetonewsletter_your_email {
    margin-top: 18px; }
  .newsletter-holder #mauticform_subscribetonewsletter_your_email .mauticform-errormsg {
    margin-bottom: 0; }
  .newsletter-holder .mauticform-errormsg {
    font-size: 1.2em;
    font-weight: 400;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    color: #323944;
    display: block;
    margin-bottom: 12px;
    margin-top: 12px; }
  .newsletter-holder .mauticform-error,
  .newsletter-holder .mauticform-message {
    font-size: 1.2em;
    font-weight: 400;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    color: #323944;
    display: block; }
  .newsletter-holder input[type=email],
  .newsletter-holder input[type=text] {
    background-color: #f4f5f5;
    font-size: 1.6em;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
    color: #464b50;
    margin-bottom: 0; }
  .newsletter-holder button[type=submit],
  .newsletter-holder input[type=submit] {
    height: 36px;
    line-height: 36px;
    border-radius: 20px;
    background-color: #f55028;
    border: 0;
    color: white;
    font-size: 1.6em;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    padding: 0 21px;
    -webkit-transition: all .2s ease;
    -o-transition: all .2s ease;
    transition: all .2s ease;
    margin-top: 32px; }
    .newsletter-holder button[type=submit]:hover,
    .newsletter-holder input[type=submit]:hover {
      background-color: #464b50; }

/* image gallery styles */
/* end .gallery */
/* gallery caption styles */
.tags {
  margin: 0; }

/******************************************************************
PAGE NAVI STYLES
******************************************************************/
.pagination {
  margin: 40px 0 20px 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }
  .pagination p {
    margin: 0 18px 0 0;
    text-decoration: none;
    padding: 0;
    line-height: 36px;
    font-size: 1.6em;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    letter-spacing: normal;
    color: #464b50; }
  .pagination ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .pagination a, .pagination span {
    margin: 0 6px 0 0;
    text-decoration: none;
    padding: 0;
    min-width: 1em;
    display: block;
    width: 36px;
    height: 36px;
    line-height: 36px;
    text-align: center;
    border-radius: 18px;
    font-size: 1.6em;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    letter-spacing: normal;
    background-color: #fff;
    color: #464b50; }
    .pagination a:hover, .pagination a:focus, .pagination span:hover, .pagination span:focus {
      background-color: #f55028;
      color: #fff; }
  .pagination .current {
    cursor: default;
    background-color: #5fdccd;
    color: white; }
    .pagination .current:hover, .pagination .current:focus {
      background-color: #5fdccd;
      color: white; }

/* end .bones_page_navi */
/* fallback previous & next links */
.wp-prev-next .prev-link {
  float: left; }

.wp-prev-next .next-link {
  float: right; }

/* end .wp-prev-next */
/*********************
HEADER STYLES
*********************/
.header {
  padding: 20px 0; }
  @media (min-width: 1200px) {
    .header {
      padding: 40px 0 80px 0; } }
  .header #inner-header .topper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (min-width: 1200px) {
      .header #inner-header .topper {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start; }
        .header #inner-header .topper .righter {
          -webkit-box-flex: 1;
              -ms-flex-positive: 1;
                  flex-grow: 1;
          height: 30px; } }
    .header #inner-header .topper .righter {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-top: 20px; }
      @media (min-width: 768px) {
        .header #inner-header .topper .righter {
          height: 24px; } }
      @media (min-width: 1200px) {
        .header #inner-header .topper .righter {
          margin-top: 3px; } }
  .header #inner-header .bottomer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (min-width: 1200px) {
      .header #inner-header .bottomer {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start; } }

#logo {
  display: block;
  width: 130px;
  height: 24px;
  background-image: url(../images/notify-blog-logo.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto 100%;
  text-indent: -9999px; }
  @media (min-width: 1200px) {
    #logo {
      height: 30px;
      background-position: left center; } }

.hamburger {
  position: absolute;
  top: 10px;
  right: 5px; }

a {
  outline: 0; }

.nav {
  border-bottom: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* end .menu li */
  /* highlight current page */
  /* end current highlighters */ }
  .nav.nav-categories {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (min-width: 768px) {
      .nav.nav-categories {
        padding-right: 10px; } }
    @media (min-width: 768px) {
      .nav.nav-categories {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center; } }
    .nav.nav-categories li a {
      font-size: 1.33em;
      font-weight: 500; }
  @media (min-width: 768px) {
    .nav {
      display: block; } }
  .nav li {
    margin: 0 0 0 20px; }
    @media (min-width: 768px) {
      .nav li.menu-item-has-children > a {
        padding-right: 21px;
        position: relative; }
        .nav li.menu-item-has-children > a:after {
          position: absolute;
          top: 9px;
          right: 2px;
          background-image: url(../images/sprite.svg);
          background-position: -246px -223px;
          background-repeat: no-repeat;
          width: 10px;
          height: 6px;
          content: ""; } }
    .nav li span,
    .nav li a {
      display: block;
      text-decoration: none;
      color: #464b50;
      padding: 5px;
      font-size: 1.4em;
      font-weight: 500;
      font-stretch: normal;
      font-style: normal;
      line-height: 1;
      letter-spacing: normal; }
      @media (min-width: 1200px) {
        .nav li span,
        .nav li a {
          font-size: 1.5em; } }
      .nav li span:hover, .nav li span:focus,
      .nav li a:hover,
      .nav li a:focus {
        color: #f55028;
        text-decoration: none; }
    .nav li a {
      text-align: center; }
      @media (min-width: 768px) {
        .nav li a {
          text-align: left; } }
    .nav li ul.sub-menu,
    .nav li ul.children {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .nav li ul.sub-menu li,
      .nav li ul.children li {
        margin: 0 5px;
        padding: 0; }
      @media (min-width: 768px) {
        .nav li ul.sub-menu,
        .nav li ul.children {
          margin-top: 0;
          border-top: 0;
          position: absolute;
          visibility: hidden;
          z-index: 8999;
          padding-top: 3px;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
          width: 480px;
          margin-left: -240px; }
          .nav li ul.sub-menu li,
          .nav li ul.children li {
            padding: 0;
            margin: 0; }
            .nav li ul.sub-menu li a,
            .nav li ul.children li a {
              border-right: 0;
              display: block;
              padding: 7px 5px;
              margin: 0;
              background-color: white; }
            .nav li ul.sub-menu li:last-child a,
            .nav li ul.children li:last-child a {
              border-bottom: 0; }
            .nav li ul.sub-menu li ul,
            .nav li ul.children li ul {
              top: 0;
              left: 100%; } }
      @media (min-width: 768px) {
        .nav li ul.sub-menu,
        .nav li ul.children {
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
          width: auto;
          margin-left: 0; }
          .nav li ul.sub-menu li a,
          .nav li ul.children li a {
            width: 150px; } }
  .nav li.current-menu-item a,
  .nav li.current_page_item a,
  .nav li.current_page_ancestor a {
    color: #f55028; }
  @media (min-width: 768px) {
    .nav {
      /* end .menu ul li */ }
      .nav ul {
        margin-top: 0; }
      .nav li {
        float: left;
        position: relative; }
        .nav li:hover > ul {
          top: auto;
          visibility: visible; } }

/* end .nav */
.languages {
  position: absolute;
  top: 14px;
  left: 11px; }
  @media (min-width: 600px) {
    .languages {
      right: 11px;
      left: auto; } }
  @media (min-width: 1200px) {
    .languages {
      position: relative;
      top: 0;
      left: 0;
      right: auto; } }
  .languages .nav {
    text-transform: uppercase; }
    @media (min-width: 1200px) {
      .languages .nav {
        margin: 0 0 0 20px;
        padding-right: 6px; } }
    .languages .nav li {
      float: left;
      position: relative;
      margin: 0; }
      .languages .nav li span,
      .languages .nav li a {
        padding: 12px 9px; }
        .languages .nav li span:after,
        .languages .nav li a:after {
          content: "-";
          position: absolute;
          right: -1px;
          top: 10px;
          color: #464b50; }
      .languages .nav li span {
        color: #f55028; }
      .languages .nav li:last-child span:after,
      .languages .nav li:last-child a:after {
        content: ""; }

button.hamburger {
  outline: 0; }
  @media (min-width: 600px) {
    button.hamburger {
      display: none; } }

.bottomer .nav {
  margin-top: 15px; }

.bottomer,
.nav-main-menu {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: all .2s ease;
  -o-transition: all .2s ease;
  transition: all .2s ease; }
  @media (min-width: 600px) {
    .bottomer,
    .nav-main-menu {
      max-height: none;
      overflow: visible; } }

nav.languages {
  top: -30px;
  opacity: 0;
  -webkit-transition: all .2s ease;
  -o-transition: all .2s ease;
  transition: all .2s ease; }
  @media (min-width: 600px) {
    nav.languages {
      top: 14px;
      opacity: 1; } }
  @media (min-width: 1200px) {
    nav.languages {
      top: 0; } }

.menu-open nav.languages {
  top: 14px;
  opacity: 1; }

.menu-open .bottomer {
  max-height: 240px; }
  @media (min-width: 600px) {
    .menu-open .bottomer {
      max-height: none; } }

.menu-open .nav-main-menu {
  max-height: 120px; }
  @media (min-width: 600px) {
    .menu-open .nav-main-menu {
      max-height: none; } }

@media (min-width: 1200px) {
  .nav {
    padding-right: 9px; } }

.languages {
  display: none; }

/*********************
FOOTER STYLES
*********************/
.footer {
  clear: both;
  background-color: #32373c;
  color: #fff; }
  .footer .logo-bottom {
    height: 56px;
    width: 160px;
    background-repeat: no-repeat;
    background-position: -11px -427px;
    background-image: url(../images/sprite.svg);
    text-indent: -9999px;
    display: block;
    margin-top: 80px; }
  .footer .footer-bottom {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    border-top: 1px solid #6e7378;
    padding: 36px 0 30px 0; }
    @media (min-width: 600px) {
      .footer .footer-bottom {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 36px 0 48px 0; } }
    @media (min-width: 768px) {
      .footer .footer-bottom {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between; } }
    .footer .footer-bottom .useful-links ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      margin: 12px 0;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .footer .footer-bottom .useful-links ul li {
        padding: 3px 0;
        margin: 0 12px;
        text-align: center; }
      @media (min-width: 600px) {
        .footer .footer-bottom .useful-links ul {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: normal;
              -ms-flex-direction: row;
                  flex-direction: row; }
          .footer .footer-bottom .useful-links ul li {
            margin: 0 24px;
            padding: 0; } }
    .footer .footer-bottom .languages-bottom span,
    .footer .footer-bottom p,
    .footer .footer-bottom a {
      font-size: 1.4em;
      font-weight: normal;
      font-stretch: normal;
      font-style: normal;
      line-height: 1;
      letter-spacing: normal;
      color: white; }
    .footer .footer-bottom p a {
      font-size: 1em; }
    .footer .footer-bottom .languages-bottom {
      text-transform: uppercase; }
      .footer .footer-bottom .languages-bottom ul {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row; }
      .footer .footer-bottom .languages-bottom li {
        position: relative;
        margin-left: 18px; }
        .footer .footer-bottom .languages-bottom li:first-child {
          margin-left: 0; }
        .footer .footer-bottom .languages-bottom li a:after,
        .footer .footer-bottom .languages-bottom li span:after {
          content: "-";
          position: absolute;
          display: block;
          top: -4px;
          left: -13px;
          font-size: 1.4em;
          font-weight: normal;
          font-stretch: normal;
          font-style: normal;
          line-height: 1;
          letter-spacing: normal;
          color: white;
          font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif; }
        .footer .footer-bottom .languages-bottom li span {
          color: #f55028; }
        .footer .footer-bottom .languages-bottom li:first-child a:after,
        .footer .footer-bottom .languages-bottom li:first-child span:after {
          content: ""; }
  .footer article.footer-item {
    margin-top: 40px;
    margin-bottom: 64px;
    width: 100%; }
    @media (min-width: 480px) {
      .footer article.footer-item .footer-item-holder {
        max-width: 180px; } }
    .footer article.footer-item .footer-item-holder p {
      -webkit-hyphens: none;
          -ms-hyphens: none;
              hyphens: none; }
    @media (min-width: 480px) {
      .footer article.footer-item {
        width: 50%; } }
    @media (min-width: 768px) {
      .footer article.footer-item {
        width: 25%; } }
    .footer article.footer-item h1 {
      font-size: 2.4em;
      font-weight: 600;
      font-stretch: normal;
      font-style: normal;
      line-height: 1;
      letter-spacing: normal;
      color: #fff;
      margin: 24px 0 16px 0; }
    .footer article.footer-item p {
      font-size: 1.4em;
      font-weight: normal;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #fff; }
    .footer article.footer-item a {
      font-size: 1.4em;
      font-weight: normal;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #f55028;
      margin-top: 12px;
      display: block; }
      .footer article.footer-item a:after {
        content: "";
        display: block;
        width: 6px;
        height: 12px;
        background-repeat: no-repeat;
        background-position: -55px -219px;
        background-image: url(../images/sprite.svg);
        display: inline-block;
        margin-left: 6px;
        top: 2px;
        position: relative; }
    .footer article.footer-item .socials {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
      .footer article.footer-item .socials a {
        margin-right: 9px; }
        .footer article.footer-item .socials a:after {
          display: none; }
        .footer article.footer-item .socials a img {
          height: 18px;
          width: auto;
          display: block;
          text-indent: -9999px;
          margin-right: 10px; }
    .footer article.footer-item img {
      width: auto;
      height: 40px;
      display: block; }
  .footer p {
    color: white; }

.article-tile {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .article-tile a:hover {
    text-decoration: none; }
  .article-tile .article-tile-tekst {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .article-tile .article-tile-tekst header {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .article-tile .featured-image-holder {
    display: block;
    width: 100%;
    height: 0;
    overflow: hidden;
    padding-bottom: 75%;
    background-color: #eaeced;
    position: relative; }
  .article-tile .featured-image {
    width: 100%;
    height: 100%;
    overflow: hidden;
    padding-bottom: 75%;
    background-position: center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out; }
  .article-tile .post-categories {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: 4px 0 12px 0; }
    .article-tile .post-categories a {
      line-height: 27px;
      height: 27px;
      border-radius: 15px;
      background-color: #eaeced;
      font-size: 1.2em;
      font-weight: 600;
      font-stretch: normal;
      font-style: normal;
      letter-spacing: normal;
      color: #464b50;
      display: block;
      padding: 0 12px;
      margin-right: 12px;
      margin-top: 12px;
      -webkit-transition: all .2s ease;
      -o-transition: all .2s ease;
      transition: all .2s ease; }
      .article-tile .post-categories a:hover {
        background-color: #5fdccd;
        color: white; }
  .article-tile:hover .featured-image {
    -webkit-transform: scale(1.05, 1.05);
        -ms-transform: scale(1.05, 1.05);
            transform: scale(1.05, 1.05); }
  .article-tile:hover h1 {
    color: #f55028; }
  .article-tile:hover p span {
    font-weight: 500; }
  .article-tile h1 {
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: normal;
    letter-spacing: normal;
    color: #464b50;
    margin-bottom: 12px;
    -webkit-transition: all .2s ease;
    -o-transition: all .2s ease;
    transition: all .2s ease;
    font-size: 2.4em; }
    @media (min-width: 1024px) {
      .article-tile h1 {
        font-size: 3.2em; } }
  .article-tile p {
    font-size: 1.6em;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
    color: #464b50; }
    .article-tile p span {
      display: block;
      color: #f55028;
      margin-top: 3px; }

.hide-excerpt h1 {
  font-size: 2.4em; }

.hide-excerpt .article-tile-excerpt {
  display: none; }

.hide-excerpt .article-tile-read-more {
  display: none; }

.related-posts {
  background-color: #f4f5f5;
  padding: 80px 0; }
  .related-posts .article-tile h1 {
    font-size: 2.4em;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: normal;
    color: #464b50; }

.error404 #content main article .entry-content p,
.error404 #content main article .entry-content li {
  font-size: 1.6em;
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.4;
  letter-spacing: normal;
  color: #464b50; }

.single #content main article {
  position: relative;
  margin-top: -90px;
  background: white; }
  .single #content main article header h1 {
    color: #464b50;
    padding: 30px 30px 30px 30px;
    font-size: 3.6em;
    font-weight: 500;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    margin-bottom: 0; }
    @media (min-width: 768px) {
      .single #content main article header h1 {
        padding: 45px 75px 30px 75px;
        font-size: 4.8em;
        margin-bottom: 30px;
        margin-top: 30px; } }
    @media (min-width: 1200px) {
      .single #content main article header h1 {
        padding: 45px 180px 30px 180px; } }
  .single #content main article .entry-content-holder {
    position: relative; }
  .single #content main article .entry-content {
    padding: 0;
    margin-bottom: 80px; }
    @media (min-width: 768px) {
      .single #content main article .entry-content {
        padding: 0 75px; } }
    @media (min-width: 1200px) {
      .single #content main article .entry-content {
        padding: 0 150px; } }
    .single #content main article .entry-content p,
    .single #content main article .entry-content li {
      font-size: 1.8em;
      font-weight: normal;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #464b50; }
      @media (min-width: 768px) {
        .single #content main article .entry-content p,
        .single #content main article .entry-content li {
          -webkit-hyphens: none;
              -ms-hyphens: none;
                  hyphens: none; } }
    .single #content main article .entry-content p:last-child {
      margin-bottom: 0; }
    .single #content main article .entry-content ul li {
      padding-left: 24px;
      position: relative; }
      .single #content main article .entry-content ul li:after {
        width: 6px;
        height: 6px;
        background-color: #464b50;
        border-radius: 3px;
        position: absolute;
        top: 8px;
        left: 4px;
        content: ""; }
    .single #content main article .entry-content pre {
      background-color: #e6e5ea;
      color: #464b50;
      margin: 0 60px 30px 30px;
      line-height: 1.5;
      border: none;
      border-radius: 24px;
      font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif, sans-serif;
      font-weight: 600;
      font-size: 1.6em;
      padding: 18px 21px; }
      @media (min-width: 600px) {
        .single #content main article .entry-content pre {
          margin: 0 120px 30px 30px; } }
      @media (min-width: 768px) {
        .single #content main article .entry-content pre {
          margin: 0 180px 30px 60px; } }
      @media (min-width: 1200px) {
        .single #content main article .entry-content pre {
          margin: 0 240px 30px 90px; } }
    .single #content main article .entry-content h1,
    .single #content main article .entry-content h2,
    .single #content main article .entry-content h3,
    .single #content main article .entry-content h4,
    .single #content main article .entry-content h5,
    .single #content main article .entry-content h6,
    .single #content main article .entry-content p,
    .single #content main article .entry-content ul,
    .single #content main article .entry-content ol {
      padding: 0 30px; }
      @media (min-width: 768px) {
        .single #content main article .entry-content h1,
        .single #content main article .entry-content h2,
        .single #content main article .entry-content h3,
        .single #content main article .entry-content h4,
        .single #content main article .entry-content h5,
        .single #content main article .entry-content h6,
        .single #content main article .entry-content p,
        .single #content main article .entry-content ul,
        .single #content main article .entry-content ol {
          padding: 0 60px; } }
      @media (min-width: 1200px) {
        .single #content main article .entry-content h1,
        .single #content main article .entry-content h2,
        .single #content main article .entry-content h3,
        .single #content main article .entry-content h4,
        .single #content main article .entry-content h5,
        .single #content main article .entry-content h6,
        .single #content main article .entry-content p,
        .single #content main article .entry-content ul,
        .single #content main article .entry-content ol {
          padding: 0 90px; } }
    .single #content main article .entry-content h2 {
      margin: 0 0 15px 0;
      font-size: 2.1em;
      font-weight: 600;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #464b50; }
    .single #content main article .entry-content h3 {
      margin: 0 0 15px 0;
      font-size: 1.8em;
      font-weight: 600;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #464b50; }
    .single #content main article .entry-content figure ul li {
      padding-left: 0; }
      .single #content main article .entry-content figure ul li:after {
        display: none; }
    .single #content main article .entry-content figure img {
      width: 100%;
      height: auto;
      margin: 0 auto; }
    .single #content main article .entry-content figure ul {
      padding: 0; }
    .single #content main article .entry-content figure figcaption {
      width: 100%;
      text-align: center;
      font-size: 1.2em;
      font-weight: normal;
      font-stretch: normal;
      font-style: normal;
      line-height: 1.4;
      letter-spacing: normal;
      color: #464b50; }
    .single #content main article .entry-content figure,
    .single #content main article .entry-content .fluid-width-video-wrapper {
      margin: 45px 0; }
    .single #content main article .entry-content figure figure {
      margin: 0; }
  .single #content main article .byline,
  .single #content main article .article-footer {
    display: none; }

.single .header {
  padding: 20px 0 20px 0; }
  @media (min-width: 1200px) {
    .single .header {
      padding: 40px 0 20px 0; } }

.single .sharing.mobile {
  padding: 0 30px; }
  .single .sharing.mobile .author .reading-time-holder {
    margin-top: 12px; }
  @media (min-width: 768px) {
    .single .sharing.mobile {
      display: none; } }

.single .sharing.desktop {
  display: none; }
  @media (min-width: 768px) {
    .single .sharing.desktop {
      display: block;
      position: absolute;
      top: 0;
      left: auto;
      margin: 0;
      overflow: visible;
      width: 135px;
      padding: 0; }
      .single .sharing.desktop .addtoany_list {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-top: 21px;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start; }
        .single .sharing.desktop .addtoany_list a {
          margin-left: 0;
          margin-right: 0; } }
  @media (min-width: 1200px) {
    .single .sharing.desktop {
      width: 240px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .single .sharing.desktop .sharing-wrap,
      .single .sharing.desktop .author {
        width: 120px;
        margin: 0; } }
  .single .sharing.desktop .addtoany_list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 21px; }
    .single .sharing.desktop .addtoany_list a {
      margin-left: 0;
      margin-right: 0; }
    @media (min-width: 1200px) {
      .single .sharing.desktop .addtoany_list {
        padding: 0;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center; }
        .single .sharing.desktop .addtoany_list a {
          margin-left: 0;
          margin-right: 0; } }
  .single .sharing.desktop .author {
    width: 120px;
    margin-left: 60px;
    margin-right: 60px; }
    .single .sharing.desktop .author .author-image {
      margin-bottom: 6px; }
      @media (min-width: 1024px) {
        .single .sharing.desktop .author .author-image {
          margin-left: 20px; } }
    .single .sharing.desktop .author .author-name {
      margin-right: 20px; }
      @media (min-width: 1024px) {
        .single .sharing.desktop .author .author-name {
          margin-left: 20px;
          margin-right: 0; } }
    .single .sharing.desktop .author .reading-time-holder {
      margin-right: 20px; }
      @media (min-width: 1024px) {
        .single .sharing.desktop .author .reading-time-holder {
          margin-left: 20px;
          margin-right: 0; } }
    @media (min-width: 768px) {
      .single .sharing.desktop .author {
        margin: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        width: 135px; }
        .single .sharing.desktop .author .reading-time-holder {
          margin-top: 3px; } }
    @media (min-width: 1024px) {
      .single .sharing.desktop .author {
        width: 120px; } }

.single .sharing .addtoany_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin-top: 12px;
  margin-bottom: 18px; }
  @media (min-width: 768px) {
    .single .sharing .addtoany_list {
      margin-bottom: 0; } }
  @media (min-width: 1024px) {
    .single .sharing .addtoany_list {
      padding-left: 20px; } }
  .single .sharing .addtoany_list a {
    padding: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    display: inline-block;
    margin-bottom: 15px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    margin-left: 6px;
    margin-right: 6px; }
    .single .sharing .addtoany_list a span,
    .single .sharing .addtoany_list a svg {
      display: none; }
    .single .sharing .addtoany_list a:first-child {
      margin-left: 0; }
    .single .sharing .addtoany_list a.a2a_button_facebook {
      background-image: url(../images/sharing/facebook.svg); }
    .single .sharing .addtoany_list a.a2a_button_twitter {
      background-image: url(../images/sharing/twitter.svg); }
    .single .sharing .addtoany_list a.a2a_button_linkedin {
      background-image: url(../images/sharing/linkedin.svg); }
    .single .sharing .addtoany_list a.a2a_button_email {
      background-image: url(../images/sharing/email.svg); }
    .single .sharing .addtoany_list a.a2a_button_copy_link {
      background-image: url(../images/sharing/hyperlink.svg); }
    .single .sharing .addtoany_list a.addtoany_share_save {
      display: none; }

.single .sharing .author {
  width: 120px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }
  .single .sharing .author .author-image {
    width: 80px;
    height: 80px;
    border-radius: 40px;
    background-color: #eaeced;
    display: inline-block;
    margin-bottom: 6px; }
  .single .sharing .author .author-name {
    font-size: 1.4em;
    font-weight: 800;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    text-align: right;
    color: #252526;
    text-align: left;
    margin: 6px 0 0 0; }
  .single .sharing .author .reading-time-holder {
    font-size: 1.4em;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    color: #808285;
    text-align: left;
    margin: 3px 0 6px 0; }
    .single .sharing .author .reading-time-holder:before {
      content: "";
      display: inline-block;
      width: 12px;
      height: 12px;
      background-image: url(../images/sharing/reading-time.svg);
      background-repeat: no-repeat;
      background-size: contain;
      margin-right: 1px;
      position: relative;
      top: 1px; }

.single .sharing + .uk-sticky-placeholder {
  display: none !important; }

.big-featured-image {
  width: 100%;
  max-height: 800px;
  height: 320px;
  height: calc(100vh - 128px - 150px);
  background-color: #eaeced;
  background-position: center center;
  background-size: cover; }

/*********************
RETINA (2x RESOLUTION DEVICES)
This applies to the retina iPhone (4s) and iPad (2,3) along with
other displays with a 2x resolution. You can also create a media
query for retina AND a certain size if you want. Go Nuts.
*********************/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  /******************************************************************
Site Name: 
Author: 

Stylesheet: Retina Screens & Devices Stylesheet

When handling retina screens you need to make adjustments, especially
if you're not using font icons. Here you can add them in one neat
place.

******************************************************************/
  /* 

EXAMPLE 
Let's say you have an image and you need to make sure it looks ok
on retina screens. Let's say we have an icon which dimension are
24px x 24px. In your regular stylesheets, it would look something
like this:

.icon {
	width: 24px;
	height: 24px;
	background: url(img/test.png) no-repeat;
}

For retina screens, we have to make some adjustments, so that image
doesn't look blurry. So, taking into account the image above and the
dimensions, this is what we would put in our retina stylesheet:

.icon {
	background: url(img/test@2x.png) no-repeat;
	background-size: 24px 24px;
}

So, you would create the same icon, but at double the resolution, meaning 
it would be 48px x 48px. You'd name it the same, but with a @2x at the end
(this is pretty standard practice). Set the background image so it matches
the original dimensions and you are good to go. 

*/ }

/*********************
PRINT STYLESHEET
Feel free to customize this. Remember to add things that won't make
sense to print at the bottom. Things like nav, ads, and forms should
be set to display none.
*********************/
@media print {
  /******************************************************************
Site Name:
Author:

Stylesheet: Print Stylesheet

This is the print stylesheet. There's probably not a lot
of reasons to edit this stylesheet. If you want to
though, go for it.

******************************************************************/
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    -webkit-filter: none !important;
            filter: none !important;
    -ms-filter: none !important; }
  a,
  a:visited {
    color: #444 !important;
    text-decoration: underline; }
    a:after, a:visited:after {
      content: " (" attr(href) ")"; }
    a abbr[title]:after, a:visited abbr[title]:after {
      content: " (" attr(title) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav {
    display: none; } }
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uL3Njc3Mvc3R5bGUuc2NzcyIsIi4uL3Njc3MvaW5jbHVkZXMvX25vcm1hbGl6ZS5zY3NzIiwiLi4vc2Nzcy9pbmNsdWRlcy9fdmFyaWFibGVzLnNjc3MiLCIuLi9zY3NzL2luY2x1ZGVzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9iYXNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvdmFyaWFibGVzLXRoZW1lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvbWl4aW5zLXRoZW1lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9saW5rLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9oZWFkaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9kaXZpZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9taXhpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvZGVzY3JpcHRpb24tbGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdGFibGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2ljb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2Zvcm0tcmFuZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2Zvcm0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2J1dHRvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc2VjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy90aWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9jYXJkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9jbG9zZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc3Bpbm5lci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdG90b3Auc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL21hcmtlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYWxlcnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2JhZGdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9sYWJlbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvb3ZlcmxheS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYXJ0aWNsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY29tbWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc2VhcmNoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9uYXYuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL25hdmJhci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc3VibmF2LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9icmVhZGNydW1iLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy90YWIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3NsaWRlbmF2LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9kb3RuYXYuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3RodW1ibmF2LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9hY2NvcmRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2Ryb3Auc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9tb2RhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbGlnaHRib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3NsaWRlc2hvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc2xpZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zdGlja3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL29mZmNhbnZhcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc3dpdGNoZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2xlYWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvaWNvbm5hdi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy90b29sdGlwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wbGFjZWhvbGRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvcHJvZ3Jlc3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3NvcnRhYmxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9jb3VudGRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvd2lkdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2hlaWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY29sdW1uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9jb3Zlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYmFja2dyb3VuZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYWxpZ24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3N2Zy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdXRpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvZmxleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbWFyZ2luLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wYWRkaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvaW52ZXJzZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvcHJpbnQuc2NzcyIsIi4uL3Njc3MvaW5jbHVkZXMvX2Z1bmN0aW9ucy5zY3NzIiwiLi4vc2Nzcy9pbmNsdWRlcy9fbWl4aW5zLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvX2hhbWJ1cmdlcnMuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy9fYmFzZS5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL18zZHguc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R4LXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R5LnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeS1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeHkuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R4eS1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2Fycm93LnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2Fycm93LXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3dhbHQuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3dhbHQtci5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19hcnJvd3R1cm4uc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3d0dXJuLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYm9yaW5nLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2NvbGxhcHNlLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2NvbGxhcHNlLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZWxhc3RpYy5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19lbGFzdGljLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZW1waGF0aWMuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZW1waGF0aWMtci5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19taW51cy5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19zbGlkZXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc2xpZGVyLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3Bpbi5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19zcGluLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3ByaW5nLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3NwcmluZy1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3N0YW5kLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3N0YW5kLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3F1ZWV6ZS5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL192b3J0ZXguc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fdm9ydGV4LXIuc2NzcyIsIi4uL3Njc3MvbW9kdWxlcy9fYWxlcnRzLnNjc3MiLCIuLi9zY3NzL21vZHVsZXMvX2J1dHRvbnMuc2NzcyIsIi4uL3Njc3MvbW9kdWxlcy9fZm9ybXMuc2NzcyIsIi4uL3Njc3MvcGFydHMvX2Jhc2Uuc2NzcyIsIi4uL3Njc3MvcGFydHMvX2hlYWRlci5zY3NzIiwiLi4vc2Nzcy9wYXJ0cy9fZm9vdGVyLnNjc3MiLCIuLi9zY3NzL3BhcnRzL19hcnRpY2xlLXRpbGUuc2NzcyIsIi4uL3Njc3MvcGFydHMvX3JlbGF0ZWQtcG9zdHMuc2NzcyIsIi4uL3Njc3MvcGFydHMvX3NpbmdsZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0cy9fMnguc2NzcyIsIi4uL3Njc3MvaW5jbHVkZXMvX3ByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCLG1EQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7Ozs7bUVBY21FO0FBRW5FOzs7OztzQkFLc0I7QUN2QnRCLGtGQUFrRjtBQUdsRjs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7OztFQVlJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7O0VBR0ksc0JBQXFCLEVBQ3hCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksY0FBYTtFQUNiLFVBQVMsRUFDWjs7QUFFRDs7O0dBR0c7QUZlSDs7RUVYSSxjQUFhLEVBQ2hCOztBQUVEOztnRkFFZ0Y7QUFFaEY7Ozs7R0FJRztBQUVIO0VBQ0ksd0JBQXVCO0VBQUUsT0FBTztFQUNoQywyQkFBMEI7RUFBRSxPQUFPO0VBQ25DLCtCQUE4QjtFQUFFLE9BQU8sRUFDMUM7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLFVBQVMsRUFDWjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSx3QkFBdUIsRUFDMUI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHFCQUFvQixFQUN2Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLFdBQVUsRUFDYjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOzs7R0FHRztBQUVIO0VBQ0ksZUFBYztFQUNkLGlCQUFnQixFQUNuQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksMEJBQXlCLEVBQzVCOztBQUVEOztHQUVHO0FBRUg7OztFQUdJLGtCQUFpQixFQUNwQjs7QUFFRDs7R0FFRztBQUVIOzs7RUFHSSxtQkFBa0IsRUFDckI7O0FBRUQ7O0dBRUc7QUFFSDtFQUVJLGdDQUF1QjtVQUF2Qix3QkFBdUI7RUFDdkIsVUFBUyxFQUNaOztBQUVEOztFQUVFO0FBRUY7RUFDRSxzQkFBcUI7RUFDckIsb0JBQXFCO0VBRXJCLGtCQUFxQjtNQUFyQixjQUFxQixFQUV0Qjs7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SW9CO0VDb2RFLG9ERDRmNEI7VUM1ZjVCLDRDRDRmNEIsRWlCbjBCckQ7O0FBR0Q7OEVBQzhFO0FBRTlFOzs7R0FHRztBQVpXO0VBZVYsaUJqQnpKb0I7RWlCMEpwQixZakJoTmU7RUMyZ0JTLG1ERDBmMEI7VUMxZjFCLDJDRDBmMEIsRWlCbnpCckQ7O0FBRUQ7RUFDSSxZakJ2TndCLEVpQnlOM0I7O0FBRUQ7RUFDSSx1QmpCcEtvQjtFQ3VkVSxvRER5Zm9CO1VDemZwQiw0Q0R5Zm9CLEVpQjF5QnJEOztBQUVEO0VoQmdUbUMsaUNEaFpaLEVpQmtHdEI7O0FBRUQ7RWhCNlNtQyw4QkRqWlosRWlCc0d0Qjs7QUFFRDs7R0FFRztBQXhDaUM7RUEyQ2hDLG9CakIxTitCO0VpQjJOL0IsWWpCek91QjtFQzZnQkMsbUREcWYwQjtVQ3JmMUIsMkNEcWYwQixFaUJ2eEJyRDs7QUFFRDtFQUNJLFlqQjlPdUIsRWlCZ1AxQjs7QUFFRDtFQUNJLDBCakJyTytCO0VDaWdCRCxvRERvZm9CO1VDcGZwQiw0Q0RvZm9CLEVpQjl3QnJEOztBQVFEOztHQUVHO0FBbEV1RDtFQXFFdEQsaUJqQjNNOEI7RWlCNE05QixZakJuUXVCO0VDZ2hCRyxtRERrZndCO1VDbGZ4QiwyQ0RrZndCLEVpQjd2QnJEOztBQUVEO0VBQ0ksWWpCeFF1QixFaUIwUTFCOztBQUVEO0VBQ0ksdUJqQnROOEI7RUMyZEUsb0REaWZrQjtVQ2pmbEIsNENEaWZrQixFaUJwdkJyRDs7QUFTRDs4RUFDOEU7QUFFOUU7O0dBRUc7QUFFSDs7RUFDK0IsbUJqQjFTWCxFaUIwUzZGOztBQUVqSDtFQUFpQyxtQmpCNVNiLEVpQjRTbUc7O0FBQ3ZIO0VBQWlDLG1CakI3U2IsRWlCNlNtRzs7QUFFdkg7O0dBRUc7QUFFSCx3QkFBd0I7QUFDeEI7RUFFSTs7SUFDK0IsbUJqQmpDVCxFaUJpQytGO0VBRXJIO0lBQWlDLG1CakJuQ1gsRWlCbUNxRztFQUMzSDtJQUFpQyxtQmpCcENYLEVpQm9DcUcsRUFBQTs7QWhCcU8zSDs7T0FFRztBQUVIO0VBQ0ksbUJEaGdCWTtF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VixxQ0FBNEI7WUFBNUIsNkJBQTRCLEVBQUE7RUFFaEM7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUE7RUFFL0I7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUE7RUFFL0I7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBNEI7WUFBNUIsNkJBQTRCLEVBQUE7RUFFaEM7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBNEI7WUFBNUIsNkJBQTRCLEVBQUE7RUFFaEM7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUE7RUFFL0I7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUE7RUFFL0I7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFB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LEVBQzVCO0U5Q09DOztJOENKQSx1QkFBc0I7SUFDdEIsMkJBQTBCLEVBVzNCO0lBYkQ7TUFNSSw2QkFBNEIsRUFDN0I7SUFQSDtNQVdJLDhCQUE2QixFQUM5QjtFQUdIOzs7SUFHRSxZQUFXLEVBQ1o7RTlDWEM7O0k4Q2NBLHVCQUFzQjtJQUN0Qix5QkFBd0IsRUFDekI7RTlDVkM7SThDYUEsNEJBQTJCLEVBQzVCO0U5Q1pDOztJOENlQSx5QkFBd0IsRUFDekI7RTNIZ1BIO0kySDdPSSwyQkFBMEIsRUFDM0I7RUFFQztJQUNFLGNBQWEsRUFBQTtFOUNoQmY7OztJOENvQkUsV0FBVTtJQUNWLFVBQVMsRUFDVjtFOUNmRDs7SThDbUJFLHdCQUF1QixFQUN4QjtFQUdEOzs7OztJQUtFLGNBQWEsRUFDZCxFQUFBIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qISBNYWRlIHdpdGggQm9uZXM6IGh0dHA6Ly90aGVtYmxlLmNvbS9ib25lcyA6KSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBNYWluIFN0eWxlc2hlZXRcblxuSGVyZSdzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLiBIZXJlLCB5b3UnbGwgc2VlIHdlIGFyZSBjYWxsaW5nIGluXG50aGUgc2VwYXJhdGUgbWVkaWEgcXVlcmllcy4gVGhlIGJhc2UgbW9iaWxlIGdvZXMgb3V0c2lkZSBhbnkgcXVlcnlcbmFuZCBpcyBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZywgYWZ0ZXIgdGhhdCB3ZSBjYWxsIHRoZSByZXN0XG5vZiB0aGUgc3R5bGVzIGluc2lkZSBtZWRpYSBxdWVyaWVzLlxuXG5IZWxwZnVsIGFydGljbGVzIG9uIFNhc3MgZmlsZSBvcmdhbml6YXRpb246XG5odHRwOi8vdGhlc2Fzc3dheS5jb20vYWR2YW5jZWQvbW9kdWxhci1jc3MtbmFtaW5nLWNvbnZlbnRpb25zXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbklNUE9SVElORyBQQVJUSUFMU1xuVGhlc2UgZmlsZXMgYXJlIG5lZWRlZCBhdCB0aGUgYmVnaW5uaW5nIHNvIHRoYXQgd2UgZXN0YWJsaXNoIGFsbFxub3VyIG1peGlucywgZnVuY3Rpb25zLCBhbmQgdmFyaWFibGVzIHRoYXQgd2UnbGwgYmUgdXNpbmcgYWNyb3NzXG50aGUgd2hvbGUgcHJvamVjdC5cbioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG5vcm1hbGl6ZS5jc3MgMjAxMi0wNy0wN1QwOTo1MCBVVEMgLSBodHRwOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogQWRkcmVzcyBgb3V0bGluZWAgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIENocm9tZSBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzksIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyxcbi5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5kZm4sXG5lbSxcbi5lbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qXG4gKiBwcm9wZXIgZm9ybWF0dGluZyAoaHR0cDovL2Jsb2cuZm9udGRlY2suY29tL3Bvc3QvOTAzNzAyODQ5Ny9oeXBoZW5zKVxuKi9cbnAge1xuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gIC1lcHViLWh5cGhlbnM6IGF1dG87XG4gIC1tb3otaHlwaGVuczogYXV0bztcbiAgaHlwaGVuczogYXV0bzsgfVxuXG4vKlxuICogQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFNi83LlxuICovXG5wcmUge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XG5cbi8qKlxuICogU2V0IGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuXG4gKi9cbnEge1xuICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xucTpiZWZvcmUsXG5xOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxuc21hbGwsIC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNzUlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBMaXN0c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzcuXG4gKi9cbmRsLFxubWVudSxcbm9sLFxudWwge1xuICBtYXJnaW46IDFlbSAwOyB9XG5cbmRkIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgcGFkZGluZ3Mgc2V0IGRpZmZlcmVudGx5IGluIElFNi83LlxuICovXG5tZW51IHtcbiAgcGFkZGluZzogMCAwIDAgNDBweDsgfVxuXG5vbCxcbnVsIHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi8qXG4gKiBDb3JyZWN0cyBsaXN0IGltYWdlcyBoYW5kbGVkIGluY29ycmVjdGx5IGluIElFNy5cbiAqL1xubmF2IHVsLFxubmF2IG9sIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBFbWJlZGRlZCBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGaWd1cmVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBDaHJvbWUsIFNhZmFyaSA1KywgYW5kIElFIDgrLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94IDQrIGFuZCBPcGVyYS5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmUgcmVhZGFiaWxpdHkgYW5kIGFsaWdubWVudCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgLyogMiAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4qIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmltYWdlLXJlcGxhY2VtZW50LFxuLmlyIHtcbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmNsZWFyZml4LCAuY2Yge1xuICB6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciwgLmNmOmJlZm9yZSwgLmNmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5jbGVhcmZpeDphZnRlciwgLmNmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxudXNlIHRoZSBiZXN0IGFtcGVyc2FuZFxuaHR0cDovL3NpbXBsZWJpdHMuY29tL25vdGVib29rLzIwMDgvMDgvMTQvYW1wZXJzYW5kcy0yL1xuKi9cbnNwYW4uYW1wIHtcbiAgZm9udC1mYW1pbHk6IEJhc2tlcnZpbGxlLCdHb3VkeSBPbGQgU3R5bGUnLFBhbGF0aW5vLCdCb29rIEFudGlxdWEnLHNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6XG5BdXRob3I6XG5cblN0eWxlc2hlZXQ6IFZhcmlhYmxlc1xuXG5IZXJlIGlzIHdoZXJlIHdlIGRlY2xhcmUgYWxsIG91ciB2YXJpYWJsZXMgbGlrZSBjb2xvcnMsIGZvbnRzLFxuYmFzZSB2YWx1ZXMsIGFuZCBkZWZhdWx0cy4gV2Ugd2FudCB0byBtYWtlIHN1cmUgdGhpcyBmaWxlIE9OTFlcbmNvbnRhaW5zIHZhcmlhYmxlcyB0aGF0IHdheSBvdXIgZmlsZXMgZG9uJ3QgZ2V0IGFsbCBtZXNzeS5cbk5vIG9uZSBsaWtlcyBhIG1lc3MuXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbkNPTE9SU1xuTmVlZCBoZWxwIHcvIGNob29zaW5nIHlvdXIgY29sb3JzPyBUcnkgdGhpcyBzaXRlIG91dDpcbmh0dHA6Ly8wdG8yNTUuY29tL1xuKioqKioqKioqKioqKioqKioqKioqL1xuLypcbkhlcmUncyBhIGdyZWF0IHR1dG9yaWFsIG9uIGhvdyB0b1xudXNlIGNvbG9yIHZhcmlhYmxlcyBwcm9wZXJseTpcbmh0dHA6Ly9zYWNoYWdyZWlmLmNvbS9zYXNzLWNvbG9yLXZhcmlhYmxlcy9cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6XG5BdXRob3I6XG5cblN0eWxlc2hlZXQ6IFR5cG9ncmFwaHlcblxuTmVlZCB0byBpbXBvcnQgYSBmb250IG9yIHNldCBvZiBpY29ucyBmb3IgeW91ciBzaXRlPyBEcm9wIHRoZW0gaW5cbmhlcmUgb3IganVzdCB1c2UgdGhpcyB0byBlc3RhYmxpc2ggeW91ciB0eXBvZ3JhcGhpY2FsIGdyaWQuIE9yIG5vdC5cbkRvIHdoYXRldmVyIHlvdSB3YW50IHRvLi4uR09TSCFcblxuSGVscGZ1bCBBcnRpY2xlczpcbmh0dHA6Ly90cmVudHdhbHRvbi5jb20vMjAxMi8wNi8xOS9mbHVpZC10eXBlL1xuaHR0cDovL2lhLm5ldC9ibG9nL3Jlc3BvbnNpdmUtdHlwb2dyYXBoeS10aGUtYmFzaWNzL1xuaHR0cDovL2FsaXN0YXBhcnQuY29tL2NvbHVtbi9yZXNwb25zaXZlLXR5cG9ncmFwaHktaXMtYS1waHlzaWNhbC1kaXNjaXBsaW5lXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbkZPTlQgRkFDRSAoSU4gWU9VUiBGQUNFKVxuKioqKioqKioqKioqKioqKioqKioqL1xuLyogIFRvIGVtYmVkIHlvdXIgb3duIGZvbnRzLCB1c2UgdGhpcyBzeW50YXhcbiAgYW5kIHBsYWNlIHlvdXIgZm9udHMgaW5zaWRlIHRoZVxuICBsaWJyYXJ5L2ZvbnRzIGZvbGRlci4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgb24gZW1iZWRkaW5nIGZvbnRzLCBnbyB0bzpcbiAgaHR0cDovL3d3dy5mb250c3F1aXJyZWwuY29tL1xuICBCZSBzdXJlIHRvIHJlbW92ZSB0aGUgY29tbWVudCBicmFja2V0cy5cbiovXG4vKiAgQGZvbnQtZmFjZSB7XG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgTmFtZSc7XG4gICAgICBzcmM6IHVybCgnbGlicmFyeS9mb250cy9mb250LW5hbWUuZW90Jyk7XG4gICAgICBzcmM6IHVybCgnbGlicmFyeS9mb250cy9mb250LW5hbWUuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICB1cmwoJ2xpYnJhcnkvZm9udHMvZm9udC1uYW1lLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICB1cmwoJ2xpYnJhcnkvZm9udHMvZm9udC1uYW1lLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICB1cmwoJ2xpYnJhcnkvZm9udHMvZm9udC1uYW1lLnN2ZyNmb250LW5hbWUnKSBmb3JtYXQoJ3N2ZycpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuKi9cbi8qXG5cblByb3hpbWEgTm92YSBMaWdodFxuXG5mb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBzYW5zLXNlcmlmO1xuZm9udC13ZWlnaHQ6IDMwMDtcbmZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXG5Qcm94aW1hIE5vdmEgTGlnaHQgSXRhbGljXG5cbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG5mb250LXdlaWdodDogMzAwO1xuZm9udC1zdHlsZTogaXRhbGljO1xuXG5cblByb3hpbWEgTm92YSBSZWd1bGFyXG5cbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG5mb250LXdlaWdodDogNDAwO1xuZm9udC1zdHlsZTogbm9ybWFsO1xuXG5cblByb3hpbWEgTm92YSBJdGFsaWNcblxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgc2Fucy1zZXJpZjtcbmZvbnQtd2VpZ2h0OiA0MDA7XG5mb250LXN0eWxlOiBpdGFsaWM7XG5cblxuUHJveGltYSBOb3ZhIE1lZGl1bVxuXG5mb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBzYW5zLXNlcmlmO1xuZm9udC13ZWlnaHQ6IDUwMDtcbmZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXG5Qcm94aW1hIE5vdmEgTWVkaXVtIEl0YWxpY1xuXG5mb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBzYW5zLXNlcmlmO1xuZm9udC13ZWlnaHQ6IDUwMDtcbmZvbnQtc3R5bGU6IGl0YWxpYztcblxuUHJveGltYSBOb3ZhIFNlbWlib2xkXG5cbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG5mb250LXdlaWdodDogNjAwO1xuZm9udC1zdHlsZTogbm9ybWFsO1xuXG5cblByb3hpbWEgTm92YSBTZW1pYm9sZCBJdGFsaWNcblxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgc2Fucy1zZXJpZjtcbmZvbnQtd2VpZ2h0OiA2MDA7XG5mb250LXN0eWxlOiBpdGFsaWM7XG5cbiovXG4vKlxuIGkgaW1wb3J0ZWQgdGhpcyBvbmUgaW4gdGhlIGZ1bmN0aW9ucyBmaWxlIHNvIGJvbmVzIHdvdWxkIGxvb2sgc3dlZXQuXG4gZG9uJ3QgZm9yZ2V0IHRvIHJlbW92ZSBpdCBmb3IgeW91ciBzaXRlLlxuKi9cbi8qXG5zb21lIG5pY2UgdHlwb2dyYXBoaWNhbCBkZWZhdWx0c1xubW9yZSBoZXJlOiBodHRwOi8vd3d3Lm5ld25ldC1zb2Z0LmNvbS9ibG9nL2Nzc3R5cG9ncmFwaHlcbiovXG5wIHtcbiAgLW1zLXdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gIC1tb3otaHlwaGVuczogYXV0bztcbiAgaHlwaGVuczogYXV0bztcbiAgLXdlYmtpdC1oeXBoZW5hdGUtYmVmb3JlOiAyO1xuICAtd2Via2l0LWh5cGhlbmF0ZS1hZnRlcjogMztcbiAgaHlwaGVuYXRlLWxpbmVzOiAzO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhXCIsIFwiZGxpZ1wiO1xuICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhPTEsIGRsaWc9MVwiO1xuICAtbXMtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImxpZ2FcIiwgXCJkbGlnXCI7XG4gIC1vLWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhXCIsIFwiZGxpZ1wiO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLCBcImRsaWdcIjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQmFzZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2V0IGBmb250LXNpemVgIHRvIHN1cHBvcnQgYHJlbWAgdW5pdHNcbiAqICAgIE5vdCB1c2luZyBgZm9udGAgcHJvcGVydHkgYmVjYXVzZSBhIGxlYWRpbmcgaHlwaGVuIChlLmcuIC1hcHBsZS1zeXN0ZW0pIGNhdXNlcyB0aGUgZm9udCB0byBicmVhayBpbiBJRTExIGFuZCBFZGdlXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqIDMuIFN0eWxlXG4gKi9cbmh0bWwge1xuICAvKiAxICovXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBMaW5rc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIFN0eWxlXG4gKi9cbmEsXG4udWstbGluayB7XG4gIGNvbG9yOiAjREE3RDAyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5hOmhvdmVyLFxuLnVrLWxpbms6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmssXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmsge1xuICBjb2xvcjogIzBmNmVjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gRWRnZS5cbiAqIDIuIFRoZSBzaG9ydGhhbmQgZGVjbGFyYXRpb24gYHVuZGVybGluZSBkb3R0ZWRgIGlzIG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBkb3R0ZWQ7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qXG4gKiAxLiBDb25zb2xhcyBoYXMgYSBiZXR0ZXIgYmFzZWxpbmUgaW4gcnVubmluZyB0ZXh0IGNvbXBhcmVkIHRvIGBDb3VyaWVyYFxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gU3R5bGVcbiAqL1xuOm5vdChwcmUpID4gY29kZSxcbjpub3QocHJlKSA+IGtiZCxcbjpub3QocHJlKSA+IHNhbXAge1xuICAvKiAxICovXG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2U7XG4gIC8qIDIgKi9cbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogMyAqL1xuICBjb2xvcjogI2YwNTA2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4vKlxuICogRW1waGFzaXplXG4gKi9cbmVtIHtcbiAgY29sb3I6ICM1YzZiODA7IH1cblxuLypcbiAqIEluc2VydFxuICovXG5pbnMge1xuICBiYWNrZ3JvdW5kOiAjZmZkO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBNYXJrXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmZkO1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxuICogUXVvdGVcbiAqL1xucSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLypcbiAqIFByZXZlbnRzIGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gZW1iZWRkZWQgY29udGVudCBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogMS4gQWRkIHJlc3BvbnNpdmVuZXNzLlxuICogMi4gQXV0by1zY2FsZSB0aGUgaGVpZ2h0LiBPbmx5IG5lZWRlZCBpZiBgaGVpZ2h0YCBhdHRyaWJ1dGUgaXMgcHJlc2VudC5cbiAqIDMuIENvcnJlY3RzIHJlc3BvbnNpdmUgYG1heC13aWR0aGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkLlxuICogNC4gRXhjbHVkZSBTVkdzIGZvciBJRTExIGJlY2F1c2UgdGhleSBkb24ndCBwcmVzZXJ2ZSB0aGVpciBhc3BlY3QgcmF0aW8uXG4gKi9cbmNhbnZhcyxcbmltZyxcbnZpZGVvIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDIgKi9cbiAgaGVpZ2h0OiBhdXRvO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyogNCAqL1xuQHN1cHBvcnRzIChkaXNwbGF5OiBibG9jaykge1xuICBzdmcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG5cbi8qXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG4gKiAxLiBGaXggbGF6eSBsb2FkaW5nIGltYWdlcyBpZiBwYXJlbnQgZWxlbWVudCBpcyBzZXQgdG8gYGRpc3BsYXk6IGlubGluZWAgYW5kIGhhcyBgb3ZlcmZsb3c6IGhpZGRlbmAuXG4gKiAyLiBIaWRlIGBhbHRgIHRleHQgZm9yIGxhenkgbG9hZGluZyBpbWFnZXMuXG4gKiBOb3RlOiBTZWxlY3RvciBmb3IgYmFja2dyb3VuZCB3aGlsZSBsb2FkaW5nIGltZ1tkYXRhLXNyYyo9Jy5qcGcnXVtzcmMqPSdkYXRhOmltYWdlJ10geyBiYWNrZ3JvdW5kOiBncmV5OyB9XG4gKi9cbmltZzpub3QoW3NyY10pIHtcbiAgLyogMSAqL1xuICBtaW4td2lkdGg6IDFweDtcbiAgLyogMiAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcbiAqIElmcmFtZVxuICogUmVtb3ZlIGJvcmRlciBpbiBhbGwgYnJvd3NlcnNcbiAqL1xuaWZyYW1lIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qIEJsb2NrIGVsZW1lbnRzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBNYXJnaW5zXG4gKi9cbnAsXG51bCxcbm9sLFxuZGwsXG5wcmUsXG5hZGRyZXNzLFxuZmllbGRzZXQsXG5maWd1cmUge1xuICBtYXJnaW46IDAgMCAwIDA7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgcCxcbiogKyB1bCxcbiogKyBvbCxcbiogKyBkbCxcbiogKyBwcmUsXG4qICsgYWRkcmVzcyxcbiogKyBmaWVsZHNldCxcbiogKyBmaWd1cmUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIEhlYWRpbmdzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmgxLCAudWstaDEsXG5oMiwgLnVrLWgyLFxuaDMsIC51ay1oMyxcbmg0LCAudWstaDQsXG5oNSwgLnVrLWg1LFxuaDYsIC51ay1oNixcbi51ay1oZWFkaW5nLXNtYWxsLFxuLnVrLWhlYWRpbmctbWVkaXVtLFxuLnVrLWhlYWRpbmctbGFyZ2UsXG4udWstaGVhZGluZy14bGFyZ2UsXG4udWstaGVhZGluZy0yeGxhcmdlIHtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMzIzOTQ0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBoMSwgKiArIC51ay1oMSxcbiogKyBoMiwgKiArIC51ay1oMixcbiogKyBoMywgKiArIC51ay1oMyxcbiogKyBoNCwgKiArIC51ay1oNCxcbiogKyBoNSwgKiArIC51ay1oNSxcbiogKyBoNiwgKiArIC51ay1oNixcbiogKyAudWstaGVhZGluZy1zbWFsbCxcbiogKyAudWstaGVhZGluZy1tZWRpdW0sXG4qICsgLnVrLWhlYWRpbmctbGFyZ2UsXG4qICsgLnVrLWhlYWRpbmcteGxhcmdlLFxuKiArIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi8qXG4gKiBTaXplc1xuICovXG5oMSwgLnVrLWgxIHtcbiAgZm9udC1zaXplOiAyLjIzMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbmgyLCAudWstaDIge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG5oMywgLnVrLWgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuaDQsIC51ay1oNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oNSwgLnVrLWg1IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg2LCAudWstaDYge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICBoMSwgLnVrLWgxIHtcbiAgICBmb250LXNpemU6IDIuNjI1cmVtOyB9XG4gIGgyLCAudWstaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfSB9XG5cbi8qIExpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbnVsLFxub2wge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLypcbiAqIFJlc2V0IG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gKi9cbnVsID4gbGkgPiB1bCxcbnVsID4gbGkgPiBvbCxcbm9sID4gbGkgPiBvbCxcbm9sID4gbGkgPiB1bCB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBEZXNjcmlwdGlvbiBsaXN0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogSG9yaXpvbnRhbCBydWxlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gQ2hyb21lLCBFZGdlIGFuZCBJRS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0LWFsaWduIGluIEVkZ2UgYW5kIElFLlxuICogMy4gU3R5bGVcbiAqL1xuaHIsIC51ay1ociB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgLyogMyAqL1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgaHIsXG4qICsgLnVrLWhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBBZGRyZXNzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogQmxvY2txdW90ZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIGJsb2NrcXVvdGUge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXG4gKiBDb250ZW50XG4gKi9cbmJsb2NrcXVvdGUgcDpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmJsb2NrcXVvdGUgZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM2NjY7IH1cbiAgYmxvY2txdW90ZSBmb290ZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuLyogUHJlZm9ybWF0dGVkIHRleHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250OiAwLjg3NXJlbSAvIDEuNSBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjNjY2O1xuICAtbW96LXRhYi1zaXplOiA0O1xuICB0YWItc2l6ZTogNDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbnByZSBjb2RlIHtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25hY28sIG1vbm9zcGFjZTsgfVxuXG4vKiBTZWxlY3Rpb24gcHNldWRvLWVsZW1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMzlmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuLyogSFRNTDUgZWxlbWVudHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZGV0YWlscyxcbm1haW4ge1xuICAvKiAyICovXG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogUGFzcyBtZWRpYSBicmVha3BvaW50cyB0byBKU1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQnJlYWtwb2ludHNcbiAqL1xuLnVrLWJyZWFrcG9pbnQtczo6YmVmb3JlIHtcbiAgY29udGVudDogXCI3NjhweFwiOyB9XG5cbi51ay1icmVha3BvaW50LW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiMTAyNHB4XCI7IH1cblxuLnVrLWJyZWFrcG9pbnQtbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCIxMjAwcHhcIjsgfVxuXG4udWstYnJlYWtwb2ludC14bDo6YmVmb3JlIHtcbiAgY29udGVudDogXCIxNjAwcHhcIjsgfVxuXG46cm9vdCB7XG4gIC0tdWstYnJlYWtwb2ludC1zOiA3NjhweDtcbiAgLS11ay1icmVha3BvaW50LW06IDEwMjRweDtcbiAgLS11ay1icmVha3BvaW50LWw6IDEyMDBweDtcbiAgLS11ay1icmVha3BvaW50LXhsOiAxNjAwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExpbmtcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTXV0ZWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYS51ay1saW5rLW11dGVkLFxuLnVrLWxpbmstbXV0ZWQgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbmEudWstbGluay1tdXRlZDpob3Zlcixcbi51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstbXV0ZWQsXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmstbXV0ZWQge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBUZXh0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmEudWstbGluay10ZXh0LFxuLnVrLWxpbmstdGV4dCBhIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuYS51ay1saW5rLXRleHQ6aG92ZXIsXG4udWstbGluay10ZXh0IGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstdGV4dCxcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay10ZXh0IHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSGVhZGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5hLnVrLWxpbmstaGVhZGluZyxcbi51ay1saW5rLWhlYWRpbmcgYSB7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbmEudWstbGluay1oZWFkaW5nOmhvdmVyLFxuLnVrLWxpbmstaGVhZGluZyBhOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLWhlYWRpbmcsXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmstaGVhZGluZyB7XG4gIGNvbG9yOiAjMWU4N2YwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogUmVzZXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgaW52ZXJzZSBjb21wb25lbnRcbiAqL1xuYS51ay1saW5rLXJlc2V0LFxuLnVrLWxpbmstcmVzZXQgYSB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGluay10b2dnbGUge1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udWstbGluay10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWFkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLXNtYWxsIHtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLnVrLWhlYWRpbmctbWVkaXVtIHtcbiAgZm9udC1zaXplOiAyLjg4NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7IH1cblxuLnVrLWhlYWRpbmctbGFyZ2Uge1xuICBmb250LXNpemU6IDMuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG4udWstaGVhZGluZy14bGFyZ2Uge1xuICBmb250LXNpemU6IDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICBmb250LXNpemU6IDZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi8qIFRhYmxldCBMYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstaGVhZGluZy1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAzLjI1cmVtOyB9XG4gIC51ay1oZWFkaW5nLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiAzLjVyZW07IH1cbiAgLnVrLWhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy14bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNnJlbTsgfVxuICAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICBmb250LXNpemU6IDhyZW07IH0gfVxuXG4vKiBMYXB0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstaGVhZGluZy1tZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA2cmVtOyB9XG4gIC51ay1oZWFkaW5nLXhsYXJnZSB7XG4gICAgZm9udC1zaXplOiA4cmVtOyB9XG4gIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFyZW07IH0gfVxuXG4vKiBQcmltYXJ5XG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmctbWVkaXVtYCBpbnN0ZWFkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG4vKiBIZXJvXG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmcteGxhcmdlYCBpbnN0ZWFkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLWRpdmlkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyg1cHggKyAwLjFlbSk7XG4gIGJvcmRlci1ib3R0b206IGNhbGMoMC4ycHggKyAwLjA1ZW0pIHNvbGlkICNlNWU1ZTU7IH1cblxuLyogQnVsbGV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLWJ1bGxldCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKlxuICogMS4gVXNpbmcgYGlubGluZS1ibG9ja2AgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGV4dCBhbGlnbm1lbnRcbiAqIDIuIENlbnRlciB2ZXJ0aWNhbGx5XG4gKiAzLiBTdHlsZVxuICovXG4udWstaGVhZGluZy1idWxsZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiBjYWxjKC0wLjEgKiAxZW0pO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAzICovXG4gIGhlaWdodDogY2FsYyg0cHggKyAwLjdlbSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYyg1cHggKyAwLjJlbSk7XG4gIGJvcmRlci1sZWZ0OiBjYWxjKDVweCArIDAuMWVtKSBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIExpbmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENsaXAgdGhlIGNoaWxkIGVsZW1lbnRcbiAqL1xuLnVrLWhlYWRpbmctbGluZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIEV4dHJhIG1hcmt1cCBpcyBuZWVkZWQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGV4dCBhbGlnblxuICovXG4udWstaGVhZGluZy1saW5lID4gKiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXG4gKiAxLiBDZW50ZXIgdmVydGljYWxseVxuICogMi4gTWFrZSB0aGUgZWxlbWVudCBhcyBsYXJnZSBhcyBwb3NzaWJsZS4gSXQncyBjbGlwcGVkIGJ5IHRoZSBjb250YWluZXIuXG4gKiAzLiBTdHlsZVxuICovXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUsXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gKGNhbGMoMC4ycHggKyAwLjA1ZW0pIC8gMikpO1xuICAvKiAyICovXG4gIHdpZHRoOiAyMDAwcHg7XG4gIC8qIDMgKi9cbiAgYm9yZGVyLWJvdHRvbTogY2FsYygwLjJweCArIDAuMDVlbSkgc29saWQgI2U1ZTVlNTsgfVxuXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUge1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDVweCArIDAuM2VtKTsgfVxuXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDVweCArIDAuM2VtKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVzZXQgZGVmYXVsdCBgaHJgXG4gKiAyLiBTZXQgbWFyZ2luIGlmIGEgYGRpdmAgaXMgdXNlZCBmb3Igc2VtYW50aWNhbCByZWFzb25cbiAqL1xuW2NsYXNzKj0ndWstZGl2aWRlciddIHtcbiAgLyogMSAqL1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBbY2xhc3MqPSd1ay1kaXZpZGVyJ10ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRpdmlkZXItaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjIwJTIyJTIwaGVpZ2h0JTNEJTIyMjAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMCUyMDIwJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyM2U1ZTVlNSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMjBjeCUzRCUyMjEwJTIyJTIwY3klM0QlMjIxMCUyMiUyMHIlM0QlMjI3JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG5cbi51ay1kaXZpZGVyLWljb246OmJlZm9yZSxcbi51ay1kaXZpZGVyLWljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtICg1MHB4IC8gMikpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4udWstZGl2aWRlci1pY29uOjpiZWZvcmUge1xuICByaWdodDogY2FsYyg1MCUgKyAoNTBweCAvIDIpKTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICBsZWZ0OiBjYWxjKDUwJSArICg1MHB4IC8gMikpO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gRml4IGhlaWdodCBiZWNhdXNlIG9mIGBpbmxpbmUtYmxvY2tgXG4gKiAyLiBVc2luZyA6OmFmdGVyIGFuZCBpbmxpbmUtYmxvY2sgdG8gbWFrZSBgdGV4dC1hbGlnbmAgd29ya1xuICovXG4vKiAxICovXG4udWstZGl2aWRlci1zbWFsbCB7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8qIDIgKi9cbi51ay1kaXZpZGVyLXNtYWxsOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi8qIFZlcnRpY2FsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBMaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saXN0IHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1saXN0ID4gbGkgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLypcbiAqIFN0eWxlXG4gKi9cbi51ay1saXN0ID4gbGk6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdCA+IGxpID4gdWwge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi8qIFR5cGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saXN0LWRpc2MsXG4udWstbGlzdC1jaXJjbGUsXG4udWstbGlzdC1zcXVhcmUsXG4udWstbGlzdC1kZWNpbWFsLFxuLnVrLWxpc3QtaHlwaGVuIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi51ay1saXN0LWRpc2Mge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxuLnVrLWxpc3QtY2lyY2xlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IH1cblxuLnVrLWxpc3Qtc3F1YXJlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH1cblxuLnVrLWxpc3QtZGVjaW1hbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsgfVxuXG4udWstbGlzdC1oeXBoZW4ge1xuICBsaXN0LXN0eWxlLXR5cGU6ICfigJMgICc7IH1cblxuLyogQ29sb3IgbW9kaWZpZXJzXG4gKiBEb2Vzbid0IHdvcmsgaW4gQ2hyb21lIGFuZCBFZGdlIHlldFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlzdC1tdXRlZCBsaTo6bWFya2VyIHtcbiAgY29sb3I6ICM5OTkgIWltcG9ydGFudDsgfVxuXG4udWstbGlzdC1lbXBoYXNpcyBsaTo6bWFya2VyIHtcbiAgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgfVxuXG4udWstbGlzdC1wcmltYXJ5IGxpOjptYXJrZXIge1xuICBjb2xvcjogIzFlODdmMCAhaW1wb3J0YW50OyB9XG5cbi51ay1saXN0LXNlY29uZGFyeSBsaTo6bWFya2VyIHtcbiAgY29sb3I6ICMyMjIgIWltcG9ydGFudDsgfVxuXG4vKiBJbWFnZSBidWxsZXQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpc3QtYnVsbGV0ID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4udWstbGlzdC1idWxsZXQgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYlMjA2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwY3glM0QlMjIzJTIyJTIwY3klM0QlMjIzJTIyJTIwciUzRCUyMjMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3RyaXBlZFxuICovXG4udWstbGlzdC1zdHJpcGVkID4gbGkge1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7IH1cbiAgLnVrLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1vZi10eXBlKG9kZCkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi51ay1saXN0LXN0cmlwZWQgPiBsaTpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4udWstbGlzdC1zdHJpcGVkID4gbGk6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpc3QtbGFyZ2UgPiBsaTpudGgtY2hpbGQobisyKSxcbi51ay1saXN0LWxhcmdlID4gbGkgPiB1bCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLnVrLWxpc3QtY29sbGFwc2UgPiBsaTpudGgtY2hpbGQobisyKSxcbi51ay1saXN0LWNvbGxhcHNlID4gbGkgPiB1bCB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuLnVrLWxpc3QtbGFyZ2UudWstbGlzdC1kaXZpZGVyID4gbGk6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nLXRvcDogMjBweDsgfVxuXG4udWstbGlzdC1jb2xsYXBzZS51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi8qXG4gKiBTdHJpcGVkXG4gKi9cbi51ay1saXN0LWxhcmdlLnVrLWxpc3Qtc3RyaXBlZCA+IGxpIHtcbiAgcGFkZGluZzogMjBweCAxMHB4OyB9XG5cbi51ay1saXN0LWNvbGxhcHNlLnVrLWxpc3Qtc3RyaXBlZCA+IGxpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi51ay1saXN0LWxhcmdlLnVrLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QtY29sbGFwc2UudWstbGlzdC1zdHJpcGVkID4gbGk6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEZXNjcmlwdGlvbiBsaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBUZXJtXG4gKi9cbi51ay1kZXNjcmlwdGlvbi1saXN0ID4gZHQge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udWstZGVzY3JpcHRpb24tbGlzdCA+IGR0Om50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKlxuICogRGVzY3JpcHRpb25cbiAqL1xuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIExpbmVcbiAqL1xuLnVrLWRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlciA+IGR0Om50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICogMi4gQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiAzLiBTdHlsZVxuICovXG4udWstdGFibGUge1xuICAvKiAxICovXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXRhYmxlIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBIZWFkZXIgY2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU3R5bGVcbiAqL1xuLnVrLXRhYmxlIHRoIHtcbiAgcGFkZGluZzogMTZweCAxMnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qIENlbGxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlIHRkIHtcbiAgcGFkZGluZzogMTZweCAxMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLXRhYmxlIHRkID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEZvb3RlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGFibGUgdGZvb3Qge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIENhcHRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlIGNhcHRpb24ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlLW1pZGRsZSxcbi51ay10YWJsZS1taWRkbGUgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay10YWJsZS1kaXZpZGVyID4gdHI6bm90KDpmaXJzdC1jaGlsZCksXG4udWstdGFibGUtZGl2aWRlciA+IDpub3QoOmZpcnN0LWNoaWxkKSA+IHRyLFxuLnVrLXRhYmxlLWRpdmlkZXIgPiA6Zmlyc3QtY2hpbGQgPiB0cjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qXG4gKiBTdHJpcGVkXG4gKi9cbi51ay10YWJsZS1zdHJpcGVkID4gdHI6bnRoLW9mLXR5cGUob2RkKSxcbi51ay10YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIEhvdmVyXG4gKi9cbi51ay10YWJsZS1ob3ZlciA+IHRyOmhvdmVyLFxuLnVrLXRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZDsgfVxuXG4vKiBBY3RpdmUgc3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlID4gdHIudWstYWN0aXZlLFxuLnVrLXRhYmxlIHRib2R5IHRyLnVrLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmQ7IH1cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGFibGUtc21hbGwgdGgsXG4udWstdGFibGUtc21hbGwgdGQge1xuICBwYWRkaW5nOiAxMHB4IDEycHg7IH1cblxuLnVrLXRhYmxlLWxhcmdlIHRoLFxuLnVrLXRhYmxlLWxhcmdlIHRkIHtcbiAgcGFkZGluZzogMjJweCAxMnB4OyB9XG5cbi8qIEp1c3RpZnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlLWp1c3RpZnkgdGg6Zmlyc3QtY2hpbGQsXG4udWstdGFibGUtanVzdGlmeSB0ZDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4udWstdGFibGUtanVzdGlmeSB0aDpsYXN0LWNoaWxkLFxuLnVrLXRhYmxlLWp1c3RpZnkgdGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLyogQ2VsbCBzaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10YWJsZS1zaHJpbmsge1xuICB3aWR0aDogMXB4OyB9XG5cbi51ay10YWJsZS1leHBhbmQge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbi8qIENlbGwgbGluayBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRG9lcyBub3Qgd29yayB3aXRoIGB1ay10YWJsZS1qdXN0aWZ5YCBhdCB0aGUgbW9tZW50XG4gKi9cbi51ay10YWJsZS1saW5rIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi51ay10YWJsZS1saW5rID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNnB4IDEycHg7IH1cblxuLnVrLXRhYmxlLXNtYWxsIC51ay10YWJsZS1saW5rID4gYSB7XG4gIHBhZGRpbmc6IDEwcHggMTJweDsgfVxuXG4vKiBSZXNwb25zaXZlIHRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudWstdGFibGUtcmVzcG9uc2l2ZSxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGJvZHksXG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZCxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZCB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSAudWstdGFibGUtbGluazpub3QoOmZpcnN0LWNoaWxkKSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmxhc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRkOm5vdCg6bGFzdC1jaGlsZCk6bm90KC51ay10YWJsZS1saW5rKSxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgLnVrLXRhYmxlLWxpbms6bm90KDpsYXN0LWNoaWxkKSA+IGEge1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHggIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi51ay10YWJsZSB0Ym9keSB0ciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBsaW5lYXI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIE5vdGU6IDEuIC0gNy4gaXMgcmVxdWlyZWQgZm9yIGBidXR0b25gIGVsZW1lbnRzLiBOZWVkZWQgZm9yIENsb3NlIGFuZCBGb3JtIEljb24gY29tcG9uZW50LlxuICogMS4gUmVtb3ZlIG1hcmdpbnMgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICogMi4gUmVtb3ZlIGJvcmRlcnMgZm9yIGBidXR0b25gLlxuICogMy4gUmVtb3ZlIGJvcmRlci1yYWRpdXMgaW4gQ2hyb21lLlxuICogNC4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cbiAqIDUuIENvcnJlY3QgYGZvbnRgIHByb3BlcnRpZXMgYW5kIGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBmb3IgYGJ1dHRvbmAuXG4gKiA2LiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDcuIFJlbW92ZSBkZWZhdWx0IGBidXR0b25gIHBhZGRpbmcgYW5kIGJhY2tncm91bmQgY29sb3JcbiAqIDguIFN0eWxlXG4gKiA5LiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XG4gKiAxMC4gTGV0IHRoZSBjb250YWluZXIgZml0IHRoZSBoZWlnaHQgb2YgdGhlIGljb25cbiAqL1xuLnVrLWljb24ge1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIDMgKi9cbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogNCAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogNSAqL1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogNiAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogNy4gKi9cbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDggKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiA5ICovXG4gIGZpbGw6IGN1cnJlbnRjb2xvcjtcbiAgLyogMTAgKi9cbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuLyogUmVxdWlyZWQgZm9yIGBidXR0b25gLiAqL1xuYnV0dG9uLnVrLWljb246bm90KDpkaXNhYmxlZCkge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbi51ay1pY29uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBTZXQgdGhlIGZpbGwgYW5kIHN0cm9rZSBjb2xvciBvZiBhbGwgU1ZHIGVsZW1lbnRzIHRvIHRoZSBjdXJyZW50IHRleHQgY29sb3JcbiAqL1xuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkge1xuICBmaWxsOiBjdXJyZW50Y29sb3I7IH1cblxuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7XG4gIHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxuICovXG4udWstaWNvbiA+ICoge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4vKiBJbWFnZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGlzcGxheSBpbWFnZXMgaW4gaWNvbiBkaW1lbnNpb25zXG4gKi9cbi51ay1pY29uLWltYWdlIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogTGlua1xuICovXG4udWstaWNvbi1saW5rIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLWljb24tbGluazpob3Zlcixcbi51ay1pY29uLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstaWNvbi1saW5rOmFjdGl2ZSxcbi51ay1hY3RpdmUgPiAudWstaWNvbi1saW5rIHtcbiAgY29sb3I6ICM1OTU5NTk7IH1cblxuLypcbiAqIEJ1dHRvblxuICogMS4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKi9cbi51ay1pY29uLWJ1dHRvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzk5OTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1pY29uLWJ1dHRvbjpob3Zlcixcbi51ay1pY29uLWJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1pY29uLWJ1dHRvbjphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGVkZTtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEZvcm0gUmFuZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE5vcm1hbGl6ZSBhbmQgZGVmYXVsdHNcbiAqIDIuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBhIGZpeGVkIHdpZHRoIGlzIHVzZWRcbiAqIDMuIFRha2UgdGhlIGZ1bGwgd2lkdGhcbiAqIDQuIFJlbW92ZSBkZWZhdWx0IHN0eWxlXG4gKiA1LiBSZW1vdmUgd2hpdGUgYmFja2dyb3VuZCBpbiBDaHJvbWVcbiAqIDYuIFJlbW92ZSBwYWRkaW5nIGluIElFMTFcbiAqL1xuLnVrLXJhbmdlIHtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDIgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiA0ICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgLyogNiAqL1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qIEZvY3VzICovXG4udWstcmFuZ2U6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi51ay1yYW5nZTo6LW1vei1mb2N1cy1vdXRlciB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vKiBJRTExIFJlc2V0ICovXG4udWstcmFuZ2U6Oi1tcy10cmFjayB7XG4gIGhlaWdodDogMTVweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogSW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGZvciBjbGlja2FibGUgZWxlbWVudHNcbiAqL1xuLnVrLXJhbmdlOm5vdCg6ZGlzYWJsZWQpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udWstcmFuZ2U6bm90KDpkaXNhYmxlZCk6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnVrLXJhbmdlOm5vdCg6ZGlzYWJsZWQpOjotbXMtdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyogVGh1bWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG4vKiBXZWJraXQgKi9cbi51ay1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAvKiAxICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTdweDtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2JjYjsgfVxuXG4vKiBGaXJlZm94ICovXG4udWstcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAvKiAxICovXG4gIGJvcmRlcjogbm9uZTtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2JjYjsgfVxuXG4vKiBFZGdlICovXG4udWstcmFuZ2U6Oi1tcy10aHVtYiB7XG4gIC8qIDEgKi9cbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBJRTExICovXG4udWstcmFuZ2U6Oi1tcy10aHVtYiB7XG4gIC8qIDEgKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiAyICovXG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjYmNiOyB9XG5cbi8qIEVkZ2UgKyBJRTExICovXG4udWstcmFuZ2U6Oi1tcy10b29sdGlwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBUcmFja1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2FmYXJpIGRvZXNuJ3QgaGF2ZSBhIGZvY3VzIHN0YXRlLiBVc2luZyBhY3RpdmUgaW5zdGVhZC5cbiAqL1xuLyogV2Via2l0ICovXG4udWstcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XG5cbi51ay1yYW5nZTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2ssXG4udWstcmFuZ2U6YWN0aXZlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNkMmQyZDI7IH1cblxuLyogRmlyZWZveCAqL1xuLnVrLXJhbmdlOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XG5cbi51ay1yYW5nZTpmb2N1czo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNkMmQyZDI7IH1cblxuLyogRWRnZSAqL1xuLnVrLXJhbmdlOjotbXMtZmlsbC1sb3dlcixcbi51ay1yYW5nZTo6LW1zLWZpbGwtdXBwZXIge1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNTAwcHg7IH1cblxuLnVrLXJhbmdlOmZvY3VzOjotbXMtZmlsbC1sb3dlcixcbi51ay1yYW5nZTpmb2N1czo6LW1zLWZpbGwtdXBwZXIge1xuICBiYWNrZ3JvdW5kOiAjZDJkMmQyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBGb3JtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBEZWZpbmUgY29uc2lzdGVudCBib3ggc2l6aW5nLlxuICogICAgRGVmYXVsdCBpcyBgY29udGVudC1ib3hgIHdpdGggZm9sbG93aW5nIGV4Y2VwdGlvbnMgc2V0IHRvIGBib3JkZXItYm94YFxuICogICAgYHNlbGVjdGAsIGBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1gIGFuZCBgaW5wdXRbdHlwZT1cInJhZGlvXCJdYFxuICogICAgYGlucHV0W3R5cGU9XCJzZWFyY2hcIl1gIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYVxuICogICAgYGlucHV0W3R5cGU9XCJjb2xvclwiXWAgaW4gRmlyZWZveFxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxuICogMy4gUmVtb3ZlIGBib3JkZXItcmFkaXVzYCBpbiBpT1MuXG4gKiA0LiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEsXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDQgKi9cbiAgZm9udDogaW5oZXJpdDsgfVxuXG4vKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuLnVrLWlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuLnVrLXNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qXG4gKiAxLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDIuIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgYW5kIHVzZSBgYm9sZGAgaW5zdGVhZC5cbiAqIE5PVEU6IEJvdGggZGVjbGFyYXRpb25zIGRvbid0IHdvcmsgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICovXG4udWstc2VsZWN0IG9wdGdyb3VwIHtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuLnVrLXRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIG9uIE9TIFggYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG4udWstaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLnVrLWlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cbi51ay1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcixcbi51ay10ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIEltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBmb3IgY2xpY2thYmxlIGVsZW1lbnRzXG4gKi9cbi51ay1yYWRpbzpub3QoOmRpc2FibGVkKSxcbi51ay1jaGVja2JveDpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG4udWstZmllbGRzZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBJbnB1dCwgc2VsZWN0IGFuZCB0ZXh0YXJlYVxuICogQWxsb3dlZDogYHRleHRgLCBgcGFzc3dvcmRgLCBgZGF0ZXRpbWVgLCBgZGF0ZXRpbWUtbG9jYWxgLCBgZGF0ZWAsICBgbW9udGhgLFxuICAgICAgICAgICAgYHRpbWVgLCBgd2Vla2AsIGBudW1iZXJgLCBgZW1haWxgLCBgdXJsYCwgYHNlYXJjaGAsIGB0ZWxgLCBgY29sb3JgXG4gKiBEaXNhbGxvd2VkOiBgcmFuZ2VgLCBgcmFkaW9gLCBgY2hlY2tib3hgLCBgZmlsZWAsIGBzdWJtaXRgLCBgcmVzZXRgIGFuZCBgaW1hZ2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKi9cbi51ay1pbnB1dCxcbi51ay10ZXh0YXJlYSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKlxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93IGlmIGEgZml4ZWQgd2lkdGggaXMgdXNlZFxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aFxuICogMy4gUmVzZXQgZGVmYXVsdFxuICogNC4gU3R5bGVcbiAqL1xuLnVrLWlucHV0LFxuLnVrLXNlbGVjdCxcbi51ay10ZXh0YXJlYSB7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIGJvcmRlcjogMCBub25lO1xuICAvKiA0ICovXG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7IH1cblxuLypcbiAqIFNpbmdsZS1saW5lXG4gKiAxLiBBbGxvdyBhbnkgZWxlbWVudCB0byBsb29rIGxpa2UgYW4gYGlucHV0YCBvciBgc2VsZWN0YCBlbGVtZW50XG4gKiAyLiBNYWtlIHN1cmUgbGluZS1oZWlnaHQgaXMgbm90IGxhcmdlciB0aGFuIGhlaWdodFxuICogICAgQWxzbyBuZWVkZWQgdG8gY2VudGVyIHRoZSB0ZXh0IHZlcnRpY2FsbHlcbiAqL1xuLnVrLWlucHV0LFxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qIDIgKi9cbi51ay1pbnB1dDpub3QoaW5wdXQpLFxuLnVrLXNlbGVjdDpub3Qoc2VsZWN0KSB7XG4gIGxpbmUtaGVpZ2h0OiAzOHB4OyB9XG5cbi8qXG4gKiBNdWx0aS1saW5lXG4gKi9cbi51ay1zZWxlY3RbbXVsdGlwbGVdLFxuLnVrLXNlbGVjdFtzaXplXSxcbi51ay10ZXh0YXJlYSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLyogRm9jdXMgKi9cbi51ay1pbnB1dDpmb2N1cyxcbi51ay1zZWxlY3Q6Zm9jdXMsXG4udWstdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLWNvbG9yOiAjMWU4N2YwOyB9XG5cbi8qIERpc2FibGVkICovXG4udWstaW5wdXQ6ZGlzYWJsZWQsXG4udWstc2VsZWN0OmRpc2FibGVkLFxuLnVrLXRleHRhcmVhOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTsgfVxuXG4vKlxuICogUGxhY2Vob2xkZXJcbiAqL1xuLnVrLWlucHV0OjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstdGV4dGFyZWE6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNtYWxsXG4gKi9cbi51ay1mb3JtLXNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4udWstZm9ybS1zbWFsbDpub3QodGV4dGFyZWEpOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDsgfVxuXG4udWstZm9ybS1zbWFsbDpub3Qoc2VsZWN0KTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSkge1xuICBsaW5lLWhlaWdodDogMjhweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLnVrLWZvcm0tbGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuLnVrLWZvcm0tbGFyZ2U6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDU1cHg7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuXG4udWstZm9ybS1sYXJnZTpub3Qoc2VsZWN0KTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSkge1xuICBsaW5lLWhlaWdodDogNTNweDsgfVxuXG4vKiBTdHlsZSBtb2RpZmllciAoYHVrLWlucHV0YCwgYHVrLXNlbGVjdGAgYW5kIGB1ay10ZXh0YXJlYWApXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBFcnJvclxuICovXG4udWstZm9ybS1kYW5nZXIsXG4udWstZm9ybS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogI2YwNTA2ZTtcbiAgYm9yZGVyLWNvbG9yOiAjZjA1MDZlOyB9XG5cbi8qXG4gKiBTdWNjZXNzXG4gKi9cbi51ay1mb3JtLXN1Y2Nlc3MsXG4udWstZm9ybS1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMzMmQyOTY7XG4gIGJvcmRlci1jb2xvcjogIzMyZDI5NjsgfVxuXG4vKlxuICogQmxhbmtcbiAqL1xuLnVrLWZvcm0tYmxhbmsge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi51ay1mb3JtLWJsYW5rOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDsgfVxuXG4vKiBXaWR0aCBtb2RpZmllcnMgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRml4ZWQgd2lkdGhzXG4gKiBEaWZmZXJlbnQgd2lkdGhzIGZvciBtaW5pIHNpemVkIGBpbnB1dGAgYW5kIGBzZWxlY3RgIGVsZW1lbnRzXG4gKi9cbmlucHV0LnVrLWZvcm0td2lkdGgteHNtYWxsIHtcbiAgd2lkdGg6IDUwcHg7IH1cblxuc2VsZWN0LnVrLWZvcm0td2lkdGgteHNtYWxsIHtcbiAgd2lkdGg6IDc1cHg7IH1cblxuLnVrLWZvcm0td2lkdGgtc21hbGwge1xuICB3aWR0aDogMTMwcHg7IH1cblxuLnVrLWZvcm0td2lkdGgtbWVkaXVtIHtcbiAgd2lkdGg6IDIwMHB4OyB9XG5cbi51ay1mb3JtLXdpZHRoLWxhcmdlIHtcbiAgd2lkdGg6IDUwMHB4OyB9XG5cbi8qIFNlbGVjdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVtb3ZlIGRlZmF1bHQgc3R5bGUuIEFsc28gd29ya3MgaW4gRmlyZWZveFxuICogMi4gU3R5bGVcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIElFIDEwLzExXG4gKiA0LiBTZXQgYGNvbG9yYCBmb3Igb3B0aW9ucyBpbiB0aGUgc2VsZWN0IGRyb3Bkb3duLCBiZWNhdXNlIHRoZSBpbmhlcml0ZWQgYGNvbG9yYCBtaWdodCBiZSB0b28gbGlnaHQuXG4gKi9cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMiAqL1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDklMjA2JTIwMTUlMjA2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDEzJTIwOSUyMDglMjAxNSUyMDglMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9XG5cbi8qIDMgKi9cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pOjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA0ICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSBvcHRpb24ge1xuICBjb2xvcjogIzQ0NDsgfVxuXG4vKlxuICogRGlzYWJsZWRcbiAqL1xuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSk6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDklMjA2JTIwMTUlMjA2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBwb2ludHMlM0QlMjIxMiUyMDEzJTIwOSUyMDglMjAxNSUyMDglMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7IH1cblxuLyogRGF0YWxpc3RcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIENocm9tZVxuICovXG4udWstaW5wdXRbbGlzdF0ge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTsgfVxuXG4udWstaW5wdXRbbGlzdF06aG92ZXIsXG4udWstaW5wdXRbbGlzdF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTIlMjA4JTIwNiUyMDE2JTIwNiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiKTsgfVxuXG4vKiAxICovXG4udWstaW5wdXRbbGlzdF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogUmFkaW8gYW5kIGNoZWNrYm94XG4gKiBOb3RlOiBEb2VzIG5vdCB3b3JrIGluIElFMTFcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFN0eWxlXG4gKiAyLiBNYWtlIGJveCBtb3JlIHJvYnVzdCBzbyBpdCBjbGlwcyB0aGUgY2hpbGQgZWxlbWVudFxuICogMy4gVmVydGljYWwgYWxpZ25tZW50XG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogNS4gRml4IGJsYWNrIGJhY2tncm91bmQgb24gaU9TXG4gKiA2LiBDZW50ZXIgaWNvbnNcbiAqL1xuLnVrLXJhZGlvLFxuLnVrLWNoZWNrYm94IHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIC8qIDIgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogMyAqL1xuICBtYXJnaW4tdG9wOiAtNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiA0ICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiA2ICovXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NiY2I7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjsgfVxuXG4udWstcmFkaW8ge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLyogRm9jdXMgKi9cbi51ay1yYWRpbzpmb2N1cyxcbi51ay1jaGVja2JveDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzFlODdmMDsgfVxuXG4vKlxuICogQ2hlY2tlZFxuICovXG4udWstcmFkaW86Y2hlY2tlZCxcbi51ay1jaGVja2JveDpjaGVja2VkLFxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4N2YwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIEZvY3VzICovXG4udWstcmFkaW86Y2hlY2tlZDpmb2N1cyxcbi51ay1jaGVja2JveDpjaGVja2VkOmZvY3VzLFxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGU2ZWNkOyB9XG5cbi8qXG4gKiBJY29uc1xuICovXG4udWstcmFkaW86Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBjeCUzRCUyMjglMjIlMjBjeSUzRCUyMjglMjIlMjByJTNEJTIyMiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4udWstY2hlY2tib3g6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwNSUyMDcuNSUyMDIlMjA1JTIwMSUyMDUuNSUyMDUlMjAxMCUyMDEzJTIwMS41JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpOyB9XG5cbi51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjB4JTNEJTIyMyUyMiUyMHklM0QlMjI4JTIyJTIwd2lkdGglM0QlMjIxMCUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLypcbiAqIERpc2FibGVkXG4gKi9cbi51ay1yYWRpbzpkaXNhYmxlZCxcbi51ay1jaGVja2JveDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTsgfVxuXG4udWstcmFkaW86ZGlzYWJsZWQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBjeCUzRCUyMjglMjIlMjBjeSUzRCUyMjglMjIlMjByJTNEJTIyMiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwNSUyMDcuNSUyMDIlMjA1JTIwMSUyMDUuNSUyMDUlMjAxMCUyMDEzJTIwMS41JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpOyB9XG5cbi51ay1jaGVja2JveDpkaXNhYmxlZDppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjB4JTNEJTIyMyUyMiUyMHklM0QlMjI4JTIyJTIwd2lkdGglM0QlMjIxMCUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLyogTGVnZW5kXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBMZWdlbmRcbiAqIDEuIEJlaGF2ZSBsaWtlIGJsb2NrIGVsZW1lbnRcbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqIDQuIFN0eWxlXG4gKi9cbi51ay1sZWdlbmQge1xuICAvKiAxICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAzICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDQgKi9cbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLyogQ3VzdG9tIGNvbnRyb2xzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBDb250YWluZXIgZml0cyBpdHMgY29udGVudFxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICogNC4gQmVoYXZlIGxpa2UgbW9zdCBpbmxpbmUtYmxvY2sgZWxlbWVudHNcbiAqL1xuLnVrLWZvcm0tY3VzdG9tIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogNCAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qXG4gKiAxLiBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBmb3JtIGNvbnRyb2wgdG8gYWx3YXlzIGNvdmVyIGl0cyBjb250YWluZXJcbiAqIDIuIFJlcXVpcmVkIGZvciBGaXJlZm94IGZvciBwb3NpdGlvbmluZyB0byB0aGUgbGVmdFxuICogMy4gUmVxdWlyZWQgZm9yIFdlYmtpdCB0byBtYWtlIGBoZWlnaHRgIHdvcmtcbiAqIDQuIEhpZGUgY29udHJvbGUgYW5kIHNob3cgY3Vyc29yXG4gKiA1LiBOZWVkZWQgZm9yIHRoZSBjdXJzb3JcbiAqIDYuIENsaXAgaGVpZ2h0IGNhdXNlZCBieSA1LiBOZWVkZWQgZm9yIFdlYmtpdCBvbmx5XG4gKi9cbi51ay1mb3JtLWN1c3RvbSBzZWxlY3QsXG4udWstZm9ybS1jdXN0b20gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiAyICovXG4gIGxlZnQ6IDA7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA0ICovXG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udWstZm9ybS1jdXN0b20gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAvKiA1ICovXG4gIGZvbnQtc2l6ZTogNTAwcHg7XG4gIC8qIDYgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBMYWJlbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIExheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogU3RhY2tlZFxuICovXG4udWstZm9ybS1zdGFja2VkIC51ay1mb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4vKlxuICogSG9yaXpvbnRhbFxuICovXG4vKiBUYWJsZXQgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLyogQmVoYXZlIGxpa2UgYHVrLWZvcm0tc3RhY2tlZGAgKi9cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tbGFiZWwge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1jb250cm9scyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIxNXB4OyB9XG4gIC8qIEJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQgaWYgY29udHJvbHMgYXJlIGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgd2l0aCB0ZXh0ICovXG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tY29udHJvbHMtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDdweDsgfSB9XG5cbi8qIEljb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIFNldCB3aWR0aFxuICogMy4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKiA0LiBTdHlsZVxuICovXG4udWstZm9ybS1pY29uIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiA0MHB4O1xuICAvKiAzICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyogNCAqL1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKlxuICogUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuLnVrLWZvcm0taWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcbiAqL1xuLnVrLWZvcm0taWNvbjpub3QoYSk6bm90KGJ1dHRvbik6bm90KGlucHV0KSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qXG4gKiBJbnB1dCBwYWRkaW5nXG4gKi9cbi51ay1mb3JtLWljb246bm90KC51ay1mb3JtLWljb24tZmxpcCkgfiAudWstaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuLnVrLWZvcm0taWNvbi1mbGlwIHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLnVrLWZvcm0taWNvbi1mbGlwIH4gLnVrLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCdXR0b25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlbW92ZSBtYXJnaW5zIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYS5cbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cbiAqIDMuIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUuXG4gKiA0LiBDb3JyZWN0IGBmb250YCBwcm9wZXJ0aWVzIGFuZCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgZm9yIGBidXR0b25gLlxuICogNS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiA2LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBmb3IgYGlucHV0IHR5cGU9XCJzdWJtaXRcImBpbiBpT1MuXG4gKiA3LiBTdHlsZVxuICogOC4gYGxpbmUtaGVpZ2h0YCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGhlaWdodCBiZWNhdXNlIGl0IGFsc28gY2VudGVycyB0aGUgdGV4dCB2ZXJ0aWNhbGx5IGZvciBgYWAgZWxlbWVudHMuXG4gKiAgICBCZXR0ZXIgd291bGQgYmUgdG8gdXNlIGhlaWdodCBhbmQgZmxleGJveCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseSBidXQgZmxleGJveCBkb2Vzbid0IHdvcmsgaW4gRmlyZWZveCBvbiBgYnV0dG9uYCBlbGVtZW50cy5cbiAqIDkuIEFsaWduIHRleHQgaWYgYnV0dG9uIGhhcyBhIHdpZHRoXG4gKiAxMC4gUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuLnVrLWJ1dHRvbiB7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG4gIGJvcmRlcjogbm9uZTtcbiAgLyogMyAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogNCAqL1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogNSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogNiAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDcgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwIDMwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIDggKi9cbiAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gIC8qIDkgKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiAxMCAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7IH1cblxuLnVrLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuLnVrLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJ1dHRvbjpob3ZlciB7XG4gIC8qIDkgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEZvY3VzICovXG4udWstYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tZGVmYXVsdDpob3Zlcixcbi51ay1idXR0b24tZGVmYXVsdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjYjJiMmIyOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tZGVmYXVsdDphY3RpdmUsXG4udWstYnV0dG9uLWRlZmF1bHQudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICM5OTk4OTg7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tcHJpbWFyeTpob3Zlcixcbi51ay1idXR0b24tcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjdhZTU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tcHJpbWFyeTphY3RpdmUsXG4udWstYnV0dG9uLXByaW1hcnkudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBlNmVjZDtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIFNlY29uZGFyeVxuICovXG4udWstYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLXNlY29uZGFyeTpob3Zlcixcbi51ay1idXR0b24tc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuLnVrLWJ1dHRvbi1zZWNvbmRhcnkudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDgwODtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIERhbmdlclxuICovXG4udWstYnV0dG9uLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMDUwNmU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWRhbmdlcjpob3Zlcixcbi51ay1idXR0b24tZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMzk1YjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1kYW5nZXI6YWN0aXZlLFxuLnVrLWJ1dHRvbi1kYW5nZXIudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjMjE0NztcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuICovXG4udWstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQsXG4udWstYnV0dG9uLXByaW1hcnk6ZGlzYWJsZWQsXG4udWstYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCxcbi51ay1idXR0b24tZGFuZ2VyOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXItY29sb3I6ICNlNWU1ZTU7IH1cblxuLyogU2l6ZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJ1dHRvbi1zbWFsbCB7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLnVrLWJ1dHRvbi1sYXJnZSB7XG4gIHBhZGRpbmc6IDAgNDBweDtcbiAgbGluZS1oZWlnaHQ6IDUzcHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLyogVGV4dCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFRleHRcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG4udWstYnV0dG9uLXRleHQge1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIC8qIDIgKi9cbiAgY29sb3I6ICMzMzM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudWstYnV0dG9uLXRleHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlLW91dDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLXRleHQ6aG92ZXIsXG4udWstYnV0dG9uLXRleHQ6Zm9jdXMge1xuICBjb2xvcjogIzMzMzsgfVxuICAudWstYnV0dG9uLXRleHQ6aG92ZXI6OmJlZm9yZSxcbiAgLnVrLWJ1dHRvbi10ZXh0OmZvY3VzOjpiZWZvcmUge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi8qIERpc2FibGVkICovXG4udWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTsgfVxuICAudWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogTGlua1xuICogMS4gUmVzZXRcbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1idXR0b24tbGluayB7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgLyogMiAqL1xuICBjb2xvcjogI0RBN0QwMjsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWxpbms6aG92ZXIsXG4udWstYnV0dG9uLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzBmNmVjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1idXR0b24tbGluazpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogR3JvdXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFVzaW5nIGBmbGV4YCBpbnN0ZWFkIG9mIGBpbmxpbmUtYmxvY2tgIHRvIHByZXZlbnQgd2hpdGVzcGFjZSBiZXR3ZWVudCBjaGlsZCBlbGVtZW50c1xuICogMi4gQmVoYXZlIGxpa2UgYnV0dG9uXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICovXG4udWstYnV0dG9uLWdyb3VwIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLyogMiAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBHcm91cFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBDb2xsYXBzZSBib3JkZXJcbiAgICAgKi9cbi51ay1idXR0b24tZ3JvdXAgPiAudWstYnV0dG9uOm50aC1jaGlsZChuKzIpLFxuLnVrLWJ1dHRvbi1ncm91cCA+IGRpdjpudGgtY2hpbGQobisyKSAudWstYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7IH1cblxuLypcbiAgICAgKiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCB0byBzdXBlcmltcG9zZSB0aGUgc3VjY2Vzc29yIGVsZW1lbnRzIGJvcmRlclxuICAgICAqIEtub3duIGlzc3VlOiBJZiB5b3UgdXNlIGFuIGBhYCBlbGVtZW50IGFzIGJ1dHRvbiBhbmQgYW4gaWNvbiBpbnNpZGUsXG4gICAgICogdGhlIGFjdGl2ZSBzdGF0ZSB3aWxsIG5vdCB3b3JrIGlmIHlvdSBjbGljayB0aGUgaWNvbiBpbnNpZGUgdGhlIGJ1dHRvblxuICAgICAqIFdvcmthcm91bmQ6IEp1c3QgdXNlIGEgYGJ1dHRvbmAgb3IgYGlucHV0YCBlbGVtZW50IGFzIGJ1dHRvblxuICAgICAqL1xuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmhvdmVyLFxuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmZvY3VzLFxuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmFjdGl2ZSxcbi51ay1idXR0b24tZ3JvdXAgLnVrLWJ1dHRvbi51ay1hY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNlY3Rpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE1ha2UgaXQgd29yayB3aXRoIGAxMDB2aGAgYW5kIGhlaWdodCBpbiBnZW5lcmFsXG4gKi9cbi51ay1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiA3MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3MHB4OyB9IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBTaXplIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogWFNtYWxsXG4gKi9cbi51ay1zZWN0aW9uLXhzbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxuXG4vKlxuICogU21hbGxcbiAqL1xuLnVrLXNlY3Rpb24tc21hbGwge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLypcbiAqIExhcmdlXG4gKi9cbi51ay1zZWN0aW9uLWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDcwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstc2VjdGlvbi1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDE0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG5cbi8qXG4gKiBYTGFyZ2VcbiAqL1xuLnVrLXNlY3Rpb24teGxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1zZWN0aW9uLXhsYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDIxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMTBweDsgfSB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdFxuICovXG4udWstc2VjdGlvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKlxuICogTXV0ZWRcbiAqL1xuLnVrLXNlY3Rpb24tbXV0ZWQge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi8qXG4gKiBQcmltYXJ5XG4gKi9cbi51ay1zZWN0aW9uLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMWU4N2YwOyB9XG5cbi8qXG4gKiBTZWNvbmRhcnlcbiAqL1xuLnVrLXNlY3Rpb24tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4vKiBPdmVybGFwIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZXNlcnZlZCBtb2RpZmllciB0byBtYWtlIGEgc2VjdGlvbiBvdmVybGFwIGFub3RoZXIgc2VjdGlvbiB3aXRoIGFuIGJvcmRlciBpbWFnZVxuICogSW1wbGVtZW50ZWQgYnkgdGhlIHRoZW1lXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb250YWluZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEJveCBzaXppbmcgaGFzIHRvIGJlIGBjb250ZW50LWJveGAgc28gdGhlIG1heC13aWR0aCBpcyBhbHdheXMgdGhlIHNhbWUgYW5kXG4gKiAgICB1bmFmZmVjdGVkIGJ5IHRoZSBwYWRkaW5nIG9uIGRpZmZlcmVudCBicmVha3BvaW50cy4gSXQncyBpbXBvcnRhbnQgZm9yIHRoZSBzaXplIG1vZGlmaWVycy5cbiAqL1xuLnVrLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyB9IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstY29udGFpbmVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgcGFkZGluZyBmcm9tIG5lc3RlZCBjb250YWluZXJzXG4gKi9cbi51ay1jb250YWluZXIgLnVrLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb250YWluZXIteHNtYWxsIHtcbiAgbWF4LXdpZHRoOiA3NTBweDsgfVxuXG4udWstY29udGFpbmVyLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiA5MDBweDsgfVxuXG4udWstY29udGFpbmVyLWxhcmdlIHtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7IH1cblxuLnVrLWNvbnRhaW5lci14bGFyZ2Uge1xuICBtYXgtd2lkdGg6IDE2MDBweDsgfVxuXG4udWstY29udGFpbmVyLWV4cGFuZCB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKiBFeHBhbmQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEV4cGFuZCBvbmUgc2lkZSBvbmx5XG4gKi9cbi51ay1jb250YWluZXItZXhwYW5kLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4udWstY29udGFpbmVyLWV4cGFuZC1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXhzbWFsbCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICg3NTBweCAvIDIpIC0gMzBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItc21hbGwsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci1zbWFsbCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICg5MDBweCAvIDIpIC0gMzBweCk7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAoMTIwMHB4IC8gMikgLSA0MHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14c21hbGwsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci14c21hbGwge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAoNzUwcHggLyAyKSAtIDQwcHgpOyB9XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXNtYWxsLFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXItc21hbGwge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAoOTAwcHggLyAyKSAtIDQwcHgpOyB9XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLWxhcmdlLFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXItbGFyZ2Uge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAoMTQwMHB4IC8gMikgLSA0MHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14bGFyZ2UsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci14bGFyZ2Uge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAoMTYwMHB4IC8gMikgLSA0MHB4KTsgfSB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFV0aWxpdHkgY2xhc3NlcyB0byByZXNldCBjb250YWluZXIgcGFkZGluZyBvbiB0aGUgbGVmdCBvciByaWdodCBzaWRlXG4gKiBOb3RlOiBJdCBoYXMgdG8gYmUgbmVnYXRpdmUgbWFyZ2luIG9uIHRoZSBpdGVtLCBiZWNhdXNlIGl0J3Mgc3BlY2lmaWMgdG8gdGhlIGl0ZW0uXG4gKi9cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0LFxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDE1cHgpOyB9XG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogLTMwcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXG4gIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpOyB9XG4gIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTQwcHg7IH1cbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC00MHB4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEdyaWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGNlbGxzIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKi9cbi51ay1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG4gKiBHcmlkIGNlbGxcbiAqIE5vdGU6IFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIFJlc2V0IG1hcmdpbiBmb3IgZS5nLiBwYXJhZ3JhcGhzXG4gKi9cbi51ay1ncmlkID4gKiB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1ncmlkID4gKiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBHdXR0ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQge1xuICBtYXJnaW4tbGVmdDogLTMwcHg7IH1cblxuLnVrLWdyaWQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLFxuLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXG4qICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyogSG9yaXpvbnRhbCAqL1xuICAudWstZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC00MHB4OyB9XG4gIC51ay1ncmlkID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkICsgLnVrLWdyaWQsXG4gIC51ay1ncmlkID4gLnVrLWdyaWQtbWFyZ2luLFxuICAqICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4OyB9IH1cblxuLypcbiAqIFNtYWxsXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLXNtYWxsLFxuLnVrLWdyaWQtY29sdW1uLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG5cbi51ay1ncmlkLXNtYWxsID4gKixcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1zbWFsbCxcbi51ay1ncmlkLXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuLypcbiAqIE1lZGl1bVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtIHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4OyB9XG5cbi51ay1ncmlkLW1lZGl1bSA+ICosXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1tZWRpdW0sXG4udWstZ3JpZC1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1yb3ctbWVkaXVtID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi8qXG4gKiBMYXJnZVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuXG4udWstZ3JpZC1sYXJnZSA+ICosXG4udWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbGFyZ2UsXG4udWstZ3JpZC1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWxhcmdlLFxuICAudWstZ3JpZC1jb2x1bW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAtNTZweDsgfVxuICAudWstZ3JpZC1sYXJnZSA+ICosXG4gIC51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogNTZweDsgfVxuICAvKiBWZXJ0aWNhbCAqL1xuICAudWstZ3JpZCArIC51ay1ncmlkLWxhcmdlLFxuICAudWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcbiAgLnVrLWdyaWQtbGFyZ2UgPiAudWstZ3JpZC1tYXJnaW4sXG4gIC51ay1ncmlkLXJvdy1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiAgKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNTZweDsgfSB9XG5cbi8qXG4gKiBDb2xsYXBzZVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1jb2xsYXBzZSxcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi51ay1ncmlkLWNvbGxhcHNlID4gKixcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtY29sbGFwc2UsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1jb2xsYXBzZSxcbi51ay1ncmlkLWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ncmlkLWRpdmlkZXIgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gKiB7XG4gIHBhZGRpbmctbGVmdDogNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTMwcHg7XG4gIGxlZnQ6IDYwcHg7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC8qIEhvcml6b250YWwgKi9cbiAgLnVrLWdyaWQtZGl2aWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IC04MHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIgPiAqIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gICAgbGVmdDogNDBweDsgfVxuICAvKiBWZXJ0aWNhbCAqL1xuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDgwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLTQwcHg7XG4gICAgbGVmdDogODBweDsgfSB9XG5cbi8qXG4gKiBTbWFsbFxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCA+ICosXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMTVweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbC51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0xNXB4O1xuICBsZWZ0OiAzMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgdG9wOiAtMTVweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIGxlZnQ6IDMwcHg7IH1cblxuLypcbiAqIE1lZGl1bVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0ge1xuICBtYXJnaW4tbGVmdDogLTYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+ICosXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiA2MHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgbGVmdDogNjBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gIGxlZnQ6IDQwcHg7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgdG9wOiAtNDBweDtcbiAgbGVmdDogODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTQwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICBsZWZ0OiA4MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSxcbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMTJweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiAqLFxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMTJweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGxlZnQ6IDU2cHg7IH1cbiAgLyogVmVydGljYWwgKi9cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gICAgbWFyZ2luLXRvcDogMTEycHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAtNTZweDtcbiAgICBsZWZ0OiAxMTJweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAtNTZweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgbGVmdDogMTEycHg7IH0gfVxuXG4vKiBNYXRjaCBjaGlsZCBvZiBhIGdyaWQgY2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiAxLiBXcmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aCwgYXQgbGVhc3QgMTAwJS4gT25seSBpZiBubyBjbGFzcyBmcm9tIHRoZSBXaWR0aCBjb21wb25lbnQgaXMgc2V0LlxuICogMy4gRXhwYW5kIHdpZHRoIGV2ZW4gaWYgbGFyZ2VyIHRoYW4gMTAwJSwgZS5nLiBiZWNhdXNlIG9mIG5lZ2F0aXZlIG1hcmdpbiAoTmVlZGVkIGZvciBuZXN0ZWQgZ3JpZHMpXG4gKi9cbi51ay1ncmlkLW1hdGNoID4gKixcbi51ay1ncmlkLWl0ZW0tbWF0Y2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4udWstZ3JpZC1tYXRjaCA+ICogPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pLFxuLnVrLWdyaWQtaXRlbS1tYXRjaCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIGZsZXg6IGF1dG87IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRpbGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRpbGUge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstdGlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLXRpbGUge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmctdG9wOiA3MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3MHB4OyB9IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstdGlsZSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBTaXplIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogWFNtYWxsXG4gKi9cbi51ay10aWxlLXhzbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxuXG4vKlxuICogU21hbGxcbiAqL1xuLnVrLXRpbGUtc21hbGwge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLypcbiAqIExhcmdlXG4gKi9cbi51ay10aWxlLWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDcwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstdGlsZS1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDE0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG5cbi8qXG4gKiBYTGFyZ2VcbiAqL1xuLnVrLXRpbGUteGxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay10aWxlLXhsYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDIxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMTBweDsgfSB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdFxuICovXG4udWstdGlsZS1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKlxuICogTXV0ZWRcbiAqL1xuLnVrLXRpbGUtbXV0ZWQge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi8qXG4gKiBQcmltYXJ5XG4gKi9cbi51ay10aWxlLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMWU4N2YwOyB9XG5cbi8qXG4gKiBTZWNvbmRhcnlcbiAqL1xuLnVrLXRpbGUtc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ2FyZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyogU2VjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNhcmQtYm9keSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMzBweCAzMHB4OyB9XG5cbi51ay1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTVweCAzMHB4OyB9XG5cbi51ay1jYXJkLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTVweCAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY2FyZC1ib2R5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDQwcHg7IH1cbiAgLnVrLWNhcmQtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7IH1cbiAgLnVrLWNhcmQtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7IH0gfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1jYXJkLWJvZHkgPiA6bGFzdC1jaGlsZCxcbi51ay1jYXJkLWhlYWRlciA+IDpsYXN0LWNoaWxkLFxuLnVrLWNhcmQtZm9vdGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIE1lZGlhXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZXNlcnZlZCBhbGlnbm1lbnQgbW9kaWZpZXIgdG8gc3R5bGUgdGhlIG1lZGlhIGVsZW1lbnQsIGUuZy4gd2l0aCBgYm9yZGVyLXJhZGl1c2BcbiAqIEltcGxlbWVudGVkIGJ5IHRoZSB0aGVtZVxuICovXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIEJhZGdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMwcHg7XG4gIHJpZ2h0OiAzMHB4O1xuICB6LWluZGV4OiAxOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxuICovXG4udWstY2FyZC1iYWRnZTpmaXJzdC1jaGlsZCArICoge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIEhvdmVyIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLWhvdmVyOm5vdCgudWstY2FyZC1kZWZhdWx0KTpub3QoLnVrLWNhcmQtcHJpbWFyeSk6bm90KC51ay1jYXJkLXNlY29uZGFyeSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdFxuICogTm90ZTogSGVhZGVyIGFuZCBGb290ZXIgYXJlIG9ubHkgaW1wbGVtZW50ZWQgZm9yIHRoZSBkZWZhdWx0IHN0eWxlXG4gKi9cbi51ay1jYXJkLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzY2NjtcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtdGl0bGUge1xuICBjb2xvcjogIzMzMzsgfVxuXG4udWstY2FyZC1kZWZhdWx0LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLnVrLWNhcmQtZGVmYXVsdCAudWstY2FyZC1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogUHJpbWFyeVxuICovXG4udWstY2FyZC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzFlODdmMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstY2FyZC1wcmltYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cbi51ay1jYXJkLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7IH1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNtYWxsXG4gKi9cbi51ay1jYXJkLXNtYWxsLnVrLWNhcmQtYm9keSxcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWJvZHkge1xuICBwYWRkaW5nOiAyMHB4IDIwcHg7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogMTNweCAyMHB4OyB9XG5cbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEzcHggMjBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jYXJkLWxhcmdlLnVrLWNhcmQtYm9keSxcbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogNzBweCA3MHB4OyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWhlYWRlciB7XG4gICAgcGFkZGluZzogMzVweCA3MHB4OyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWZvb3RlciB7XG4gICAgcGFkZGluZzogMzVweCA3MHB4OyB9IH1cblxuLypcbiAgICAgKiBEZWZhdWx0XG4gICAgICovXG4udWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0zMHB4OyB9XG5cbi51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC0xNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTVweDsgfVxuXG4udWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbi51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuLnVrLWNhcmQtYm9keSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG5cbi51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIHtcbiAgcGFkZGluZy1sZWZ0OiA0NXB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNDBweDsgfVxuICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0yNXB4OyB9XG4gIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuICAudWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LWhlYWRlcixcbiAgLnVrLWNhcmQtYm9keSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfVxuICAudWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiB7XG4gICAgcGFkZGluZy1sZWZ0OiA1NXB4OyB9IH1cblxuLypcbiAgICAgKiBTbWFsbFxuICAgICAqL1xuLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi1yaWdodDogLTIwcHg7IH1cblxuLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuXG4udWstY2FyZC1zbWFsbCAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIge1xuICBwYWRkaW5nLWxlZnQ6IDM1cHg7IH1cblxuLypcbiAgICAgKiBMYXJnZVxuICAgICAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jYXJkLWxhcmdlID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDbG9zZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRvcHRzIGB1ay1pY29uYFxuICovXG4udWstY2xvc2Uge1xuICBjb2xvcjogIzk5OTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIG9wYWNpdHk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWNsb3NlOmhvdmVyLFxuLnVrLWNsb3NlOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNwaW5uZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuLyogU1ZHXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zcGlubmVyID4gKiB7XG4gIGFuaW1hdGlvbjogdWstc3Bpbm5lci1yb3RhdGUgMS40cyBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyB1ay1zcGlubmVyLXJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9IH1cblxuLypcbiAqIENpcmNsZVxuICovXG4udWstc3Bpbm5lciA+ICogPiAqIHtcbiAgc3Ryb2tlLWRhc2hhcnJheTogODhweDtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgYW5pbWF0aW9uOiB1ay1zcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7IH1cblxuQGtleWZyYW1lcyB1ay1zcGlubmVyLWRhc2gge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDg4cHg7IH1cbiAgNTAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMjJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyB9XG4gIDEwMCUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiA4OHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1MGRlZyk7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVG90b3BcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZG9wdHMgYHVrLWljb25gXG4gKi9cbi51ay10b3RvcCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM5OTk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXRvdG9wOmhvdmVyLFxuLnVrLXRvdG9wOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogT25DbGljayAqL1xuLnVrLXRvdG9wOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBNYXJrZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZG9wdHMgYHVrLWljb25gXG4gKi9cbi51ay1tYXJrZXIge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MDBweDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbWFya2VyOmhvdmVyLFxuLnVrLW1hcmtlcjpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbGVydFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWxlcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDE1cHggMjlweCAxNXB4IDE1cHg7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIC51ay1hbGVydCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstYWxlcnQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hbGVydC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMTVweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcbiAqL1xuLnVrLWFsZXJ0LWNsb3NlOmZpcnN0LWNoaWxkICsgKiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLypcbiAqIEhvdmVyICsgRm9jdXNcbiAqL1xuLnVrLWFsZXJ0LWNsb3NlOmhvdmVyLFxuLnVrLWFsZXJ0LWNsb3NlOmZvY3VzIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLWFsZXJ0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjZDhlYWZjO1xuICBjb2xvcjogIzFlODdmMDsgfVxuXG4vKlxuICogU3VjY2Vzc1xuICovXG4udWstYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICNlZGZiZjY7XG4gIGNvbG9yOiAjMzJkMjk2OyB9XG5cbi8qXG4gKiBXYXJuaW5nXG4gKi9cbi51ay1hbGVydC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZlZjVlZTtcbiAgY29sb3I6ICNmYWEwNWE7IH1cblxuLypcbiAqIERhbmdlclxuICovXG4udWstYWxlcnQtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZDogI2ZlZjRmNjtcbiAgY29sb3I6ICNmMDUwNmU7IH1cblxuLypcbiAgICAgKiBDb250ZW50XG4gICAgICovXG4udWstYWxlcnQgaDEsXG4udWstYWxlcnQgaDIsXG4udWstYWxlcnQgaDMsXG4udWstYWxlcnQgaDQsXG4udWstYWxlcnQgaDUsXG4udWstYWxlcnQgaDYge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4udWstYWxlcnQgYTpub3QoW2NsYXNzXSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnVrLWFsZXJ0IGE6bm90KFtjbGFzc10pOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCYWRnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU3R5bGVcbiAqIDIuIENlbnRlciBjaGlsZCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqL1xuLnVrLWJhZGdlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogMSAqL1xuICBiYWNrZ3JvdW5kOiAjMWU4N2YwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcbiAqIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuLnVrLWJhZGdlOmhvdmVyLFxuLnVrLWJhZGdlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogQ29sb3IgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBTdWNjZXNzXG4gKi9cbi51ay1sYWJlbC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyZDI5NjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIFdhcm5pbmdcbiAqL1xuLnVrLWxhYmVsLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhMDVhO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxuICogRGFuZ2VyXG4gKi9cbi51ay1sYWJlbC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA1MDZlO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogT3ZlcmxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstb3ZlcmxheSB7XG4gIHBhZGRpbmc6IDMwcHggMzBweDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1vdmVybGF5ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbi51ay1vdmVybGF5LWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLW92ZXJsYXktcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM0LCAzNCwgMC44KTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQXJ0aWNsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1hcnRpY2xlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFydGljbGUgKyAudWstYXJ0aWNsZSB7XG4gIG1hcmdpbi10b3A6IDcwcHg7IH1cblxuLyogVGl0bGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFydGljbGUtdGl0bGUge1xuICBmb250LXNpemU6IDIuMjMxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1hcnRpY2xlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNjI1cmVtOyB9IH1cblxuLyogTWV0YVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYXJ0aWNsZS1tZXRhIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM5OTk7IH1cbiAgLnVrLWFydGljbGUtbWV0YSBhIHtcbiAgICBjb2xvcjogIzk5OTsgfVxuICAudWstYXJ0aWNsZS1tZXRhIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ29tbWVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29tbWVudC1ib2R5IHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLnVrLWNvbW1lbnQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLWNvbW1lbnQtYm9keSA+IDpsYXN0LWNoaWxkLFxuLnVrLWNvbW1lbnQtaGVhZGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIE1ldGFcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNvbW1lbnQtbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEF2YXRhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBMaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LWxpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdzICovXG4udWstY29tbWVudC1saXN0ID4gOm50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogNzBweDsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqIE5vdGU6IEdlbmVyYWwgc2libGluZyBzZWxlY3RvciBhbGxvd3MgcmVwbHkgYmxvY2sgYmV0d2VlbiBjb21tZW50IGFuZCBzdWJsaXN0XG4gKi9cbi51ay1jb21tZW50LWxpc3QgLnVrLWNvbW1lbnQgfiB1bCB7XG4gIG1hcmdpbjogNzBweCAwIDAgMDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIFRhYmxldCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1jb21tZW50LWxpc3QgLnVrLWNvbW1lbnQgfiB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMDBweDsgfSB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdzICovXG4udWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwgPiA6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiA3MHB4OyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LXByaW1hcnkge1xuICBwYWRkaW5nOiAzMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTZWFyY2hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiA0LiBSZXNldCBgZm9ybWBcbiAqL1xuLnVrLXNlYXJjaCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDQgKi9cbiAgbWFyZ2luOiAwOyB9XG5cbi8qIElucHV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBvbiBPUyBYIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuLnVrLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cbi51ay1zZWFyY2gtaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbi8qXG4gKiAxLiBEZWZpbmUgY29uc2lzdGVudCBib3ggc2l6aW5nLlxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxuICogMy4gUmVtb3ZlIGBib3JkZXItcmFkaXVzYCBpbiBpT1MuXG4gKiA0LiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDUuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKiA2LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKiA3LiBWZXJ0aWNhbCBhbGlnbm1lbnRcbiAqIDguIFRha2UgdGhlIGZ1bGwgY29udGFpbmVyIHdpZHRoXG4gKiA5LiBTdHlsZVxuICovXG4udWstc2VhcmNoLWlucHV0IHtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqL1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAvKiA0ICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDUgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDYgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA3ICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDggKi9cbiAgd2lkdGg6IDEwMCU7XG4gIC8qIDkgKi9cbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogIzY2NjsgfVxuXG4udWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBQbGFjZWhvbGRlciAqL1xuLnVrLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSWNvbiAoQWRvcHRzIGB1ay1pY29uYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZvY3VzIHN0eWxlXG4gKi9cbi51ay1zZWFyY2gtaWNvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIFBvc2l0aW9uIGFib3ZlIGlucHV0XG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogMy4gU3R5bGVcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24ge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiAzICovXG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qXG4gKiBSZXF1aXJlZCBmb3IgYGFgLlxuICovXG4udWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb246bm90KGEpOm5vdChidXR0b24pOm5vdChpbnB1dCkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24tZmxpcCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi8qIERlZmF1bHQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC1kZWZhdWx0IHtcbiAgd2lkdGg6IDE4MHB4OyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG4udWstc2VhcmNoLWRlZmF1bHQgLnVrLXNlYXJjaC1pbnB1dCB7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogRm9jdXMgKi9cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbiAqIEljb25cbiAqL1xuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbiB7XG4gIHdpZHRoOiA0MHB4OyB9XG5cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWljb246bm90KC51ay1zZWFyY2gtaWNvbi1mbGlwKSB+IC51ay1zZWFyY2gtaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cblxuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbi1mbGlwIH4gLnVrLXNlYXJjaC1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cblxuLyogTmF2YmFyIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zZWFyY2gtbmF2YmFyIHtcbiAgd2lkdGg6IDQwMHB4OyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWlucHV0IHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuLypcbiAqIEljb25cbiAqL1xuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pY29uIHtcbiAgd2lkdGg6IDQwcHg7IH1cblxuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pY29uOm5vdCgudWstc2VhcmNoLWljb24tZmxpcCkgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaWNvbi1mbGlwIH4gLnVrLXNlYXJjaC1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cblxuLyogTGFyZ2UgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC1sYXJnZSB7XG4gIHdpZHRoOiA1MDBweDsgfVxuXG4vKlxuICogSW5wdXRcbiAqL1xuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWlucHV0IHtcbiAgaGVpZ2h0OiA4MHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAyLjYyNXJlbTsgfVxuXG4vKlxuICogSWNvblxuICovXG4udWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaWNvbiB7XG4gIHdpZHRoOiA4MHB4OyB9XG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uOm5vdCgudWstc2VhcmNoLWljb24tZmxpcCkgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uLWZsaXAgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogODBweDsgfVxuXG4vKiBUb2dnbGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC10b2dnbGUge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc2VhcmNoLXRvZ2dsZTpob3Zlcixcbi51ay1zZWFyY2gtdG9nZ2xlOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVzZXRcbiAqIDEuIFByZXBhcmUgbGlzdHNcbiAqIDIuIFByZXBhcmUgbGlua3NcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IGZvY3VzIHN0eWxlXG4gKi9cbi8qIDEgKi9cbi51ay1uYXYsXG4udWstbmF2IHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIDIgKi9cbi51ay1uYXYgbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiAzICovXG4udWstbmF2IGxpID4gYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIEl0ZW1zXG4gKiBNdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBsaXN0cylcbiAqL1xuLnVrLW5hdiA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDVweCAwOyB9XG5cbi8qIFN1Ymxpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBMZXZlbCAyXG4gKiBgdWxgIG5lZWRlZCBmb3IgaGlnaGVyIHNwZWNpZmljaXR5IHRvIG92ZXJyaWRlIHBhZGRpbmdcbiAqL1xudWwudWstbmF2LXN1YiB7XG4gIHBhZGRpbmc6IDVweCAwIDVweCAxNXB4OyB9XG5cbi8qXG4gKiBMZXZlbCAzIGFuZCBkZWVwZXJcbiAqL1xuLnVrLW5hdi1zdWIgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLypcbiAqIEl0ZW1zXG4gKi9cbi51ay1uYXYtc3ViIGEge1xuICBwYWRkaW5nOiAycHggMDsgfVxuXG4vKiBQYXJlbnQgaWNvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LXBhcmVudC1pY29uID4gLnVrLXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEuNWVtO1xuICBoZWlnaHQ6IDEuNWVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjM2NjYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjElMjIlMjBwb2ludHMlM0QlMjIxMCUyMDElMjA0JTIwNyUyMDEwJTIwMTMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLnVrLW5hdi1wYXJlbnQtaWNvbiA+IC51ay1wYXJlbnQudWstb3BlbiA+IGE6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWxpbmUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzY2NiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjElMjA0JTIwNyUyMDEwJTIwMTMlMjA0JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpOyB9XG5cbi8qIEhlYWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LWhlYWRlciB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi51ay1uYXYtaGVhZGVyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXYtZGl2aWRlciB7XG4gIG1hcmdpbjogNXB4IDA7IH1cblxuLyogRGVmYXVsdCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LWRlZmF1bHQge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogSGVhZGVyXG4gKi9cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LWhlYWRlciB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBQcmltYXJ5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLFxuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogQWN0aXZlICovXG4udWstbmF2LXByaW1hcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcbiAqIEhlYWRlclxuICovXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogRGl2aWRlclxuICovXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXYtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIFN1Ymxpc3RzICovXG4udWstbmF2LWNlbnRlciAudWstbmF2LXN1Yixcbi51ay1uYXYtY2VudGVyIC51ay1uYXYtc3ViIHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qIFBhcmVudCBpY29uIG1vZGlmaWVyICAqL1xuLnVrLW5hdi1jZW50ZXIudWstbmF2LXBhcmVudC1pY29uID4gLnVrLXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBOYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IHRvIGNlbnRlciBuYXZiYXIgZ3JvdXBcbiAqL1xuLnVrLW5hdmJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2YmFyLWNvbnRhaW5lcjpub3QoLnVrLW5hdmJhci10cmFuc3BhcmVudCkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi8qXG4gKiBSZW1vdmUgcHNldWRvIGVsZW1lbnRzIGNyZWF0ZWQgYnkgbWljcm8gY2xlYXJmaXggYXMgcHJlY2F1dGlvbiAoaWYgQ29udGFpbmVyIGNvbXBvbmVudCBpcyB1c2VkKVxuICovXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IDo6YmVmb3JlLFxuLnVrLW5hdmJhci1jb250YWluZXIgPiA6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIEdyb3Vwc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxpZ24gbmF2cyBhbmQgaXRlbXMgdmVydGljYWxseSBpZiB0aGV5IGhhdmUgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gKiAyLiBOb3RlOiBJRSAxMSByZXF1aXJlcyBhbiBleHRyYSBgZGl2YCB3aGljaCBhZmZlY3RzIHRoZSBjZW50ZXIgc2VsZWN0b3JcbiAqL1xuLnVrLW5hdmJhci1sZWZ0LFxuLnVrLW5hdmJhci1yaWdodCxcbi51ay1uYXZiYXItY2VudGVyLFxuLnVrLW5hdmJhci1jZW50ZXItbGVmdCA+ICosXG4udWstbmF2YmFyLWNlbnRlci1yaWdodCA+ICoge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcbiAqIEhvcml6b250YWwgYWxpZ25tZW50XG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgY2VudGVyZWQgbmF2YmFyIHdpdGggc3ViIGdyb3VwcyAobGVmdC9yaWdodClcbiAqIDIuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXG4gKiAzLiBOZWVkZWQgZm9yIGRyb3Bkb3ducyBiZWNhdXNlIGEgbmV3IHBvc2l0aW9uIGNvbnRleHQgaXMgY3JlYXRlZFxuICogICAgYHotaW5kZXhgIG11c3QgYmUgc21hbGxlciB0aGFuIG9mZi1jYW52YXNcbiAqIDQuIEFsaWduIHN1YiBncm91cHMgZm9yIGNlbnRlcmVkIG5hdmJhclxuICovXG4udWstbmF2YmFyLXJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1uYXZiYXItY2VudGVyOm5vdCg6b25seS1jaGlsZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAvKiAyICovXG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMyAqL1xuICB6LWluZGV4OiA5OTA7IH1cblxuLyogNCAqL1xuLnVrLW5hdmJhci1jZW50ZXItbGVmdCxcbi51ay1uYXZiYXItY2VudGVyLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IH1cblxuLnVrLW5hdmJhci1jZW50ZXItbGVmdCB7XG4gIHJpZ2h0OiAxMDAlOyB9XG5cbi51ay1uYXZiYXItY2VudGVyLXJpZ2h0IHtcbiAgbGVmdDogMTAwJTsgfVxuXG5bY2xhc3MqPSd1ay1uYXZiYXItY2VudGVyLSddIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVzZXQgbGlzdFxuICovXG4udWstbmF2YmFyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG4gKiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogT25seSBub3QgYGFic29sdXRlYCBwb3NpdGlvbmVkIGdyb3Vwc1xuICovXG4udWstbmF2YmFyLWxlZnQsXG4udWstbmF2YmFyLXJpZ2h0LFxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4vKlxuICogSXRlbXNcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogMi4gRGltZW5zaW9uc1xuICogMy4gU3R5bGVcbiAqIDQuIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEsXG4udWstbmF2YmFyLWl0ZW0sXG4udWstbmF2YmFyLXRvZ2dsZSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogODBweDtcbiAgcGFkZGluZzogMCAxNXB4O1xuICAvKiAzICovXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIC8qIDQgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBOYXYgaXRlbXNcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3I7IH1cblxuLypcbiAqIEhvdmVyXG4gKiBBcHBseSBob3ZlciBzdHlsZSBhbHNvIHRvIGZvY3VzIHN0YXRlIGFuZCBpZiBkcm9wZG93biBpcyBvcGVuZWRcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaTpob3ZlciA+IGEsXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyxcbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhLnVrLW9wZW4ge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICovXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTphY3RpdmUge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXZiYXItbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1pdGVtIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogVG9nZ2xlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXZiYXItdG9nZ2xlIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdmJhci10b2dnbGU6aG92ZXIsXG4udWstbmF2YmFyLXRvZ2dsZTpmb2N1cyxcbi51ay1uYXZiYXItdG9nZ2xlLnVrLW9wZW4ge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBJY29uXG4gKiBBZG9wdHMgYHVrLWljb25gXG4gKi9cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi8qIFN1YnRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXZiYXItc3VidGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEcm9wZG93blxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRvcHRzIGB1ay1kcm9wZG93bmBcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKiA0LiBTdHlsZVxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAyMDtcbiAgLyogMyAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMjAwcHg7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMjVweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4vKiBTaG93ICovXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuICovXG4vKiBEaXJlY3Rpb24gKi9cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0xNXB4OyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1ib3R0b20nXSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxuXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4OyB9XG5cbi8qXG4gKiBHcmlkXG4gKiBBZG9wdHMgYHVrLWdyaWRgXG4gKi9cbi8qIEd1dHRlciBIb3Jpem9udGFsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQge1xuICBtYXJnaW4tbGVmdDogLTUwcHg7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHBhZGRpbmctbGVmdDogNTBweDsgfVxuXG4vKiBHdXR0ZXIgVmVydGljYWwgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cblxuLyogU3RhY2sgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tc3RhY2sgLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLypcbiAqIFdpZHRoIG1vZGlmaWVyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMjpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0zOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7XG4gIHdpZHRoOiA2MDBweDsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHtcbiAgd2lkdGg6IDgwMHB4OyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtNTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogMTAwMHB4OyB9XG5cbi8qXG4gKiBEcm9wYmFyIG1vZGlmaWVyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogRHJvcGRvd24gTmF2XG4gKiBBZG9wdHMgYHVrLW5hdmBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogRGl2aWRlclxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIERyb3BiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1kcm9wYmFyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKlxuICogU2xpZGUgbW9kaWZpZXJcbiAqL1xuLnVrLW5hdmJhci1kcm9wYmFyLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5ODA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3gtc2hhZG93OiAwIDVweCA3cHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuXG4vKlxuICAgICAqIE5hdmJhclxuICAgICAqL1xuLnVrLW5hdmJhci1jb250YWluZXIgPiAudWstY29udGFpbmVyIC51ay1uYXZiYXItbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IC51ay1jb250YWluZXIgLnVrLW5hdmJhci1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7IH1cblxuLypcbiAgICAgKiBHcmlkIERpdmlkZXJcbiAgICAgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMjVweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yNXB4O1xuICBsZWZ0OiA1MHB4O1xuICByaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN1Ym5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG4udWstc3VibmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAvKiAzICovXG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cbi51ay1zdWJuYXYgPiAqIHtcbiAgLyogMSAqL1xuICBmbGV4OiBub25lO1xuICAvKiAyICovXG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIFVzaW5nIGA6Zmlyc3QtY2hpbGRgIGluc3RlYWQgb2YgYGFgIHRvIHN1cHBvcnQgYHNwYW5gIGVsZW1lbnRzIGZvciB0ZXh0XG4gKiAxLiBQcmV2ZW50IGdhcCBpZiBjaGlsZCBlbGVtZW50IGlzIGBpbmxpbmUtYmxvY2tgLCBlLmcuIGFuIGljb25cbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1zdWJuYXYgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogMiAqL1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3I7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXN1Ym5hdiA+ICogPiBhOmhvdmVyLFxuLnVrLXN1Ym5hdiA+ICogPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1zdWJuYXYgPiAudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIERpdmlkZXIgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNldCBndXR0ZXIgXG4gKi9cbi51ay1zdWJuYXYtZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtNDFweDsgfVxuXG4vKlxuICogQWxpZ24gaXRlbXMgYW5kIGRpdmlkZXIgdmVydGljYWxseVxuICovXG4udWstc3VibmF2LWRpdmlkZXIgPiAqIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKlxuICogRGl2aWRlclxuICogMS4gYG50aC1jaGlsZGAgbWFrZXMgaXQgYWxzbyB3b3JrIHdpdGhvdXQgSlMgaWYgaXQncyBvbmx5IG9uZSByb3dcbiAqL1xuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDEuNWVtO1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLyogMSAqL1xuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNlNWU1ZTU7IH1cblxuLyogUGlsbCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gYTpob3Zlcixcbi51ay1zdWJuYXYtcGlsbCA+ICogPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogT25DbGljayAqL1xuLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogQWN0aXZlICovXG4udWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg3ZjA7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc3VibmF2ID4gLnVrLWRpc2FibGVkID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCcmVhZGNydW1iXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICovXG4udWstYnJlYWRjcnVtYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICovXG4udWstYnJlYWRjcnVtYiA+ICoge1xuICBmbGV4OiBub25lOyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1icmVhZGNydW1iID4gKiA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1icmVhZGNydW1iID4gKiA+IDpob3Zlcixcbi51ay1icmVhZGNydW1iID4gKiA+IDpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogRGlzYWJsZWQgKi9cbi8qIEFjdGl2ZSAqL1xuLnVrLWJyZWFkY3J1bWIgPiA6bGFzdC1jaGlsZCA+IHNwYW4sXG4udWstYnJlYWRjcnVtYiA+IDpsYXN0LWNoaWxkID4gYTpub3QoW2hyZWZdKSB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKiBgbnRoLWNoaWxkYCBtYWtlcyBpdCBhbHNvIHdvcmsgd2l0aG91dCBKUyBpZiBpdCdzIG9ubHkgb25lIHJvd1xuICovXG4udWstYnJlYWRjcnVtYiA+IDpudGgtY2hpbGQobisyKTpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1wiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAyMHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGFnaW5hdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG4udWstcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgLyogMyAqL1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG4gKiAxLiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cbiAqIDIuIEd1dHRlclxuICogMy4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIGRyb3Bkb3duc1xuICovXG4udWstcGFnaW5hdGlvbiA+ICoge1xuICAvKiAxICovXG4gIGZsZXg6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUHJldmVudCBnYXAgaWYgY2hpbGQgZWxlbWVudCBpcyBgaW5saW5lLWJsb2NrYCwgZS5nLiBhbiBpY29uXG4gKiAyLiBTdHlsZVxuICovXG4udWstcGFnaW5hdGlvbiA+ICogPiAqIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogMiAqL1xuICBjb2xvcjogIzk5OTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLWluLW91dDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstcGFnaW5hdGlvbiA+ICogPiA6aG92ZXIsXG4udWstcGFnaW5hdGlvbiA+ICogPiA6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXBhZ2luYXRpb24gPiAudWstYWN0aXZlID4gKiB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIERpc2FibGVkICovXG4udWstcGFnaW5hdGlvbiA+IC51ay1kaXNhYmxlZCA+ICoge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVGFiXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gR3V0dGVyXG4gKiAzLiBSZXNldCBsaXN0XG4gKi9cbi51ay10YWIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLyogMiAqL1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIC8qIDMgKi9cbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC51ay10YWI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cbi51ay10YWIgPiAqIHtcbiAgLyogMSAqL1xuICBmbGV4OiBub25lO1xuICAvKiAyICovXG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIDEuIENlbnRlciB0ZXh0IGlmIGEgd2lkdGggaXMgc2V0XG4gKiAyLiBTdHlsZVxuICovXG4udWstdGFiID4gKiA+IGEge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIDIgKi9cbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXRhYiA+ICogPiBhOmhvdmVyLFxuLnVrLXRhYiA+ICogPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay10YWIgPiAudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICMxZTg3ZjA7IH1cblxuLyogRGlzYWJsZWQgKi9cbi51ay10YWIgPiAudWstZGlzYWJsZWQgPiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogUG9zaXRpb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEJvdHRvbVxuICovXG4udWstdGFiLWJvdHRvbTo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBib3R0b206IGF1dG87IH1cblxuLnVrLXRhYi1ib3R0b20gPiAqID4gYSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4vKlxuICogTGVmdCArIFJpZ2h0XG4gKiAxLiBSZXNldCBHdXR0ZXJcbiAqL1xuLnVrLXRhYi1sZWZ0LFxuLnVrLXRhYi1yaWdodCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIDEgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogMSAqL1xuLnVrLXRhYi1sZWZ0ID4gKixcbi51ay10YWItcmlnaHQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi51ay10YWItbGVmdDo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnVrLXRhYi1yaWdodDo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnVrLXRhYi1sZWZ0ID4gKiA+IGEge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4udWstdGFiLXJpZ2h0ID4gKiA+IGEge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi51ay10YWIgLnVrLWRyb3Bkb3duIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNsaWRlbmF2XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZG9wdHMgYHVrLWljb25gXG4gKi9cbi51ay1zbGlkZW5hdiB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UtaW4tb3V0OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1zbGlkZW5hdjpob3Zlcixcbi51ay1zbGlkZW5hdjpmb2N1cyB7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuOSk7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogT25DbGljayAqL1xuLnVrLXNsaWRlbmF2OmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSk7IH1cblxuLyogSWNvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJldmlvdXNcbiAqL1xuLypcbiAqIE5leHRcbiAqL1xuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc2xpZGVuYXYtbGFyZ2Uge1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7IH1cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zbGlkZW5hdi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEb3RuYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGl0ZW1zIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKiAzLiBHdXR0ZXJcbiAqL1xuLnVrLWRvdG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLyogMyAqL1xuICBtYXJnaW4tbGVmdDogLTEycHg7IH1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKi9cbi51ay1kb3RuYXYgPiAqIHtcbiAgLyogMSAqL1xuICBmbGV4OiBub25lO1xuICAvKiAyICovXG4gIHBhZGRpbmctbGVmdDogMTJweDsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSXRlbXNcbiAqIDEuIEhpZGUgdGV4dCBpZiBwcmVzZW50XG4gKi9cbi51ay1kb3RuYXYgPiAqID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIHRleHQtaW5kZW50OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNCk7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcjsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstZG90bmF2ID4gKiA+IDpob3Zlcixcbi51ay1kb3RuYXYgPiAqID4gOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjYpO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4yKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1kb3RuYXYgPiAudWstYWN0aXZlID4gKiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC42KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBNb2RpZmllcjogJ3VrLWRvdG5hdi12ZXJ0aWNhbCdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG4udWstZG90bmF2LXZlcnRpY2FsIHtcbiAgLyogMSAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiAyICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtMTJweDsgfVxuXG4vKiAyICovXG4udWstZG90bmF2LXZlcnRpY2FsID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy10b3A6IDEycHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRodW1ibmF2XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gR3V0dGVyXG4gKi9cbi51ay10aHVtYm5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLyogMyAqL1xuICBtYXJnaW4tbGVmdDogLTE1cHg7IH1cblxuLypcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzOiAwIDEgYXV0b1xuICogMS4gR3V0dGVyXG4gKi9cbi51ay10aHVtYm5hdiA+ICoge1xuICAvKiAxICovXG4gIHBhZGRpbmctbGVmdDogMTVweDsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSXRlbXNcbiAqL1xuLnVrLXRodW1ibmF2ID4gKiA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudWstdGh1bWJuYXYgPiAqID4gKjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UtaW4tb3V0OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay10aHVtYm5hdiA+ICogPiA6aG92ZXIsXG4udWstdGh1bWJuYXYgPiAqID4gOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuICAudWstdGh1bWJuYXYgPiAqID4gOmhvdmVyOjphZnRlcixcbiAgLnVrLXRodW1ibmF2ID4gKiA+IDpmb2N1czo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXRodW1ibmF2ID4gLnVrLWFjdGl2ZSA+ICo6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogTW9kaWZpZXI6ICd1ay10aHVtYm5hdi12ZXJ0aWNhbCdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG4udWstdGh1bWJuYXYtdmVydGljYWwge1xuICAvKiAxICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC0xNXB4OyB9XG5cbi8qIDIgKi9cbi51ay10aHVtYm5hdi12ZXJ0aWNhbCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctdG9wOiAxNXB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBY2NvcmRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFjY29yZGlvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uID4gOm50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICMzMzM7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnVrLWFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxLjRlbTtcbiAgICBoZWlnaHQ6IDEuNGVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMyUyMDEzJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHdpZHRoJTNEJTIyMTMlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyNiUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwd2lkdGglM0QlMjIxJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB4JTNEJTIyNiUyMiUyMHklM0QlMjIwJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTsgfVxuICAudWstb3BlbiA+IC51ay1hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMSUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjYlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWFjY29yZGlvbi10aXRsZTpob3Zlcixcbi51ay1hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIENvbnRlbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLWFjY29yZGlvbi1jb250ZW50ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEcm9wXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxuICovXG4udWstZHJvcCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMjA7XG4gIC8qIDMgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDMwMHB4OyB9XG5cbi8qIFNob3cgKi9cbi51ay1kcm9wLnVrLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERpcmVjdGlvbiAqL1xuW2NsYXNzKj0ndWstZHJvcC10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0yMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtYm90dG9tJ10ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtbGVmdCddIHtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbi8qIEdyaWQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kcm9wLXN0YWNrIC51ay1kcm9wLWdyaWQgPiAqIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRHJvcGRvd25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKiA0LiBTdHlsZVxuICovXG4udWstZHJvcGRvd24ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDIwO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMjVweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4vKiBTaG93ICovXG4udWstZHJvcGRvd24udWstb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIE5hdlxuICogQWRvcHRzIGB1ay1uYXZgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kcm9wZG93bi1uYXYge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qXG4gKiBJdGVtc1xuICovXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyArIEFjdGl2ZSAqL1xuLnVrLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpob3Zlcixcbi51ay1kcm9wZG93bi1uYXYgPiBsaSA+IGE6Zm9jdXMsXG4udWstZHJvcGRvd24tbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LWhlYWRlciB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYTpmb2N1cyxcbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIERpcmVjdGlvbiAvIEFsaWdubWVudCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay1kcm9wZG93bi10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0xMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3Bkb3duLWJvdHRvbSddIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5bY2xhc3MqPSd1ay1kcm9wZG93bi1sZWZ0J10ge1xuICBtYXJnaW4tbGVmdDogLTEwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcGRvd24tcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi8qIEdyaWQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kcm9wZG93bi1zdGFjayAudWstZHJvcGRvd24tZ3JpZCA+ICoge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBNb2RhbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqIDMuIEFsbG93IHNjcm9sbGluZyBmb3IgdGhlIG1vZGFsIGRpYWxvZ1xuICogNC4gSG9yaXpvbnRhbCBwYWRkaW5nXG4gKiA1LiBNYXNrIHRoZSBiYWNrZ3JvdW5kIHBhZ2VcbiAqIDYuIEZhZGUtaW4gdHJhbnNpdGlvblxuICovXG4udWstbW9kYWwge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMTA7XG4gIC8qIDMgKi9cbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAvKiA0ICovXG4gIHBhZGRpbmc6IDMycHggMzJweDtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAvKiA2ICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyOyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLW1vZGFsIHtcbiAgICBwYWRkaW5nOiA1MHB4IDMwcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLW1vZGFsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfSB9XG5cbi8qXG4gKiBPcGVuXG4gKi9cbi51ay1tb2RhbC51ay1vcGVuIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmV2ZW50IHNjcm9sbGJhcnNcbiAqL1xuLnVrLW1vZGFsLXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIERpYWxvZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIHNwaW5uZXIgYW5kIGNsb3NlIGJ1dHRvblxuICogMi4gRGltZW5zaW9uc1xuICogMy4gRml4IGBtYXgtd2lkdGg6IDEwMCVgIG5vdCB3b3JraW5nIGluIGNvbWJpbmF0aW9uIHdpdGggZmxleCBhbmQgcmVzcG9uc2l2ZSBpbWFnZXMgaW4gSUUxMVxuICogICAgYCFpbXBvcnRhbnRgIG5lZWRlZCB0byBvdmVyd3JpdGUgYHVrLXdpZHRoLWF1dG9gLiBTZWUgYCNtb2RhbC1tZWRpYS1pbWFnZWAgaW4gdGVzdHNcbiAqIDQuIFN0eWxlXG4gKiA1LiBTbGlkZS1pbiB0cmFuc2l0aW9uXG4gKi9cbi51ay1tb2RhbC1kaWFsb2cge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDYwMHB4O1xuICAvKiAzICovXG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMC4wMXB4KSAhaW1wb3J0YW50O1xuICAvKiA0ICovXG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIC8qIDUgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDBweCk7XG4gIHRyYW5zaXRpb246IDAuM3MgbGluZWFyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07IH1cblxuLypcbiAqIE9wZW5cbiAqL1xuLnVrLW9wZW4gPiAudWstbW9kYWwtZGlhbG9nIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENvbnRhaW5lciBzaXplXG4gKiBUYWtlIHRoZSBzYW1lIHNpemUgYXMgdGhlIENvbnRhaW5lciBjb21wb25lbnRcbiAqL1xuLnVrLW1vZGFsLWNvbnRhaW5lciAudWstbW9kYWwtZGlhbG9nIHtcbiAgd2lkdGg6IDEyMDBweDsgfVxuXG4vKlxuICogRnVsbCBzaXplXG4gKiAxLiBSZW1vdmUgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBmcm9tIG1vZGFsXG4gKiAyLiBSZXNldCBhbGwgZGVmYXVsdCBkZWNsYXJhdGlvbnMgZnJvbSBtb2RhbCBkaWFsb2dcbiAqL1xuLyogMSAqL1xuLnVrLW1vZGFsLWZ1bGwge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi8qIDIgKi9cbi51ay1tb2RhbC1mdWxsIC51ay1tb2RhbC1kaWFsb2cge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbW9kYWwtYm9keSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTZweCAxNnB4OyB9XG5cbi51ay1tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLnVrLW1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTVweCAzMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1tb2RhbC1ib2R5ID4gOmxhc3QtY2hpbGQsXG4udWstbW9kYWwtaGVhZGVyID4gOmxhc3QtY2hpbGQsXG4udWstbW9kYWwtZm9vdGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tb2RhbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG4vKiBDbG9zZVxuICogQWRvcHRzIGB1ay1jbG9zZWBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstbW9kYWwtY2xvc2UtJ10ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMTA7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcbiAqL1xuW2NsYXNzKj0ndWstbW9kYWwtY2xvc2UtJ106Zmlyc3QtY2hpbGQgKyAqIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLypcbiAqIE91dHNpZGVcbiAqIDEuIFByZXZlbnQgc2Nyb2xsYmFyIG9uIHNtYWxsIGRldmljZXNcbiAqL1xuLnVrLW1vZGFsLWNsb3NlLW91dHNpZGUge1xuICB0b3A6IDA7XG4gIC8qIDEgKi9cbiAgcmlnaHQ6IC01cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC8qIDEgKi9cbiAgLnVrLW1vZGFsLWNsb3NlLW91dHNpZGUge1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC0xMDAlKTsgfSB9XG5cbi8qXG4gKiBGdWxsXG4gKi9cbi51ay1tb2RhbC1jbG9zZS1mdWxsIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGlnaHRib3hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmcgZm9yIHRoZSBtb2RhbCBkaWFsb2dcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXG4gKiA2LiBGYWRlLWluIHRyYW5zaXRpb25cbiAqIDcuIFByZXZlbnQgY2FuY2VsbGF0aW9uIG9mIHBvaW50ZXIgZXZlbnRzIHdoaWxlIGRyYWdnaW5nXG4gKi9cbi51ay1saWdodGJveCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAxMDtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAvKiA2ICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICAvKiA3ICovXG4gIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbTsgfVxuXG4vKlxuICogT3BlblxuICogMS4gQ2VudGVyIGNoaWxkXG4gKiAyLiBGYWRlLWluXG4gKi9cbi51ay1saWdodGJveC51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIDIgKi9cbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmV2ZW50IHNjcm9sbGJhcnNcbiAqL1xuLnVrLWxpZ2h0Ym94LXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENlbnRlciBjaGlsZCB3aXRoaW4gdGhlIHZpZXdwb3J0XG4gKiAyLiBOb3QgdmlzaWJsZSBieSBkZWZhdWx0XG4gKiAzLiBDb2xvciBuZWVkZWQgZm9yIHNwaW5uZXIgaWNvblxuICogNC4gT3B0aW1pemUgYW5pbWF0aW9uXG4gKiA1LiBSZXNwb25zaXZlbmVzc1xuICogICAgVXNpbmcgYHZoYCBmb3IgYG1heC1oZWlnaHRgIHRvIGZpeCBpbWFnZSBwcm9wb3J0aW9ucyBhZnRlciByZXNpemUgaW4gU2FmYXJpIGFuZCBPcGVyYVxuICogICAgVXNpbmcgYHZoYCBhbmQgYHZ3YCB0byBtYWtlIHJlc3BvbnNpdmUgaW1hZ2Ugd29yayBpbiBJRTExXG4gKiA2LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXG4gKi9cbi51ay1saWdodGJveC1pdGVtcyA+ICoge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiAzICovXG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC8qIDQgKi9cbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsgfVxuXG4vKiA1ICovXG4udWstbGlnaHRib3gtaXRlbXMgPiAqID4gKiB7XG4gIG1heC13aWR0aDogMTAwdnc7XG4gIG1heC1oZWlnaHQ6IDEwMHZoOyB9XG5cbi8qIDYgKi9cbi51ay1saWdodGJveC1pdGVtcyA+IDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+IDpub3QoaWZyYW1lKSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gLnVrLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyogVG9vbGJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlnaHRib3gtdG9vbGJhciB7XG4gIHBhZGRpbmc6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG5cbi51ay1saWdodGJveC10b29sYmFyID4gKiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cblxuLyogVG9vbGJhciBJY29uIChDbG9zZSlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbiB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIEJ1dHRvbiAoU2xpZGVuYXYpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcbiAqIEhvdmVyXG4gKi9cbi51ay1saWdodGJveC1idXR0b246aG92ZXIge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiBDYXB0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saWdodGJveC1jYXB0aW9uOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBJZnJhbWVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LWlmcmFtZSB7XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogODAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTbGlkZXNob3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXG4gKi9cbi51ay1zbGlkZXNob3cge1xuICAvKiAxICovXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBhbmQgc3RhY2tpbmcgY29udGV4dFxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gQ2xpcCBjaGlsZCBlbGVtZW50c1xuICogNC4gUHJldmVudCBkaXNwbGF5aW5nIHRoZSBjYWxsb3V0IGluZm9ybWF0aW9uIG9uIGlPUy5cbiAqL1xuLnVrLXNsaWRlc2hvdy1pdGVtcyB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLyogMyAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiA0ICovXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBQb3NpdGlvbiBpdGVtcyBhYm92ZSBlYWNoIG90aGVyXG4gKiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoXG4gKiAzLiBDbGlwIGNoaWxkIGVsZW1lbnRzLCBlLmcuIGZvciBgdWstY292ZXJgXG4gKiA0LiBPcHRpbWl6ZSBhbmltYXRpb25cbiAqIDUuIERpc2FibGUgaG9yaXpvbnRhbCBwYW5uaW5nIGdlc3R1cmVzIGluIElFMTEgYW5kIEVkZ2VcbiAqIDYuIFN1cHByZXNzIG91dGxpbmUgb24gZm9jdXNcbiAqL1xuLnVrLXNsaWRlc2hvdy1pdGVtcyA+ICoge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIC8qIDMgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogNCAqL1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAvKiA1ICovXG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7IH1cblxuLyogNiAqL1xuLnVrLXNsaWRlc2hvdy1pdGVtcyA+IDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIEhpZGUgbm90IGFjdGl2ZSBpdGVtc1xuICovXG4udWstc2xpZGVzaG93LWl0ZW1zID4gOm5vdCgudWstYWN0aXZlKSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNsaWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuLnVrLXNsaWRlciB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBDb250YWluZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqL1xuLnVrLXNsaWRlci1jb250YWluZXIge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE9wdGltaXplIGFuaW1hdGlvblxuICogMi4gQ3JlYXRlIGEgY29udGFpbmluZyBibG9jay4gSW4gU2FmYXJpIGl0J3MgbmVpdGhlciBjcmVhdGVkIGJ5IGB0cmFuc2Zvcm1gIG5vciBgd2lsbC1jaGFuZ2VgLlxuICovXG4udWstc2xpZGVyLWl0ZW1zIHtcbiAgLyogMSAqL1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKlxuICogMS4gUmVzZXQgbGlzdCBzdHlsZSB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggZ3JpZFxuICogMi4gUHJldmVudCBkaXNwbGF5aW5nIHRoZSBjYWxsb3V0IGluZm9ybWF0aW9uIG9uIGlPUy5cbiAqL1xuLnVrLXNsaWRlci1pdGVtczpub3QoLnVrLWdyaWQpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi51ay1zbGlkZXItaXRlbXMudWstZ3JpZCB7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIExldCBpdGVtcyB0YWtlIGNvbnRlbnQgZGltZW5zaW9ucyAoMCAwIGF1dG8pXG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxuICogNC4gU3VwcHJlc3Mgb3V0bGluZSBvbiBmb2N1c1xuICovXG4udWstc2xpZGVyLWl0ZW1zID4gKiB7XG4gIC8qIDEgKi9cbiAgZmxleDogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIDMgKi9cbiAgdG91Y2gtYWN0aW9uOiBwYW4teTsgfVxuXG4vKiA0ICovXG4udWstc2xpZGVyLWl0ZW1zID4gOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU3RpY2t5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBSZXNvbHZlIGZyYW1lIHJhdGUgaXNzdWVzIG9uIGRldmljZXMgd2l0aCBsb3dlciBmcmFtZSByYXRlcyBieSBmb3JjaW5nIGhhcmR3YXJlIGFjY2VsZXJhdGlvblxuICovXG4udWstc3RpY2t5LWZpeGVkIHtcbiAgei1pbmRleDogOTgwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXG4gKiBGYXN0ZXIgYW5pbWF0aW9uc1xuICovXG4udWstc3RpY2t5W2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOyB9XG5cbi51ay1zdGlja3kudWstYW5pbWF0aW9uLXJldmVyc2Uge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuMnM7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE9mZi1jYW52YXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKi9cbi51ay1vZmZjYW52YXMge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDsgfVxuXG4vKlxuICogRmxpcCBtb2RpZmllclxuICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcyB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi8qIEJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBTaXplIGFuZCBzdHlsZVxuICogMy4gQWxsb3cgc2Nyb2xsaW5nXG4gKi9cbi51ay1vZmZjYW52YXMtYmFyIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMjcwcHg7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDI3MHB4O1xuICBwYWRkaW5nOiAyMHB4IDIwcHg7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIC8qIDMgKi9cbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstb2ZmY2FudmFzLWJhciB7XG4gICAgbGVmdDogLTM1MHB4O1xuICAgIHdpZHRoOiAzNTBweDtcbiAgICBwYWRkaW5nOiA0MHB4IDQwcHg7IH0gfVxuXG4vKiBGbGlwIG1vZGlmaWVyICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIHJpZ2h0OiAtMzUwcHg7IH0gfVxuXG4vKlxuICogT3BlblxuICovXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtYmFyIHtcbiAgbGVmdDogMDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLWJhciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi8qXG4gKiBTbGlkZSBBbmltYXRpb24gKFVzZWQgaW4gc2xpZGUgYW5kIHB1c2ggbW9kZSlcbiAqL1xuLnVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uIHtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2Utb3V0OyB9XG5cbi51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLWJhci1hbmltYXRpb24ge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiByaWdodDsgfVxuXG4vKlxuICogUmV2ZWFsIEFuaW1hdGlvblxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBDbGlwIHRoZSBiYXJcbiAqIDMuIEFuaW1hdGlvblxuICogNC4gUmVzZXQgcG9zaXRpb25cbiAqL1xuLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIDIgKi9cbiAgd2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIDMgKi9cbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlLW91dDsgfVxuXG4udWstb2ZmY2FudmFzLXJldmVhbCAudWstb2ZmY2FudmFzLWJhciB7XG4gIC8qIDQgKi9cbiAgbGVmdDogMDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAvKiA0ICovXG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICB3aWR0aDogMjcwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICAgIHdpZHRoOiAzNTBweDsgfSB9XG5cbi8qXG4gKiBGbGlwIG1vZGlmaWVyXG4gKi9cbi51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLXJldmVhbCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi8qIENsb3NlXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstb2ZmY2FudmFzLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLyogT3ZlcmxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogT3ZlcmxheSB0aGUgd2hvbGUgcGFnZS4gTmVlZGVkIGZvciB0aGUgYDo6YmVmb3JlYFxuICogMS4gVXNpbmcgYDEwMHZ3YCBzbyBubyBtb2RpZmljYXRpb24gaXMgbmVlZGVkIHdoZW4gb2ZmLWNhbnZhcyBpcyBmbGlwcGVkXG4gKiAyLiBBbGxvdyBmb3IgY2xvc2luZyB3aXRoIHN3aXBlIGdlc3R1cmUgb24gZGV2aWNlcyB3aXRoIHBvaW50ZXIgZXZlbnRzLlxuICovXG4udWstb2ZmY2FudmFzLW92ZXJsYXkge1xuICAvKiAxICovXG4gIHdpZHRoOiAxMDB2dztcbiAgLyogMiAqL1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLypcbiAqIDEuIE1hc2sgdGhlIHdob2xlIHBhZ2VcbiAqIDIuIEZhZGUtaW4gdHJhbnNpdGlvblxuICovXG4udWstb2ZmY2FudmFzLW92ZXJsYXk6OmJlZm9yZSB7XG4gIC8qIDEgKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLyogMiAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuXG4udWstb2ZmY2FudmFzLW92ZXJsYXkudWstb3Blbjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQcmV2ZW50IHNjcm9sbGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJldmVudCBob3Jpem9udGFsIHNjcm9sbGJhciB3aGVuIHRoZSBjb250ZW50IGlzIHNsaWRlLW91dFxuICogSGFzIHRvIGJlIG9uIHRoZSBgaHRtbGAgZWxlbWVudCB0b28gdG8gbWFrZSBpdCB3b3JrIG9uIHRoZSBgYm9keWBcbiAqL1xuLnVrLW9mZmNhbnZhcy1wYWdlLFxuLnVrLW9mZmNhbnZhcy1jb250YWluZXIge1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmVwYXJlIHNsaWRlLW91dCBhbmltYXRpb24gKFVzZWQgaW4gcmV2ZWFsIGFuZCBwdXNoIG1vZGUpXG4gKiBVc2luZyBgcG9zaXRpb246IGxlZnRgIGluc3RlYWQgb2YgYHRyYW5zZm9ybWAgYmVjYXVzZSBwb3NpdGlvbiBgZml4ZWRgIGVsZW1lbnRzIGxpa2Ugc3RpY2t5IG5hdmJhcnNcbiAqIGxvc2UgdGhlaXIgZml4ZWQgc3RhdGUgYW5kIGJlaGF2ZXMgbGlrZSBgYWJzb2x1dGVgIHdpdGhpbiBhIHRyYW5zZm9ybWVkIGNvbnRhaW5lclxuICogMS4gUHJvdmlkZSBhIGZpeGVkIHdpZHRoIGFuZCBwcmV2ZW50IHNocmlua2luZ1xuICovXG4udWstb2ZmY2FudmFzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2Utb3V0O1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qXG4gKiBBY3RpdmF0ZSBzbGlkZS1vdXQgYW5pbWF0aW9uXG4gKi9cbjpub3QoLnVrLW9mZmNhbnZhcy1mbGlwKS51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gIGxlZnQ6IDI3MHB4OyB9XG5cbi51ay1vZmZjYW52YXMtZmxpcC51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gIGxlZnQ6IC0yNzBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgOm5vdCgudWstb2ZmY2FudmFzLWZsaXApLnVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uIHtcbiAgICBsZWZ0OiAzNTBweDsgfVxuICAudWstb2ZmY2FudmFzLWZsaXAudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24ge1xuICAgIGxlZnQ6IC0zNTBweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTd2l0Y2hlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVzZXQgbGlzdFxuICovXG4udWstc3dpdGNoZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEhpZGUgbm90IGFjdGl2ZSBpdGVtc1xuICovXG4udWstc3dpdGNoZXIgPiA6bm90KC51ay1hY3RpdmUpIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1zd2l0Y2hlciA+ICogPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExlYWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGVhZGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxuICogMS4gUGxhY2UgZWxlbWVudCBpbiB0ZXh0IGZsb3dcbiAqIDIuIE5ldmVyIGJyZWFrIGludG8gYSBuZXcgbGluZVxuICogMy4gR2V0IGEgc3RyaW5nIGJhY2sgd2l0aCBhcyBtYW55IHJlcGVhdGluZyBjaGFyYWN0ZXJzIHRvIGZpbGwgdGhlIGNvbnRhaW5lclxuICogNC4gUHJldmVudCB3cmFwcGluZy4gT3ZlcmZsb3dpbmcgY2hhcmFjdGVycyB3aWxsIGJlIGNsaXBwZWQgYnkgdGhlIGNvbnRhaW5lclxuICovXG4udWstbGVhZGVyLWZpbGw6OmFmdGVyIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAvKiAyICovXG4gIHdpZHRoOiAwO1xuICAvKiAzICovXG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1maWxsKTtcbiAgLyogNCAqL1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qXG4gKiBIaWRlIGlmIG1lZGlhIGRvZXMgbm90IG1hdGNoXG4gKi9cbi51ay1sZWFkZXItZmlsbC51ay1sZWFkZXItaGlkZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qXG4gKiBQYXNzIGZpbGwgY2hhcmFjdGVyIHRvIEpTXG4gKi9cbi51ay1sZWFkZXItZmlsbC1jb250ZW50OjpiZWZvcmUge1xuICBjb250ZW50OiBcIi5cIjsgfVxuXG46cm9vdCB7XG4gIC0tdWstbGVhZGVyLWZpbGwtY29udGVudDogLjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogSWNvbm5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIFJlc2V0IGxpc3RcbiAqIDMuIEd1dHRlclxuICovXG4udWstaWNvbm5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLyogMyAqL1xuICBtYXJnaW4tbGVmdDogLTEwcHg7IH1cblxuLypcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzOiAwIDEgYXV0b1xuICogMS4gR3V0dGVyXG4gKi9cbi51ay1pY29ubmF2ID4gKiB7XG4gIC8qIDEgKi9cbiAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBJdGVtcyBtdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBkcm9wZG93bnMpXG4gKiAxLiBQcmV2ZW50IGdhcCBpZiBjaGlsZCBlbGVtZW50IGlzIGBpbmxpbmUtYmxvY2tgLCBlLmcuIGFuIGljb25cbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1pY29ubmF2ID4gKiA+IGEge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiAyICovXG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1pY29ubmF2ID4gKiA+IGE6aG92ZXIsXG4udWstaWNvbm5hdiA+ICogPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogQWN0aXZlICovXG4udWstaWNvbm5hdiA+IC51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogTW9kaWZpZXI6ICd1ay1pY29ubmF2LXZlcnRpY2FsJ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQ2hhbmdlIGRpcmVjdGlvblxuICogMi4gR3V0dGVyXG4gKi9cbi51ay1pY29ubmF2LXZlcnRpY2FsIHtcbiAgLyogMSAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiAyICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtMTBweDsgfVxuXG4vKiAyICovXG4udWstaWNvbm5hdi12ZXJ0aWNhbCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctdG9wOiAxMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBOb3RpZmljYXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gRGltZW5zaW9uc1xuICovXG4udWstbm90aWZpY2F0aW9uIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgei1pbmRleDogMTA0MDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzUwcHg7IH1cblxuLyogUG9zaXRpb24gbW9kaWZpZXJzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMHB4OyB9XG5cbi51ay1ub3RpZmljYXRpb24tdG9wLWNlbnRlcixcbi51ay1ub3RpZmljYXRpb24tYm90dG9tLWNlbnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xNzVweDsgfVxuXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1jZW50ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTBweDsgfVxuXG4vKiBSZXNwb25zaXZlbmVzc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFBob25lcyBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51ay1ub3RpZmljYXRpb24ge1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwOyB9IH1cblxuLyogTWVzc2FnZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ub3RpZmljYXRpb24tbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTVweDtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbiogKyAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi8qIENsb3NlXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbm90aWZpY2F0aW9uLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAxNXB4OyB9XG5cbi51ay1ub3RpZmljYXRpb24tbWVzc2FnZTpob3ZlciAudWstbm90aWZpY2F0aW9uLWNsb3NlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmltYXJ5XG4gKi9cbi51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IHtcbiAgY29sb3I6ICMxZTg3ZjA7IH1cblxuLypcbiAqIFN1Y2Nlc3NcbiAqL1xuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzMyZDI5NjsgfVxuXG4vKlxuICogV2FybmluZ1xuICovXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZyB7XG4gIGNvbG9yOiAjZmFhMDVhOyB9XG5cbi8qXG4gKiBEYW5nZXJcbiAqL1xuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlciB7XG4gIGNvbG9yOiAjZjA1MDZlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUb29sdGlwXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFBvc2l0aW9uXG4gKiAzLiBSZW1vdmUgdG9vbHRpcCBmcm9tIGRvY3VtZW50IGZsb3cgdG8ga2VlcCB0aGUgVUlraXQgY29udGFpbmVyIGZyb20gY2hhbmdpbmcgaXRzIHNpemUgd2hlbiBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBpbml0aWFsbHlcbiAqIDQuIERpbWVuc2lvbnNcbiAqIDUuIFN0eWxlXG4gKi9cbi51ay10b29sdGlwIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAzMDtcbiAgLyogMyAqL1xuICB0b3A6IDA7XG4gIC8qIDQgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogM3B4IDZweDtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiAjNjY2O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLyogU2hvdyAqL1xuLnVrLXRvb2x0aXAudWstYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEaXJlY3Rpb24gKi9cbltjbGFzcyo9J3VrLXRvb2x0aXAtdG9wJ10ge1xuICBtYXJnaW4tdG9wOiAtMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLWJvdHRvbSddIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLXJpZ2h0J10ge1xuICBtYXJnaW4tbGVmdDogMTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGxhY2Vob2xkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBsYWNlaG9sZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMzBweCAzMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICNlNWU1ZTU7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXBsYWNlaG9sZGVyIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1wbGFjZWhvbGRlciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUHJvZ3Jlc3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKiAyLiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogMy4gQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiA0LiBSZW1vdmUgYm9yZGVycyBpbiBGaXJlZm94IGFuZCBFZGdlXG4gKiA1LiBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgcHJvZ3Jlc3MgY29udGFpbmVyIGluIEZpcmVmb3gsIElFMTEgYW5kIEVkZ2VcbiAqIDYuIFN0eWxlXG4gKi9cbi51ay1wcm9ncmVzcyB7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiAzICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgLyogNCAqL1xuICBib3JkZXI6IDA7XG4gIC8qIDUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgLyogNiAqL1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIC51ay1wcm9ncmVzcyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLypcbiAqIFJlbW92ZSBhbmltYXRlZCBjaXJjbGVzIGZvciBpbmRldGVybWluYXRlIHN0YXRlIGluIElFMTEgYW5kIEVkZ2VcbiAqL1xuLnVrLXByb2dyZXNzOmluZGV0ZXJtaW5hdGUge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbiAqIFByb2dyZXNzIGNvbnRhaW5lclxuICogMi4gUmVtb3ZlIHByb2dyZXNzIGJhciBmb3IgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBpbiBGaXJlZm94XG4gKi9cbi51ay1wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiAyICovXG4udWstcHJvZ3Jlc3M6aW5kZXRlcm1pbmF0ZTo6LW1vei1wcm9ncmVzcy1iYXIge1xuICB3aWR0aDogMDsgfVxuXG4vKlxuICogUHJvZ3Jlc3MgYmFyXG4gKiAxLiBSZW1vdmUgcmlnaHQgYm9yZGVyIGluIElFMTEgYW5kIEVkZ2VcbiAqL1xuLnVrLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlOyB9XG5cbi51ay1wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4N2YwOyB9XG5cbi51ay1wcm9ncmVzczo6LW1zLWZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4N2YwO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIC8qIDEgKi9cbiAgYm9yZGVyOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTb3J0YWJsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc29ydGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLypcbiAqIERlYWN0aXZhdGUgcG9pbnRlci1ldmVudHMgb24gU1ZHcyBpbiBTYWZhcmlcbiAqL1xuLnVrLXNvcnRhYmxlIHN2ZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLXNvcnRhYmxlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIERyYWdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNvcnRhYmxlLWRyYWcge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiBQbGFjZWhvbGRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiBFbXB0eSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc29ydGFibGUtZW1wdHkge1xuICBtaW4taGVpZ2h0OiA1MHB4OyB9XG5cbi8qIEhhbmRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBIb3ZlciAqL1xuLnVrLXNvcnRhYmxlLWhhbmRsZTpob3ZlciB7XG4gIGN1cnNvcjogbW92ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ291bnRkb3duXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTnVtYmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBNYWtlIG51bWJlcnMgYWxsIG9mIHRoZSBzYW1lIHNpemUgdG8gcHJldmVudCBqdW1waW5nLiBNdXN0IGJlIHN1cHBvcnRlZCBieSB0aGUgZm9udC5cbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgLyogMSAqL1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAvKiAyICovXG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuODsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgICBmb250LXNpemU6IDRyZW07IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNvdW50ZG93bi1udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogNnJlbTsgfSB9XG5cbi8qIFNlcGFyYXRvclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY291bnRkb3duLXNlcGFyYXRvciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICBmb250LXNpemU6IDJyZW07IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNvdW50ZG93bi1zZXBhcmF0b3Ige1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfSB9XG5cbi8qIExhYmVsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbmltYXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG4vKiBBbmltYXRpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBGYWRlXG4gKi9cbi51ay1hbmltYXRpb24tZmFkZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuOHM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG4vKlxuICogU2NhbGVcbiAqL1xuLnVrLWFuaW1hdGlvbi1zY2FsZS11cCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTAyOyB9XG5cbi51ay1hbmltYXRpb24tc2NhbGUtZG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTE4OyB9XG5cbi8qXG4gKiBTbGlkZVxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXRvcDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbTsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1sZWZ0OyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1yaWdodDsgfVxuXG4vKlxuICogU2xpZGUgU21hbGxcbiAqL1xuLnVrLWFuaW1hdGlvbi1zbGlkZS10b3Atc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3Atc21hbGw7IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1ib3R0b20tc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1ib3R0b20tc21hbGw7IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdC1zbWFsbDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0LXNtYWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtc21hbGw7IH1cblxuLypcbiAqIFNsaWRlIE1lZGl1bVxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1tZWRpdW0ge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3AtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1tZWRpdW07IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtbWVkaXVtOyB9XG5cbi8qXG4gKiBLZW5idXJuc1xuICovXG4udWstYW5pbWF0aW9uLWtlbmJ1cm5zIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLXNjYWxlLWtlbmJ1cm5zO1xuICBhbmltYXRpb24tZHVyYXRpb246IDE1czsgfVxuXG4vKlxuICogU2hha2VcbiAqL1xuLnVrLWFuaW1hdGlvbi1zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1zaGFrZTsgfVxuXG4vKlxuICogU1ZHIFN0cm9rZVxuICogVGhlIGAtLXVrLWFuaW1hdGlvbi1zdHJva2VgIGN1c3RvbSBwcm9wZXJ0eSBjb250YWlucyB0aGUgbG9uZ2VzdCBwYXRoIGxlbmd0aC5cbiAqIFNldCBpdCBtYW51YWxseSBvciB1c2UgYHVrLXN2Zz1cInN0cm9rZS1hbmltYXRpb246IHRydWVcImAgdG8gc2V0IGl0IGF1dG9tYXRpY2FsbHkuXG4gKiBBbGwgc3Ryb2tlcyBhcmUgYW5pbWF0ZWQgYnkgdGhlIHNhbWUgcGFjZSBhbmQgZG9lc24ndCBlbmQgc2ltdWx0YW5lb3VzbHkuXG4gKiBUbyBlbmQgc2ltdWx0YW5lb3VzbHksIGBwYXRoTGVuZ3RoPVwiMVwiYCBjb3VsZCBiZSB1c2VkLCBidXQgaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgeWV0LlxuICovXG4udWstYW5pbWF0aW9uLXN0cm9rZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1zdHJva2U7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IHZhcigtLXVrLWFuaW1hdGlvbi1zdHJva2UpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzOyB9XG5cbi8qIERpcmVjdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYW5pbWF0aW9uLXJldmVyc2Uge1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG5cbi8qIER1cmF0aW9uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hbmltYXRpb24tZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xczsgfVxuXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFRoZSB0b2dnbGUgaXMgdHJpZ2dlcmVkIG9uIHRvdWNoIGRldmljZXMgdXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKi9cbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG4udWstYW5pbWF0aW9uLXRvZ2dsZSB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcbiAqL1xuLnVrLWFuaW1hdGlvbi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIEtleWZyYW1lcyB1c2VkIGJ5IGFuaW1hdGlvbiBjbGFzc2VzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBGYWRlXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4vKlxuICogU2xpZGUgVG9wXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS10b3Age1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIEJvdHRvbVxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtYm90dG9tIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIExlZnRcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIFJpZ2h0XG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTbGlkZSBUb3AgU21hbGxcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgQm90dG9tIFNtYWxsXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1ib3R0b20tc21hbGwge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgTGVmdCBTbWFsbFxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgUmlnaHQgU21hbGxcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LXNtYWxsIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIFRvcCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1tZWRpdW0ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIEJvdHRvbSBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbS1tZWRpdW0ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgTGVmdCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQtbWVkaXVtIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTbGlkZSBSaWdodCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LW1lZGl1bSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTY2FsZSBVcFxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtc2NhbGUtMDIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuLypcbiAqIFNjYWxlIERvd25cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXNjYWxlLTE4IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbi8qXG4gKiBLZW5idXJuc1xuICovXG5Aa2V5ZnJhbWVzIHVrLXNjYWxlLWtlbmJ1cm5zIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9IH1cblxuLypcbiAqIFNoYWtlXG4gKi9cbkBrZXlmcmFtZXMgdWstc2hha2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTdweCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IH0gfVxuXG4vKlxuICogU3Ryb2tlXG4gKi9cbkBrZXlmcmFtZXMgdWstc3Ryb2tlIHtcbiAgMCUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiB2YXIoLS11ay1hbmltYXRpb24tc3Ryb2tlKTsgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBXaWR0aFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBFcXVhbCBjaGlsZCB3aWR0aHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstY2hpbGQtd2lkdGgnXSA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTsgfVxuXG4udWstY2hpbGQtd2lkdGgtMS0yID4gKiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtMyA+ICoge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuXG4udWstY2hpbGQtd2lkdGgtMS00ID4gKiB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtNSA+ICoge1xuICB3aWR0aDogMjAlOyB9XG5cbi51ay1jaGlsZC13aWR0aC0xLTYgPiAqIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cblxuLnVrLWNoaWxkLXdpZHRoLWF1dG8gPiAqIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLypcbiAqIDEuIFJlc2V0IHRoZSBgbWluLXdpZHRoYCwgd2hpY2ggaXMgc2V0IHRvIGF1dG8gYnkgZGVmYXVsdCwgYmVjYXVzZVxuICogICAgZmxleCBpdGVtcyB3b24ndCBzaHJpbmsgYmVsb3cgdGhlaXIgbWluaW11bSBpbnRyaW5zaWMgY29udGVudCBzaXplLlxuICogICAgVXNpbmcgYDFweGAgaW5zdGVhZCBvZiBgMGAsIHNvIGl0ZW1zIHN0aWxsIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lLFxuICogICAgaWYgdGhleSBoYXZlIHplcm8gd2lkdGggYW5kIHBhZGRpbmcgYW5kIHRoZSBwcmVkZWNlc3NvciBpcyAxMDAlIHdpZGUuXG4gKi9cbi51ay1jaGlsZC13aWR0aC1leHBhbmQgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgZmxleDogMTtcbiAgLyogMSAqL1xuICBtaW4td2lkdGg6IDFweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEBzID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHMgPiAqIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTNcXEBzID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQHMgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEBzID4gKiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS02XFxAcyA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAcyA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBzID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY2hpbGQtd2lkdGgtMS0xXFxAbSA+ICoge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTJcXEBtID4gKiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0zXFxAbSA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTRcXEBtID4gKiB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS01XFxAbSA+ICoge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQG0gPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQG0gPiAqIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAbSA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQGwgPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAbCA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQGwgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAbCA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQGwgPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEBsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBsID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQGwgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0zXFxAeGwgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAeGwgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEB4bCA+ICoge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQHhsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEB4bCA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEB4bCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBTaW5nbGUgV2lkdGhzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBgbWF4LXdpZHRoYCBpcyBuZWVkZWQgZm9yIHRoZSBwaXhlbC1iYXNlZCBjbGFzc2VzXG4gKi9cbltjbGFzcyo9J3VrLXdpZHRoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogSGFsdmVzICovXG4udWstd2lkdGgtMS0yIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4vKiBUaGlyZHMgKi9cbi51ay13aWR0aC0xLTMge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuXG4udWstd2lkdGgtMi0zIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cblxuLyogUXVhcnRlcnMgKi9cbi51ay13aWR0aC0xLTQge1xuICB3aWR0aDogMjUlOyB9XG5cbi51ay13aWR0aC0zLTQge1xuICB3aWR0aDogNzUlOyB9XG5cbi8qIEZpZnRocyAqL1xuLnVrLXdpZHRoLTEtNSB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLnVrLXdpZHRoLTItNSB7XG4gIHdpZHRoOiA0MCU7IH1cblxuLnVrLXdpZHRoLTMtNSB7XG4gIHdpZHRoOiA2MCU7IH1cblxuLnVrLXdpZHRoLTQtNSB7XG4gIHdpZHRoOiA4MCU7IH1cblxuLyogU2l4dGhzICovXG4udWstd2lkdGgtMS02IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cblxuLnVrLXdpZHRoLTUtNiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG5cbi8qIFBpeGVsICovXG4udWstd2lkdGgtc21hbGwge1xuICB3aWR0aDogMTUwcHg7IH1cblxuLnVrLXdpZHRoLW1lZGl1bSB7XG4gIHdpZHRoOiAzMDBweDsgfVxuXG4udWstd2lkdGgtbGFyZ2Uge1xuICB3aWR0aDogNDUwcHg7IH1cblxuLnVrLXdpZHRoLXhsYXJnZSB7XG4gIHdpZHRoOiA2MDBweDsgfVxuXG4udWstd2lkdGgtMnhsYXJnZSB7XG4gIHdpZHRoOiA3NTBweDsgfVxuXG4vKiBBdXRvICovXG4udWstd2lkdGgtYXV0byB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qIEV4cGFuZCAqL1xuLnVrLXdpZHRoLWV4cGFuZCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMXB4OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLyogV2hvbGUgKi9cbiAgLnVrLXdpZHRoLTEtMVxcQHMge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAcyB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKiBUaGlyZHMgKi9cbiAgLnVrLXdpZHRoLTEtM1xcQHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay13aWR0aC0yLTNcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAcyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstd2lkdGgtMy00XFxAcyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKiBGaWZ0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNVxcQHMge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQHMge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLnVrLXdpZHRoLTMtNVxcQHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnVrLXdpZHRoLTQtNVxcQHMge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstd2lkdGgtNS02XFxAcyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2LjAwMSk7IH1cbiAgLyogUGl4ZWwgKi9cbiAgLnVrLXdpZHRoLXNtYWxsXFxAcyB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEBzIHtcbiAgICB3aWR0aDogMzAwcHg7IH1cbiAgLnVrLXdpZHRoLWxhcmdlXFxAcyB7XG4gICAgd2lkdGg6IDQ1MHB4OyB9XG4gIC51ay13aWR0aC14bGFyZ2VcXEBzIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEBzIHtcbiAgICB3aWR0aDogNzUwcHg7IH1cbiAgLyogQXV0byAqL1xuICAudWstd2lkdGgtYXV0b1xcQHMge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC8qIEV4cGFuZCAqL1xuICAudWstd2lkdGgtZXhwYW5kXFxAcyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogSGFsdmVzICovXG4gIC51ay13aWR0aC0xLTJcXEBtIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qIFRoaXJkcyAqL1xuICAudWstd2lkdGgtMS0zXFxAbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG4gIC8qIFF1YXJ0ZXJzICovXG4gIC51ay13aWR0aC0xLTRcXEBtIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay13aWR0aC0zLTRcXEBtIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAbSB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstd2lkdGgtMi01XFxAbSB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAudWstd2lkdGgtMy01XFxAbSB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAbSB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKiBTaXh0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNlxcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay13aWR0aC01LTZcXEBtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEBtIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgLnVrLXdpZHRoLW1lZGl1bVxcQG0ge1xuICAgIHdpZHRoOiAzMDBweDsgfVxuICAudWstd2lkdGgtbGFyZ2VcXEBtIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA2MDBweDsgfVxuICAudWstd2lkdGgtMnhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA3NTBweDsgfVxuICAvKiBBdXRvICovXG4gIC51ay13aWR0aC1hdXRvXFxAbSB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEBtIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEBsIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEBsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQGwge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEBsIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEBsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEBsIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEBsIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQGwge1xuICAgIHdpZHRoOiAxNTBweDsgfVxuICAudWstd2lkdGgtbWVkaXVtXFxAbCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQGwge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gIC51ay13aWR0aC0yeGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEBsIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQGwge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAeGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAeGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAeGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQHhsIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAeGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQHhsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEB4bCB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAeGwge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEB4bCB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEB4bCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEB4bCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEB4bCB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEB4bCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWlnaHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstaGVpZ2h0J10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG4gKiBPbmx5IHdvcmtzIGlmIHBhcmVudCBlbGVtZW50IGhhcyBhIGhlaWdodCBzZXRcbiAqL1xuLnVrLWhlaWdodC0xLTEge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLypcbiAqIFVzZWZ1bCB0byBjcmVhdGUgaW1hZ2UgdGVhc2Vyc1xuICovXG4udWstaGVpZ2h0LXZpZXdwb3J0IHtcbiAgbWluLWhlaWdodDogMTAwdmg7IH1cblxuLypcbiAqIFBpeGVsXG4gKiBVc2VmdWwgZm9yIGBvdmVyZmxvdzogYXV0b2BcbiAqL1xuLnVrLWhlaWdodC1zbWFsbCB7XG4gIGhlaWdodDogMTUwcHg7IH1cblxuLnVrLWhlaWdodC1tZWRpdW0ge1xuICBoZWlnaHQ6IDMwMHB4OyB9XG5cbi51ay1oZWlnaHQtbGFyZ2Uge1xuICBoZWlnaHQ6IDQ1MHB4OyB9XG5cbi51ay1oZWlnaHQtbWF4LXNtYWxsIHtcbiAgbWF4LWhlaWdodDogMTUwcHg7IH1cblxuLnVrLWhlaWdodC1tYXgtbWVkaXVtIHtcbiAgbWF4LWhlaWdodDogMzAwcHg7IH1cblxuLnVrLWhlaWdodC1tYXgtbGFyZ2Uge1xuICBtYXgtaGVpZ2h0OiA0NTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVGV4dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtbGVhZCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzMzMzsgfVxuXG4udWstdGV4dC1tZXRhIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM5OTk7IH1cbiAgLnVrLXRleHQtbWV0YSBhIHtcbiAgICBjb2xvcjogIzk5OTsgfVxuICAudWstdGV4dC1tZXRhIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBTaXplIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLnVrLXRleHQtbGFyZ2Uge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG4vKiBXZWlnaHQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbi51ay10ZXh0LW5vcm1hbCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLnVrLXRleHQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnVrLXRleHQtbGlnaHRlciB7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XG5cbi51ay10ZXh0LWJvbGRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qIFRyYW5zZm9ybSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OyB9XG5cbi8qIENvbG9yIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1tdXRlZCB7XG4gIGNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtZW1waGFzaXMge1xuICBjb2xvcjogIzMzMyAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXByaW1hcnkge1xuICBjb2xvcjogIzFlODdmMCAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMjIyICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMzJkMjk2ICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtd2FybmluZyB7XG4gIGNvbG9yOiAjZmFhMDVhICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtZGFuZ2VyIHtcbiAgY29sb3I6ICNmMDUwNmUgIWltcG9ydGFudDsgfVxuXG4vKiBCYWNrZ3JvdW5kIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBUaGUgYmFja2dyb3VuZCBjbGlwcyB0byB0aGUgZm9yZWdyb3VuZCB0ZXh0LiBXb3JrcyBpbiBDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgRWRnZSBhbmQgT3BlcmFcbiAqICAgIERlZmF1bHQgY29sb3IgaXMgc2V0IHRvIHRyYW5zcGFyZW50XG4gKiAyLiBDb250YWluZXIgZml0cyB0aGUgdGV4dFxuICogMy4gRmFsbGJhY2sgY29sb3IgZm9yIElFMTFcbiAqL1xuLnVrLXRleHQtYmFja2dyb3VuZCB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAzICovXG4gIGNvbG9yOiAjMWU4N2YwICFpbXBvcnRhbnQ7IH1cblxuQHN1cHBvcnRzICgtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dCkge1xuICAudWstdGV4dC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4N2YwO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9IH1cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLXRleHQtbGVmdFxcQHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1yaWdodFxcQHMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtY2VudGVyXFxAcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLXRleHQtbGVmdFxcQG0ge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1yaWdodFxcQG0ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtY2VudGVyXFxAbSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLXRleHQtbGVmdFxcQGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1yaWdodFxcQGwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtY2VudGVyXFxAbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstdGV4dC1sZWZ0XFxAeGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1yaWdodFxcQHhsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LWNlbnRlclxcQHhsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XG5cbi8qXG4gKiBWZXJ0aWNhbFxuICovXG4udWstdGV4dC10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1iYXNlbGluZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG5cbi8qIFdyYXAgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZyBvbnRvIG11bHRpcGxlIGxpbmVzXG4gKi9cbi51ay10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLypcbiAqIDEuIE1ha2Ugc3VyZSBhIG1heC13aWR0aCBpcyBzZXQgYWZ0ZXIgd2hpY2ggdHJ1bmNhdGlvbiBjYW4gb2NjdXJcbiAqIDIuIFByZXZlbnQgdGV4dCBmcm9tIHdyYXBwaW5nIG9udG8gbXVsdGlwbGUgbGluZXMsIGFuZCB0cnVuY2F0ZSB3aXRoIGFuIGVsbGlwc2lzXG4gKiAzLiBGaXggZm9yIHRhYmxlIGNlbGxzXG4gKi9cbi51ay10ZXh0LXRydW5jYXRlIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDIgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLyogMiAqL1xudGgudWstdGV4dC10cnVuY2F0ZSxcbnRkLnVrLXRleHQtdHJ1bmNhdGUge1xuICBtYXgtd2lkdGg6IDA7IH1cblxuLypcbiAqIDEuIFdyYXAgbG9uZyB3b3JkcyBvbnRvIHRoZSBuZXh0IGxpbmUgYW5kIGJyZWFrIHRoZW0gaWYgdGhleSBhcmUgdG9vIGxvbmcgdG8gZml0XG4gKiAyLiBMZWdhY3kgYHdvcmQtd3JhcGAgYXMgZmFsbGJhY2sgZm9yIGBvdmVyZmxvdy13cmFwYFxuICogMy4gRml4IGBvdmVyZmxvdy13cmFwYCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aCB0YWJsZSBjZWxscyBpbiBDaHJvbWUsIE9wZXJhLCBJRTExIGFuZCBFZGdlXG4gKiAgICBNdXN0IHVzZSBgYnJlYWstYWxsYCB0byBzdXBwb3J0IElFMTEgYW5kIEVkZ2VcbiAqIE5vdGU6IE5vdCB1c2luZyBgaHlwaGVuczogYXV0bztgIGJlY2F1c2UgaXQgaHlwaGVuYXRlcyB0ZXh0IGV2ZW4gaWYgbm90IG5lZWRlZFxuICovXG4udWstdGV4dC1icmVhayB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgLyogMiAqL1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLyogMyAqL1xudGgudWstdGV4dC1icmVhayxcbnRkLnVrLXRleHQtYnJlYWsge1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IENvbHVtblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bY2xhc3MqPSd1ay1jb2x1bW4tJ10ge1xuICBjb2x1bW4tZ2FwOiAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBbY2xhc3MqPSd1ay1jb2x1bW4tJ10ge1xuICAgIGNvbHVtbi1nYXA6IDQwcHg7IH0gfVxuXG4vKlxuICogRml4IGltYWdlIDFweCBsaW5lIHdyYXBwaW5nIGludG8gdGhlIG5leHQgY29sdW1uIGluIENocm9tZVxuICovXG5bY2xhc3MqPSd1ay1jb2x1bW4tJ10gaW1nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBEb3VibGUgdGhlIGNvbHVtbiBnYXBcbiAqL1xuLnVrLWNvbHVtbi1kaXZpZGVyIHtcbiAgY29sdW1uLXJ1bGU6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAvKiAxICovXG4gIGNvbHVtbi1nYXA6IDYwcHg7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jb2x1bW4tZGl2aWRlciB7XG4gICAgY29sdW1uLWdhcDogODBweDsgfSB9XG5cbi8qIFdpZHRoIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29sdW1uLTEtMiB7XG4gIGNvbHVtbi1jb3VudDogMjsgfVxuXG4udWstY29sdW1uLTEtMyB7XG4gIGNvbHVtbi1jb3VudDogMzsgfVxuXG4udWstY29sdW1uLTEtNCB7XG4gIGNvbHVtbi1jb3VudDogNDsgfVxuXG4udWstY29sdW1uLTEtNSB7XG4gIGNvbHVtbi1jb3VudDogNTsgfVxuXG4udWstY29sdW1uLTEtNiB7XG4gIGNvbHVtbi1jb3VudDogNjsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb2x1bW4tMS0yXFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiAyOyB9XG4gIC51ay1jb2x1bW4tMS0zXFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiAzOyB9XG4gIC51ay1jb2x1bW4tMS00XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA0OyB9XG4gIC51ay1jb2x1bW4tMS01XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA1OyB9XG4gIC51ay1jb2x1bW4tMS02XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA2OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1jb2x1bW4tMS0yXFxAbSB7XG4gICAgY29sdW1uLWNvdW50OiAyOyB9XG4gIC51ay1jb2x1bW4tMS0zXFxAbSB7XG4gICAgY29sdW1uLWNvdW50OiAzOyB9XG4gIC51ay1jb2x1bW4tMS00XFxAbSB7XG4gICAgY29sdW1uLWNvdW50OiA0OyB9XG4gIC51ay1jb2x1bW4tMS01XFxAbSB7XG4gICAgY29sdW1uLWNvdW50OiA1OyB9XG4gIC51ay1jb2x1bW4tMS02XFxAbSB7XG4gICAgY29sdW1uLWNvdW50OiA2OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jb2x1bW4tMS0yXFxAbCB7XG4gICAgY29sdW1uLWNvdW50OiAyOyB9XG4gIC51ay1jb2x1bW4tMS0zXFxAbCB7XG4gICAgY29sdW1uLWNvdW50OiAzOyB9XG4gIC51ay1jb2x1bW4tMS00XFxAbCB7XG4gICAgY29sdW1uLWNvdW50OiA0OyB9XG4gIC51ay1jb2x1bW4tMS01XFxAbCB7XG4gICAgY29sdW1uLWNvdW50OiA1OyB9XG4gIC51ay1jb2x1bW4tMS02XFxAbCB7XG4gICAgY29sdW1uLWNvdW50OiA2OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWNvbHVtbi0xLTJcXEB4bCB7XG4gICAgY29sdW1uLWNvdW50OiAyOyB9XG4gIC51ay1jb2x1bW4tMS0zXFxAeGwge1xuICAgIGNvbHVtbi1jb3VudDogMzsgfVxuICAudWstY29sdW1uLTEtNFxcQHhsIHtcbiAgICBjb2x1bW4tY291bnQ6IDQ7IH1cbiAgLnVrLWNvbHVtbi0xLTVcXEB4bCB7XG4gICAgY29sdW1uLWNvdW50OiA1OyB9XG4gIC51ay1jb2x1bW4tMS02XFxAeGwge1xuICAgIGNvbHVtbi1jb3VudDogNjsgfSB9XG5cbi8qIE1ha2UgZWxlbWVudCBzcGFuIGFjcm9zcyBhbGwgY29sdW1uc1xuICogRG9lcyBub3Qgd29yayBpbiBGaXJlZm94IHlldFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29sdW1uLXNwYW4ge1xuICBjb2x1bW4tc3BhbjogYWxsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb3ZlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogV29ya3Mgd2l0aCBpZnJhbWVzIGFuZCBlbWJlZGRlZCBjb250ZW50XG4gKiAxLiBSZXNldCByZXNwb25zaXZlbmVzcyBmb3IgZW1iZWRkZWQgY29udGVudFxuICogMi4gQ2VudGVyIG9iamVjdFxuICogTm90ZTogUGVyY2VudCB2YWx1ZXMgb24gdGhlIGB0b3BgIHByb3BlcnR5IG9ubHkgd29ya3MgaWYgdGhpcyBlbGVtZW50XG4gKiAgICAgICBpcyBhYnNvbHV0ZSBwb3NpdGlvbmVkIG9yIGlmIHRoZSBjb250YWluZXIgaGFzIGEgaGVpZ2h0XG4gKi9cbi51ay1jb3ZlciB7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cblxuaWZyYW1lLnVrLWNvdmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBQYXJlbnQgY29udGFpbmVyIHdoaWNoIGNsaXBzIHJlc2l6ZWQgb2JqZWN0XG4gKiAyLiBOZWVkZWQgaWYgdGhlIGNoaWxkIGlzIHBvc2l0aW9uZWQgYWJzb2x1dGUuIFNlZSBub3RlIGFib3ZlXG4gKi9cbi51ay1jb3Zlci1jb250YWluZXIge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCYWNrZ3JvdW5kXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIENvbG9yXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1iYWNrZ3JvdW5kLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi51ay1iYWNrZ3JvdW5kLW11dGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsgfVxuXG4udWstYmFja2dyb3VuZC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDsgfVxuXG4udWstYmFja2dyb3VuZC1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOyB9XG5cbi8qIFNpemVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJhY2tncm91bmQtY292ZXIsXG4udWstYmFja2dyb3VuZC1jb250YWluIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG4udWstYmFja2dyb3VuZC1jb3ZlciB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cblxuLnVrLWJhY2tncm91bmQtY29udGFpbiB7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgfVxuXG4vKiBQb3NpdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYmFja2dyb3VuZC10b3AtbGVmdCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxuXG4udWstYmFja2dyb3VuZC10b3AtY2VudGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDA7IH1cblxuLnVrLWJhY2tncm91bmQtdG9wLXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWNlbnRlci1sZWZ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7IH1cblxuLnVrLWJhY2tncm91bmQtY2VudGVyLWNlbnRlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLnVrLWJhY2tncm91bmQtY2VudGVyLXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IH1cblxuLnVrLWJhY2tncm91bmQtYm90dG9tLWxlZnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDEwMCU7IH1cblxuLnVrLWJhY2tncm91bmQtYm90dG9tLWNlbnRlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1yaWdodCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTsgfVxuXG4vKiBSZXBlYXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJhY2tncm91bmQtbm9yZXBlYXQge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi8qIEF0dGFjaG1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEZpeCBidWcgaW50cm9kdWNlZCBpbiBDaHJvbWUgNjc6IHRoZSBiYWNrZ3JvdW5kIGltYWdlIGlzIG5vdCB2aXNpYmxlIGlmIGFueSBlbGVtZW50IG9uIHRoZSBwYWdlIHVzZXMgYHRyYW5zbGF0ZTNkYFxuICovXG4udWstYmFja2dyb3VuZC1maXhlZCB7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIC8qIDEgKi9cbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXG4gKiBFeGNsdWRlIHRvdWNoIGRldmljZXMgYmVjYXVzZSBgZml4ZWRgIGRvZXNuJ3Qgd29yayBvbiBpT1MgYW5kIEFuZHJvaWRcbiAqL1xuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgLnVrLWJhY2tncm91bmQtZml4ZWQge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsOyB9IH1cblxuLyogSW1hZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogUGhvbmUgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudWstYmFja2dyb3VuZC1pbWFnZVxcQG0ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVrLWJhY2tncm91bmQtaW1hZ2VcXEBsIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogMTU5OXB4KSB7XG4gIC51ay1iYWNrZ3JvdW5kLWltYWdlXFxAeGwge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIEJsZW5kIG1vZGVzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLW11bHRpcGx5IHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1zY3JlZW4ge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBvdmVybGF5OyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWRhcmtlbiB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogZGFya2VuOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWxpZ2h0ZW4ge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtY29sb3ItZG9kZ2Uge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWNvbG9yLWJ1cm4ge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGNvbG9yLWJ1cm47IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtaGFyZC1saWdodCB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1zb2Z0LWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0OyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWRpZmZlcmVuY2Uge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtZXhjbHVzaW9uIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtaHVlIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBodWU7IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtc2F0dXJhdGlvbiB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogc2F0dXJhdGlvbjsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3I7IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtbHVtaW5vc2l0eSB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQWxpZ25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuW2NsYXNzKj0ndWstYWxpZ24nXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbiogKyBbY2xhc3MqPSd1ay1hbGlnbiddIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4vKlxuICogQ2VudGVyXG4gKi9cbi51ay1hbGlnbi1jZW50ZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi8qXG4gKiBMZWZ0L1JpZ2h0XG4gKi9cbi51ay1hbGlnbi1sZWZ0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICBmbG9hdDogbGVmdDsgfVxuXG4udWstYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWFsaWduLWxlZnRcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudWstYWxpZ24tcmlnaHRcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstYWxpZ24tbGVmdFxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC51ay1hbGlnbi1yaWdodFxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1hbGlnbi1sZWZ0XFxAbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudWstYWxpZ24tcmlnaHRcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAudWstYWxpZ24tbGVmdCxcbiAgLnVrLWFsaWduLWxlZnRcXEBzLFxuICAudWstYWxpZ24tbGVmdFxcQG0sXG4gIC51ay1hbGlnbi1sZWZ0XFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9XG4gIC51ay1hbGlnbi1yaWdodCxcbiAgLnVrLWFsaWduLXJpZ2h0XFxAcyxcbiAgLnVrLWFsaWduLXJpZ2h0XFxAbSxcbiAgLnVrLWFsaWduLXJpZ2h0XFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstYWxpZ24tbGVmdFxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudWstYWxpZ24tcmlnaHRcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU1ZHXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XG4gKiAyLiBTZXQgdGhlIGZpbGwgYW5kIHN0cm9rZSBjb2xvciBvZiBhbGwgU1ZHIGVsZW1lbnRzIHRvIHRoZSBjdXJyZW50IHRleHQgY29sb3JcbiAqL1xuLyogMSAqL1xuLnVrLXN2Zyxcbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkge1xuICBmaWxsOiBjdXJyZW50Y29sb3I7IH1cblxuLnVrLXN2Zzpub3QoLnVrLXByZXNlcnZlKSBbc3Ryb2tlKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHtcbiAgc3Ryb2tlOiBjdXJyZW50Y29sb3I7IH1cblxuLypcbiAqIEZpeCBGaXJlZm94IGJsdXJyeSBTVkcgcmVuZGVyaW5nOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ2ODM1XG4gKi9cbi51ay1zdmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVXRpbGl0eVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBQYW5lbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcGFuZWwge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1wYW5lbCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKlxuICogU2Nyb2xsYWJsZVxuICovXG4udWstcGFuZWwtc2Nyb2xsYWJsZSB7XG4gIGhlaWdodDogMTcwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHJlc2l6ZTogYm90aDsgfVxuXG4vKiBDbGVhcmZpeFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gYHRhYmxlLWNlbGxgIGlzIHVzZWQgd2l0aCBgOjpiZWZvcmVgIGJlY2F1c2UgYHRhYmxlYCBjcmVhdGVzIGEgMXB4IGdhcCB3aGVuIGl0IGJlY29tZXMgYSBmbGV4IGl0ZW0sIG9ubHkgaW4gV2Via2l0XG4gKiAyLiBgdGFibGVgIGlzIHVzZWQgYWdhaW4gd2l0aCBgOjphZnRlcmAgYmVjYXVzZSBgY2xlYXJgIG9ubHkgd29ya3Mgd2l0aCBibG9jayBlbGVtZW50cy5cbiAqIE5vdGU6IGBkaXNwbGF5OiBibG9ja2Agd2l0aCBgb3ZlcmZsb3c6IGhpZGRlbmAgaXMgY3VycmVudGx5IG5vdCB3b3JraW5nIGluIHRoZSBsYXRlc3QgU2FmYXJpXG4gKi9cbi8qIDEgKi9cbi51ay1jbGVhcmZpeDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuXG4vKiAyICovXG4udWstY2xlYXJmaXg6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qIEZsb2F0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcbiAqL1xuLnVrLWZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udWstZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLyogMSAqL1xuW2NsYXNzKj0ndWstZmxvYXQtJ10ge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogT3ZlcmZvd1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstb3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxuICogRW5hYmxlIHNjcm9sbGJhcnMgaWYgY29udGVudCBpcyBjbGlwcGVkXG4gKiBOb3RlOiBGaXJlZm94IGlnbm9yZXMgYHBhZGRpbmctYm90dG9tYCBmb3IgdGhlIHNjcm9sbGFibGUgb3ZlcmZsb3cgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NTE4XG4gKi9cbi51ay1vdmVyZmxvdy1hdXRvIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4udWstb3ZlcmZsb3ctYXV0byA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBSZXNpemVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXJlc2l6ZSB7XG4gIHJlc2l6ZTogYm90aDsgfVxuXG4udWstcmVzaXplLXZlcnRpY2FsIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4vKiBEaXNwbGF5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXNwbGF5LWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4udWstZGlzcGxheS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuXG4udWstZGlzcGxheS1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxuXG4vKiBJbmxpbmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiA0LiBCZWhhdmUgbGlrZSBtb3N0IGlubGluZS1ibG9jayBlbGVtZW50c1xuICogNS4gRm9yY2UgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgc3RhY2tpbmcgY29udGV4dFxuICogICAgdG8gZml4IDFweCBnbGl0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIG92ZXJsYXlzIGFuZCB0cmFuc2l0aW9ucyBpbiBXZWJraXRcbiAqIDYuIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqL1xuW2NsYXNzKj0ndWstaW5saW5lJ10ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIDMgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiA0ICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDUgKi9cbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnVrLWlubGluZS1jbGlwIHtcbiAgLyogNiAqL1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIFJlc3BvbnNpdmUgb2JqZWN0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJlc2VydmUgb3JpZ2luYWwgZGltZW5zaW9uc1xuICogQmVjYXVzZSBgaW1nLCBgdmlkZW9gLCBgY2FudmFzYCBhbmQgIGBhdWRpb2AgYXJlIGFscmVhZHkgcmVzcG9uc2l2ZSBieSBkZWZhdWx0LCBzZWUgQmFzZSBjb21wb25lbnRcbiAqL1xuLnVrLXByZXNlcnZlLXdpZHRoLFxuLnVrLXByZXNlcnZlLXdpZHRoIGNhbnZhcyxcbi51ay1wcmVzZXJ2ZS13aWR0aCBpbWcsXG4udWstcHJlc2VydmUtd2lkdGggc3ZnLFxuLnVrLXByZXNlcnZlLXdpZHRoIHZpZGVvIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qXG4gKiBSZXNwb25zaXZlbmVzc1xuICogQ29ycmVjdHMgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCBiZWhhdmlvciBpZiBwYWRkaW5nIGFuZCBib3JkZXIgYXJlIHVzZWRcbiAqL1xuLnVrLXJlc3BvbnNpdmUtd2lkdGgsXG4udWstcmVzcG9uc2l2ZS1oZWlnaHQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG4gKiAxLiBTZXQgYSBtYXhpbXVtIHdpZHRoLiBgaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgYHVrLXByZXNlcnZlLXdpZHRoIGltZ2BcbiAqIDIuIEF1dG8gc2NhbGUgdGhlIGhlaWdodC4gT25seSBuZWVkZWQgaWYgYGhlaWdodGAgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAqL1xuLnVrLXJlc3BvbnNpdmUtd2lkdGgge1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAvKiAyICovXG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKlxuICogMS4gU2V0IGEgbWF4aW11bSBoZWlnaHQuIE9ubHkgd29ya3MgaWYgdGhlIHBhcmVudCBlbGVtZW50IGhhcyBhIGZpeGVkIGhlaWdodFxuICogMi4gQXV0byBzY2FsZSB0aGUgd2lkdGguIE9ubHkgbmVlZGVkIGlmIGB3aWR0aGAgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAqIDMuIFJlc2V0IG1heC13aWR0aCwgd2hpY2ggYGltZywgYHZpZGVvYCwgYGNhbnZhc2AgYW5kICBgYXVkaW9gIGFscmVhZHkgaGF2ZSBieSBkZWZhdWx0XG4gKi9cbi51ay1yZXNwb25zaXZlLWhlaWdodCB7XG4gIC8qIDEgKi9cbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgLyogMiAqL1xuICB3aWR0aDogYXV0bztcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogQm9yZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ib3JkZXItY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG5cbi51ay1ib3JkZXItcGlsbCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XG5cbi51ay1ib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuXG4vKlxuICogRml4IGBvdmVyZmxvdzogaGlkZGVuYCB0byBiZSBpZ25vcmVkIHdpdGggYm9yZGVyLXJhZGl1cyBhbmQgQ1NTIHRyYW5zZm9ybXMgaW4gV2Via2l0XG4gKi9cbi51ay1pbmxpbmUtY2xpcFtjbGFzcyo9J3VrLWJvcmRlci0nXSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG5cbi8qIEJveC1zaGFkb3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJveC1zaGFkb3ctc21hbGwge1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstYm94LXNoYWRvdy1tZWRpdW0ge1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7IH1cblxuLnVrLWJveC1zaGFkb3ctbGFyZ2Uge1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi51ay1ib3gtc2hhZG93LXhsYXJnZSB7XG4gIGJveC1zaGFkb3c6IDAgMjhweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLypcbiAqIEhvdmVyXG4gKi9cbltjbGFzcyo9J3VrLWJveC1zaGFkb3ctaG92ZXInXSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLWluLW91dDsgfVxuXG4udWstYm94LXNoYWRvdy1ob3Zlci1zbWFsbDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1ib3gtc2hhZG93LWhvdmVyLW1lZGl1bTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstYm94LXNoYWRvdy1ob3Zlci1sYXJnZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMTRweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLnVrLWJveC1zaGFkb3ctaG92ZXIteGxhcmdlOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAyOHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4vKiBCb3gtc2hhZG93IGJvdHRvbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2V0IHBvc2l0aW9uLlxuICogMi4gU2V0IHN0eWxlXG4gKiAzLiBCbHVyIGRvZXNuJ3Qgd29yayBvbiBwc2V1ZG8gZWxlbWVudHMgd2l0aCBuZWdhdGl2ZSBgei1pbmRleGAgaW4gRWRnZS5cbiAqICAgIFNvbHZlZCBieSB1c2luZyBgYmVmb3JlYCBhbmQgYWRkIHBvc2l0aW9uIGNvbnRleHQgdG8gY2hpbGQgZWxlbWVudHMuXG4gKi9cbkBzdXBwb3J0cyAoZmlsdGVyOiBibHVyKDApKSB7XG4gIC51ay1ib3gtc2hhZG93LWJvdHRvbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAudWstYm94LXNoYWRvdy1ib3R0b206OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0zMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLyogMiAqL1xuICAgIGhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICM0NDQ7XG4gICAgZmlsdGVyOiBibHVyKDIwcHgpOyB9XG4gIC8qIDMgKi9cbiAgLnVrLWJveC1zaGFkb3ctYm90dG9tID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cblxuLyogRHJvcCBjYXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEZpcmVmb3ggZG9lc24ndCBhcHBseSBgOjpmaXJzdC1sZXR0ZXJgIGlmIHRoZSBmaXJzdCBsZXR0ZXIgaXMgaW5zaWRlIGNoaWxkIGVsZW1lbnRzXG4gKiAgICBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQwMDRcbiAqIDIuIEluIEZpcmVmb3gsIGEgZmxvYXRpbmcgYDo6Zmlyc3QtbGV0dGVyYCBkb2Vzbid0IGhhdmUgYSBsaW5lIGJveCBhbmQgdGhlcmUgZm9yIG5vIGBsaW5lLWhlaWdodGBcbiAqICAgIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMxNzkzM1xuICogMy4gQ2F1c2VkIGJ5IDEuOiBFZGdlIGNyZWF0ZXMgdHdvIG5lc3RlZCBgOjpmaXJzdC1sZXR0ZXJgIGNvbnRhaW5lcnMsIG9uZSBmb3IgZWFjaCBzZWxlY3RvclxuICogICAgVGhpcyBkb3VibGVzIHRoZSBgZm9udC1zaXplYCBleHBvbmVudGlhbCB3aGVuIHVzaW5nIHRoZSBgZW1gIHVuaXQuXG4gKi9cbi51ay1kcm9wY2FwOjpmaXJzdC1sZXR0ZXIsXG4udWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtc2l6ZTogNC41ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAtMnB4OyB9XG5cbi8qIDIgKi9cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gIC51ay1kcm9wY2FwOjpmaXJzdC1sZXR0ZXIsXG4gIC51ay1kcm9wY2FwID4gcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIge1xuICAgIG1hcmdpbi10b3A6IDEuMSU7IH0gfVxuXG4vKiAzICovXG5Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7XG4gICAgZm9udC1zaXplOiAxZW07IH0gfVxuXG4vKiBMb2dvXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBSZXF1aXJlZCBmb3IgYGFgXG4gKi9cbi51ay1sb2dvIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGNvbG9yOiAjNjY2O1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbG9nbzpob3Zlcixcbi51ay1sb2dvOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi51ay1sb2dvLWludmVyc2Uge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIERpc2FibGVkIFN0YXRlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIERyYWcgU3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE5lZWRlZCBpZiBtb3Zpbmcgb3ZlciBlbGVtZW50cyB3aXRoIGhhdmUgdGhlaXIgb3duIGN1cnNvciBvbiBob3ZlciwgZS5nLiBsaW5rcyBvciBidXR0b25zXG4gKiAyLiBGaXggZHJhZ2dpbmcgb3ZlciBpZnJhbWVzXG4gKi9cbi51ay1kcmFnLFxuLnVrLWRyYWcgKiB7XG4gIGN1cnNvcjogbW92ZTsgfVxuXG4vKiAyICovXG4udWstZHJhZyBpZnJhbWUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiBEcmFnb3ZlciBTdGF0ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQ3JlYXRlIGEgYm94LXNoYWRvdyB3aGVuIGRyYWdnaW5nIGEgZmlsZSBvdmVyIHRoZSB1cGxvYWQgYXJlYVxuICovXG4udWstZHJhZ292ZXIge1xuICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMyk7IH1cblxuLyogQmxlbmQgbW9kZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJsZW5kLW11bHRpcGx5IHtcbiAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG5cbi51ay1ibGVuZC1zY3JlZW4ge1xuICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuOyB9XG5cbi51ay1ibGVuZC1vdmVybGF5IHtcbiAgbWl4LWJsZW5kLW1vZGU6IG92ZXJsYXk7IH1cblxuLnVrLWJsZW5kLWRhcmtlbiB7XG4gIG1peC1ibGVuZC1tb2RlOiBkYXJrZW47IH1cblxuLnVrLWJsZW5kLWxpZ2h0ZW4ge1xuICBtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjsgfVxuXG4udWstYmxlbmQtY29sb3ItZG9kZ2Uge1xuICBtaXgtYmxlbmQtbW9kZTogY29sb3ItZG9kZ2U7IH1cblxuLnVrLWJsZW5kLWNvbG9yLWJ1cm4ge1xuICBtaXgtYmxlbmQtbW9kZTogY29sb3ItYnVybjsgfVxuXG4udWstYmxlbmQtaGFyZC1saWdodCB7XG4gIG1peC1ibGVuZC1tb2RlOiBoYXJkLWxpZ2h0OyB9XG5cbi51ay1ibGVuZC1zb2Z0LWxpZ2h0IHtcbiAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7IH1cblxuLnVrLWJsZW5kLWRpZmZlcmVuY2Uge1xuICBtaXgtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTsgfVxuXG4udWstYmxlbmQtZXhjbHVzaW9uIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGV4Y2x1c2lvbjsgfVxuXG4udWstYmxlbmQtaHVlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGh1ZTsgfVxuXG4udWstYmxlbmQtc2F0dXJhdGlvbiB7XG4gIG1peC1ibGVuZC1tb2RlOiBzYXR1cmF0aW9uOyB9XG5cbi51ay1ibGVuZC1jb2xvciB7XG4gIG1peC1ibGVuZC1tb2RlOiBjb2xvcjsgfVxuXG4udWstYmxlbmQtbHVtaW5vc2l0eSB7XG4gIG1peC1ibGVuZC1tb2RlOiBsdW1pbm9zaXR5OyB9XG5cbi8qIFRyYW5zZm9ybVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2Zvcm0tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cblxuLyogVHJhbnNmb3JtIE9yaWdpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1jZW50ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMDsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi10b3AtcmlnaHQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tY2VudGVyLWxlZnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi1jZW50ZXItcmlnaHQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tY2VudGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBGbGV4XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1mbGV4IHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4udWstZmxleC1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4vKlxuICogUmVtb3ZlIHBzZXVkbyBlbGVtZW50cyBjcmVhdGVkIGJ5IG1pY3JvIGNsZWFyZml4IGFzIHByZWNhdXRpb25cbiAqL1xuLnVrLWZsZXg6OmJlZm9yZSxcbi51ay1mbGV4OjphZnRlcixcbi51ay1mbGV4LWlubGluZTo6YmVmb3JlLFxuLnVrLWZsZXgtaW5saW5lOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogQWxpZ25tZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBbGlnbiBpdGVtcyBhbG9uZyB0aGUgbWFpbiBheGlzIG9mIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGZsZXggY29udGFpbmVyXG4gKiBSb3c6IEhvcml6b250YWxcbiAqL1xuLnVrLWZsZXgtbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4udWstZmxleC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4udWstZmxleC1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLnVrLWZsZXgtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4udWstZmxleC1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1mbGV4LWxlZnRcXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnVrLWZsZXgtY2VudGVyXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnVrLWZsZXgtcmlnaHRcXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC51ay1mbGV4LWJldHdlZW5cXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVrLWZsZXgtYXJvdW5kXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWZsZXgtbGVmdFxcQG0ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAudWstZmxleC1jZW50ZXJcXEBtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAudWstZmxleC1yaWdodFxcQG0ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLnVrLWZsZXgtYmV0d2VlblxcQG0ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAudWstZmxleC1hcm91bmRcXEBtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstZmxleC1sZWZ0XFxAbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC51ay1mbGV4LWNlbnRlclxcQGwge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC51ay1mbGV4LXJpZ2h0XFxAbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAudWstZmxleC1iZXR3ZWVuXFxAbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC51ay1mbGV4LWFyb3VuZFxcQGwge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWZsZXgtbGVmdFxcQHhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnVrLWZsZXgtY2VudGVyXFxAeGwge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC51ay1mbGV4LXJpZ2h0XFxAeGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLnVrLWZsZXgtYmV0d2VlblxcQHhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVrLWZsZXgtYXJvdW5kXFxAeGwge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLypcbiAqIEFsaWduIGl0ZW1zIGluIHRoZSBjcm9zcyBheGlzIG9mIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGZsZXggY29udGFpbmVyXG4gKiBSb3c6IFZlcnRpY2FsXG4gKi9cbi51ay1mbGV4LXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4udWstZmxleC10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4udWstZmxleC1taWRkbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi51ay1mbGV4LWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKiBEaXJlY3Rpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWZsZXgtcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4udWstZmxleC1yb3ctcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4udWstZmxleC1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi51ay1mbGV4LWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbi8qIFdyYXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWZsZXgtbm93cmFwIHtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cblxuLnVrLWZsZXgtd3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4udWstZmxleC13cmFwLXJldmVyc2Uge1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsgfVxuXG4vKlxuICogQWxpZ25zIGl0ZW1zIHdpdGhpbiB0aGUgZmxleCBjb250YWluZXIgd2hlbiB0aGVyZSBpcyBleHRyYSBzcGFjZSBpbiB0aGUgY3Jvc3MtYXhpc1xuICogT25seSB3b3JrcyBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxpbmUgb2YgZmxleCBpdGVtc1xuICovXG4udWstZmxleC13cmFwLXN0cmV0Y2gge1xuICBhbGlnbi1jb250ZW50OiBzdHJldGNoOyB9XG5cbi51ay1mbGV4LXdyYXAtdG9wIHtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsgfVxuXG4udWstZmxleC13cmFwLW1pZGRsZSB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4udWstZmxleC13cmFwLWJvdHRvbSB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi51ay1mbGV4LXdyYXAtYmV0d2VlbiB7XG4gIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLnVrLWZsZXgtd3JhcC1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyogSXRlbSBvcmRlcmluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdCBpcyAwXG4gKi9cbi51ay1mbGV4LWZpcnN0IHtcbiAgb3JkZXI6IC0xOyB9XG5cbi51ay1mbGV4LWxhc3Qge1xuICBvcmRlcjogOTk7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstZmxleC1maXJzdFxcQHMge1xuICAgIG9yZGVyOiAtMTsgfVxuICAudWstZmxleC1sYXN0XFxAcyB7XG4gICAgb3JkZXI6IDk5OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1mbGV4LWZpcnN0XFxAbSB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC51ay1mbGV4LWxhc3RcXEBtIHtcbiAgICBvcmRlcjogOTk7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWZsZXgtZmlyc3RcXEBsIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLnVrLWZsZXgtbGFzdFxcQGwge1xuICAgIG9yZGVyOiA5OTsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1mbGV4LWZpcnN0XFxAeGwge1xuICAgIG9yZGVyOiAtMTsgfVxuICAudWstZmxleC1sYXN0XFxAeGwge1xuICAgIG9yZGVyOiA5OTsgfSB9XG5cbi8qIEl0ZW0gZGltZW5zaW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSW5pdGlhbDogMCAxIGF1dG9cbiAqIENvbnRlbnQgZGltZW5zaW9ucywgYnV0IHNocmlua3NcbiAqL1xuLypcbiAqIE5vIEZsZXg6IDAgMCBhdXRvXG4gKiBDb250ZW50IGRpbWVuc2lvbnNcbiAqL1xuLnVrLWZsZXgtbm9uZSB7XG4gIGZsZXg6IG5vbmU7IH1cblxuLypcbiAqIFJlbGF0aXZlIEZsZXg6IDEgMSBhdXRvXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgY29uc2lkZXJpbmcgY29udGVudFxuICovXG4udWstZmxleC1hdXRvIHtcbiAgZmxleDogYXV0bzsgfVxuXG4vKlxuICogQWJzb2x1dGUgRmxleDogMSAxIDAlXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGZsZXhcbiAqL1xuLnVrLWZsZXgtMSB7XG4gIGZsZXg6IDE7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1hcmdpblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdFxuICovXG4udWstbWFyZ2luIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4qICsgLnVrLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXRvcCB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbWFyZ2luLXNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4qICsgLnVrLW1hcmdpbi1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXNtYWxsLXRvcCB7XG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXNtYWxsLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXNtYWxsLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tc21hbGwtcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4vKiBNZWRpdW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1tZWRpdW0ge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbiogKyAudWstbWFyZ2luLW1lZGl1bSB7XG4gIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLW1lZGl1bS10b3Age1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1tZWRpdW0tYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbWVkaXVtLWxlZnQge1xuICBtYXJnaW4tbGVmdDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbWVkaXVtLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogTGFyZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1sYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuKiArIC51ay1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS10b3Age1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWxhcmdlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cbiAgKiArIC51ay1tYXJnaW4tbGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWxhcmdlLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogNzBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tbGFyZ2UtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogNzBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tbGFyZ2UtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogNzBweCAhaW1wb3J0YW50OyB9IH1cblxuLyogWExhcmdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4teGxhcmdlIHtcbiAgbWFyZ2luLWJvdHRvbTogNzBweDsgfVxuXG4qICsgLnVrLW1hcmdpbi14bGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA3MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi14bGFyZ2UtdG9wIHtcbiAgbWFyZ2luLXRvcDogNzBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4teGxhcmdlLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDcwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXhsYXJnZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDcwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXhsYXJnZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogNzBweCAhaW1wb3J0YW50OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstbWFyZ2luLXhsYXJnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTQwcHg7IH1cbiAgKiArIC51ay1tYXJnaW4teGxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiAxNDBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4teGxhcmdlLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMTQwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXhsYXJnZS1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDE0MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi14bGFyZ2UtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE0MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi14bGFyZ2UtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMTQwcHggIWltcG9ydGFudDsgfSB9XG5cbi8qIEF1dG9cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1hdXRvIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXRvcCB7XG4gIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWF1dG8tYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tYXV0by1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWF1dG8tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWF1dG8tdmVydGljYWwge1xuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQHMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQHMge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQG0ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQGwge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQGwge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLW1hcmdpbi1hdXRvXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEB4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBSZW1vdmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1yZW1vdmUge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS10b3Age1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtdmVydGljYWwge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS1hZGphY2VudCArICosXG4udWstbWFyZ2luLXJlbW92ZS1maXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS1sYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQHMge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLW1hcmdpbi1yZW1vdmUtbGVmdFxcQGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEBsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEB4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQHhsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBQYWRkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1wYWRkaW5nIHtcbiAgcGFkZGluZzogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLXBhZGRpbmcge1xuICAgIHBhZGRpbmc6IDQwcHg7IH0gfVxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcGFkZGluZy1zbWFsbCB7XG4gIHBhZGRpbmc6IDE1cHg7IH1cblxuLyogTGFyZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmctbGFyZ2Uge1xuICBwYWRkaW5nOiAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstcGFkZGluZy1sYXJnZSB7XG4gICAgcGFkZGluZzogNzBweDsgfSB9XG5cbi8qIFJlbW92ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcGFkZGluZy1yZW1vdmUge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLXZlcnRpY2FsIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtaG9yaXpvbnRhbCB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERpcmVjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBgbWF4LXdpZHRoOiAxMDAlYCBpcyB1c2VkIGluc2lkZSBwb3NpdGlvbiBjb250YWluZXIuXG4gKi9cbltjbGFzcyo9J3VrLXBvc2l0aW9uLXRvcCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tYm90dG9tJ10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1sZWZ0J10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1yaWdodCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyJ10ge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogRWRnZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRG9uJ3QgdXNlIGB3aWR0aDogMTAwJWAgYmVjYXVzZSBpdCBpcyB3cm9uZyBpZiB0aGUgcGFyZW50IGhhcyBwYWRkaW5nLiAqL1xuLnVrLXBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWxlZnQge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4udWstcG9zaXRpb24tcmlnaHQge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLyogQ29ybmVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcG9zaXRpb24tdG9wLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLXRvcC1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWJvdHRvbS1sZWZ0IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tcmlnaHQge1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi8qXG4gKiBDZW50ZXJcbiAqIDEuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXG4gKi9cbi51ay1wb3NpdGlvbi1jZW50ZXIge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLyogMSAqL1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLWxlZnQge1xuICBsZWZ0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQge1xuICByaWdodDogMDsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLWxlZnQtb3V0IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBtYXgtY29udGVudDsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0LW91dCB7XG4gIGxlZnQ6IDEwMCU7XG4gIHdpZHRoOiBtYXgtY29udGVudDsgfVxuXG4vKiBIb3Jpem9udGFsICovXG4udWstcG9zaXRpb24tdG9wLWNlbnRlcixcbi51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIC8qIDEgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIge1xuICB0b3A6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICBib3R0b206IDA7IH1cblxuLyogQ292ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBvc2l0aW9uLWNvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLyogVXRpbGl0eVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcG9zaXRpb24tcmVsYXRpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsgfVxuXG4udWstcG9zaXRpb24tYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgfVxuXG4udWstcG9zaXRpb24tZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsgfVxuXG4udWstcG9zaXRpb24tei1pbmRleCB7XG4gIHotaW5kZXg6IDE7IH1cblxuLyogTWFyZ2luIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBTbWFsbFxuICovXG4udWstcG9zaXRpb24tc21hbGwge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgxNXB4ICogMikpO1xuICBtYXJnaW46IDE1cHg7IH1cblxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtMTVweCwgLTE1cHgpOyB9XG5cbi51ay1wb3NpdGlvbi1zbWFsbFtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1sZWZ0J10sXG4udWstcG9zaXRpb24tc21hbGxbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0xNXB4KTsgfVxuXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tdG9wLWNlbnRlcixcbi51ay1wb3NpdGlvbi1zbWFsbC51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLTE1cHgpOyB9XG5cbi8qXG4gKiBNZWRpdW1cbiAqL1xuLnVrLXBvc2l0aW9uLW1lZGl1bSB7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDMwcHggKiAyKSk7XG4gIG1hcmdpbjogMzBweDsgfVxuXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtMzBweCwgLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1tZWRpdW1bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuLnVrLXBvc2l0aW9uLW1lZGl1bVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1tZWRpdW0udWstcG9zaXRpb24tdG9wLWNlbnRlcixcbi51ay1wb3NpdGlvbi1tZWRpdW0udWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLnVrLXBvc2l0aW9uLWxhcmdlIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoMzBweCAqIDIpKTtcbiAgbWFyZ2luOiAzMHB4OyB9XG5cbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLTMwcHgsIC0zMHB4KTsgfVxuXG4udWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWSgtMzBweCk7IH1cblxuLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLXBvc2l0aW9uLWxhcmdlIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICg1MHB4ICogMikpO1xuICAgIG1hcmdpbjogNTBweDsgfVxuICAudWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tY2VudGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLTUwcHgsIC01MHB4KTsgfVxuICAudWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuICAudWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTUwcHgpOyB9XG4gIC51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuICAudWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLTUwcHgpOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRyYW5zaXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVG9nZ2xlIChIb3ZlciArIEZvY3VzKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qXG4gKiBSZW1vdmUgb3V0bGluZSBmb3IgYHRhYmluZGV4YFxuICovXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIFRyYW5zaXRpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIGJ5IHR3byBtZXRob2RzOlxuICogMS4gVXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKiAyLiBVc2luZyBgOmhvdmVyYCBhbmQgYSBgdG91Y2hzdGFydGAgZXZlbnQgbGlzdGVuZXIgcmVnaXN0ZXJlZCBvbiB0aGUgZG9jdW1lbnRcbiAqICAgIChEb2Vzbid0IHdvcmsgb24gU3VyZmFjZSB0b3VjaCBkZXZpY2VzKVxuICpcbiAqIE5vdGU6IFRyYW5zaXRpb25zIGRvbid0IHdvcmsgd2l0aCBgdWstcG9zdGlvbi1jZW50ZXItKmAgY2xhc3NlcyBiZWNhdXNlIHRoZXkgYWxzbyB1c2UgYHRyYW5zZm9ybWAsXG4gKiAgICAgICB0aGVyZWZvcmUgaXQncyByZWNvbW1lbmRlZCB0byB1c2UgYW4gZXh0cmEgYGRpdmAgZm9yIHRoZSB0cmFuc2l0aW9uLlxuICovXG4udWstdHJhbnNpdGlvbi1mYWRlLFxuW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zY2FsZSddLFxuW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zbGlkZSddIHtcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtLCBmaWx0ZXI7XG4gIG9wYWNpdHk6IDA7IH1cblxuLypcbiAqIEZhZGVcbiAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLWZhZGUsXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tZmFkZSxcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tZmFkZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIFNjYWxlXG4gKi9cbi51ay10cmFuc2l0aW9uLXNjYWxlLXVwIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zY2FsZS1kb3duIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSk7IH1cblxuLyogU2hvdyAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwLFxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwLFxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSAudWstdHJhbnNpdGlvbi1zY2FsZS11cCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpOyB9XG5cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duLFxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIC51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24sXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOyB9XG5cbi8qXG4gKiBTbGlkZVxuICovXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3Atc21hbGwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbS1zbWFsbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3AtbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWxlZnQtbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1tZWRpdW0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCk7IH1cblxuLyogU2hvdyAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10sXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi8qIE9wYWNpdHkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRyYW5zaXRpb24tb3BhcXVlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBEdXJhdGlvbiBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRyYW5zaXRpb24tc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuN3M7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFZpc2liaWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEhpZGRlblxuICogYGhpZGRlbmAgYXR0cmlidXRlIGFsc28gc2V0IGhlcmUgdG8gbWFrZSBpdCBzdHJvbmdlclxuICovXG5baGlkZGVuXSxcbi51ay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstaGlkZGVuXFxAcyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1oaWRkZW5cXEBtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWhpZGRlblxcQGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1oaWRkZW5cXEB4bCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLypcbiAqIFZpc2libGVcbiAqL1xuLyogUGhvbmUgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWstdmlzaWJsZVxcQHMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudWstdmlzaWJsZVxcQG0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVrLXZpc2libGVcXEBsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogMTU5OXB4KSB7XG4gIC51ay12aXNpYmxlXFxAeGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFZpc2liaWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi8qIFRvZ2dsZSAoSG92ZXIgKyBGb2N1cylcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEhpZGRlblxuICogMS4gVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyB1c2luZyBgOmZvY3VzYCBhbmQgdGFiaW5kZXhcbiAqIDIuIFRoZSB0YXJnZXQgc3RheXMgdmlzaWJsZSBpZiBhbnkgZWxlbWVudCB3aXRoaW4gcmVjZWl2ZXMgZm9jdXMgdGhyb3VnaCBrZXlib2FyZFxuICogICAgRG9lc24ndCB3b3JrIGluIEVkZ2UsIHlldC5cbiAqIDMuIENhbid0IHVzZSBgZGlzcGxheTogbm9uZWAgbm9yIGB2aXNpYmlsaXR5OiBoaWRkZW5gIGJlY2F1c2UgYm90aCBhcmUgbm90IGZvY3VzYWJsZS5cbiAqXG4gKi9cbi8qIDEgKyAyICovXG4udWstdmlzaWJsZS10b2dnbGU6bm90KDpob3Zlcik6bm90KDpmb2N1cykgLnVrLWhpZGRlbi1ob3Zlcjpub3QoOmZvY3VzLXdpdGhpbikge1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBJbnZpc2libGVcbiAqL1xuLyogMSArIDIgKi9cbi51ay12aXNpYmxlLXRvZ2dsZTpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAudWstaW52aXNpYmxlLWhvdmVyOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gIC8qIDMgKi9cbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG4udWstdmlzaWJsZS10b2dnbGUge1xuICAvKiAxICovXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbiAqIFJlbW92ZSBvdXRsaW5lIGZvciBgdGFiaW5kZXhgXG4gKi9cbi51ay12aXNpYmxlLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogVG91Y2hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEhpZGUgaWYgcHJpbWFyeSBwb2ludGluZyBkZXZpY2UgaGFzIGxpbWl0ZWQgYWNjdXJhY3ksIGUuZy4gYSB0b3VjaCBzY3JlZW4uXG4gKiBXb3JrcyBvbiBtb2JpbGUgYnJvd3NlcnM6IFNhZmFyaSwgQ2hyb21lIGFuZCBBbmRyb2lkIGJyb3dzZXJcbiAqL1xuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgLnVrLWhpZGRlbi10b3VjaCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLypcbiAqIEhpZGUgaWYgcHJpbWFyeSBwb2ludGluZyBkZXZpY2UgaXMgYWNjdXJhdGUsIGUuZy4gbW91c2UuXG4gKiAxLiBGYWxsYmFjayBmb3IgSUUxMSBhbmQgRmlyZWZveCwgYmVjYXVzZSBgcG9pbnRlcmAgaXMgbm90IHN1cHBvcnRlZFxuICogMi4gUmVzZXQgaWYgc3VwcG9ydGVkXG4gKi9cbi8qIDEgKi9cbi51ay1oaWRkZW4tbm90b3VjaCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAudWstaGlkZGVuLW5vdG91Y2gge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogSW52ZXJzZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSW1wbGVtZW50ZWQgY2xhc3MgZGVwZW5kcyBvbiB0aGUgZ2VuZXJhbCB0aGVtZSBjb2xvclxuICogYHVrLWxpZ2h0YCBpcyBmb3IgbGlnaHQgY29sb3JzIG9uIGRhcmsgYmFja2dyb3VuZHNcbiAqIGB1ay1kYXJrYCBpcyBvciBkYXJrIGNvbG9ycyBvbiBsaWdodCBiYWNrZ3JvdW5kc1xuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUHJpbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6XG5BdXRob3I6XG5cblN0eWxlc2hlZXQ6IFNhc3MgRnVuY3Rpb25zXG5cbllvdSBjYW4gZG8gYSBsb3Qgb2YgcmVhbGx5IGNvb2wgdGhpbmdzIGluIFNhc3MuIEZ1bmN0aW9ucyBoZWxwIHlvdVxubWFrZSByZXBlYXRlZCBhY3Rpb25zIGEgbG90IGVhc2llci4gVGhleSBhcmUgcmVhbGx5IHNpbWlsYXIgdG8gbWl4aW5zLFxuYnV0IGNhbiBiZSB1c2VkIGZvciBzbyBtdWNoIG1vcmUuXG5cbkFueXdheSwga2VlcCB0aGVtIGFsbCBpbiBoZXJlIHNvIGl0J3MgZWFzaWVyIHRvIGZpbmQgd2hlbiB5b3UncmVcbmxvb2tpbmcgZm9yIG9uZS5cblxuRm9yIG1vcmUgaW5mbyBvbiBmdW5jdGlvbnMsIGdvIGhlcmU6XG5odHRwOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL1Nhc3MvU2NyaXB0L0Z1bmN0aW9ucy5odG1sXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbkNPTE9SIEZVTkNUSU9OU1xuVGhlc2UgYXJlIGhlbHBmdWwgd2hlbiB5b3UncmUgd29ya2luZ1xud2l0aCBzaGFkb3dzIGFuZCBzdWNoIHRoaW5ncy4gSXQncyBlc3NlbnRpYWxseVxuYSBxdWlja2VyIHdheSB0byB3cml0ZSBSR0JBLlxuXG5FeGFtcGxlOlxuYm94LXNoYWRvdzogMCAwIDRweCBibGFjaygwLjMpO1xuY29tcGlsZXMgdG86XG5ib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoMCwwLDAsMC4zKTtcbioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcblJFU1BPTlNJVkUgSEVMUEVSIEZVTkNUSU9OXG5JZiB5b3UncmUgY3JlYXRpbmcgYSByZXNwb25zaXZlIHNpdGUsIHRoZW5cbnlvdSd2ZSBwcm9iYWJseSBhbHJlYWR5IHJlYWRcblJlc3BvbnNpdmUgV2ViIERlc2lnbjogaHR0cDovL3d3dy5hYm9va2FwYXJ0LmNvbS9wcm9kdWN0cy9yZXNwb25zaXZlLXdlYi1kZXNpZ25cblxuSGVyZSdzIGEgbmljZSBsaXR0bGUgaGVscGVyIGZ1bmN0aW9uIGZvciBjYWxjdWxhdGluZ1xudGFyZ2V0IC8gY29udGV4dFxuYXMgbWVudGlvbmVkIGluIHRoYXQgYm9vay5cblxuRXhhbXBsZTpcbndpZHRoOiBjcCg2NTBweCwgMTAwMHB4KTtcbm9yXG53aWR0aDogY2FsYy1wZXJjZW50KDY1MHB4LCAxMDAwcHgpO1xuYm90aCBjb21waWxlIHRvOlxud2lkdGg6IDY1JTtcbioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogTWl4aW5zIFN0eWxlc2hlZXRcblxuVGhpcyBpcyB3aGVyZSB5b3UgY2FuIHRha2UgYWR2YW50YWdlIG9mIFNhc3MnIGdyZWF0IGZlYXR1cmVzOiBNaXhpbnMuXG5JIHdvbid0IGdvIGluLWRlcHRoIG9uIGhvdyB0aGV5IHdvcmsgZXhhY3RseSxcbnRoZXJlIGFyZSBhIGZldyBhcnRpY2xlcyBiZWxvdyB0aGF0IHdpbGwgaGVscCBkbyB0aGF0LiBXaGF0IEkgd2lsbFxudGVsbCB5b3UgaXMgdGhhdCB0aGlzIHdpbGwgaGVscCBzcGVlZCB1cCBzaW1wbGUgY2hhbmdlcyBsaWtlXG5jaGFuZ2luZyBhIGNvbG9yIG9yIGFkZGluZyBDU1MzIHRlY2huaXF1ZXMgZ3JhZGllbnRzLlxuXG5BIFdPUkQgT0YgV0FSTklORzogSXQncyB2ZXJ5IGVhc3kgdG8gb3ZlcmRvIGl0IGhlcmUuIEJlIGNhcmVmdWwgYW5kXG5yZW1lbWJlciBsZXNzIGlzIG1vcmUuXG5cbkhlbHBmdWw6XG5odHRwOi8vc2FjaGFncmVpZi5jb20vdXNlZnVsLXNhc3MtbWl4aW5zL1xuaHR0cDovL3RoZXNhc3N3YXkuY29tL2ludGVybWVkaWF0ZS9sZXZlcmFnaW5nLXNhc3MtbWl4aW5zLWZvci1jbGVhbmVyLWNvZGVcbmh0dHA6Ly93ZWItZGVzaWduLXdlZWtseS5jb20vYmxvZy8yMDEzLzA1LzEyL2hhbmR5LXNhc3MtbWl4aW5zL1xuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5UUkFOU0lUSU9OXG4qKioqKioqKioqKioqKioqKioqKiovXG4vKlxuSSB0b3RhbGx5IHJld3JvdGUgdGhpcyB0byBiZSBjbGVhbmVyIGFuZCBlYXNpZXIgdG8gdXNlLlxuWW91J2xsIG5lZWQgdG8gYmUgdXNpbmcgU2FzcyAzLjIrIGZvciB0aGVzZSB0byB3b3JrLlxuVGhhbmtzIHRvIEBhbnRob255c2hvcnQgZm9yIHRoZSBpbnNwaXJhdGlvbiBvbiB0aGVzZS5cblVTQUdFOiBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjJzIGVhc2UtaW4tb3V0KTtcbiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5DU1MzIEdSQURJRU5UU1xuQmUgY2FyZWZ1bCB3aXRoIHRoZXNlIHNpbmNlIHRoZXkgY2FuXG5yZWFsbHkgc2xvdyBkb3duIHlvdXIgQ1NTLiBEb24ndCBvdmVyZG8gaXQuXG4qKioqKioqKioqKioqKioqKioqKiovXG4vKiBAaW5jbHVkZSBjc3MtZ3JhZGllbnQoI2RmZGZkZiwjZjhmOGY4KTsgKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbkJPWCBTSVpJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7ICovXG4vKiBOT1RFOiB2YWx1ZSBvZiBcInBhZGRpbmctYm94XCIgaXMgb25seSBzdXBwb3J0ZWQgaW4gR2Vja28uIFNvXG5wcm9iYWJseSBiZXN0IG5vdCB0byB1c2UgaXQuIEkgbWVhbiwgd2VyZSB5b3UgZ29pbmcgdG8gYW55d2F5PyAqL1xuLyohXG4gKiBIYW1idXJnZXJzXG4gKiBAZGVzY3JpcHRpb24gVGFzdHkgQ1NTLWFuaW1hdGVkIGhhbWJ1cmdlcnNcbiAqIEBhdXRob3IgSm9uYXRoYW4gU3VoIEBqb25zdWhcbiAqIEBzaXRlIGh0dHBzOi8vam9uc3VoLmNvbS9oYW1idXJnZXJzXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vam9uc3VoL2hhbWJ1cmdlcnNcbiAqL1xuLmhhbWJ1cmdlciB7XG4gIHBhZGRpbmc6IDE1cHggMTVweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIGZpbHRlcjtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAuaGFtYnVyZ2VyOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc7IH1cbiAgLmhhbWJ1cmdlci5pcy1hY3RpdmU6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuICAuaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyLFxuICAuaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsXG4gIC5oYW1idXJnZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU1MDI4OyB9XG5cbi5oYW1idXJnZXItYm94IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmhhbWJ1cmdlci1pbm5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaGFtYnVyZ2VyLWlubmVyLCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU1MDI4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgfVxuICAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAtNXB4OyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IC01cHg7IH1cblxuLypcbiAgICogM0RYXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDQwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWCBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4LXIgLmhhbWJ1cmdlci1ib3gge1xuICBwZXJzcGVjdGl2ZTogNDBweDsgfVxuXG4uaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cblxuLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWVxuICAgKi9cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RZIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS0zZHktciAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tM2R5LXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKlxuICAgKiAzRFhZXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHh5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RYWSBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDQwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKSByb3RhdGVaKC0xODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHh5LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIEFycm93XG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3cuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTRweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvdy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00cHgsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBSaWdodFxuICAgKi9cbi5oYW1idXJnZXItLWFycm93LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3ctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDRweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBBbHRcbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCAtNXB4LCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwLjcsIDEpO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyAwLjFzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpOyB9XG5cbi5oYW1idXJnZXItLWFycm93YWx0LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCA1cHgsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBBbHQgUmlnaHRcbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpOyB9XG5cbi5oYW1idXJnZXItLWFycm93YWx0LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIC01cHgsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDVweCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBUdXJuXG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg4cHgsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLypcbiAgICogQXJyb3cgVHVybiBSaWdodFxuICAgKi9cbi5oYW1idXJnZXItLWFycm93dHVybi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtOHB4LCAwLCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwLjcsIDEpOyB9XG4gIC5oYW1idXJnZXItLWFycm93dHVybi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLypcbiAgICogQm9yaW5nXG4gICAqL1xuLmhhbWJ1cmdlci0tYm9yaW5nIC5oYW1idXJnZXItaW5uZXIsIC5oYW1idXJnZXItLWJvcmluZyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLWJvcmluZyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IH1cblxuLmhhbWJ1cmdlci0tYm9yaW5nLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLWJvcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyLS1ib3JpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfVxuXG4vKlxuICAgKiBDb2xsYXBzZVxuICAgKi9cbi5oYW1idXJnZXItLWNvbGxhcHNlIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xM3M7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTNzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogLTEwcHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIG9wYWNpdHkgMC4xcyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4xMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIG9wYWNpdHkgMC4xcyAwLjIycyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCB0cmFuc2Zvcm0gMC4xM3MgMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogQ29sbGFwc2UgUmV2ZXJzZVxuICAgKi9cbi5oYW1idXJnZXItLWNvbGxhcHNlLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEzcztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCBvcGFjaXR5IDAuMXMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLWNvbGxhcHNlLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4xMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLWNvbGxhcHNlLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIG9wYWNpdHkgMC4xcyAwLjIycyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2Utci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTZzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIEVsYXN0aWNcbiAgICovXG4uaGFtYnVyZ2VyLS1lbGFzdGljIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNzVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMjVzIDAuMjc1cyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLWVsYXN0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNzVzIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpOyB9XG5cbi5oYW1idXJnZXItLWVsYXN0aWMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDEzNWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDc1czsgfVxuICAuaGFtYnVyZ2VyLS1lbGFzdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApIHJvdGF0ZSgtMjcwZGVnKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cblxuLypcbiAgICogRWxhc3RpYyBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNzVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA1cHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEyNXMgMC4yNzVzIGVhc2U7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTsgfVxuXG4uaGFtYnVyZ2VyLS1lbGFzdGljLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC0xMzVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCkgcm90YXRlKDI3MGRlZyk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNzVzOyB9XG5cbi8qXG4gICAqIEVtcGhhdGljXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljIC5oYW1idXJnZXItaW5uZXIge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgICAgdG9wOiA1cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEyNXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4wNCwgMC45OCwgMC4zMzUpLCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgcmlnaHQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTQwcHg7XG4gICAgICB0b3A6IC00MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0MHB4LCA0MHB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTQwcHg7XG4gICAgICB0b3A6IC00MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDBweCwgNDBweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuXG4vKlxuICAgKiBFbXBoYXRpYyBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMtciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTI1cyAwLjE3NXMgZWFzZS1pbjsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTI1cyBjdWJpYy1iZXppZXIoMC42LCAwLjA0LCAwLjk4LCAwLjMzNSksIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCByaWdodCAwLjEyNXMgMC4xNzVzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTQwcHg7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQwcHgsIC00MHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xMjVzIGVhc2Utb3V0LCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgdHJhbnNmb3JtIDAuMTI1cyAwLjE3NXMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTQwcHg7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00MHB4LCAtNDBweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuMTI1cyBlYXNlLW91dCwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjEyNXMgMC4xNzVzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpOyB9XG5cbi8qXG4gICAqIE1pbnVzXG4gICAqL1xuLmhhbWJ1cmdlci0tbWludXMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAwLjA4cyAwcyBlYXNlLW91dCwgdG9wIDAuMDhzIDBzIGVhc2Utb3V0LCBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4wOHMgZWFzZS1vdXQsIHRvcCAwLjA4cyBlYXNlLW91dCwgb3BhY2l0eSAwcyAwLjA4cyBsaW5lYXI7IH1cblxuLmhhbWJ1cmdlci0tbWludXMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBib3R0b206IDA7IH1cblxuLypcbiAgICogU2xpZGVyXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDsgfVxuICAuaGFtYnVyZ2VyLS1zbGlkZXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDVweDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7IH1cblxuLmhhbWJ1cmdlci0tc2xpZGVyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoLTIuODU3MTQyODU3MXB4LCAtM3B4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApIHJvdGF0ZSgtOTBkZWcpOyB9XG5cbi8qXG4gICAqIFNsaWRlciBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogMXB4OyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA1cHg7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7IH1cblxuLmhhbWJ1cmdlci0tc2xpZGVyLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDIuODU3MTQyODU3MXB4LCAtM3B4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCkgcm90YXRlKDkwZGVnKTsgfVxuXG4vKlxuICAgKiBTcGluXG4gICAqL1xuLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcGluIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgMC4yNXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xcyAwLjEycyBlYXNlLW91dDsgfVxuICAuaGFtYnVyZ2VyLS1zcGluLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjIycyAwLjEycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKlxuICAgKiBTcGluIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zcGluLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjI1cyBlYXNlLWluLCB0cmFuc2Zvcm0gMC4yMnMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMXMgMC4xMnMgZWFzZS1vdXQ7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFNwcmluZ1xuICAgKi9cbi5oYW1idXJnZXItLXNwcmluZyAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiAxcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMHMgMC4xM3MgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogNXB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xM3MgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zcHJpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTVzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIHRyYW5zZm9ybSAwLjEzcyAwLjIycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogU3ByaW5nIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zcHJpbmctciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmctciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xM3MgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3ByaW5nLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCBvcGFjaXR5IDBzIDAuMjJzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTVzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFN0YW5kXG4gICAqL1xuLmhhbWJ1cmdlci0tc3RhbmQgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4wNzVzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3RhbmQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4xNXMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXN0YW5kLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjFzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFN0YW5kIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zdGFuZC1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMDc1cyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjA3NXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zdGFuZC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjE1cyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjFzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFNxdWVlemVcbiAgICovXG4uaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjA3NXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMDc1cyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4xMnMgZWFzZSwgdHJhbnNmb3JtIDAuMDc1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zcXVlZXplLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyBlYXNlLCBvcGFjaXR5IDAuMDc1cyAwLjEycyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIGVhc2UsIHRyYW5zZm9ybSAwLjA3NXMgMC4xMnMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogVm9ydGV4XG4gICAqL1xuLmhhbWJ1cmdlci0tdm9ydGV4IC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcCwgb3BhY2l0eTsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXggLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtOyB9XG5cbi5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDc2NWRlZyk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi8qXG4gICAqIFZvcnRleCBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS12b3J0ZXgtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCBvcGFjaXR5OyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3R0b20sIHRyYW5zZm9ybTsgfVxuXG4uaGFtYnVyZ2VyLS12b3J0ZXgtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC03NjVkZWcpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5JTVBPUlRJTkcgTU9EVUxFU1xuTW9kdWxlcyBhcmUgcmV1c2FibGUgYmxvY2tzIG9yIGVsZW1lbnRzIHdlIHVzZSB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LlxuV2UgY2FuIGJyZWFrIHRoZW0gdXAgYXMgbXVjaCBhcyB3ZSB3YW50IG9yIGp1c3Qga2VlcCB0aGVtIGFsbCBpbiBvbmUuXG5JIG1lYW4sIHlvdSBjYW4gZG8gd2hhdGV2ZXIgeW91IHdhbnQuIFRoZSB3b3JsZCBpcyB5b3VyIG95c3Rlci4gVW5sZXNzXG55b3UgaGF0ZSBveXN0ZXJzLCB0aGVuIHRoZSB3b3JsZCBpcyB5b3VyIHBlYW51dCBidXR0ZXIgJiBqZWxseSBzYW5kd2ljaC5cbioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogQWxlcnQgU3R5bGVzXG5cbklmIHlvdSB3YW50IHRvIHVzZSB0aGVzZSBhbGVydHMgaW4geW91ciBkZXNpZ24sIHlvdSBjYW4uIElmIG5vdCxcbnlvdSBjYW4ganVzdCByZW1vdmUgdGhpcyBzdHlsZXNoZWV0LlxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uYWxlcnQtaGVscCwgLmFsZXJ0LWluZm8sIC5hbGVydC1lcnJvciwgLmFsZXJ0LXN1Y2Nlc3Mge1xuICBtYXJnaW46IDEwcHg7XG4gIHBhZGRpbmc6IDVweCAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZDsgfVxuXG4uYWxlcnQtaGVscCB7XG4gIGJvcmRlci1jb2xvcjogI2U4ZGM1OTtcbiAgYmFja2dyb3VuZDogI2ViZTE2ZjsgfVxuXG4uYWxlcnQtaW5mbyB7XG4gIGJvcmRlci1jb2xvcjogI2JmZTRmNDtcbiAgYmFja2dyb3VuZDogI2Q1ZWRmODsgfVxuXG4uYWxlcnQtZXJyb3Ige1xuICBib3JkZXItY29sb3I6ICNmOGNkY2U7XG4gIGJhY2tncm91bmQ6ICNmYmUzZTQ7IH1cblxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICNkZWVhYWU7XG4gIGJhY2tncm91bmQ6ICNlNmVmYzI7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBCdXR0b24gU3R5bGVzXG5cbkJ1dHRvbnMgYXJlIGEgcHJldHR5IGltcG9ydGFudCBwYXJ0IG9mIHlvdXIgc2l0ZSdzIHN0eWxlLCBzbyBpdCdzXG5pbXBvcnRhbnQgdG8gaGF2ZSBhIGNvbnNpc3RlbnQgYmFzZWxpbmUgZm9yIHRoZW0uIFVzZSB0aGlzIHN0eWxlc2hlZXRcbnRvIGNyZWF0ZSBhbGwga2luZHMgb2YgYnV0dG9ucy5cblxuSGVscGZ1bCBMaW5rczpcbmh0dHA6Ly9nYWxwLmluL2Jsb2cvMjAxMS8wOC8wMi90aGUtdWktZ3VpZGUtcGFydC0xLWJ1dHRvbnMvXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbkJVVFRPTiBERUZBVUxUU1xuV2UncmUgZ29ubmEgdXNlIGEgcGxhY2Vob2xkZXIgc2VsZWN0b3IgaGVyZVxuc28gd2UgY2FuIHVzZSBjb21tb24gc3R5bGVzLiBXZSB0aGVuIHVzZSB0aGlzXG50byBsb2FkIHVwIHRoZSBkZWZhdWx0cyBpbiBhbGwgb3VyIGJ1dHRvbnMuXG5cbkhlcmUncyBhIHF1aWNrIHZpZGVvIHRvIHNob3cgaG93IGl0IHdvcmtzOlxuaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWh3ZFZwS2lKemFjXG5cbioqKioqKioqKioqKioqKioqKioqKi9cbmEud2hpdGUtYnRuLFxuYS53aGl0ZS1idG46dmlzaXRlZCxcbi53aGl0ZS1idG4sIGEub3JhbmdlLWJ0bixcbmEub3JhbmdlLWJ0bjp2aXNpdGVkLFxuLm9yYW5nZS1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU1MDI4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTJweCAyNHB4OyB9XG4gIFxuICBhLndpdGgtYXJyb3cud2hpdGUtYnRuOnZpc2l0ZWQsXG4gIC53aXRoLWFycm93LndoaXRlLWJ0bixcbiAgYS53aXRoLWFycm93Lm9yYW5nZS1idG46dmlzaXRlZCxcbiAgLndpdGgtYXJyb3cub3JhbmdlLWJ0biB7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDsgfVxuICAgIFxuICAgIC53aXRoLWFycm93LndoaXRlLWJ0bjphZnRlcixcbiAgICAud2l0aC1hcnJvdy5vcmFuZ2UtYnRuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogNnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgICAgcmlnaHQ6IDE4cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC05cHggLTE0N3B4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlLnN2Zyk7IH1cbiAgXG4gIGEud2hpdGUtYnRuOmhvdmVyOnZpc2l0ZWQsXG4gIC53aGl0ZS1idG46aG92ZXIsXG4gIGEub3JhbmdlLWJ0bjpob3Zlcjp2aXNpdGVkLFxuICAub3JhbmdlLWJ0bjpob3ZlcixcbiAgYS53aGl0ZS1idG46Zm9jdXM6dmlzaXRlZCxcbiAgLndoaXRlLWJ0bjpmb2N1cyxcbiAgYS5vcmFuZ2UtYnRuOmZvY3VzOnZpc2l0ZWQsXG4gIC5vcmFuZ2UtYnRuOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI3NSk7IH1cblxuLypcbkFuIGV4YW1wbGUgYnV0dG9uLlxuWW91IGNhbiB1c2UgdGhpcyBleGFtcGxlIGlmIHlvdSB3YW50LiBKdXN0IHJlcGxhY2UgYWxsIHRoZSB2YXJpYWJsZXNcbmFuZCBpdCB3aWxsIGNyZWF0ZSBhIGJ1dHRvbiBkZXBlbmRhbnQgb24gdGhvc2UgdmFyaWFibGVzLlxuKi9cbmEud2hpdGUtYnRuLFxuYS53aGl0ZS1idG46dmlzaXRlZCxcbi53aGl0ZS1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogI2Y1NTAyODtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y1NTAyODsgfVxuICBhLndoaXRlLWJ0bjpob3ZlciwgYS53aGl0ZS1idG46Zm9jdXMsXG4gIGEud2hpdGUtYnRuOnZpc2l0ZWQ6aG92ZXIsXG4gIGEud2hpdGUtYnRuOnZpc2l0ZWQ6Zm9jdXMsXG4gIC53aGl0ZS1idG46aG92ZXIsXG4gIC53aGl0ZS1idG46Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICNmNTUwMjg7IH1cbiAgYS53aGl0ZS1idG46YWN0aXZlLFxuICBhLndoaXRlLWJ0bjp2aXNpdGVkOmFjdGl2ZSxcbiAgLndoaXRlLWJ0bjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICNmNTUwMjg7IH1cblxuYS5vcmFuZ2UtYnRuLFxuYS5vcmFuZ2UtYnRuOnZpc2l0ZWQsXG4ub3JhbmdlLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTUwMjg7IH1cbiAgYS5vcmFuZ2UtYnRuOmhvdmVyLCBhLm9yYW5nZS1idG46Zm9jdXMsXG4gIGEub3JhbmdlLWJ0bjp2aXNpdGVkOmhvdmVyLFxuICBhLm9yYW5nZS1idG46dmlzaXRlZDpmb2N1cyxcbiAgLm9yYW5nZS1idG46aG92ZXIsXG4gIC5vcmFuZ2UtYnRuOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MDE1OyB9XG4gIGEub3JhbmdlLWJ0bjphY3RpdmUsXG4gIGEub3JhbmdlLWJ0bjp2aXNpdGVkOmFjdGl2ZSxcbiAgLm9yYW5nZS1idG46YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQzYzEwOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogRm9ybSBTdHlsZXNcblxuV2UgcHV0IGFsbCB0aGUgZm9ybSBhbmQgYnV0dG9uIHN0eWxlcyBpbiBoZXJlIHRvIHNldHVwIGEgY29uc2lzdGVudFxubG9vay4gSWYgd2UgbmVlZCB0byBjdXN0b21pemUgdGhlbSwgd2UgY2FuIGRvIHRoaXMgaW4gdGhlIG1haW5cbnN0eWxlc2hlZXRzIGFuZCBqdXN0IG92ZXJyaWRlIHRoZW0uIEVhc3kgUGVhc3kuXG5cbllvdSdyZSBnb25uYSBzZWUgYSBmZXcgZGF0YS11cmkgdGhpbmdpZXMgZG93biB0aGVyZS4gSWYgeW91J3JlIG5vdFxuc3VyZSB3aGF0IHRoZXkgYXJlLCBjaGVjayB0aGlzIGxpbmsgb3V0OlxuaHR0cDovL2Nzcy10cmlja3MuY29tL2RhdGEtdXJpcy9cbklmIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIG93biwgdXNlIHRoaXMgaGVscGZ1bCBsaW5rOlxuaHR0cDovL3dlYnNlbWFudGljcy5jby51ay9vbmxpbmVfdG9vbHMvaW1hZ2VfdG9fZGF0YV91cmlfY29udmVydG9yL1xuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5JTlBVVFNcbioqKioqKioqKioqKioqKioqKioqKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwibW9udGhcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cInRlbFwiXSxcbmlucHV0W3R5cGU9XCJjb2xvclwiXSxcbnNlbGVjdCxcbnRleHRhcmVhLFxuLmZpZWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6ICM1YzZiODA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlZGYyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNHMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNHMgZWFzZS1pbi1vdXQ7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4gIHNlbGVjdDpmb2N1cyxcbiAgc2VsZWN0OmFjdGl2ZSxcbiAgdGV4dGFyZWE6Zm9jdXMsXG4gIHRleHRhcmVhOmFjdGl2ZSxcbiAgLmZpZWxkOmZvY3VzLFxuICAuZmllbGQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmOGZhO1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0uZXJyb3IsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cInVybFwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cInVybFwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0uaXMtaW52YWxpZCxcbiAgc2VsZWN0LmVycm9yLFxuICBzZWxlY3QuaXMtaW52YWxpZCxcbiAgdGV4dGFyZWEuZXJyb3IsXG4gIHRleHRhcmVhLmlzLWludmFsaWQsXG4gIC5maWVsZC5lcnJvcixcbiAgLmZpZWxkLmlzLWludmFsaWQge1xuICAgIGNvbG9yOiAjZmJlM2U0O1xuICAgIGJvcmRlci1jb2xvcjogI2ZiZTNlNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDk5JSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCWUFBQUFXQ0FZQUFBREV0R3c3QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5UnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVFdGamFXNTBiM05vS1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvMk5ETTBORFJFUWtZd05FSXhNVVV5T1RJNFJFWkdRVEV6TXpBMk1EY3lOaUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8yTkRNME5EUkVRMFl3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalEzT0RSR1JrRTJSakEwUVRFeFJUSTVNamhFUmtaQk1UTXpNRFl3TnpJMklpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBNelEwTkVSQlJqQTBRakV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K1U4aVQ1d0FBQWVkSlJFRlVlTnFrMVU5STAyRWN4L0h0VjNhSUZBYzFoY1JEVW9HWFJBcTBvTkxBMkNyc0VGbUhiaWtadTBpUVlJRkdZQWllZ2tDcExpcEJ4UHBERUJNVXpCMEVoU0cyTGhHN2hNUjJHdmlQZ1VUdkI1N0J3OFAzK1UyM0IxNkhQWDgrZS9iOG50OTN3ZXpaU01DbmhYRVRGM0FjQjVCRENuSDhEcTk4RXhjR0hjRm44QWgzY2REbmkrZnhuUER2OW9BblRCN0NLdTZWQ0ZYdENoWnk1Nkx4VWp0K2pmdUI4dG9TT3RoOXdkN3hXQVdocXJVallSL0ZSVHdXSm0raUlQVC93N2JRZjVsamlabkJnNDVkdEtGWDZIK0xVOGdJWThPRVY2dmdUa1N0d1hXRThCUFRHREhHUHFOUHoybUNmU09PWWtBOTlUdkN0MWJoR1BMNjh6TWN3bW5jTXVhcGUxMGpySStxNEJiSGkvRkxuMzFTOXoyeDV0UmhUYysxVzUwNmlwTStUM29SRDRYKzgrcXRjNFNxRnZMMHovRnIxNFMrU3pqaXM4Yno5THZ2YXE4Y3dTL3d3R2ZkbHFmUFNXcVRpRmxYNzdvMTN1OVltMVBCczhKQXl0cFJveTQ0WDlGdDlFL2d2YkErcllLbjhOY2FhTVZjOFVIZ0J3NGI5L2lxVVFaNmhPQUpGYnlEY1VmbG1zRVg0YTYrd1R0SEdmaEFJVXFhMVUyOVpjMkJ5dG91VGhEOHg2eHVONUN0TVBpMkNyWExaa1pmL0h5Wm9SRkNQN24rUVZSNFBWN3VJL0FqR2doTjdPVS9yMWlsbnFJTHRmcE5DK282dklGbGpCS1lsaGIvRjJBQWdhQnNXUjV3UmlJQUFBQUFTVVZPUks1Q1lJST0pO1xuICAgIG91dGxpbmUtY29sb3I6ICNmYmUzZTQ7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0uc3VjY2VzcywgaW5wdXRbdHlwZT1cInRleHRcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cInVybFwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cInRlbFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXS5pcy12YWxpZCxcbiAgc2VsZWN0LnN1Y2Nlc3MsXG4gIHNlbGVjdC5pcy12YWxpZCxcbiAgdGV4dGFyZWEuc3VjY2VzcyxcbiAgdGV4dGFyZWEuaXMtdmFsaWQsXG4gIC5maWVsZC5zdWNjZXNzLFxuICAuZmllbGQuaXMtdmFsaWQge1xuICAgIGNvbG9yOiAjZTZlZmMyO1xuICAgIGJvcmRlci1jb2xvcjogI2U2ZWZjMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDk5JSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCWUFBQUFXQ0FZQUFBREV0R3c3QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5UnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVFdGamFXNTBiM05vS1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvMk5ETTBORFJFUmtZd05FSXhNVVV5T1RJNFJFWkdRVEV6TXpBMk1EY3lOaUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8yTkRNME5EUkZNRVl3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTXpRME5FUkVSakEwUWpFeFJUSTVNamhFUmtaQk1UTXpNRFl3TnpJMklpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBNelEwTkVSRlJqQTBRakV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4KzdvbGtUUUFBQWZoSlJFRlVlTnFrbFU5b0UwRVVoemRyb1dqdzB0QmVXbER4a0VhSXA1NVRzQ1U5VktJZ0NySEJlbEE4Q1ExS3IxV1BiWnJRM2dxdFFxdkdxeHBRYzJqQms2QklJYUFHRDRxTkNLVVJwRFNLaVBpOThnTERzSnQvL3VCanN6dHZmbms3ODk1c0lQQXc2L2pvR01UaEZKeUFYbjIrQSs5Z0E1Ny9UYVkvZVUwT2VCZ2ZoR200RGlHbnNiN0RBc3p4QnovTkFkY0tqTUpMdU5XQ3FhZ0hic3NjTjUrTCtobUg0UWtNT2UxTDVqekZmTkEyUGdUMzRhalR1WTdBR3VaQjAvaG1oNW0rZ1Mwcjh4djF6UnZnK2dHQ0haaU93bkY0RFAzaUIzc1FrWXhQZDJDNkNXZmhCOVh3bHVzNStLMWo0alh1YXEzYStnTTFIOU9QY0FhKzdxOWxQaWRaSnFIYmlJbTdXZzIycnNFSTdGclBTekFNWC9UK0FEeUFLU3N1N0ZyMUtwbGVoTHZ3Q3M1RHZmQmY2NXArTXlwcVJiTzFGWEs5dXRINC9RS3VhcVlUc0czRTNJTkp2MDBRNDZweDMrWHhhbkovVXRlMi92cVA0RktEemEyS2NkbGpJS2RuaFMweFhZVUxUYXFtTE1aRm44RkZTRnR2dDZ4NzBFeEZDUzVvVVhzcHEyc3NhN29FbDFzd0ZhK0NHRmRndGtIZ1BEeURLeTAyenl4TlU2bFhSVVpiMUV1SFlheU5OcytZaDVCMFdRbysvOGZwSm5OVFpGdXp6Mk9wam9RMlFydVNPUWxNeTM1ZkVHbUVHTXhZOWUxYnJ4b2J3N1RrV0ExaDZ4ZmNrVVBiK0poR29FL0hwZnZldzdxVWxkL0g5SjhBQXdEcHczV1lyeGNaM1FBQUFBQkpSVTVFcmtKZ2dnPT0pO1xuICAgIG91dGxpbmUtY29sb3I6ICNlNmVmYzI7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl1bZGlzYWJsZWRdLCBpbnB1dFt0eXBlPVwidGV4dFwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cInVybFwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwidGVsXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0uaXMtZGlzYWJsZWQsXG4gIHNlbGVjdFtkaXNhYmxlZF0sXG4gIHNlbGVjdC5pcy1kaXNhYmxlZCxcbiAgdGV4dGFyZWFbZGlzYWJsZWRdLFxuICB0ZXh0YXJlYS5pcy1kaXNhYmxlZCxcbiAgLmZpZWxkW2Rpc2FibGVkXSxcbiAgLmZpZWxkLmlzLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJvcmRlci1jb2xvcjogI2NmY2ZjZjtcbiAgICBvcGFjaXR5OiAwLjY7IH1cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF06Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW2Rpc2FibGVkXTphY3RpdmUsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmlzLWRpc2FibGVkOmZvY3VzLCBpbnB1dFt0eXBlPVwidGV4dFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJkYXRlXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJtb250aFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJtb250aFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwid2Vla1wiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwidXJsXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwidGVsXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJjb2xvclwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJjb2xvclwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgc2VsZWN0W2Rpc2FibGVkXTpmb2N1cyxcbiAgICBzZWxlY3RbZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBzZWxlY3QuaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgc2VsZWN0LmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICB0ZXh0YXJlYVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgdGV4dGFyZWFbZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICB0ZXh0YXJlYS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICB0ZXh0YXJlYS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgLmZpZWxkW2Rpc2FibGVkXTpmb2N1cyxcbiAgICAuZmllbGRbZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICAuZmllbGQuaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgLmZpZWxkLmlzLWRpc2FibGVkOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVlZGY4OyB9XG5cbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNlbTsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuXG5zZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDEgKi9cbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBOEFBQUFIQ0FZQUFBRFhoUmNuQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5UnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVFdGamFXNTBiM05vS1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRU9FWkNNall4TUVZd05VVXhNVVV5T1RJNFJFWkdRVEV6TXpBMk1EY3lOaUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBFT0VaQ01qWXhNVVl3TlVVeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPa1E0UmtJeU5qQkZSakExUlRFeFJUSTVNamhFUmtaQk1UTXpNRFl3TnpJMklpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09rUTRSa0l5TmpCR1JqQTFSVEV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K1Z4a3A5Z0FBQUk5SlJFRlVlTnBpZEhGeHVjSEF3S0FPeEUrQW1KbUJNUGdMeERKQWZKTUZTS3dENGtxb0FDbGdBK1AvLy84WlhGMWRQYUNHY0JLaDZRY1FCKzNldlhzN1dETUlBQTJRQjFJN2dGZ0RqMGFRRnoyQkdoK0FPRXd3VWFEQVF5QmxDTVI3Y0dqY0M1S0hhUVFCdU0zSUFPaUtUaUJWaGlUVURkUlVocTRPcTJhb0FlbEFhaElRNXdNMXpzQ21CaURBQURoWU1KWFZaOXU5QUFBQUFFbEZUa1N1UW1DQyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDk3LjUlIGNlbnRlcjsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5CQVNFIChNT0JJTEUpIFNJWkVcblRoaXMgYXJlIHRoZSBtb2JpbGUgc3R5bGVzLiBJdCdzIHdoYXQgcGVvcGxlIHNlZSBvbiB0aGVpciBwaG9uZXMuIElmXG55b3Ugc2V0IGEgZ3JlYXQgZm91bmRhdGlvbiwgeW91IHdvbid0IG5lZWQgdG8gYWRkIHRvbyBtYW55IHN0eWxlcyBpblxudGhlIG90aGVyIHN0eWxlc2hlZXRzLiBSZW1lbWJlciwga2VlcCBpdCBsaWdodDogU3BlZWQgaXMgSW1wb3J0YW50LlxuKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBCYXNlIE1vYmlsZSBTdHlsZXNoZWV0XG5cbkJlIGxpZ2h0IGFuZCBkb24ndCBvdmVyIHN0eWxlIHNpbmNlIGV2ZXJ5dGhpbmcgaGVyZSB3aWxsIGJlXG5sb2FkZWQgYnkgbW9iaWxlIGRldmljZXMuIFlvdSB3YW50IHRvIGtlZXAgaXQgYXMgbWluaW1hbCBhc1xucG9zc2libGUuIFRoaXMgaXMgY2FsbGVkIGF0IHRoZSB0b3Agb2YgdGhlIG1haW4gc3R5bHNoZWV0XG5hbmQgd2lsbCBiZSB1c2VkIGFjcm9zcyBhbGwgdmlld3BvcnRzLlxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5HRU5FUkFMIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA2Mi41JTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM1YzZiODA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5MQVlPVVQgJiBHUklEIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuI2lubmVyLWhlYWRlcixcbi53cmFwIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMjBweDsgfVxuXG4ud3JhcCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAud3JhcCB7XG4gICAgICBtYXgtd2lkdGg6IDg1JTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC53cmFwIHtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAud3JhcCB7XG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICBtYXgtd2lkdGg6IDEyNDBweDsgfSB9XG5cbiNpbm5lci1oZWFkZXIge1xuICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICNpbm5lci1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMCAwIDAgMTVweDtcbiAgICAgIG1heC13aWR0aDogMTI0MHB4OyB9IH1cblxuI2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgI2NvbnRlbnQgZGl2Lm5vdGlmeS1iaXJkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA2MHB4O1xuICAgIGxlZnQ6IDEyMHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbm90aWZ5LWJpcmQuc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDM2MHB4O1xuICAgIHotaW5kZXg6IDA7IH1cbiAgI2NvbnRlbnQgZGl2Lm5vdGlmeS1iaXJkLXNoYWRvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQ0MHB4O1xuICAgIGxlZnQ6IC0zMzBweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL25vdGlmeS1iaXJkLXNoYWRvdy5zdmcpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IHRvcDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMTAxMHB4O1xuICAgIGhlaWdodDogMTA1MHB4O1xuICAgIHotaW5kZXg6IDA7IH1cbiAgI2NvbnRlbnQgLnBhZ2Utc2VjdGlvbixcbiAgI2NvbnRlbnQgLmJpZy1mZWF0dXJlZC1pbWFnZSxcbiAgI2NvbnRlbnQgI2lubmVyLWNvbnRlbnQge1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbkxJTksgU1RZTEVTXG4qKioqKioqKioqKioqKioqKioqKiovXG5hLFxuYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmMDFkNGY7XG4gIC8qIG9uIGhvdmVyICovXG4gIC8qIG9uIGNsaWNrICovIH1cbiAgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjZDEwZTNjOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkgxLCBIMiwgSDMsIEg0LCBINSBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5O1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKlxuXHRpZiB5b3UncmUgZ29pbmcgdG8gdXNlIHdlYmZvbnRzLCBiZSBzdXJlIHRvIGNoZWNrIHlvdXIgd2VpZ2h0c1xuXHRodHRwOi8vY3NzLXRyaWNrcy5jb20vd2F0Y2gteW91ci1mb250LXdlaWdodC9cblx0Ki9cbiAgLyogcmVtb3ZpbmcgdGV4dCBkZWNvcmF0aW9uIGZyb20gYWxsIGhlYWRsaW5lIGxpbmtzICovIH1cbiAgaDEgYSwgLmgxIGEsIGgyIGEsIC5oMiBhLCBoMyBhLCAuaDMgYSwgaDQgYSwgLmg0IGEsIGg1IGEsIC5oNSBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuaDEsIC5oMSB7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogMy4yZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogI2Y1NTAyODtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNzVlbTsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjEyNWVtOyB9XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDAuODQ2ZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjA5ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuUE9TVFMgJiBDT05URU5UIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuLyogZW50cnkgY29udGVudCAqL1xuLmVudHJ5LWNvbnRlbnQge1xuICAvKlxuXHRpbWFnZSBhbGlnbm1lbnQgb24gYSBzY3JlZW4gdGhpcyBzaXplIG1heSBiZVxuXHRhIGJpdCBkaWZmaWN1bHQuIEl0J3Mgc2V0IHRvIHN0YXJ0IGFsaWduaW5nXG5cdGFuZCBmbG9hdGluZyBpbWFnZXMgYXQgdGhlIG5leHQgYnJlYWtwb2ludCxcblx0YnV0IGl0J3MgdXAgdG8geW91LiBGZWVsIGZyZWUgdG8gY2hhbmdlIGl0IHVwLlxuXHQqLyB9XG4gIC5lbnRyeS1jb250ZW50IHAge1xuICAgIG1hcmdpbjogMCAwIDFlbTsgfVxuICAuZW50cnktY29udGVudCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VhZWRmMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuICAgIC5lbnRyeS1jb250ZW50IHRhYmxlIGNhcHRpb24ge1xuICAgICAgbWFyZ2luOiAwIDAgN3B4O1xuICAgICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgICBjb2xvcjogIzlmYTZiNDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG4gIC5lbnRyeS1jb250ZW50IHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWRmMjsgfVxuICAgIC5lbnRyeS1jb250ZW50IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhOyB9XG4gIC5lbnRyeS1jb250ZW50IHRkIHtcbiAgICBwYWRkaW5nOiA3cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VhZWRmMjsgfVxuICAgIC5lbnRyeS1jb250ZW50IHRkOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5lbnRyeS1jb250ZW50IHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlZGYyO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYWVkZjI7IH1cbiAgICAuZW50cnktY29udGVudCB0aDpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuZW50cnktY29udGVudCBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAxLjVlbSAwLjc1ZW07XG4gICAgcGFkZGluZzogMCAwIDAgMC43NWVtO1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzI5ODBiOTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICM5ZmE2YjQ7IH1cbiAgLmVudHJ5LWNvbnRlbnQgZGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgY29sb3I6ICM3ODc4Nzg7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cbiAgLmVudHJ5LWNvbnRlbnQgaW1nIHtcbiAgICBtYXJnaW46IDAgMCAxLjVlbSAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLmVudHJ5LWNvbnRlbnQgLnNpemUtYXV0byxcbiAgLmVudHJ5LWNvbnRlbnQgLnNpemUtZnVsbCxcbiAgLmVudHJ5LWNvbnRlbnQgLnNpemUtbGFyZ2UsXG4gIC5lbnRyeS1jb250ZW50IC5zaXplLW1lZGl1bSxcbiAgLmVudHJ5LWNvbnRlbnQgLnNpemUtdGh1bWJuYWlsIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5lbnRyeS1jb250ZW50IHByZSB7XG4gICAgYmFja2dyb3VuZDogIzMyMzk0NDtcbiAgICBjb2xvcjogI2Y4ZjlmYTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHBhZGRpbmc6IDEuNWVtO1xuICAgIG1hcmdpbjogMCAwIDEuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4vKiBlbmQgLmVudHJ5LWNvbnRlbnQgKi9cbi53cC1jYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBwYWRkaW5nOiA1cHg7XG4gIC8qIGltYWdlcyBpbnNpZGUgd3AtY2FwdGlvbiAqLyB9XG4gIC53cC1jYXB0aW9uIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG1hcmdpbjogNHB4IDAgN3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBlbmQgLndwLWNhcHRpb24gKi9cbi5wYWdlLXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG4gIC5wYWdlLXNlY3Rpb24udHJ5LW5vdywgLnBhZ2Utc2VjdGlvbi5zY2hyaWpmLWplLWluIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAucGFnZS1zZWN0aW9uLnRyeS1ub3cgaDEsIC5wYWdlLXNlY3Rpb24uc2NocmlqZi1qZS1pbiBoMSB7XG4gICAgICBjb2xvcjogIzQ2NGI1MDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IH1cbiAgLnBhZ2Utc2VjdGlvbi50cnktbm93IHtcbiAgICBtYXJnaW4tdG9wOiAxODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNDBweDsgfVxuICAgIC5wYWdlLXNlY3Rpb24udHJ5LW5vdyAuYnV0dG9uLWhvbGRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgLnBhZ2Utc2VjdGlvbi50cnktbm93IC5idXR0b24taG9sZGVyIGEge1xuICAgICAgICBtYXJnaW46IDAgMThweDsgfVxuICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogODAwcHg7IH1cbiAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tZXJyb3IsXG4gICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLW1lc3NhZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjMzIzOTQ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAubWF1dGljZm9ybS1lcnJvcm1zZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICBjb2xvcjogI2Y1NTAyODtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfY29tcGFueSxcbiAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2Z1bGxfbmFtZSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfY29tcGFueSxcbiAgICAgICAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tcGFnZS13cmFwcGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl9mdWxsX25hbWUge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNTAlOyB9IH1cbiAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX3lvdXJfZW1haWwge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiA5cHg7IH1cbiAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2NvbXBhbnksXG4gICAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tcGFnZS13cmFwcGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl9mdWxsX25hbWUsXG4gICAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tcGFnZS13cmFwcGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl95b3VyX2VtYWlsIHtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4OyB9XG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2NvbXBhbnkgaW5wdXRbdHlwZT1lbWFpbF0sXG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2NvbXBhbnkgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfZnVsbF9uYW1lIGlucHV0W3R5cGU9ZW1haWxdLFxuICAgICAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tcGFnZS13cmFwcGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl9mdWxsX25hbWUgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfeW91cl9lbWFpbCBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfeW91cl9lbWFpbCBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNDhweDtcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlY2VkO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICAgICAgICBmb250LXNpemU6IDEuOGVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgY29sb3I6ICMyNzJlNDU7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciBidXR0b25bdHlwZT1zdWJtaXRdLFxuICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBsaW5lLWhlaWdodDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmZGNjZDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDEuOGVtO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDM2cHggMCAyNHB4O1xuICAgICAgICBtYXJnaW46IDE3cHggMTZweCAwIDE2cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgYnV0dG9uW3R5cGU9c3VibWl0XTpob3ZlciwgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciBidXR0b25bdHlwZT1zdWJtaXRdOmZvY3VzLFxuICAgICAgICAucGFnZS1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24gLm1hdXRpY2Zvcm0tcGFnZS13cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XTpob3ZlcixcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uIC5tYXV0aWNmb3JtLXBhZ2Utd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF06Zm9jdXMge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMjc1KTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGVkOGM4OyB9XG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgYnV0dG9uW3R5cGU9c3VibWl0XTphY3RpdmUsXG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbiAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdOmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRhZDdjNjsgfVxuXG4ubmV3c2xldHRlci1ob2xkZXIge1xuICBib3gtc2hhZG93OiAwIDMycHggNjRweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBhZGRpbmc6IDMycHg7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyIGgxIHtcbiAgICBmb250LXNpemU6IDIuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogIzQ2NGI1MDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG4gIC5uZXdzbGV0dGVyLWhvbGRlciBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGNvbG9yOiAjZjU1MDI4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubmV3c2xldHRlci1ob2xkZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2Z1bGxfbmFtZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiTGFzdCBOYW1lXCI7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl9jb21wYW55OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJGaXJzdCBOYW1lXCI7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl95b3VyX2VtYWlsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJFbWFpbCBBZGRyZXNzXCI7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyICNtYXV0aWNmb3JtX3N1YnNjcmliZXRvbmV3c2xldHRlcl9mdWxsX25hbWU6YmVmb3JlLFxuICAubmV3c2xldHRlci1ob2xkZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2NvbXBhbnk6YmVmb3JlLFxuICAubmV3c2xldHRlci1ob2xkZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX3lvdXJfZW1haWw6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICNmNTUwMjg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5uZXdzbGV0dGVyLWhvbGRlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfZnVsbF9uYW1lLFxuICAubmV3c2xldHRlci1ob2xkZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX2NvbXBhbnksXG4gIC5uZXdzbGV0dGVyLWhvbGRlciAjbWF1dGljZm9ybV9zdWJzY3JpYmV0b25ld3NsZXR0ZXJfeW91cl9lbWFpbCB7XG4gICAgbWFyZ2luLXRvcDogMThweDsgfVxuICAubmV3c2xldHRlci1ob2xkZXIgI21hdXRpY2Zvcm1fc3Vic2NyaWJldG9uZXdzbGV0dGVyX3lvdXJfZW1haWwgLm1hdXRpY2Zvcm0tZXJyb3Jtc2cge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyIC5tYXV0aWNmb3JtLWVycm9ybXNnIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICMzMjM5NDQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9XG4gIC5uZXdzbGV0dGVyLWhvbGRlciAubWF1dGljZm9ybS1lcnJvcixcbiAgLm5ld3NsZXR0ZXItaG9sZGVyIC5tYXV0aWNmb3JtLW1lc3NhZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogIzMyMzk0NDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubmV3c2xldHRlci1ob2xkZXIgaW5wdXRbdHlwZT1lbWFpbF0sXG4gIC5uZXdzbGV0dGVyLWhvbGRlciBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNWY1O1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGNvbG9yOiAjNDY0YjUwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyIGJ1dHRvblt0eXBlPXN1Ym1pdF0sXG4gIC5uZXdzbGV0dGVyLWhvbGRlciBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgIGhlaWdodDogMzZweDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNTUwMjg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZzogMCAyMXB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgICBtYXJnaW4tdG9wOiAzMnB4OyB9XG4gICAgLm5ld3NsZXR0ZXItaG9sZGVyIGJ1dHRvblt0eXBlPXN1Ym1pdF06aG92ZXIsXG4gICAgLm5ld3NsZXR0ZXItaG9sZGVyIGlucHV0W3R5cGU9c3VibWl0XTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0YjUwOyB9XG5cbi8qIGltYWdlIGdhbGxlcnkgc3R5bGVzICovXG4vKiBlbmQgLmdhbGxlcnkgKi9cbi8qIGdhbGxlcnkgY2FwdGlvbiBzdHlsZXMgKi9cbi50YWdzIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblBBR0UgTkFWSSBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luOiA0MHB4IDAgMjBweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnBhZ2luYXRpb24gcCB7XG4gICAgbWFyZ2luOiAwIDE4cHggMCAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogIzQ2NGI1MDsgfVxuICAucGFnaW5hdGlvbiB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAucGFnaW5hdGlvbiBhLCAucGFnaW5hdGlvbiBzcGFuIHtcbiAgICBtYXJnaW46IDAgNnB4IDAgMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtaW4td2lkdGg6IDFlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICM0NjRiNTA7IH1cbiAgICAucGFnaW5hdGlvbiBhOmhvdmVyLCAucGFnaW5hdGlvbiBhOmZvY3VzLCAucGFnaW5hdGlvbiBzcGFuOmhvdmVyLCAucGFnaW5hdGlvbiBzcGFuOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNTUwMjg7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZmRjY2Q7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnBhZ2luYXRpb24gLmN1cnJlbnQ6aG92ZXIsIC5wYWdpbmF0aW9uIC5jdXJyZW50OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZmRjY2Q7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cblxuLyogZW5kIC5ib25lc19wYWdlX25hdmkgKi9cbi8qIGZhbGxiYWNrIHByZXZpb3VzICYgbmV4dCBsaW5rcyAqL1xuLndwLXByZXYtbmV4dCAucHJldi1saW5rIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLndwLXByZXYtbmV4dCAubmV4dC1saW5rIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIGVuZCAud3AtcHJldi1uZXh0ICovXG4vKioqKioqKioqKioqKioqKioqKioqXG5IRUFERVIgU1RZTEVTXG4qKioqKioqKioqKioqKioqKioqKiovXG4uaGVhZGVyIHtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDQwcHggMCA4MHB4IDA7IH0gfVxuICAuaGVhZGVyICNpbm5lci1oZWFkZXIgLnRvcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLmhlYWRlciAjaW5uZXItaGVhZGVyIC50b3BwZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gICAgICAgIC5oZWFkZXIgI2lubmVyLWhlYWRlciAudG9wcGVyIC5yaWdodGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4OyB9IH1cbiAgICAuaGVhZGVyICNpbm5lci1oZWFkZXIgLnRvcHBlciAucmlnaHRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5oZWFkZXIgI2lubmVyLWhlYWRlciAudG9wcGVyIC5yaWdodGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDI0cHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAuaGVhZGVyICNpbm5lci1oZWFkZXIgLnRvcHBlciAucmlnaHRlciB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogM3B4OyB9IH1cbiAgLmhlYWRlciAjaW5uZXItaGVhZGVyIC5ib3R0b21lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLmhlYWRlciAjaW5uZXItaGVhZGVyIC5ib3R0b21lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9IH1cblxuI2xvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEzMHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbm90aWZ5LWJsb2ctbG9nby5zdmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICNsb2dvIHtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyOyB9IH1cblxuLmhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogNXB4OyB9XG5cbmEge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5uYXYge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIGVuZCAubWVudSBsaSAqL1xuICAvKiBoaWdobGlnaHQgY3VycmVudCBwYWdlICovXG4gIC8qIGVuZCBjdXJyZW50IGhpZ2hsaWdodGVycyAqLyB9XG4gIC5uYXYubmF2LWNhdGVnb3JpZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLm5hdi5uYXYtY2F0ZWdvcmllcyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLm5hdi5uYXYtY2F0ZWdvcmllcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgICAubmF2Lm5hdi1jYXRlZ29yaWVzIGxpIGEge1xuICAgICAgZm9udC1zaXplOiAxLjMzZW07XG4gICAgICBmb250LXdlaWdodDogNTAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5uYXYge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAubmF2IGxpIHtcbiAgICBtYXJnaW46IDAgMCAwIDIwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5uYXYgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLm5hdiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogOXB4O1xuICAgICAgICAgIHJpZ2h0OiAycHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGUuc3ZnKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQ2cHggLTIyM3B4O1xuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgICAgY29udGVudDogXCJcIjsgfSB9XG4gICAgLm5hdiBsaSBzcGFuLFxuICAgIC5uYXYgbGkgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjNDY0YjUwO1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAubmF2IGxpIHNwYW4sXG4gICAgICAgIC5uYXYgbGkgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjVlbTsgfSB9XG4gICAgICAubmF2IGxpIHNwYW46aG92ZXIsIC5uYXYgbGkgc3Bhbjpmb2N1cyxcbiAgICAgIC5uYXYgbGkgYTpob3ZlcixcbiAgICAgIC5uYXYgbGkgYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjZjU1MDI4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAubmF2IGxpIGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLm5hdiBsaSBhIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgICAubmF2IGxpIHVsLnN1Yi1tZW51LFxuICAgIC5uYXYgbGkgdWwuY2hpbGRyZW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGksXG4gICAgICAubmF2IGxpIHVsLmNoaWxkcmVuIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5uYXYgbGkgdWwuc3ViLW1lbnUsXG4gICAgICAgIC5uYXYgbGkgdWwuY2hpbGRyZW4ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIHotaW5kZXg6IDg5OTk7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDNweDtcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNDBweDsgfVxuICAgICAgICAgIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGksXG4gICAgICAgICAgLm5hdiBsaSB1bC5jaGlsZHJlbiBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgICAubmF2IGxpIHVsLnN1Yi1tZW51IGxpIGEsXG4gICAgICAgICAgICAubmF2IGxpIHVsLmNoaWxkcmVuIGxpIGEge1xuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwYWRkaW5nOiA3cHggNXB4O1xuICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgICAgICAgICAubmF2IGxpIHVsLnN1Yi1tZW51IGxpOmxhc3QtY2hpbGQgYSxcbiAgICAgICAgICAgIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGk6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgICAgICAgLm5hdiBsaSB1bC5zdWItbWVudSBsaSB1bCxcbiAgICAgICAgICAgIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgdWwge1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIGxlZnQ6IDEwMCU7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5uYXYgbGkgdWwuc3ViLW1lbnUsXG4gICAgICAgIC5uYXYgbGkgdWwuY2hpbGRyZW4ge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAgIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgYSxcbiAgICAgICAgICAubmF2IGxpIHVsLmNoaWxkcmVuIGxpIGEge1xuICAgICAgICAgICAgd2lkdGg6IDE1MHB4OyB9IH1cbiAgLm5hdiBsaS5jdXJyZW50LW1lbnUtaXRlbSBhLFxuICAubmF2IGxpLmN1cnJlbnRfcGFnZV9pdGVtIGEsXG4gIC5uYXYgbGkuY3VycmVudF9wYWdlX2FuY2VzdG9yIGEge1xuICAgIGNvbG9yOiAjZjU1MDI4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5uYXYge1xuICAgICAgLyogZW5kIC5tZW51IHVsIGxpICovIH1cbiAgICAgIC5uYXYgdWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAubmF2IGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAubmF2IGxpOmhvdmVyID4gdWwge1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLyogZW5kIC5uYXYgKi9cbi5sYW5ndWFnZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgbGVmdDogMTFweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAubGFuZ3VhZ2VzIHtcbiAgICAgIHJpZ2h0OiAxMXB4O1xuICAgICAgbGVmdDogYXV0bzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAubGFuZ3VhZ2VzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bzsgfSB9XG4gIC5sYW5ndWFnZXMgLm5hdiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5sYW5ndWFnZXMgLm5hdiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cbiAgICAubGFuZ3VhZ2VzIC5uYXYgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5sYW5ndWFnZXMgLm5hdiBsaSBzcGFuLFxuICAgICAgLmxhbmd1YWdlcyAubmF2IGxpIGEge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDlweDsgfVxuICAgICAgICAubGFuZ3VhZ2VzIC5uYXYgbGkgc3BhbjphZnRlcixcbiAgICAgICAgLmxhbmd1YWdlcyAubmF2IGxpIGE6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICByaWdodDogLTFweDtcbiAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgY29sb3I6ICM0NjRiNTA7IH1cbiAgICAgIC5sYW5ndWFnZXMgLm5hdiBsaSBzcGFuIHtcbiAgICAgICAgY29sb3I6ICNmNTUwMjg7IH1cbiAgICAgIC5sYW5ndWFnZXMgLm5hdiBsaTpsYXN0LWNoaWxkIHNwYW46YWZ0ZXIsXG4gICAgICAubGFuZ3VhZ2VzIC5uYXYgbGk6bGFzdC1jaGlsZCBhOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjsgfVxuXG5idXR0b24uaGFtYnVyZ2VyIHtcbiAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICBidXR0b24uaGFtYnVyZ2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYm90dG9tZXIgLm5hdiB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuLmJvdHRvbWVyLFxuLm5hdi1tYWluLW1lbnUge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmJvdHRvbWVyLFxuICAgIC5uYXYtbWFpbi1tZW51IHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgfSB9XG5cbm5hdi5sYW5ndWFnZXMge1xuICB0b3A6IC0zMHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgbmF2Lmxhbmd1YWdlcyB7XG4gICAgICB0b3A6IDE0cHg7XG4gICAgICBvcGFjaXR5OiAxOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIG5hdi5sYW5ndWFnZXMge1xuICAgICAgdG9wOiAwOyB9IH1cblxuLm1lbnUtb3BlbiBuYXYubGFuZ3VhZ2VzIHtcbiAgdG9wOiAxNHB4O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZW51LW9wZW4gLmJvdHRvbWVyIHtcbiAgbWF4LWhlaWdodDogMjQwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLm1lbnUtb3BlbiAuYm90dG9tZXIge1xuICAgICAgbWF4LWhlaWdodDogbm9uZTsgfSB9XG5cbi5tZW51LW9wZW4gLm5hdi1tYWluLW1lbnUge1xuICBtYXgtaGVpZ2h0OiAxMjBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAubWVudS1vcGVuIC5uYXYtbWFpbi1tZW51IHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5uYXYge1xuICAgIHBhZGRpbmctcmlnaHQ6IDlweDsgfSB9XG5cbi5sYW5ndWFnZXMge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbkZPT1RFUiBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKi9cbi5mb290ZXIge1xuICBjbGVhcjogYm90aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzczYztcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmZvb3RlciAubG9nby1ib3R0b20ge1xuICAgIGhlaWdodDogNTZweDtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTFweCAtNDI3cHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGUuc3ZnKTtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiA4MHB4OyB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNmU3Mzc4O1xuICAgIHBhZGRpbmc6IDM2cHggMCAzMHB4IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAzNnB4IDAgNDhweCAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLnVzZWZ1bC1saW5rcyB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAuZm9vdGVyIC5mb290ZXItYm90dG9tIC51c2VmdWwtbGlua3MgdWwgbGkge1xuICAgICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgICAgbWFyZ2luOiAwIDEycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLnVzZWZ1bC1saW5rcyB1bCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLnVzZWZ1bC1saW5rcyB1bCBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20gc3BhbixcbiAgICAuZm9vdGVyIC5mb290ZXItYm90dG9tIHAsXG4gICAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuZm9vdGVyIC5mb290ZXItYm90dG9tIHAgYSB7XG4gICAgICBmb250LXNpemU6IDFlbTsgfVxuICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSAubGFuZ3VhZ2VzLWJvdHRvbSB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20gbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4OyB9XG4gICAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20gbGkgYTphZnRlcixcbiAgICAgICAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSAubGFuZ3VhZ2VzLWJvdHRvbSBsaSBzcGFuOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIi1cIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiAtNHB4O1xuICAgICAgICAgIGxlZnQ6IC0xM3B4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBzYW5zLXNlcmlmOyB9XG4gICAgICAgIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxhbmd1YWdlcy1ib3R0b20gbGkgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICNmNTUwMjg7IH1cbiAgICAgICAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSAubGFuZ3VhZ2VzLWJvdHRvbSBsaTpmaXJzdC1jaGlsZCBhOmFmdGVyLFxuICAgICAgICAuZm9vdGVyIC5mb290ZXItYm90dG9tIC5sYW5ndWFnZXMtYm90dG9tIGxpOmZpcnN0LWNoaWxkIHNwYW46YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmZvb3RlciBhcnRpY2xlLmZvb3Rlci1pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDY0cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSAuZm9vdGVyLWl0ZW0taG9sZGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDsgfSB9XG4gICAgLmZvb3RlciBhcnRpY2xlLmZvb3Rlci1pdGVtIC5mb290ZXItaXRlbS1ob2xkZXIgcCB7XG4gICAgICBoeXBoZW5zOiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAuZm9vdGVyIGFydGljbGUuZm9vdGVyLWl0ZW0ge1xuICAgICAgICB3aWR0aDogNTAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSB7XG4gICAgICAgIHdpZHRoOiAyNSU7IH0gfVxuICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSBoMSB7XG4gICAgICBmb250LXNpemU6IDIuNGVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXJnaW46IDI0cHggMCAxNnB4IDA7IH1cbiAgICAuZm9vdGVyIGFydGljbGUuZm9vdGVyLWl0ZW0gcCB7XG4gICAgICBmb250LXNpemU6IDEuNGVtO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjZjU1MDI4O1xuICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuZm9vdGVyIGFydGljbGUuZm9vdGVyLWl0ZW0gYTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01NXB4IC0yMTlweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGUuc3ZnKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmZvb3RlciBhcnRpY2xlLmZvb3Rlci1pdGVtIC5zb2NpYWxzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAuZm9vdGVyIGFydGljbGUuZm9vdGVyLWl0ZW0gLnNvY2lhbHMgYSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOXB4OyB9XG4gICAgICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSAuc29jaWFscyBhOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSAuc29jaWFscyBhIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgIC5mb290ZXIgYXJ0aWNsZS5mb290ZXItaXRlbSBpbWcge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZm9vdGVyIHAge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uYXJ0aWNsZS10aWxlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5hcnRpY2xlLXRpbGUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5hcnRpY2xlLXRpbGUgLmFydGljbGUtdGlsZS10ZWtzdCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5hcnRpY2xlLXRpbGUgLmFydGljbGUtdGlsZS10ZWtzdCBoZWFkZXIge1xuICAgICAgZmxleC1ncm93OiAxOyB9XG4gIC5hcnRpY2xlLXRpbGUgLmZlYXR1cmVkLWltYWdlLWhvbGRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlY2VkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYXJ0aWNsZS10aWxlIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmFydGljbGUtdGlsZSAucG9zdC1jYXRlZ29yaWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogNHB4IDAgMTJweCAwOyB9XG4gICAgLmFydGljbGUtdGlsZSAucG9zdC1jYXRlZ29yaWVzIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWNlZDtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgY29sb3I6ICM0NjRiNTA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7IH1cbiAgICAgIC5hcnRpY2xlLXRpbGUgLnBvc3QtY2F0ZWdvcmllcyBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmZGNjZDtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gIC5hcnRpY2xlLXRpbGU6aG92ZXIgLmZlYXR1cmVkLWltYWdlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpOyB9XG4gIC5hcnRpY2xlLXRpbGU6aG92ZXIgaDEge1xuICAgIGNvbG9yOiAjZjU1MDI4OyB9XG4gIC5hcnRpY2xlLXRpbGU6aG92ZXIgcCBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNTAwOyB9XG4gIC5hcnRpY2xlLXRpbGUgaDEge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogIzQ2NGI1MDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgICBmb250LXNpemU6IDIuNGVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLmFydGljbGUtdGlsZSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy4yZW07IH0gfVxuICAuYXJ0aWNsZS10aWxlIHAge1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGNvbG9yOiAjNDY0YjUwOyB9XG4gICAgLmFydGljbGUtdGlsZSBwIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogI2Y1NTAyODtcbiAgICAgIG1hcmdpbi10b3A6IDNweDsgfVxuXG4uaGlkZS1leGNlcnB0IGgxIHtcbiAgZm9udC1zaXplOiAyLjRlbTsgfVxuXG4uaGlkZS1leGNlcnB0IC5hcnRpY2xlLXRpbGUtZXhjZXJwdCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmhpZGUtZXhjZXJwdCAuYXJ0aWNsZS10aWxlLXJlYWQtbW9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnJlbGF0ZWQtcG9zdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNWY1O1xuICBwYWRkaW5nOiA4MHB4IDA7IH1cbiAgLnJlbGF0ZWQtcG9zdHMgLmFydGljbGUtdGlsZSBoMSB7XG4gICAgZm9udC1zaXplOiAyLjRlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICM0NjRiNTA7IH1cblxuLmVycm9yNDA0ICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBwLFxuLmVycm9yNDA0ICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBsaSB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjNDY0YjUwOyB9XG5cbi5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAtOTBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgaGVhZGVyIGgxIHtcbiAgICBjb2xvcjogIzQ2NGI1MDtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMzBweCAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMy42ZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSBoZWFkZXIgaDEge1xuICAgICAgICBwYWRkaW5nOiA0NXB4IDc1cHggMzBweCA3NXB4O1xuICAgICAgICBmb250LXNpemU6IDQuOGVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSBoZWFkZXIgaDEge1xuICAgICAgICBwYWRkaW5nOiA0NXB4IDE4MHB4IDMwcHggMTgwcHg7IH0gfVxuICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudC1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAgNzVweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwIDE1MHB4OyB9IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBwLFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjNDY0YjUwOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgcCxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgbGkge1xuICAgICAgICAgIGh5cGhlbnM6IG5vbmU7IH0gfVxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgdWwgbGkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCB1bCBsaTphZnRlciB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0YjUwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IHByZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNWVhO1xuICAgICAgY29sb3I6ICM0NjRiNTA7XG4gICAgICBtYXJnaW46IDAgNjBweCAzMHB4IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDEuNmVtO1xuICAgICAgcGFkZGluZzogMThweCAyMXB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgcHJlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMTIwcHggMzBweCAzMHB4OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBwcmUge1xuICAgICAgICAgIG1hcmdpbjogMCAxODBweCAzMHB4IDYwcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBwcmUge1xuICAgICAgICAgIG1hcmdpbjogMCAyNDBweCAzMHB4IDkwcHg7IH0gfVxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGgxLFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGgyLFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGgzLFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGg0LFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGg1LFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGg2LFxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IHAsXG4gICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgdWwsXG4gICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgb2wge1xuICAgICAgcGFkZGluZzogMCAzMHB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgaDEsXG4gICAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGgyLFxuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBoMyxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgaDQsXG4gICAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGg1LFxuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBoNixcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgcCxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgdWwsXG4gICAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IG9sIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDYwcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBoMSxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgaDIsXG4gICAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGgzLFxuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBoNCxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgaDUsXG4gICAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGg2LFxuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBwLFxuICAgICAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCB1bCxcbiAgICAgICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgb2wge1xuICAgICAgICAgIHBhZGRpbmc6IDAgOTBweDsgfSB9XG4gICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgaDIge1xuICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgZm9udC1zaXplOiAyLjFlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgY29sb3I6ICM0NjRiNTA7IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBoMyB7XG4gICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICBmb250LXNpemU6IDEuOGVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBjb2xvcjogIzQ2NGI1MDsgfVxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGZpZ3VyZSB1bCBsaSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGZpZ3VyZSB1bCBsaTphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBmaWd1cmUgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBmaWd1cmUgdWwge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5zaW5nbGUgI2NvbnRlbnQgbWFpbiBhcnRpY2xlIC5lbnRyeS1jb250ZW50IGZpZ3VyZSBmaWdjYXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgY29sb3I6ICM0NjRiNTA7IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBmaWd1cmUsXG4gICAgLnNpbmdsZSAjY29udGVudCBtYWluIGFydGljbGUgLmVudHJ5LWNvbnRlbnQgLmZsdWlkLXdpZHRoLXZpZGVvLXdyYXBwZXIge1xuICAgICAgbWFyZ2luOiA0NXB4IDA7IH1cbiAgICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuZW50cnktY29udGVudCBmaWd1cmUgZmlndXJlIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuYnlsaW5lLFxuICAuc2luZ2xlICNjb250ZW50IG1haW4gYXJ0aWNsZSAuYXJ0aWNsZS1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNpbmdsZSAuaGVhZGVyIHtcbiAgcGFkZGluZzogMjBweCAwIDIwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnNpbmdsZSAuaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDQwcHggMCAyMHB4IDA7IH0gfVxuXG4uc2luZ2xlIC5zaGFyaW5nLm1vYmlsZSB7XG4gIHBhZGRpbmc6IDAgMzBweDsgfVxuICAuc2luZ2xlIC5zaGFyaW5nLm1vYmlsZSAuYXV0aG9yIC5yZWFkaW5nLXRpbWUtaG9sZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5zaW5nbGUgLnNoYXJpbmcubW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3Age1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHdpZHRoOiAxMzVweDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYWRkdG9hbnlfbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi10b3A6IDIxcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gICAgICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYWRkdG9hbnlfbGlzdCBhIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5zaGFyaW5nLXdyYXAsXG4gICAgICAuc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3AgLmF1dGhvciB7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5hZGR0b2FueV9saXN0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi10b3A6IDIxcHg7IH1cbiAgICAuc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3AgLmFkZHRvYW55X2xpc3QgYSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYWRkdG9hbnlfbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAgICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5hZGR0b2FueV9saXN0IGEge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYXV0aG9yIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDYwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA2MHB4OyB9XG4gICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5hdXRob3IgLmF1dGhvci1pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5hdXRob3IgLmF1dGhvci1pbWFnZSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH0gfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYXV0aG9yIC5hdXRob3ItbmFtZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLnNpbmdsZSAuc2hhcmluZy5kZXNrdG9wIC5hdXRob3IgLmF1dGhvci1uYW1lIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYXV0aG9yIC5yZWFkaW5nLXRpbWUtaG9sZGVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgICAuc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3AgLmF1dGhvciAucmVhZGluZy10aW1lLWhvbGRlciB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5zaW5nbGUgLnNoYXJpbmcuZGVza3RvcCAuYXV0aG9yIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHdpZHRoOiAxMzVweDsgfVxuICAgICAgICAuc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3AgLmF1dGhvciAucmVhZGluZy10aW1lLWhvbGRlciB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogM3B4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuc2luZ2xlIC5zaGFyaW5nLmRlc2t0b3AgLmF1dGhvciB7XG4gICAgICAgIHdpZHRoOiAxMjBweDsgfSB9XG5cbi5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnNpbmdsZSAuc2hhcmluZyAuYWRkdG9hbnlfbGlzdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3Qge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9IH1cbiAgLnNpbmdsZSAuc2hhcmluZyAuYWRkdG9hbnlfbGlzdCBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDsgfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3QgYSBzcGFuLFxuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3QgYSBzdmcge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3QgYTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3QgYS5hMmFfYnV0dG9uX2ZhY2Vib29rIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2hhcmluZy9mYWNlYm9vay5zdmcpOyB9XG4gICAgLnNpbmdsZSAuc2hhcmluZyAuYWRkdG9hbnlfbGlzdCBhLmEyYV9idXR0b25fdHdpdHRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NoYXJpbmcvdHdpdHRlci5zdmcpOyB9XG4gICAgLnNpbmdsZSAuc2hhcmluZyAuYWRkdG9hbnlfbGlzdCBhLmEyYV9idXR0b25fbGlua2VkaW4ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zaGFyaW5nL2xpbmtlZGluLnN2Zyk7IH1cbiAgICAuc2luZ2xlIC5zaGFyaW5nIC5hZGR0b2FueV9saXN0IGEuYTJhX2J1dHRvbl9lbWFpbCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NoYXJpbmcvZW1haWwuc3ZnKTsgfVxuICAgIC5zaW5nbGUgLnNoYXJpbmcgLmFkZHRvYW55X2xpc3QgYS5hMmFfYnV0dG9uX2NvcHlfbGluayB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NoYXJpbmcvaHlwZXJsaW5rLnN2Zyk7IH1cbiAgICAuc2luZ2xlIC5zaGFyaW5nIC5hZGR0b2FueV9saXN0IGEuYWRkdG9hbnlfc2hhcmVfc2F2ZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zaW5nbGUgLnNoYXJpbmcgLmF1dGhvciB7XG4gIHdpZHRoOiAxMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5zaW5nbGUgLnNoYXJpbmcgLmF1dGhvciAuYXV0aG9yLWltYWdlIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlY2VkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbiAgLnNpbmdsZSAuc2hhcmluZyAuYXV0aG9yIC5hdXRob3ItbmFtZSB7XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAjMjUyNTI2O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiA2cHggMCAwIDA7IH1cbiAgLnNpbmdsZSAuc2hhcmluZyAuYXV0aG9yIC5yZWFkaW5nLXRpbWUtaG9sZGVyIHtcbiAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICM4MDgyODU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDNweCAwIDZweCAwOyB9XG4gICAgLnNpbmdsZSAuc2hhcmluZyAuYXV0aG9yIC5yZWFkaW5nLXRpbWUtaG9sZGVyOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NoYXJpbmcvcmVhZGluZy10aW1lLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDFweDsgfVxuXG4uc2luZ2xlIC5zaGFyaW5nICsgLnVrLXN0aWNreS1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYmlnLWZlYXR1cmVkLWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDgwMHB4O1xuICBoZWlnaHQ6IDMyMHB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjhweCAtIDE1MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWNlZDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5SRVRJTkEgKDJ4IFJFU09MVVRJT04gREVWSUNFUylcblRoaXMgYXBwbGllcyB0byB0aGUgcmV0aW5hIGlQaG9uZSAoNHMpIGFuZCBpUGFkICgyLDMpIGFsb25nIHdpdGhcbm90aGVyIGRpc3BsYXlzIHdpdGggYSAyeCByZXNvbHV0aW9uLiBZb3UgY2FuIGFsc28gY3JlYXRlIGEgbWVkaWFcbnF1ZXJ5IGZvciByZXRpbmEgQU5EIGEgY2VydGFpbiBzaXplIGlmIHlvdSB3YW50LiBHbyBOdXRzLlxuKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOiBcbkF1dGhvcjogXG5cblN0eWxlc2hlZXQ6IFJldGluYSBTY3JlZW5zICYgRGV2aWNlcyBTdHlsZXNoZWV0XG5cbldoZW4gaGFuZGxpbmcgcmV0aW5hIHNjcmVlbnMgeW91IG5lZWQgdG8gbWFrZSBhZGp1c3RtZW50cywgZXNwZWNpYWxseVxuaWYgeW91J3JlIG5vdCB1c2luZyBmb250IGljb25zLiBIZXJlIHlvdSBjYW4gYWRkIHRoZW0gaW4gb25lIG5lYXRcbnBsYWNlLlxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIC8qIFxuXG5FWEFNUExFIFxuTGV0J3Mgc2F5IHlvdSBoYXZlIGFuIGltYWdlIGFuZCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgaXQgbG9va3Mgb2tcbm9uIHJldGluYSBzY3JlZW5zLiBMZXQncyBzYXkgd2UgaGF2ZSBhbiBpY29uIHdoaWNoIGRpbWVuc2lvbiBhcmVcbjI0cHggeCAyNHB4LiBJbiB5b3VyIHJlZ3VsYXIgc3R5bGVzaGVldHMsIGl0IHdvdWxkIGxvb2sgc29tZXRoaW5nXG5saWtlIHRoaXM6XG5cbi5pY29uIHtcblx0d2lkdGg6IDI0cHg7XG5cdGhlaWdodDogMjRweDtcblx0YmFja2dyb3VuZDogdXJsKGltZy90ZXN0LnBuZykgbm8tcmVwZWF0O1xufVxuXG5Gb3IgcmV0aW5hIHNjcmVlbnMsIHdlIGhhdmUgdG8gbWFrZSBzb21lIGFkanVzdG1lbnRzLCBzbyB0aGF0IGltYWdlXG5kb2Vzbid0IGxvb2sgYmx1cnJ5LiBTbywgdGFraW5nIGludG8gYWNjb3VudCB0aGUgaW1hZ2UgYWJvdmUgYW5kIHRoZVxuZGltZW5zaW9ucywgdGhpcyBpcyB3aGF0IHdlIHdvdWxkIHB1dCBpbiBvdXIgcmV0aW5hIHN0eWxlc2hlZXQ6XG5cbi5pY29uIHtcblx0YmFja2dyb3VuZDogdXJsKGltZy90ZXN0QDJ4LnBuZykgbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcbn1cblxuU28sIHlvdSB3b3VsZCBjcmVhdGUgdGhlIHNhbWUgaWNvbiwgYnV0IGF0IGRvdWJsZSB0aGUgcmVzb2x1dGlvbiwgbWVhbmluZyBcbml0IHdvdWxkIGJlIDQ4cHggeCA0OHB4LiBZb3UnZCBuYW1lIGl0IHRoZSBzYW1lLCBidXQgd2l0aCBhIEAyeCBhdCB0aGUgZW5kXG4odGhpcyBpcyBwcmV0dHkgc3RhbmRhcmQgcHJhY3RpY2UpLiBTZXQgdGhlIGJhY2tncm91bmQgaW1hZ2Ugc28gaXQgbWF0Y2hlc1xudGhlIG9yaWdpbmFsIGRpbWVuc2lvbnMgYW5kIHlvdSBhcmUgZ29vZCB0byBnby4gXG5cbiovIH1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuUFJJTlQgU1RZTEVTSEVFVFxuRmVlbCBmcmVlIHRvIGN1c3RvbWl6ZSB0aGlzLiBSZW1lbWJlciB0byBhZGQgdGhpbmdzIHRoYXQgd29uJ3QgbWFrZVxuc2Vuc2UgdG8gcHJpbnQgYXQgdGhlIGJvdHRvbS4gVGhpbmdzIGxpa2UgbmF2LCBhZHMsIGFuZCBmb3JtcyBzaG91bGRcbmJlIHNldCB0byBkaXNwbGF5IG5vbmUuXG4qKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgcHJpbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6XG5BdXRob3I6XG5cblN0eWxlc2hlZXQ6IFByaW50IFN0eWxlc2hlZXRcblxuVGhpcyBpcyB0aGUgcHJpbnQgc3R5bGVzaGVldC4gVGhlcmUncyBwcm9iYWJseSBub3QgYSBsb3Rcbm9mIHJlYXNvbnMgdG8gZWRpdCB0aGlzIHN0eWxlc2hlZXQuIElmIHlvdSB3YW50IHRvXG50aG91Z2gsIGdvIGZvciBpdC5cblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZpbHRlcjogbm9uZSAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICM0NDQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIGE6YWZ0ZXIsIGE6dmlzaXRlZDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAgIGEgYWJiclt0aXRsZV06YWZ0ZXIsIGE6dmlzaXRlZCBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAuc2lkZWJhcixcbiAgLnBhZ2UtbmF2aWdhdGlvbixcbiAgLndwLXByZXYtbmV4dCxcbiAgLnJlc3BvbmQtZm9ybSxcbiAgbmF2IHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGUuY3NzLm1hcCAqLyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXX0= */