/* ## Resets
---------------------------------------------*/
*:focus,
a:focus {
  outline: none; }

/* ## Spacers
---------------------------------------------*/
.spacer-xs {
  margin-bottom: 5px; }

.spacer-sm {
  margin-bottom: 15px; }

.spacer-md {
  margin-bottom: 30px; }

.spacer-lg {
  margin-bottom: 60px; }

.spacer-xl {
  margin-bottom: 90px; }

.spacer-hero {
  margin-bottom: 110px; }

/* ## Fillers
---------------------------------------------*/
.filler-xs {
  padding-top: 5px;
  padding-bottom: 5px; }

.filler-sm {
  padding-top: 15px;
  padding-bottom: 15px; }

.filler-md {
  padding-top: 30px;
  padding-bottom: 30px; }

.filler-lg {
  padding-top: 60px;
  padding-bottom: 60px; }

.filler-xl {
  padding-top: 90px;
  padding-bottom: 90px; }

.filler-hero {
  padding-top: 120px;
  padding-bottom: 120px; }

/* Theme */
.filler-dark {
  background-color: #181926;
  /* Rich Black */ }

.filler-warm {
  background-color: #e8ceb1;
  /* Warm Beige */ }

/* # tk_defaults
------------------------------------------------------------------------------------------------- */
body {
  word-wrap: break-word; }

/* Alignment */
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em; }

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em; }

.aligncenter {
  display: block;
  clear: both;
  margin: 0 auto; }

/* Images and wp-captions should always fit and be responsive */
img {
  display: inline-block;
  max-width: 100%;
  height: auto; }

img[class*='wp-image-'] {
  margin-top: 10px;
  margin-bottom: 10px; }

.wp-caption {
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0 10px;
  border: 1px solid #CCC;
  -moz-border-radius: 4px;
  border-radius: 4px; }

.wp-caption.aligncenter {
  margin-bottom: 10px; }

.wp-caption img[class*='wp-image-'] {
  display: block; }

.wp-caption .wp-caption-text {
  margin-top: 10px;
  text-align: center; }

/* WP Gallery */
.gallery {
  margin-bottom: 1.5em; }

.gallery a img {
  max-width: 90%;
  height: auto;
  border: none; }

.gallery dd {
  margin: 0; }

.gallery-caption {
  display: block; }

/* Make sure embeds and iframes fit their containers */
embed,
iframe,
object {
  max-width: 100%; }

/* Text meant only for screen readers */
.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px); }

.screen-reader-text:hover,
.screen-reader-text:active,
.screen-reader-text:focus {
  font-size: 14px;
  font-weight: bold;
  line-height: normal;
  z-index: 100000;
  /* Above WP toolbar */
  top: 5px;
  left: 5px;
  display: block;
  clip: auto !important;
  width: auto;
  height: auto;
  padding: 15px 23px 14px;
  text-decoration: none;
  color: #21759B;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background-color: #F1F1F1;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  -moz-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); }

/* Content */
.main-content-inner {
  padding-bottom: 1.5em; }

.hentry {
  margin: 0 0 1.5em; }

.sticky {
  display: block; }

.bypostauthor {
  display: block; }

/* Clearing */
.clear {
  clear: both; }

/* Navigation */
.dropdown-submenu {
  position: relative; }

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  -moz-border-radius: 0 6px 6px 6px;
  border-radius: 0 6px 6px 6px; }

.dropdown-submenu:active > .dropdown-menu,
.dropdown-submenu:hover > .dropdown-menu {
  display: block; }

.dropdown-submenu > a:after {
  display: block;
  float: right;
  width: 0;
  height: 0;
  margin-top: 5px;
  margin-right: -10px;
  content: ' ';
  border-width: 5px 0 5px 5px;
  border-style: solid;
  border-color: transparent;
  border-left-color: #CCC; }

.dropdown-submenu:active > a:after {
  border-left-color: #FFF; }

.dropdown-submenu.pull-left {
  float: none; }

.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px; }

/* Here some needed widget styles
 * Most widgets are adapted in the file bootstrap-wp.js - and REALLY easy to modify! ;) */
.widget {
  margin-bottom: 2em; }

.widget_nav_menu ul.sub-menu li,
.widget_pages ul.children li {
  padding-left: 15px; }

/* Hiding the search widget's button in widgets. thats just too old-skool. :) but if you want it back, just delete the next line.
 * Note: you can change the whole appearance of the search_form() function in our searchform.php */
.widget_search .search-form input[type='submit'] {
  display: none; }

/* Make sure select elements fit in widgets */
.widget select {
  max-width: 100%; }

/* Nested comments? They are threaded and nested already, you just need to add your own styling to finalize!
 * For example with some margin, like the line below ;) Delete, modify, change classes in HTML if you desire another style */
.comment .children {
  margin-left: 1.5em; }

/**
* Some WP Theme Repository requirements
*/
.entry-meta {
  clear: both; }

/*
 == Quick CSS styling tips ==

 You can start off in a rough direction with some minimal styles.
 See below for some tips. ;)


 == Want to have the whole site wrapped? ==

 Just fill the .container class with some background color to have a the whole site "wrapped".
 This works so easy because every main part is wrapped only once into a container class by bootstrap.
 Try out by decommenting the next line and go from there.

 .container { background: #f9f9f9; border-right: 1px solid #eee; border-left: 1px solid #eee; }


 == Want to wrap just the content and sidebar in Bootstrap style? ==

 That one is a great example to show that some things are much cleaner and easier to do via just adding some HTML classes.
 In this case, we will add just one CSS class "panel", look for example at the beginning in content.php!


 == Infinite Scrolling by Jetpack ==
 You can enable this cool feature by simply decommenting the lines below and make sure you use the same classes on the right place in your html..

/* Globally hidden elements when Infinite Scroll is supported and in use.
 * Older / Newer Posts Navigation (the pagination, must always be hidden), Theme Footer only when set to scrolling.. */
/*
.infinite-scroll .page-links,
.infinite-scroll.neverending .site-footer {
    display: none;
}
*/
/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before */
/*
.infinity-end.neverending .site-footer {
    display: block;
}
*/
/* Hey, if you don't need my comments anymore, just delete me! :)  */
/* styles for _tk_pagination und _tk_link_pages */
nav form.tk-page-nav,
nav .input-group,
nav .input-group-btn,
nav .form-control {
  display: inline; }

/* ## Defaults
---------------------------------------------*/
html {
  font-family: Arial, sans-serif;
  font-size: 62.5%;
  overflow-x: hidden; }

body {
  font-family: inherit;
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.625;
  margin: 0;
  padding: 0; }

/* # General
---------------------------------------------------------------------------------------------------- */
/* ## Scaffold
---------------------------------------------*/
a {
  font-weight: 400;
  color: #181926; }

a:hover, a:focus {
  color: inherit;
  text-decoration: none; }

/* ## Animete.css classes
---------------------------------------------*/
.anim_element {
  opacity: 0 !important; }

.fullOpacity {
  opacity: 1 !important; }

/* ## Defaults
--------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  font-family: inherit; }

p {
  line-height: 1.528;
  margin-bottom: 18px; }

h1 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.2;
  margin-bottom: 18px; }

/* ## Wp Typographic Classes
--------------------------------------------- */
.site-title {
  margin-top: 10px;
  margin-bottom: 40px;
  font-size: 21px;
  line-height: 40px;
  letter-spacing: 3px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase; }

@media screen and (min-width: 768px) {
  .site-title {
    margin-top: 50px;
    margin-bottom: 90px;
    font-size: 28px;
    line-height: 40px; } }

h2.section-title {
  margin-top: 0;
  margin-bottom: 35px;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 2px; }

h2.section-title span {
  display: inline-block;
  width: 100%;
  /* Make Two lines on Mobile Phone */ }

h2.section-title span:nth-of-type(2) {
  display: none;
  /* Remove dash between lines */ }

@media screen and (min-width: 768px) {
  h2.section-title {
    font-size: 20px; }
  h2.section-title span {
    width: auto;
    /* Make title one single line */ }
  h2.section-title span:nth-of-type(2) {
    display: inline-block;
    /* Reveal dash between lines */ } }

.section-about p:nth-of-type(1),
.section-contact p:nth-of-type(1) {
  text-align: left; }

/* ## Above The Fold
--------------------------------------------- */
.bg-img {
  height: 260px;
  background-color: #181926;
  /* Rich Black */
  background-image: url("../includes/img/site-intro-04.jpg");
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-position: 90% 50%;
  -moz-background-size: cover;
  background-size: cover;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

@media screen and (min-width: 767px) {
  .bg-img {
    height: 480px; } }

@media screen and (min-width: 1120px) {
  .bg-img {
    height: 640px; } }

.cover {
  display: table;
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 260px;
  background: #101010; }

@media screen and (min-width: 767px) {
  .cover {
    height: 390px; } }

@media screen and (min-width: 992px) {
  .cover {
    height: 480px; } }

@media screen and (min-width: 1120px) {
  .cover {
    height: 640px; } }

.cover .background {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0.85;
  background-image: url("./includes/img/site-intro-04.jpg");
  background-position: 90% 50%;
  -moz-background-size: cover;
  background-size: cover;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

/* ## Container
--------------------------------------------- */
/*
    We have to make a tinnier container
    because our featured image aren't that
    big and the whole animation of wells
    are bleeding all over!!!
*/
.container {
  width: 90%;
  max-width: 940px;
  padding-bottom: 0; }

.container-fluid {
  /* Added padding so we dont get horizontal scrolling on ipad */
  margin-right: auto;
  margin-left: auto;
  width: 100%; }

/* .row with left and right margins at -30px for full width */
.row-full {
  margin-left: 0;
  margin-right: 0; }

/* Alter Grid function for Mobile Screens */
.section-portfolio.container {
  text-align: center; }

.section-portfolio.container [class^="col"] {
  display: inline-block;
  float: none; }

/* Revert Grid to normal function on ipad and bigger */
@media screen and (min-width: 767px) {
  .section-portfolio.container {
    text-align: left; }
  .section-portfolio.container [class^="col"] {
    float: left; } }

/* ## Buttons
--------------------------------------------- */
[class*="btn-"] {
  /* Typography */
  line-height: 1;
  /* fx */
  -webkit-transition: all .25s ease-in-out;
  -o-transition: all .25s ease-in-out;
  -moz-transition: all .25s ease-in-out;
  transition: all .25s ease-in-out;
  border: 1px solid;
  /* Theme */
  -moz-border-radius: 0;
  border-radius: 0; }

.btn-lg {
  font-size: 16px;
  /* MOD */
  width: 8em; }

.btn-xl {
  font-size: 34px;
  /* MOD */
  padding: 12px 20px; }

.btn-full {
  padding: 20px 24px;
  font-size: 16px;
  width: 100%; }

.btn-light {
  color: #181926;
  border-color: transparent;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.5);
  -moz-border-radius: 50%;
  border-radius: 50%; }

.btn-light:hover, .btn-light:focus {
  background-color: #fff; }

.btn-dark {
  /* EXTEND */
  color: #FFF;
  border-color: #181926;
  /* Rich Black */
  background-color: #181926;
  /* Rich Black */ }

.btn-dark:hover,
.btn-dark:focus {
  /*border-color: transparent;*/
  color: #181926;
  /* Rich Black */
  background-color: #fff; }

.btn-fx {
  /* EXTEND */
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

.btn-fx:hover,
.btn-fx:focus {
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25); }

/* # Navigation
---------------------------------------------------------------------------------------------------- */
.site-header {
  position: relative; }

.site-navigation {
  height: auto;
  padding-top: 15px;
  padding-bottom: 10px;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.7);
  z-index: 1030; }

@media screen and (min-width: 767px) {
  .site-navigation {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px; } }

/* Main navigation wrapper */
.navbar {
  margin-bottom: 0; }

/* Theme */
.navbar-default {
  max-width: 940px;
  margin: 0 auto;
  border-color: transparent;
  -moz-border-radius: none;
  border-radius: none;
  background-color: transparent; }

/* Branding Wrapper */
.navbar-brand {
  /* make it behave like text */
  display: block;
  max-width: 215px;
  height: auto;
  padding: 0; }

@media screen and (min-width: 767px) {
  .navbar-brand {
    max-width: 320px; } }

/* Navigation Wrapper */
.navbar-collapse {
  padding: 0;
  background-color: transparent;
  text-align: center; }

@media screen and (min-width: 767px) {
  .navbar-collapse {
    text-align: right; } }

.nav.navbar-nav {
  /* make it behave like text */
  display: inline-block;
  float: none;
  padding-top: 18px; }

.menu > a,
.navbar-default .navbar-nav > li > a {
  display: inline-block;
  padding: 10px;
  border: 1px solid;
  border-color: transparent;
  -moz-border-radius: 0;
  border-radius: 0;
  /* Rich Black */
  color: #181926;
  background-color: transparent;
  background-image: none;
  font-size: 10px;
  font-size: 1rem;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.25s ease-in-out;
  -o-transition: all 0.25s ease-in-out;
  -moz-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
  -ms-touch-action: manipulation;
  touch-action: manipulation; }

.navbar-default .menu > a:hover,
.navbar-default .menu > a:focus,
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:focus,
.navbar-default .navbar-nav > .active > a:hover {
  /* Rich Black */
  color: #181926;
  background-color: transparent; }

/* This item forms the extra animated unerline below menu iter */
.menu > a:after,
.navbar-default .navbar-nav > li > a:after {
  position: absolute;
  bottom: -2px;
  /* Placed at center */
  left: 50%;
  width: 0;
  height: 1px;
  /* Rich Black */
  background-color: #181926;
  content: " ";
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }

.menu > a:hover:after,
.navbar-default .navbar-nav > li > a:hover:after {
  /* Run from center to left */
  left: 0;
  /* Run from center to right */
  width: 100%; }

@media screen and (max-width: 767px) {
  .nav.navbar-nav {
    background-color: #fff; }
  .navbar-default .navbar-nav > li > a {
    background-color: #fff; } }

/* Making the navigation fixed when scrolled down
   A css class in combination with waypoints */
@media screen and (min-width: 767px) {
  .fixed-nav {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #fff;
    background-color: rgba(255, 255, 255, 0.9); } }

/* ## Hamburer Button
--------------------------------------------- */
.navbar-toggle {
  float: right;
  margin: 0;
  border: none;
  -moz-border-radius: 0;
  border-radius: 0;
  padding: 13px 14px; }

.navbar-default .navbar-toggle {
  border-color: transparent; }

.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: transparent; }

.navbar-default .navbar-toggle .icon-bar {
  width: 36px;
  height: 3px;
  background-color: #181926;
  /* Rich Black */ }

.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 6px;
  /* space between bars */ }

.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: transparent; }

/* ## Sections
--------------------------------------------- */
.hentry {
  margin: 0; }

.section-title {
  padding: 10px;
  border-color: #181926;
  border-top: 1px solid;
  border-bottom: 1px solid;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase; }

.section-about {
  padding-top: 80px;
  padding-bottom: 80px;
  font-size: 14px;
  text-align: center;
  background-color: #e8ceb1; }

.section-about .about-inner {
  position: relative; }

@media screen and (min-width: 767px) {
  .section-about .about-inner {
    padding-left: 240px; } }

.section-about .about-inner img {
  margin: 0 auto;
  width: 210px; }

@media screen and (min-width: 767px) {
  .section-about .about-inner img {
    display: block;
    float: left;
    margin-left: -240px;
    width: 210px; } }

.section-about .about-inner p, .section-about .about-inner a {
  text-align: center; }

@media screen and (min-width: 767px) {
  .section-about .about-inner p, .section-about .about-inner a {
    text-align: left; } }

@media screen and (min-width: 767px) {
  .section-about .about-inner a {
    position: absolute;
    bottom: 0; } }

.section-contact {
  font-size: 14px; }

.section-contact img.size-full {
  width: 140px;
  margin-bottom: 40px; }

@media screen and (min-width: 768px) {
  .section-contact p:nth-of-type(2) {
    float: left;
    width: 20%; }
  .section-contact img.size-full {
    margin-top: 0; } }

/* ## Front Page Layout
--------------------------------------------- */
[class^="section"] {
  margin-top: 100px; }

article.portfolio {
  margin-bottom: 30px; }

article.portfolio p[class*="well-front-page"] {
  margin-top: 15px; }

.entry-content > p + * {
  margin-top: 20px; }

/* ## Wells
--------------------------------------------- */
.well {
  margin-bottom: 0;
  border: none;
  -moz-border-radius: 0;
  border-radius: 0;
  background-color: transparent;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

.well blockquote {
  border-color: transparent; }

.well-lg {
  padding: 10px;
  -moz-border-radius: 0;
  border-radius: 0;
  border-top: 1px solid;
  border-bottom: 1px solid;
  border-color: #181926; }

.well-sm {
  -moz-border-radius: 0;
  border-radius: 0; }

/* extends bootstrap well option class */
.well-front-page {
  color: #181926;
  text-transform: uppercase; }

/* well revealed when hovered over portfolio a */
p.well {
  font-size: 10px;
  font-size: 1rem; }

/* ## Portfolio
--------------------------------------------- */
/* We target .portfolio a after body.home because we want the default behaviour in body.single */
.home .portfolio a {
  position: relative;
  /* .well is postioned Absolute */
  display: block;
  /* .well should operate behind mask */
  overflow: hidden;
  /* transition-md */
  -webkit-transition: all .5s ease-out;
  -o-transition: all .5s ease-out;
  -moz-transition: all .5s ease-out;
  transition: all .5s ease-out;
  /* fx-scaling init */
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1); }

.home .portfolio a:hover,
.home .portfolio a:focus {
  /* bring to front */
  /* fx-scaling exec */
  /* fx-subtle box shadow */ }

.home .portfolio a:hover p,
.home .portfolio a:focus p {
  background-color: #e6e6e6; }

/* Portfolio images are in color, on hover they become B&W */
.portfolio a img {
  -webkit-filter: none;
  filter: none; }

.portfolio a:hover img {
  filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale");
  /* Firefox 3.5+ */
  filter: gray;
  /* IE6-9 */
  -webkit-filter: grayscale(100%);
  /* Chrome 19+ & Safari 6+ */ }

/* ## Module About Me
--------------------------------------------- */
.about-inner > * + * {
  margin-top: 35px; }

@media screen and (min-width: 767px) {
  .about-inner > * + * {
    margin-top: 0; } }

/* ## Form Elements
--------------------------------------------- */
.form-control {
  background-color: #f5f0ef;
  /* Purple Gray */
  padding: 10px;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 2px;
  line-height: 20px;
  height: 40px;
  -moz-border-radius: 0;
  border-radius: 0;
  border: none; }

textarea.form-control {
  resize: none;
  height: 140px;
  padding: 10px; }

/* ## Awards
--------------------------------------------- */
.awards-heading {
  font-size: 24px;
  padding: 10px 0;
  margin: 24px 0 12px;
  color: #181926;
  border-top: 1px solid;
  border-bottom: 1px solid; }

ul.awards {
  margin: 0;
  padding: 0;
  list-style: none;
  color: #181926;
  border-bottom: 1px solid; }

/* ## Taxonomy
--------------------------------------------- */
.tax-type__list {
  margin: 0;
  padding: 0;
  list-style: none;
  color: #181926;
  border-top: 1px solid;
  border-bottom: 1px solid; }

.tax-type__item a {
  display: inline-block;
  padding: 10px 0; }

/* ## Site Footer
--------------------------------------------- */
.site-footer {
  color: #fff;
  background-color: #181926;
  /* Rich Black */ }

.site-info {
  margin-bottom: 0;
  padding-top: 35px;
  padding-bottom: 35px;
  text-align: center; }

.site-footer span {
  display: inline-block;
  width: 100%; }

@media screen and (min-width: 767px) {
  .site-footer span {
    width: auto; } }

/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/* 
    Created on : Nov 20, 2017, 3:59:12 PM
    Author     : simple-user
*/
/* ## Cookie Notice (plugin)
--------------------------------------------- */
#cookie-notice {
  z-index: 100000;
  font-size: 9px;
  line-height: 20px; }

.cookie-notice-container {
  padding: 19px; }

#cookie-notice .button.wp-default {
  display: inline-block;
  -moz-box-sizing: border-box;
  padding: 2px 12px;
  border-width: 1px;
  border-style: solid;
  border-color: #bbb;
  -moz-border-radius: 0;
  border-radius: 0;
  outline: none;
  color: #fff;
  background: -webkit-gradient(linear, left top, left bottom, from(#181926), to(#181926)) repeat scroll 0 0 #181926;
  background: -webkit-linear-gradient(top, #181926, #181926) repeat scroll 0 0 #181926;
  background: -moz-linear-gradient(top, #181926, #181926) repeat scroll 0 0 #181926;
  background: linear-gradient(to bottom, #181926, #181926) repeat scroll 0 0 #181926;
  text-shadow: 0 1px 0 #fff;
  font-family: sans-serif;
  font-size: 12px;
  font-style: normal;
  line-height: 18px;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer; }

/* ## Go to Top
--------------------------------------------- */
.go-to-top {
  display: none;
  position: fixed;
  z-index: 200;
  bottom: 120px;
  left: 89%;
  /* POSITIONAL CLASS */
  visibility: hidden;
  cursor: pointer;
  /* fx */
  -webkit-transition: visibility 0s, opacity .25s ease-in-out;
  -webkit-transition: all .25s ease-in-out;
  -o-transition: all .25s ease-in-out;
  -moz-transition: all .25s ease-in-out;
  transition: all .25s ease-in-out;
  opacity: 0;
  z-index: 9999; }

.go-to-top.reveal {
  /* JS CLASS CONTROLLER */
  visibility: visible;
  opacity: 1; }

@media screen and (min-width: 767px) {
  .go-to-top {
    display: block; } }

/* ## Specific Styles
--------------------------------------------- */
/* Increasing margin for portfolio single pictures */
.single-portfolio p > img {
  margin-bottom: 30px; }

.single .main-content {
  margin-top: 100px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl91X19yZXNldHMuc2NzcyIsIl91X19zcGFjZXJzLnNjc3MiLCJfdV9fZmlsbGVycy5zY3NzIiwiX3RfX3RrLWRlZmF1bHQuc2NzcyIsIl91X19kZWZhdWx0cy5zY3NzIiwiX2xfX3R5cG9ncmFwaHkuc2NzcyIsIl9sX19hYm92ZS10aGUtZm9sZC5zY3NzIiwiX2xfX2NvbnRhaW5lci5zY3NzIiwiX21fX2J1dHRvbnMuc2NzcyIsImV4dHJhX3N0eWxlcy5jc3MiLCJfbV9fbmF2LnNjc3MiLCJfbV9faGFtYnVyZ2VyLWJ0bi5zY3NzIiwiX21fX3NlY3Rpb25zLnNjc3MiLCJfbV9fZnJvbnQtcGFnZS5zY3NzIiwiX21fX3dlbGxzLnNjc3MiLCJfbV9fcG9ydGZvbGlvLnNjc3MiLCJfbV9fYWJvdXQtbWUuc2NzcyIsIl9tX19mb3JtLWZpZWxkcy5zY3NzIiwiX21fX2F3YXJkcy5zY3NzIiwiX21fX3RheG9ub215LnNjc3MiLCJfbF9fZm9vdGVyLnNjc3MiLCJfY29va2llX25vdGljZS5zY3NzIiwiX21fX2dvLXRvLXRvcC5zY3NzIiwiX215X2V4dHJhX3N0eWxpbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTsrQ0FDK0M7QUFDL0M7O0VBRUUsY0FBYyxFQUFHOztBQ0puQjsrQ0FDK0M7QUFDL0M7RUFDRSxtQkFBbUIsRUFBRzs7QUFFeEI7RUFDRSxvQkFBb0IsRUFBRzs7QUFFekI7RUFDRSxvQkFBb0IsRUFBRzs7QUFFekI7RUFDRSxvQkFBb0IsRUFBRzs7QUFFekI7RUFDRSxvQkFBb0IsRUFBRzs7QUFFekI7RUFDRSxxQkFBcUIsRUFBRzs7QUNsQjFCOytDQUMrQztBQUMvQztFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFBRzs7QUFFekI7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCLEVBQUc7O0FBRTFCO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQixFQUFHOztBQUUxQjtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUIsRUFBRzs7QUFFMUI7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ekIsb0JBQW9CO0VBQ3BCLFdBQVcsRUFBRzs7QUFFaEI7RUFDRTtJQUNFLGVBQWUsRUFBRyxFQUFBOztBQzNCdEI7Z0RBQ2dEO0FBQ2hELHFEQUFxRDtBQUNyRDtFQUNFLG9CQUFvQixFQUFHOztBQUV6QjtFQUNFLGtCQUFrQixFQUFHIiwiZmlsZSI6ImV4dHJhX3N0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAjIyBSZXNldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4qOmZvY3VzLFxuYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH0iLCIvKiAjIyBTcGFjZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnNwYWNlci14cyB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uc3BhY2VyLXNtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4uc3BhY2VyLW1kIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc3BhY2VyLWxnIHtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuXG4uc3BhY2VyLXhsIHtcbiAgbWFyZ2luLWJvdHRvbTogOTBweDsgfVxuXG4uc3BhY2VyLWhlcm8ge1xuICBtYXJnaW4tYm90dG9tOiAxMTBweDsgfSIsIi8qICMjIEZpbGxlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZmlsbGVyLXhzIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDsgfVxuXG4uZmlsbGVyLXNtIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG5cbi5maWxsZXItbWQge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7IH1cblxuLmZpbGxlci1sZyB7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfVxuXG4uZmlsbGVyLXhsIHtcbiAgcGFkZGluZy10b3A6IDkwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9XG5cbi5maWxsZXItaGVybyB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEyMHB4OyB9XG5cbi8qIFRoZW1lICovXG4uZmlsbGVyLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovIH1cblxuLmZpbGxlci13YXJtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4Y2ViMTtcbiAgLyogV2FybSBCZWlnZSAqLyB9IiwiLyogIyB0a19kZWZhdWx0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4vKiBBbGlnbm1lbnQgKi9cbi5hbGlnbmxlZnQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDEuNWVtOyB9XG5cbi5hbGlnbnJpZ2h0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjVlbTsgfVxuXG4uYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qIEltYWdlcyBhbmQgd3AtY2FwdGlvbnMgc2hvdWxkIGFsd2F5cyBmaXQgYW5kIGJlIHJlc3BvbnNpdmUgKi9cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuaW1nW2NsYXNzKj0nd3AtaW1hZ2UtJ10ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi53cC1jYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDQ0M7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuLndwLWNhcHRpb24uYWxpZ25jZW50ZXIge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi53cC1jYXB0aW9uIGltZ1tjbGFzcyo9J3dwLWltYWdlLSddIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBXUCBHYWxsZXJ5ICovXG4uZ2FsbGVyeSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG5cbi5nYWxsZXJ5IGEgaW1nIHtcbiAgbWF4LXdpZHRoOiA5MCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5nYWxsZXJ5IGRkIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5nYWxsZXJ5LWNhcHRpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBNYWtlIHN1cmUgZW1iZWRzIGFuZCBpZnJhbWVzIGZpdCB0aGVpciBjb250YWluZXJzICovXG5lbWJlZCxcbmlmcmFtZSxcbm9iamVjdCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTsgfVxuXG4uc2NyZWVuLXJlYWRlci10ZXh0OmhvdmVyLFxuLnNjcmVlbi1yZWFkZXItdGV4dDphY3RpdmUsXG4uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgei1pbmRleDogMTAwMDAwO1xuICAvKiBBYm92ZSBXUCB0b29sYmFyICovXG4gIHRvcDogNXB4O1xuICBsZWZ0OiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjE3NTlCO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGMUYxO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG5cbi8qIENvbnRlbnQgKi9cbi5tYWluLWNvbnRlbnQtaW5uZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS41ZW07IH1cblxuLmhlbnRyeSB7XG4gIG1hcmdpbjogMCAwIDEuNWVtOyB9XG5cbi5zdGlja3kge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYnlwb3N0YXV0aG9yIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogQ2xlYXJpbmcgKi9cbi5jbGVhciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qIE5hdmlnYXRpb24gKi9cbi5kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5kcm9wZG93bi1zdWJtZW51ID4gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDZweCA2cHggNnB4O1xuICBib3JkZXItcmFkaXVzOiAwIDZweCA2cHggNnB4OyB9XG5cbi5kcm9wZG93bi1zdWJtZW51OmFjdGl2ZSA+IC5kcm9wZG93bi1tZW51LFxuLmRyb3Bkb3duLXN1Ym1lbnU6aG92ZXIgPiAuZHJvcGRvd24tbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5kcm9wZG93bi1zdWJtZW51ID4gYTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgY29udGVudDogJyAnO1xuICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjQ0NDOyB9XG5cbi5kcm9wZG93bi1zdWJtZW51OmFjdGl2ZSA+IGE6YWZ0ZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogI0ZGRjsgfVxuXG4uZHJvcGRvd24tc3VibWVudS5wdWxsLWxlZnQge1xuICBmbG9hdDogbm9uZTsgfVxuXG4uZHJvcGRvd24tc3VibWVudS5wdWxsLWxlZnQgPiAuZHJvcGRvd24tbWVudSB7XG4gIGxlZnQ6IC0xMDAlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA2cHggMCA2cHggNnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDZweCAwIDZweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweCAwIDZweCA2cHg7IH1cblxuLyogSGVyZSBzb21lIG5lZWRlZCB3aWRnZXQgc3R5bGVzXG4gKiBNb3N0IHdpZGdldHMgYXJlIGFkYXB0ZWQgaW4gdGhlIGZpbGUgYm9vdHN0cmFwLXdwLmpzIC0gYW5kIFJFQUxMWSBlYXN5IHRvIG1vZGlmeSEgOykgKi9cbi53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiAyZW07IH1cblxuLndpZGdldF9uYXZfbWVudSB1bC5zdWItbWVudSBsaSxcbi53aWRnZXRfcGFnZXMgdWwuY2hpbGRyZW4gbGkge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLyogSGlkaW5nIHRoZSBzZWFyY2ggd2lkZ2V0J3MgYnV0dG9uIGluIHdpZGdldHMuIHRoYXRzIGp1c3QgdG9vIG9sZC1za29vbC4gOikgYnV0IGlmIHlvdSB3YW50IGl0IGJhY2ssIGp1c3QgZGVsZXRlIHRoZSBuZXh0IGxpbmUuXG4gKiBOb3RlOiB5b3UgY2FuIGNoYW5nZSB0aGUgd2hvbGUgYXBwZWFyYW5jZSBvZiB0aGUgc2VhcmNoX2Zvcm0oKSBmdW5jdGlvbiBpbiBvdXIgc2VhcmNoZm9ybS5waHAgKi9cbi53aWRnZXRfc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTWFrZSBzdXJlIHNlbGVjdCBlbGVtZW50cyBmaXQgaW4gd2lkZ2V0cyAqL1xuLndpZGdldCBzZWxlY3Qge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogTmVzdGVkIGNvbW1lbnRzPyBUaGV5IGFyZSB0aHJlYWRlZCBhbmQgbmVzdGVkIGFscmVhZHksIHlvdSBqdXN0IG5lZWQgdG8gYWRkIHlvdXIgb3duIHN0eWxpbmcgdG8gZmluYWxpemUhXG4gKiBGb3IgZXhhbXBsZSB3aXRoIHNvbWUgbWFyZ2luLCBsaWtlIHRoZSBsaW5lIGJlbG93IDspIERlbGV0ZSwgbW9kaWZ5LCBjaGFuZ2UgY2xhc3NlcyBpbiBIVE1MIGlmIHlvdSBkZXNpcmUgYW5vdGhlciBzdHlsZSAqL1xuLmNvbW1lbnQgLmNoaWxkcmVuIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNWVtOyB9XG5cbi8qKlxuKiBTb21lIFdQIFRoZW1lIFJlcG9zaXRvcnkgcmVxdWlyZW1lbnRzXG4qL1xuLmVudHJ5LW1ldGEge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKlxuID09IFF1aWNrIENTUyBzdHlsaW5nIHRpcHMgPT1cblxuIFlvdSBjYW4gc3RhcnQgb2ZmIGluIGEgcm91Z2ggZGlyZWN0aW9uIHdpdGggc29tZSBtaW5pbWFsIHN0eWxlcy5cbiBTZWUgYmVsb3cgZm9yIHNvbWUgdGlwcy4gOylcblxuXG4gPT0gV2FudCB0byBoYXZlIHRoZSB3aG9sZSBzaXRlIHdyYXBwZWQ/ID09XG5cbiBKdXN0IGZpbGwgdGhlIC5jb250YWluZXIgY2xhc3Mgd2l0aCBzb21lIGJhY2tncm91bmQgY29sb3IgdG8gaGF2ZSBhIHRoZSB3aG9sZSBzaXRlIFwid3JhcHBlZFwiLlxuIFRoaXMgd29ya3Mgc28gZWFzeSBiZWNhdXNlIGV2ZXJ5IG1haW4gcGFydCBpcyB3cmFwcGVkIG9ubHkgb25jZSBpbnRvIGEgY29udGFpbmVyIGNsYXNzIGJ5IGJvb3RzdHJhcC5cbiBUcnkgb3V0IGJ5IGRlY29tbWVudGluZyB0aGUgbmV4dCBsaW5lIGFuZCBnbyBmcm9tIHRoZXJlLlxuXG4gLmNvbnRhaW5lciB7IGJhY2tncm91bmQ6ICNmOWY5Zjk7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZTsgfVxuXG5cbiA9PSBXYW50IHRvIHdyYXAganVzdCB0aGUgY29udGVudCBhbmQgc2lkZWJhciBpbiBCb290c3RyYXAgc3R5bGU/ID09XG5cbiBUaGF0IG9uZSBpcyBhIGdyZWF0IGV4YW1wbGUgdG8gc2hvdyB0aGF0IHNvbWUgdGhpbmdzIGFyZSBtdWNoIGNsZWFuZXIgYW5kIGVhc2llciB0byBkbyB2aWEganVzdCBhZGRpbmcgc29tZSBIVE1MIGNsYXNzZXMuXG4gSW4gdGhpcyBjYXNlLCB3ZSB3aWxsIGFkZCBqdXN0IG9uZSBDU1MgY2xhc3MgXCJwYW5lbFwiLCBsb29rIGZvciBleGFtcGxlIGF0IHRoZSBiZWdpbm5pbmcgaW4gY29udGVudC5waHAhXG5cblxuID09IEluZmluaXRlIFNjcm9sbGluZyBieSBKZXRwYWNrID09XG4gWW91IGNhbiBlbmFibGUgdGhpcyBjb29sIGZlYXR1cmUgYnkgc2ltcGx5IGRlY29tbWVudGluZyB0aGUgbGluZXMgYmVsb3cgYW5kIG1ha2Ugc3VyZSB5b3UgdXNlIHRoZSBzYW1lIGNsYXNzZXMgb24gdGhlIHJpZ2h0IHBsYWNlIGluIHlvdXIgaHRtbC4uXG5cbi8qIEdsb2JhbGx5IGhpZGRlbiBlbGVtZW50cyB3aGVuIEluZmluaXRlIFNjcm9sbCBpcyBzdXBwb3J0ZWQgYW5kIGluIHVzZS5cbiAqIE9sZGVyIC8gTmV3ZXIgUG9zdHMgTmF2aWdhdGlvbiAodGhlIHBhZ2luYXRpb24sIG11c3QgYWx3YXlzIGJlIGhpZGRlbiksIFRoZW1lIEZvb3RlciBvbmx5IHdoZW4gc2V0IHRvIHNjcm9sbGluZy4uICovXG4vKlxuLmluZmluaXRlLXNjcm9sbCAucGFnZS1saW5rcyxcbi5pbmZpbml0ZS1zY3JvbGwubmV2ZXJlbmRpbmcgLnNpdGUtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuKi9cbi8qIFdoZW4gSW5maW5pdGUgU2Nyb2xsIGhhcyByZWFjaGVkIGl0cyBlbmQgd2UgbmVlZCB0byByZS1kaXNwbGF5IGVsZW1lbnRzIHRoYXQgd2VyZSBoaWRkZW4gKHZpYSAubmV2ZXJlbmRpbmcpIGJlZm9yZSAqL1xuLypcbi5pbmZpbml0eS1lbmQubmV2ZXJlbmRpbmcgLnNpdGUtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiovXG4vKiBIZXksIGlmIHlvdSBkb24ndCBuZWVkIG15IGNvbW1lbnRzIGFueW1vcmUsIGp1c3QgZGVsZXRlIG1lISA6KSAgKi9cbi8qIHN0eWxlcyBmb3IgX3RrX3BhZ2luYXRpb24gdW5kIF90a19saW5rX3BhZ2VzICovXG5uYXYgZm9ybS50ay1wYWdlLW5hdixcbm5hdiAuaW5wdXQtZ3JvdXAsXG5uYXYgLmlucHV0LWdyb3VwLWJ0bixcbm5hdiAuZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogaW5saW5lOyB9IiwiLyogIyMgRGVmYXVsdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDYyLjUlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS42MjU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiAjIEdlbmVyYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIFNjYWZmb2xkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMTgxOTI2OyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qICMjIEFuaW1ldGUuY3NzIGNsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYW5pbV9lbGVtZW50IHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XG5cbi5mdWxsT3BhY2l0eSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuIiwiLyogIyMgRGVmYXVsdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbnAge1xuICBsaW5lLWhlaWdodDogMS41Mjg7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuaDEge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi8qICMjIFdwIFR5cG9ncmFwaGljIENsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNpdGUtdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7IH0gfVxuXG5oMi5zZWN0aW9uLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7IH1cblxuaDIuc2VjdGlvbi10aXRsZSBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgLyogTWFrZSBUd28gbGluZXMgb24gTW9iaWxlIFBob25lICovIH1cblxuaDIuc2VjdGlvbi10aXRsZSBzcGFuOm50aC1vZi10eXBlKDIpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogUmVtb3ZlIGRhc2ggYmV0d2VlbiBsaW5lcyAqLyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGgyLnNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICBoMi5zZWN0aW9uLXRpdGxlIHNwYW4ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIC8qIE1ha2UgdGl0bGUgb25lIHNpbmdsZSBsaW5lICovIH1cbiAgaDIuc2VjdGlvbi10aXRsZSBzcGFuOm50aC1vZi10eXBlKDIpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogUmV2ZWFsIGRhc2ggYmV0d2VlbiBsaW5lcyAqLyB9IH1cblxuLnNlY3Rpb24tYWJvdXQgcDpudGgtb2YtdHlwZSgxKSxcbi5zZWN0aW9uLWNvbnRhY3QgcDpudGgtb2YtdHlwZSgxKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiIsIi8qICMjIEFib3ZlIFRoZSBGb2xkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5iZy1pbWcge1xuICBoZWlnaHQ6IDI2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2luY2x1ZGVzL2ltZy9zaXRlLWludHJvLTA0LmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDkwJSA1MCU7XG4gIC1tb3otYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gICAgLmJnLWltZyB7XG4gICAgICBoZWlnaHQ6IDQ4MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gICAgLmJnLWltZyB7XG4gICAgICBoZWlnaHQ6IDY0MHB4OyB9IH1cblxuLmNvdmVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjYwcHg7XG4gIGJhY2tncm91bmQ6ICMxMDEwMTA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgICAuY292ZXIge1xuICAgICAgaGVpZ2h0OiAzOTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmNvdmVyIHtcbiAgICAgIGhlaWdodDogNDgwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTIwcHgpIHtcbiAgICAuY292ZXIge1xuICAgICAgaGVpZ2h0OiA2NDBweDsgfSB9XG4gIC5jb3ZlciAuYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vaW5jbHVkZXMvaW1nL3NpdGUtaW50cm8tMDQuanBnXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDkwJSA1MCU7XG4gICAgLW1vei1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuIiwiXG4vKiAjIyBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLypcbiAgICBXZSBoYXZlIHRvIG1ha2UgYSB0aW5uaWVyIGNvbnRhaW5lclxuICAgIGJlY2F1c2Ugb3VyIGZlYXR1cmVkIGltYWdlIGFyZW4ndCB0aGF0XG4gICAgYmlnIGFuZCB0aGUgd2hvbGUgYW5pbWF0aW9uIG9mIHdlbGxzXG4gICAgYXJlIGJsZWVkaW5nIGFsbCBvdmVyISEhXG4qL1xuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiA5MCU7XG4gIG1heC13aWR0aDogOTQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5jb250YWluZXItZmx1aWQge1xuICAvKiBBZGRlZCBwYWRkaW5nIHNvIHdlIGRvbnQgZ2V0IGhvcml6b250YWwgc2Nyb2xsaW5nIG9uIGlwYWQgKi9cbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyogLnJvdyB3aXRoIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbnMgYXQgLTMwcHggZm9yIGZ1bGwgd2lkdGggKi9cbi5yb3ctZnVsbCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLyogQWx0ZXIgR3JpZCBmdW5jdGlvbiBmb3IgTW9iaWxlIFNjcmVlbnMgKi9cbi5zZWN0aW9uLXBvcnRmb2xpby5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNlY3Rpb24tcG9ydGZvbGlvLmNvbnRhaW5lciBbY2xhc3NePVwiY29sXCJdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTsgfVxuXG4vKiBSZXZlcnQgR3JpZCB0byBub3JtYWwgZnVuY3Rpb24gb24gaXBhZCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbi1wb3J0Zm9saW8uY29udGFpbmVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5zZWN0aW9uLXBvcnRmb2xpby5jb250YWluZXIgW2NsYXNzXj1cImNvbFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuIiwiLyogIyMgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5bY2xhc3MqPVwiYnRuLVwiXSB7XG4gIC8qIFR5cG9ncmFwaHkgKi9cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIGZ4ICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIC8qIFRoZW1lICovXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmJ0bi1sZyB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgLyogTU9EICovXG4gIHdpZHRoOiA4ZW07IH1cblxuLmJ0bi14bCB7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgLyogTU9EICovXG4gIHBhZGRpbmc6IDEycHggMjBweDsgfVxuXG4uYnRuLWZ1bGwge1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmJ0bi1saWdodCB7XG4gIGNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgLmJ0bi1saWdodDpob3ZlciwgLmJ0bi1saWdodDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uYnRuLWRhcmsge1xuICAvKiBFWFRFTkQgKi9cbiAgY29sb3I6ICNGRkY7XG4gIGJvcmRlci1jb2xvcjogIzE4MTkyNjtcbiAgLyogUmljaCBCbGFjayAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovIH1cblxuLmJ0bi1kYXJrOmhvdmVyLFxuLmJ0bi1kYXJrOmZvY3VzIHtcbiAgLypib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyovXG4gIGNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmJ0bi1meCB7XG4gIC8qIEVYVEVORCAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5idG4tZng6aG92ZXIsXG4uYnRuLWZ4OmZvY3VzIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuIiwiLyogIyMgUmVzZXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuKjpmb2N1cyxcbmE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qICMjIFNwYWNlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uc3BhY2VyLXhzIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zcGFjZXItc20ge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbi5zcGFjZXItbWQge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5zcGFjZXItbGcge1xuICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9XG5cbi5zcGFjZXIteGwge1xuICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG5cbi5zcGFjZXItaGVybyB7XG4gIG1hcmdpbi1ib3R0b206IDExMHB4OyB9XG5cbi8qICMjIEZpbGxlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZmlsbGVyLXhzIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDsgfVxuXG4uZmlsbGVyLXNtIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG5cbi5maWxsZXItbWQge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7IH1cblxuLmZpbGxlci1sZyB7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfVxuXG4uZmlsbGVyLXhsIHtcbiAgcGFkZGluZy10b3A6IDkwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9XG5cbi5maWxsZXItaGVybyB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEyMHB4OyB9XG5cbi8qIFRoZW1lICovXG4uZmlsbGVyLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovIH1cblxuLmZpbGxlci13YXJtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4Y2ViMTtcbiAgLyogV2FybSBCZWlnZSAqLyB9XG5cbi8qICMgdGtfZGVmYXVsdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLyogQWxpZ25tZW50ICovXG4uYWxpZ25sZWZ0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbTsgfVxuXG4uYWxpZ25yaWdodCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMS41ZW07IH1cblxuLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKiBJbWFnZXMgYW5kIHdwLWNhcHRpb25zIHNob3VsZCBhbHdheXMgZml0IGFuZCBiZSByZXNwb25zaXZlICovXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmltZ1tjbGFzcyo9J3dwLWltYWdlLSddIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ud3AtY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuXG4ud3AtY2FwdGlvbi5hbGlnbmNlbnRlciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLndwLWNhcHRpb24gaW1nW2NsYXNzKj0nd3AtaW1hZ2UtJ10ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ud3AtY2FwdGlvbiAud3AtY2FwdGlvbi10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIFdQIEdhbGxlcnkgKi9cbi5nYWxsZXJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuLmdhbGxlcnkgYSBpbWcge1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmdhbGxlcnkgZGQge1xuICBtYXJnaW46IDA7IH1cblxuLmdhbGxlcnktY2FwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIE1ha2Ugc3VyZSBlbWJlZHMgYW5kIGlmcmFtZXMgZml0IHRoZWlyIGNvbnRhaW5lcnMgKi9cbmVtYmVkLFxuaWZyYW1lLFxub2JqZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMgKi9cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpOyB9XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQ6aG92ZXIsXG4uc2NyZWVuLXJlYWRlci10ZXh0OmFjdGl2ZSxcbi5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB6LWluZGV4OiAxMDAwMDA7XG4gIC8qIEFib3ZlIFdQIHRvb2xiYXIgKi9cbiAgdG9wOiA1cHg7XG4gIGxlZnQ6IDVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMyMTc1OUI7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGMUYxO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuXG4vKiBDb250ZW50ICovXG4ubWFpbi1jb250ZW50LWlubmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuNWVtOyB9XG5cbi5oZW50cnkge1xuICBtYXJnaW46IDAgMCAxLjVlbTsgfVxuXG4uc3RpY2t5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmJ5cG9zdGF1dGhvciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIENsZWFyaW5nICovXG4uY2xlYXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKiBOYXZpZ2F0aW9uICovXG4uZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZHJvcGRvd24tc3VibWVudSA+IC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAgNnB4IDZweCA2cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDsgfVxuXG4uZHJvcGRvd24tc3VibWVudTphY3RpdmUgPiAuZHJvcGRvd24tbWVudSxcbi5kcm9wZG93bi1zdWJtZW51OmhvdmVyID4gLmRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZHJvcGRvd24tc3VibWVudSA+IGE6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIGNvbnRlbnQ6ICcgJztcbiAgYm9yZGVyLXdpZHRoOiA1cHggMCA1cHggNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogI0NDQzsgfVxuXG4uZHJvcGRvd24tc3VibWVudTphY3RpdmUgPiBhOmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNGRkY7IH1cblxuLmRyb3Bkb3duLXN1Ym1lbnUucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLmRyb3Bkb3duLXN1Ym1lbnUucHVsbC1sZWZ0ID4gLmRyb3Bkb3duLW1lbnUge1xuICBsZWZ0OiAtMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA2cHggMCA2cHggNnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHggMCA2cHggNnB4OyB9XG5cbi8qIEhlcmUgc29tZSBuZWVkZWQgd2lkZ2V0IHN0eWxlc1xuICogTW9zdCB3aWRnZXRzIGFyZSBhZGFwdGVkIGluIHRoZSBmaWxlIGJvb3RzdHJhcC13cC5qcyAtIGFuZCBSRUFMTFkgZWFzeSB0byBtb2RpZnkhIDspICovXG4ud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtOyB9XG5cbi53aWRnZXRfbmF2X21lbnUgdWwuc3ViLW1lbnUgbGksXG4ud2lkZ2V0X3BhZ2VzIHVsLmNoaWxkcmVuIGxpIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbi8qIEhpZGluZyB0aGUgc2VhcmNoIHdpZGdldCdzIGJ1dHRvbiBpbiB3aWRnZXRzLiB0aGF0cyBqdXN0IHRvbyBvbGQtc2tvb2wuIDopIGJ1dCBpZiB5b3Ugd2FudCBpdCBiYWNrLCBqdXN0IGRlbGV0ZSB0aGUgbmV4dCBsaW5lLlxuICogTm90ZTogeW91IGNhbiBjaGFuZ2UgdGhlIHdob2xlIGFwcGVhcmFuY2Ugb2YgdGhlIHNlYXJjaF9mb3JtKCkgZnVuY3Rpb24gaW4gb3VyIHNlYXJjaGZvcm0ucGhwICovXG4ud2lkZ2V0X3NlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIE1ha2Ugc3VyZSBzZWxlY3QgZWxlbWVudHMgZml0IGluIHdpZGdldHMgKi9cbi53aWRnZXQgc2VsZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qIE5lc3RlZCBjb21tZW50cz8gVGhleSBhcmUgdGhyZWFkZWQgYW5kIG5lc3RlZCBhbHJlYWR5LCB5b3UganVzdCBuZWVkIHRvIGFkZCB5b3VyIG93biBzdHlsaW5nIHRvIGZpbmFsaXplIVxuICogRm9yIGV4YW1wbGUgd2l0aCBzb21lIG1hcmdpbiwgbGlrZSB0aGUgbGluZSBiZWxvdyA7KSBEZWxldGUsIG1vZGlmeSwgY2hhbmdlIGNsYXNzZXMgaW4gSFRNTCBpZiB5b3UgZGVzaXJlIGFub3RoZXIgc3R5bGUgKi9cbi5jb21tZW50IC5jaGlsZHJlbiB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVlbTsgfVxuXG4vKipcbiogU29tZSBXUCBUaGVtZSBSZXBvc2l0b3J5IHJlcXVpcmVtZW50c1xuKi9cbi5lbnRyeS1tZXRhIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLypcbiA9PSBRdWljayBDU1Mgc3R5bGluZyB0aXBzID09XG5cbiBZb3UgY2FuIHN0YXJ0IG9mZiBpbiBhIHJvdWdoIGRpcmVjdGlvbiB3aXRoIHNvbWUgbWluaW1hbCBzdHlsZXMuXG4gU2VlIGJlbG93IGZvciBzb21lIHRpcHMuIDspXG5cblxuID09IFdhbnQgdG8gaGF2ZSB0aGUgd2hvbGUgc2l0ZSB3cmFwcGVkPyA9PVxuXG4gSnVzdCBmaWxsIHRoZSAuY29udGFpbmVyIGNsYXNzIHdpdGggc29tZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIGhhdmUgYSB0aGUgd2hvbGUgc2l0ZSBcIndyYXBwZWRcIi5cbiBUaGlzIHdvcmtzIHNvIGVhc3kgYmVjYXVzZSBldmVyeSBtYWluIHBhcnQgaXMgd3JhcHBlZCBvbmx5IG9uY2UgaW50byBhIGNvbnRhaW5lciBjbGFzcyBieSBib290c3RyYXAuXG4gVHJ5IG91dCBieSBkZWNvbW1lbnRpbmcgdGhlIG5leHQgbGluZSBhbmQgZ28gZnJvbSB0aGVyZS5cblxuIC5jb250YWluZXIgeyBiYWNrZ3JvdW5kOiAjZjlmOWY5OyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWVlOyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWU7IH1cblxuXG4gPT0gV2FudCB0byB3cmFwIGp1c3QgdGhlIGNvbnRlbnQgYW5kIHNpZGViYXIgaW4gQm9vdHN0cmFwIHN0eWxlPyA9PVxuXG4gVGhhdCBvbmUgaXMgYSBncmVhdCBleGFtcGxlIHRvIHNob3cgdGhhdCBzb21lIHRoaW5ncyBhcmUgbXVjaCBjbGVhbmVyIGFuZCBlYXNpZXIgdG8gZG8gdmlhIGp1c3QgYWRkaW5nIHNvbWUgSFRNTCBjbGFzc2VzLlxuIEluIHRoaXMgY2FzZSwgd2Ugd2lsbCBhZGQganVzdCBvbmUgQ1NTIGNsYXNzIFwicGFuZWxcIiwgbG9vayBmb3IgZXhhbXBsZSBhdCB0aGUgYmVnaW5uaW5nIGluIGNvbnRlbnQucGhwIVxuXG5cbiA9PSBJbmZpbml0ZSBTY3JvbGxpbmcgYnkgSmV0cGFjayA9PVxuIFlvdSBjYW4gZW5hYmxlIHRoaXMgY29vbCBmZWF0dXJlIGJ5IHNpbXBseSBkZWNvbW1lbnRpbmcgdGhlIGxpbmVzIGJlbG93IGFuZCBtYWtlIHN1cmUgeW91IHVzZSB0aGUgc2FtZSBjbGFzc2VzIG9uIHRoZSByaWdodCBwbGFjZSBpbiB5b3VyIGh0bWwuLlxuXG4vKiBHbG9iYWxseSBoaWRkZW4gZWxlbWVudHMgd2hlbiBJbmZpbml0ZSBTY3JvbGwgaXMgc3VwcG9ydGVkIGFuZCBpbiB1c2UuXG4gKiBPbGRlciAvIE5ld2VyIFBvc3RzIE5hdmlnYXRpb24gKHRoZSBwYWdpbmF0aW9uLCBtdXN0IGFsd2F5cyBiZSBoaWRkZW4pLCBUaGVtZSBGb290ZXIgb25seSB3aGVuIHNldCB0byBzY3JvbGxpbmcuLiAqL1xuLypcbi5pbmZpbml0ZS1zY3JvbGwgLnBhZ2UtbGlua3MsXG4uaW5maW5pdGUtc2Nyb2xsLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiovXG4vKiBXaGVuIEluZmluaXRlIFNjcm9sbCBoYXMgcmVhY2hlZCBpdHMgZW5kIHdlIG5lZWQgdG8gcmUtZGlzcGxheSBlbGVtZW50cyB0aGF0IHdlcmUgaGlkZGVuICh2aWEgLm5ldmVyZW5kaW5nKSBiZWZvcmUgKi9cbi8qXG4uaW5maW5pdHktZW5kLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4qL1xuLyogSGV5LCBpZiB5b3UgZG9uJ3QgbmVlZCBteSBjb21tZW50cyBhbnltb3JlLCBqdXN0IGRlbGV0ZSBtZSEgOikgICovXG4vKiBzdHlsZXMgZm9yIF90a19wYWdpbmF0aW9uIHVuZCBfdGtfbGlua19wYWdlcyAqL1xubmF2IGZvcm0udGstcGFnZS1uYXYsXG5uYXYgLmlucHV0LWdyb3VwLFxubmF2IC5pbnB1dC1ncm91cC1idG4sXG5uYXYgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4vKiAjIyBEZWZhdWx0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qICMgR2VuZXJhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIyMgU2NhZmZvbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMxODE5MjY7IH1cblxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogIyMgQW5pbWV0ZS5jc3MgY2xhc3Nlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hbmltX2VsZW1lbnQge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IH1cblxuLmZ1bGxPcGFjaXR5IHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB9XG5cbi8qICMjIERlZmF1bHRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG5wIHtcbiAgbGluZS1oZWlnaHQ6IDEuNTI4O1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4vKiAjIyBXcCBUeXBvZ3JhcGhpYyBDbGFzc2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zaXRlLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyB9IH1cblxuaDIuc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogMnB4OyB9XG5cbmgyLnNlY3Rpb24tdGl0bGUgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIC8qIE1ha2UgVHdvIGxpbmVzIG9uIE1vYmlsZSBQaG9uZSAqLyB9XG5cbmgyLnNlY3Rpb24tdGl0bGUgc3BhbjpudGgtb2YtdHlwZSgyKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIFJlbW92ZSBkYXNoIGJldHdlZW4gbGluZXMgKi8gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICBoMi5zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIwcHg7IH1cbiAgaDIuc2VjdGlvbi10aXRsZSBzcGFuIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICAvKiBNYWtlIHRpdGxlIG9uZSBzaW5nbGUgbGluZSAqLyB9XG4gIGgyLnNlY3Rpb24tdGl0bGUgc3BhbjpudGgtb2YtdHlwZSgyKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIFJldmVhbCBkYXNoIGJldHdlZW4gbGluZXMgKi8gfSB9XG5cbi5zZWN0aW9uLWFib3V0IHA6bnRoLW9mLXR5cGUoMSksXG4uc2VjdGlvbi1jb250YWN0IHA6bnRoLW9mLXR5cGUoMSkge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi8qICMjIEFib3ZlIFRoZSBGb2xkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5iZy1pbWcge1xuICBoZWlnaHQ6IDI2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2luY2x1ZGVzL2ltZy9zaXRlLWludHJvLTA0LmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDkwJSA1MCU7XG4gIC1tb3otYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgLmJnLWltZyB7XG4gICAgaGVpZ2h0OiA0ODBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExMjBweCkge1xuICAuYmctaW1nIHtcbiAgICBoZWlnaHQ6IDY0MHB4OyB9IH1cblxuLmNvdmVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjYwcHg7XG4gIGJhY2tncm91bmQ6ICMxMDEwMTA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgLmNvdmVyIHtcbiAgICBoZWlnaHQ6IDM5MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvdmVyIHtcbiAgICBoZWlnaHQ6IDQ4MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gIC5jb3ZlciB7XG4gICAgaGVpZ2h0OiA2NDBweDsgfSB9XG5cbi5jb3ZlciAuYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMC44NTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9pbmNsdWRlcy9pbWcvc2l0ZS1pbnRyby0wNC5qcGdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDkwJSA1MCU7XG4gIC1tb3otYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLyogIyMgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qXG4gICAgV2UgaGF2ZSB0byBtYWtlIGEgdGlubmllciBjb250YWluZXJcbiAgICBiZWNhdXNlIG91ciBmZWF0dXJlZCBpbWFnZSBhcmVuJ3QgdGhhdFxuICAgIGJpZyBhbmQgdGhlIHdob2xlIGFuaW1hdGlvbiBvZiB3ZWxsc1xuICAgIGFyZSBibGVlZGluZyBhbGwgb3ZlciEhIVxuKi9cbi5jb250YWluZXIge1xuICB3aWR0aDogOTAlO1xuICBtYXgtd2lkdGg6IDk0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgLyogQWRkZWQgcGFkZGluZyBzbyB3ZSBkb250IGdldCBob3Jpem9udGFsIHNjcm9sbGluZyBvbiBpcGFkICovXG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qIC5yb3cgd2l0aCBsZWZ0IGFuZCByaWdodCBtYXJnaW5zIGF0IC0zMHB4IGZvciBmdWxsIHdpZHRoICovXG4ucm93LWZ1bGwge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qIEFsdGVyIEdyaWQgZnVuY3Rpb24gZm9yIE1vYmlsZSBTY3JlZW5zICovXG4uc2VjdGlvbi1wb3J0Zm9saW8uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zZWN0aW9uLXBvcnRmb2xpby5jb250YWluZXIgW2NsYXNzXj1cImNvbFwiXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLyogUmV2ZXJ0IEdyaWQgdG8gbm9ybWFsIGZ1bmN0aW9uIG9uIGlwYWQgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgLnNlY3Rpb24tcG9ydGZvbGlvLmNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuc2VjdGlvbi1wb3J0Zm9saW8uY29udGFpbmVyIFtjbGFzc149XCJjb2xcIl0ge1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuLyogIyMgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5bY2xhc3MqPVwiYnRuLVwiXSB7XG4gIC8qIFR5cG9ncmFwaHkgKi9cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIGZ4ICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIC8qIFRoZW1lICovXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5idG4tbGcge1xuICBmb250LXNpemU6IDE2cHg7XG4gIC8qIE1PRCAqL1xuICB3aWR0aDogOGVtOyB9XG5cbi5idG4teGwge1xuICBmb250LXNpemU6IDM0cHg7XG4gIC8qIE1PRCAqL1xuICBwYWRkaW5nOiAxMnB4IDIwcHg7IH1cblxuLmJ0bi1mdWxsIHtcbiAgcGFkZGluZzogMjBweCAyNHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5idG4tbGlnaHQge1xuICBjb2xvcjogIzE4MTkyNjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4uYnRuLWxpZ2h0OmhvdmVyLCAuYnRuLWxpZ2h0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uYnRuLWRhcmsge1xuICAvKiBFWFRFTkQgKi9cbiAgY29sb3I6ICNGRkY7XG4gIGJvcmRlci1jb2xvcjogIzE4MTkyNjtcbiAgLyogUmljaCBCbGFjayAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovIH1cblxuLmJ0bi1kYXJrOmhvdmVyLFxuLmJ0bi1kYXJrOmZvY3VzIHtcbiAgLypib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyovXG4gIGNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmJ0bi1meCB7XG4gIC8qIEVYVEVORCAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4uYnRuLWZ4OmhvdmVyLFxuLmJ0bi1meDpmb2N1cyB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbi8qICMgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zaXRlLW5hdmlnYXRpb24ge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB6LWluZGV4OiAxMDMwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gIC5zaXRlLW5hdmlnYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHB4OyB9IH1cblxuLyogTWFpbiBuYXZpZ2F0aW9uIHdyYXBwZXIgKi9cbi5uYXZiYXIge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFRoZW1lICovXG4ubmF2YmFyLWRlZmF1bHQge1xuICBtYXgtd2lkdGg6IDk0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiBub25lO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIEJyYW5kaW5nIFdyYXBwZXIgKi9cbi5uYXZiYXItYnJhbmQge1xuICAvKiBtYWtlIGl0IGJlaGF2ZSBsaWtlIHRleHQgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMjE1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWJyYW5kIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4OyB9IH1cblxuLyogTmF2aWdhdGlvbiBXcmFwcGVyICovXG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi5uYXYubmF2YmFyLW5hdiB7XG4gIC8qIG1ha2UgaXQgYmVoYXZlIGxpa2UgdGV4dCAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLXRvcDogMThweDsgfVxuXG4ubWVudSA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogUmljaCBCbGFjayAqL1xuICBjb2xvcjogIzE4MTkyNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfVxuXG4ubmF2YmFyLWRlZmF1bHQgLm1lbnUgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5tZW51ID4gYTpmb2N1cyxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3ZlciB7XG4gIC8qIFJpY2ggQmxhY2sgKi9cbiAgY29sb3I6ICMxODE5MjY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIFRoaXMgaXRlbSBmb3JtcyB0aGUgZXh0cmEgYW5pbWF0ZWQgdW5lcmxpbmUgYmVsb3cgbWVudSBpdGVyICovXG4ubWVudSA+IGE6YWZ0ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTJweDtcbiAgLyogUGxhY2VkIGF0IGNlbnRlciAqL1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgLyogUmljaCBCbGFjayAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICBjb250ZW50OiBcIiBcIjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG5cbi5tZW51ID4gYTpob3ZlcjphZnRlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpob3ZlcjphZnRlciB7XG4gIC8qIFJ1biBmcm9tIGNlbnRlciB0byBsZWZ0ICovXG4gIGxlZnQ6IDA7XG4gIC8qIFJ1biBmcm9tIGNlbnRlciB0byByaWdodCAqL1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2Lm5hdmJhci1uYXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9IH1cblxuLyogTWFraW5nIHRoZSBuYXZpZ2F0aW9uIGZpeGVkIHdoZW4gc2Nyb2xsZWQgZG93blxuICAgQSBjc3MgY2xhc3MgaW4gY29tYmluYXRpb24gd2l0aCB3YXlwb2ludHMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gIC5maXhlZC1uYXYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7IH0gfVxuXG4vKiAjIyBIYW1idXJlciBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm5hdmJhci10b2dnbGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMTNweCAxNHB4OyB9XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTkyNjtcbiAgLyogUmljaCBCbGFjayAqLyB9XG5cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgLyogc3BhY2UgYmV0d2VlbiBiYXJzICovIH1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiAjIyBTZWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaGVudHJ5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnNlY3Rpb24tYWJvdXQge1xuICBwYWRkaW5nLXRvcDogODBweDtcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThjZWIxOyB9XG5cbi5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMjQwcHg7IH0gfVxuXG4uc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgaW1nIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAyMTBweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogLTI0MHB4O1xuICAgIHdpZHRoOiAyMTBweDsgfSB9XG5cbi5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciBwLCAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgcCwgLnNlY3Rpb24tYWJvdXQgLmFib3V0LWlubmVyIGEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDsgfSB9XG5cbi5zZWN0aW9uLWNvbnRhY3Qge1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuLnNlY3Rpb24tY29udGFjdCBpbWcuc2l6ZS1mdWxsIHtcbiAgd2lkdGg6IDE0MHB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zZWN0aW9uLWNvbnRhY3QgcDpudGgtb2YtdHlwZSgyKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAuc2VjdGlvbi1jb250YWN0IGltZy5zaXplLWZ1bGwge1xuICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4vKiAjIyBGcm9udCBQYWdlIExheW91dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5bY2xhc3NePVwic2VjdGlvblwiXSB7XG4gIG1hcmdpbi10b3A6IDEwMHB4OyB9XG5cbmFydGljbGUucG9ydGZvbGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG5hcnRpY2xlLnBvcnRmb2xpbyBwW2NsYXNzKj1cIndlbGwtZnJvbnQtcGFnZVwiXSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuLmVudHJ5LWNvbnRlbnQgPiBwICsgKiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLyogIyMgV2VsbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndlbGwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLndlbGwgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLndlbGwtbGcge1xuICBwYWRkaW5nOiAxMHB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzE4MTkyNjsgfVxuXG4ud2VsbC1zbSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi8qIGV4dGVuZHMgYm9vdHN0cmFwIHdlbGwgb3B0aW9uIGNsYXNzICovXG4ud2VsbC1mcm9udC1wYWdlIHtcbiAgY29sb3I6ICMxODE5MjY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogd2VsbCByZXZlYWxlZCB3aGVuIGhvdmVyZWQgb3ZlciBwb3J0Zm9saW8gYSAqL1xucC53ZWxsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXNpemU6IDFyZW07IH1cblxuLyogIyMgUG9ydGZvbGlvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFdlIHRhcmdldCAucG9ydGZvbGlvIGEgYWZ0ZXIgYm9keS5ob21lIGJlY2F1c2Ugd2Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgaW4gYm9keS5zaW5nbGUgKi9cbi5ob21lIC5wb3J0Zm9saW8gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogLndlbGwgaXMgcG9zdGlvbmVkIEFic29sdXRlICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiAud2VsbCBzaG91bGQgb3BlcmF0ZSBiZWhpbmQgbWFzayAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiB0cmFuc2l0aW9uLW1kICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2Utb3V0O1xuICAvKiBmeC1zY2FsaW5nIGluaXQgKi9cbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG5cbi5ob21lIC5wb3J0Zm9saW8gYTpob3Zlcixcbi5ob21lIC5wb3J0Zm9saW8gYTpmb2N1cyB7XG4gIC8qIGJyaW5nIHRvIGZyb250ICovXG4gIC8qIGZ4LXNjYWxpbmcgZXhlYyAqL1xuICAvKiBmeC1zdWJ0bGUgYm94IHNoYWRvdyAqLyB9XG5cbi5ob21lIC5wb3J0Zm9saW8gYTpob3ZlciBwLFxuLmhvbWUgLnBvcnRmb2xpbyBhOmZvY3VzIHAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG5cbi8qIFBvcnRmb2xpbyBpbWFnZXMgYXJlIGluIGNvbG9yLCBvbiBob3ZlciB0aGV5IGJlY29tZSBCJlcgKi9cbi5wb3J0Zm9saW8gYSBpbWcge1xuICAtd2Via2l0LWZpbHRlcjogbm9uZTtcbiAgZmlsdGVyOiBub25lOyB9XG5cbi5wb3J0Zm9saW8gYTpob3ZlciBpbWcge1xuICBmaWx0ZXI6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSdncmF5c2NhbGUnPjxmZUNvbG9yTWF0cml4IHR5cGU9J21hdHJpeCcgdmFsdWVzPScwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwIDAgMCAxIDAnLz48L2ZpbHRlcj48L3N2Zz4jZ3JheXNjYWxlXCIpO1xuICAvKiBGaXJlZm94IDMuNSsgKi9cbiAgZmlsdGVyOiBncmF5O1xuICAvKiBJRTYtOSAqL1xuICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAvKiBDaHJvbWUgMTkrICYgU2FmYXJpIDYrICovIH1cblxuLyogIyMgTW9kdWxlIEFib3V0IE1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hYm91dC1pbm5lciA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMzVweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuYWJvdXQtaW5uZXIgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi8qICMjIEZvcm0gRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWYwZWY7XG4gIC8qIFB1cnBsZSBHcmF5ICovXG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cblxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgcmVzaXplOiBub25lO1xuICBoZWlnaHQ6IDE0MHB4O1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi8qICMjIEF3YXJkc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXdhcmRzLWhlYWRpbmcge1xuICBmb250LXNpemU6IDI0cHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgbWFyZ2luOiAyNHB4IDAgMTJweDtcbiAgY29sb3I6ICMxODE5MjY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkOyB9XG5cbnVsLmF3YXJkcyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgY29sb3I6ICMxODE5MjY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuXG4vKiAjIyBUYXhvbm9teVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGF4LXR5cGVfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuXG4udGF4LXR5cGVfX2l0ZW0gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTBweCAwOyB9XG5cbi8qICMjIFNpdGUgRm9vdGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOTI2O1xuICAvKiBSaWNoIEJsYWNrICovIH1cblxuLnNpdGUtaW5mbyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiAzNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zaXRlLWZvb3RlciBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuc2l0ZS1mb290ZXIgc3BhbiB7XG4gICAgd2lkdGg6IGF1dG87IH0gfVxuXG4vKlxuVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLlxuVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgZmlsZSwgY2hvb3NlIFRvb2xzIHwgVGVtcGxhdGVzXG5hbmQgb3BlbiB0aGUgdGVtcGxhdGUgaW4gdGhlIGVkaXRvci5cbiovXG4vKiBcbiAgICBDcmVhdGVkIG9uIDogTm92IDIwLCAyMDE3LCAzOjU5OjEyIFBNXG4gICAgQXV0aG9yICAgICA6IHNpbXBsZS11c2VyXG4qL1xuLyogIyMgQ29va2llIE5vdGljZSAocGx1Z2luKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jY29va2llLW5vdGljZSB7XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5jb29raWUtbm90aWNlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE5cHg7IH1cblxuI2Nvb2tpZS1ub3RpY2UgLmJ1dHRvbi53cC1kZWZhdWx0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDJweCAxMnB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjYmJiO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oIzE4MTkyNiksIHRvKCMxODE5MjYpKSByZXBlYXQgc2Nyb2xsIDAgMCAjMTgxOTI2O1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMxODE5MjYsICMxODE5MjYpIHJlcGVhdCBzY3JvbGwgMCAwICMxODE5MjY7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzE4MTkyNiwgIzE4MTkyNikgcmVwZWF0IHNjcm9sbCAwIDAgIzE4MTkyNjtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzE4MTkyNiwgIzE4MTkyNikgcmVwZWF0IHNjcm9sbCAwIDAgIzE4MTkyNjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzE4MTkyNiwgIzE4MTkyNikgcmVwZWF0IHNjcm9sbCAwIDAgIzE4MTkyNjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyogIyMgR28gdG8gVG9wXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5nby10by10b3Age1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDIwMDtcbiAgYm90dG9tOiAxMjBweDtcbiAgbGVmdDogODklO1xuICAvKiBQT1NJVElPTkFMIENMQVNTICovXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBmeCAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMsIG9wYWNpdHkgLjI1cyBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiA5OTk5OyB9XG5cbi5nby10by10b3AucmV2ZWFsIHtcbiAgLyogSlMgQ0xBU1MgQ09OVFJPTExFUiAqL1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gIC5nby10by10b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLyogIyMgU3BlY2lmaWMgU3R5bGVzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogSW5jcmVhc2luZyBtYXJnaW4gZm9yIHBvcnRmb2xpbyBzaW5nbGUgcGljdHVyZXMgKi9cbi5zaW5nbGUtcG9ydGZvbGlvIHAgPiBpbWcge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5zaW5nbGUgLm1haW4tY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDEwMHB4OyB9XG4iLCIvKiAjIE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2l0ZS1uYXZpZ2F0aW9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgei1pbmRleDogMTAzMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAgIC5zaXRlLW5hdmlnYXRpb24ge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDBweDsgfSB9XG5cbi8qIE1haW4gbmF2aWdhdGlvbiB3cmFwcGVyICovXG4ubmF2YmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBUaGVtZSAqL1xuLm5hdmJhci1kZWZhdWx0IHtcbiAgbWF4LXdpZHRoOiA5NDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogbm9uZTtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiBub25lO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIEJyYW5kaW5nIFdyYXBwZXIgKi9cbi5uYXZiYXItYnJhbmQge1xuICAvKiBtYWtlIGl0IGJlaGF2ZSBsaWtlIHRleHQgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMjE1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAgIC5uYXZiYXItYnJhbmQge1xuICAgICAgbWF4LXdpZHRoOiAzMjBweDsgfSB9XG5cbi8qIE5hdmlnYXRpb24gV3JhcHBlciAqL1xuLm5hdmJhci1jb2xsYXBzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuXG4ubmF2Lm5hdmJhci1uYXYge1xuICAvKiBtYWtlIGl0IGJlaGF2ZSBsaWtlIHRleHQgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cblxuLm1lbnUgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogUmljaCBCbGFjayAqL1xuICBjb2xvcjogIzE4MTkyNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuLm5hdmJhci1kZWZhdWx0IC5tZW51ID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubWVudSA+IGE6Zm9jdXMsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIge1xuICAvKiBSaWNoIEJsYWNrICovXG4gIGNvbG9yOiAjMTgxOTI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBUaGlzIGl0ZW0gZm9ybXMgdGhlIGV4dHJhIGFuaW1hdGVkIHVuZXJsaW5lIGJlbG93IG1lbnUgaXRlciAqL1xuLm1lbnUgPiBhOmFmdGVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0ycHg7XG4gIC8qIFBsYWNlZCBhdCBjZW50ZXIgKi9cbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIC8qIFJpY2ggQmxhY2sgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTkyNjtcbiAgY29udGVudDogXCIgXCI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuXG4ubWVudSA+IGE6aG92ZXI6YWZ0ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXI6YWZ0ZXIge1xuICAvKiBSdW4gZnJvbSBjZW50ZXIgdG8gbGVmdCAqL1xuICBsZWZ0OiAwO1xuICAvKiBSdW4gZnJvbSBjZW50ZXIgdG8gcmlnaHQgKi9cbiAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdi5uYXZiYXItbmF2IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfSB9XG5cbi8qIE1ha2luZyB0aGUgbmF2aWdhdGlvbiBmaXhlZCB3aGVuIHNjcm9sbGVkIGRvd25cbiAgIEEgY3NzIGNsYXNzIGluIGNvbWJpbmF0aW9uIHdpdGggd2F5cG9pbnRzICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAuZml4ZWQtbmF2IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOyB9IH1cbiIsIi8qICMjIEhhbWJ1cmVyIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBhZGRpbmc6IDEzcHggMTRweDsgfVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE5MjY7XG4gIC8qIFJpY2ggQmxhY2sgKi8gfVxuXG4ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIC8qIHNwYWNlIGJldHdlZW4gYmFycyAqLyB9XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH0iLCIvKiAjIyBTZWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaGVudHJ5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnNlY3Rpb24tYWJvdXQge1xuICBwYWRkaW5nLXRvcDogODBweDtcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThjZWIxOyB9XG4gIC5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjQwcHg7IH0gfVxuICAgIC5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciBpbWcge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogMjEwcHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5zZWN0aW9uLWFib3V0IC5hYm91dC1pbm5lciBpbWcge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjQwcHg7XG4gICAgICAgICAgd2lkdGg6IDIxMHB4OyB9IH1cbiAgICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgcCwgLnNlY3Rpb24tYWJvdXQgLmFib3V0LWlubmVyIGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgcCwgLnNlY3Rpb24tYWJvdXQgLmFib3V0LWlubmVyIGEge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gICAgICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtaW5uZXIgYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwOyB9IH1cblxuLnNlY3Rpb24tY29udGFjdCB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4uc2VjdGlvbi1jb250YWN0IGltZy5zaXplLWZ1bGwge1xuICB3aWR0aDogMTQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb24tY29udGFjdCBwOm50aC1vZi10eXBlKDIpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5zZWN0aW9uLWNvbnRhY3QgaW1nLnNpemUtZnVsbCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfSB9IiwiXG4vKiAjIyBGcm9udCBQYWdlIExheW91dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5bY2xhc3NePVwic2VjdGlvblwiXSB7XG4gIG1hcmdpbi10b3A6IDEwMHB4OyB9XG5cbmFydGljbGUucG9ydGZvbGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBhcnRpY2xlLnBvcnRmb2xpbyBwW2NsYXNzKj1cIndlbGwtZnJvbnQtcGFnZVwiXSB7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuXG4uZW50cnktY29udGVudCA+IHAgKyAqIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfSIsIi8qICMjIFdlbGxzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53ZWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyOiBub25lO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ud2VsbCBibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMxODE5MjY7IH1cblxuLndlbGwtc20ge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi8qIGV4dGVuZHMgYm9vdHN0cmFwIHdlbGwgb3B0aW9uIGNsYXNzICovXG4ud2VsbC1mcm9udC1wYWdlIHtcbiAgY29sb3I6ICMxODE5MjY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogd2VsbCByZXZlYWxlZCB3aGVuIGhvdmVyZWQgb3ZlciBwb3J0Zm9saW8gYSAqL1xucC53ZWxsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXNpemU6IDFyZW07IH1cbiIsIlxuLyogIyMgUG9ydGZvbGlvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFdlIHRhcmdldCAucG9ydGZvbGlvIGEgYWZ0ZXIgYm9keS5ob21lIGJlY2F1c2Ugd2Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgaW4gYm9keS5zaW5nbGUgKi9cbi5ob21lIC5wb3J0Zm9saW8gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogLndlbGwgaXMgcG9zdGlvbmVkIEFic29sdXRlICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiAud2VsbCBzaG91bGQgb3BlcmF0ZSBiZWhpbmQgbWFzayAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiB0cmFuc2l0aW9uLW1kICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2Utb3V0O1xuICAvKiBmeC1zY2FsaW5nIGluaXQgKi9cbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cblxuLmhvbWUgLnBvcnRmb2xpbyBhOmhvdmVyLFxuLmhvbWUgLnBvcnRmb2xpbyBhOmZvY3VzIHtcbiAgLyogYnJpbmcgdG8gZnJvbnQgKi9cbiAgLyogZngtc2NhbGluZyBleGVjICovXG4gIC8qIGZ4LXN1YnRsZSBib3ggc2hhZG93ICovIH1cblxuLmhvbWUgLnBvcnRmb2xpbyBhOmhvdmVyIHAsXG4uaG9tZSAucG9ydGZvbGlvIGE6Zm9jdXMgcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cblxuLyogUG9ydGZvbGlvIGltYWdlcyBhcmUgaW4gY29sb3IsIG9uIGhvdmVyIHRoZXkgYmVjb21lIEImVyAqL1xuLnBvcnRmb2xpbyBhIGltZyB7XG4gIC13ZWJraXQtZmlsdGVyOiBub25lO1xuICAgICAgICAgIGZpbHRlcjogbm9uZTsgfVxuXG4ucG9ydGZvbGlvIGE6aG92ZXIgaW1nIHtcbiAgZmlsdGVyOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGZpbHRlciBpZD0nZ3JheXNjYWxlJz48ZmVDb2xvck1hdHJpeCB0eXBlPSdtYXRyaXgnIHZhbHVlcz0nMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMCAwIDAgMSAwJy8+PC9maWx0ZXI+PC9zdmc+I2dyYXlzY2FsZVwiKTtcbiAgLyogRmlyZWZveCAzLjUrICovXG4gIGZpbHRlcjogZ3JheTtcbiAgLyogSUU2LTkgKi9cbiAgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgLyogQ2hyb21lIDE5KyAmIFNhZmFyaSA2KyAqLyB9IiwiLyogIyMgTW9kdWxlIEFib3V0IE1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hYm91dC1pbm5lciA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMzVweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjdweCkge1xuICAgIC5hYm91dC1pbm5lciA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfSIsIi8qICMjIEZvcm0gRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWYwZWY7XG4gIC8qIFB1cnBsZSBHcmF5ICovXG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICByZXNpemU6IG5vbmU7XG4gIGhlaWdodDogMTQwcHg7XG4gIHBhZGRpbmc6IDEwcHg7IH0iLCIvKiAjIyBBd2FyZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmF3YXJkcy1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIG1hcmdpbjogMjRweCAwIDEycHg7XG4gIGNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuXG51bC5hd2FyZHMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7IH0iLCIvKiAjIyBUYXhvbm9teVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGF4LXR5cGVfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGNvbG9yOiAjMTgxOTI2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuXG4udGF4LXR5cGVfX2l0ZW0gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTBweCAwOyB9IiwiXG4vKiAjIyBTaXRlIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1mb290ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTkyNjtcbiAgLyogUmljaCBCbGFjayAqLyB9XG5cbi5zaXRlLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLXRvcDogMzVweDtcbiAgcGFkZGluZy1ib3R0b206IDM1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2l0ZS1mb290ZXIgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgICAuc2l0ZS1mb290ZXIgc3BhbiB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9IiwiLypcblRvIGNoYW5nZSB0aGlzIGxpY2Vuc2UgaGVhZGVyLCBjaG9vc2UgTGljZW5zZSBIZWFkZXJzIGluIFByb2plY3QgUHJvcGVydGllcy5cblRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIGZpbGUsIGNob29zZSBUb29scyB8IFRlbXBsYXRlc1xuYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuXG4qL1xuLyogXG4gICAgQ3JlYXRlZCBvbiA6IE5vdiAyMCwgMjAxNywgMzo1OToxMiBQTVxuICAgIEF1dGhvciAgICAgOiBzaW1wbGUtdXNlclxuKi9cblxuLyogIyMgQ29va2llIE5vdGljZSAocGx1Z2luKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jY29va2llLW5vdGljZSB7XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5jb29raWUtbm90aWNlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE5cHg7IH1cblxuI2Nvb2tpZS1ub3RpY2UgLmJ1dHRvbi53cC1kZWZhdWx0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDJweCAxMnB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjYmJiO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgjMTgxOTI2KSwgdG8oIzE4MTkyNikpIHJlcGVhdCBzY3JvbGwgMCAwICMxODE5MjY7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzE4MTkyNiwgIzE4MTkyNikgcmVwZWF0IHNjcm9sbCAwIDAgIzE4MTkyNjtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMTgxOTI2LCAjMTgxOTI2KSByZXBlYXQgc2Nyb2xsIDAgMCAjMTgxOTI2O1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjMTgxOTI2LCAjMTgxOTI2KSByZXBlYXQgc2Nyb2xsIDAgMCAjMTgxOTI2O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMTgxOTI2LCAjMTgxOTI2KSByZXBlYXQgc2Nyb2xsIDAgMCAjMTgxOTI2O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4iLCIvKiAjIyBHbyB0byBUb3Bcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdvLXRvLXRvcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMjAwO1xuICBib3R0b206IDEyMHB4O1xuICBsZWZ0OiA4OSU7XG4gIC8qIFBPU0lUSU9OQUwgQ0xBU1MgKi9cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIGZ4ICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgb3BhY2l0eSAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDk5OTk7IH1cblxuLmdvLXRvLXRvcC5yZXZlYWwge1xuICAvKiBKUyBDTEFTUyBDT05UUk9MTEVSICovXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgLmdvLXRvLXRvcCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfSIsIi8qICMjIFNwZWNpZmljIFN0eWxlc1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLyogSW5jcmVhc2luZyBtYXJnaW4gZm9yIHBvcnRmb2xpbyBzaW5nbGUgcGljdHVyZXMgKi9cclxuLnNpbmdsZS1wb3J0Zm9saW8gcCA+IGltZyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxyXG5cclxuLnNpbmdsZSAubWFpbi1jb250ZW50IHtcclxuICBtYXJnaW4tdG9wOiAxMDBweDsgfSJdfQ== */
