@charset "UTF-8";
/*!
	Theme Name: Kim Keat Satay Theme
	Theme URI:
	Description: This is the theme created for Kim Keat Satay
	Author: Khoozh
	Author URI:

	Version: 1.0.0

	Tags: one-column, two-columns, left-sidebar, right-sidebar, accessibility-ready, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready

	Template: genesis

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
/* Table of Contents
sass/
|
|- abstracts/
|   |- _variables.scss    # Sass Variables
|   |- _functions.scss    # Sass Functions
|   |- _mixins.scss       # Sass Mixins
|   |- _placeholders.scss # Sass Placeholders
|
|- fonts/
|   |- _nucleo.scss       # Icon Pack
|
|– base/
|   |- _reset.scss        # Reset/normalize
|   |- _typography.scss   # Typography rules
|   |- _defaults.scss     # Genesis Defaults
|   |- _animations.scss   # Animations
|
|– components/
|   |- _graphics.scss            # Graphics
|   |- _buttons.scss             # Buttons
|   |- _widget.scss              # Genesis Default Widget and Plugins
|   |- _forms.scss               # Forms
|   |- _list-pagination.scss     # List and pagination
|   |- -title-divider.scss       # Title and dividers
|   |- _objects.scss             # Customised objects
|   |- _banners.scss             # Banners
|   |- _hero-slider.scss         # Hero Slider
|
|– layout/
|   |- _grid.scss         # Grid
|   |- _gs-structure-layout.scss # Genesis default structure and layout
|   |- _header.scss       # Header
|   |- _sidebar.scss      # Sidebar
|   |- _footer.scss       # Footer
|
|– pages/
|   |- _post-archive.scss        # Post archive styles
|   |- _post-single.scss         # Single Post Styles
|
|– themes/
|   |- _khoozh.scss       # Default theme
|   |- _woocommerce.scss  # Woocommerce Styles
|
|– vendors/
|   |- _slick.scss        # Slick Slider
|   |- _slick-theme.scss  # Slick Slider Theme
|   |- _featherlight.scss # Featherlight Gallery
|
|- main.scss              # Main Sass file
*/
/* Variables
 ============================================= */
/* Body Text Styles */
/* Font Weight */
/* Colors */
/* Etc. */
/* Background pattern image link*/
/* Graphic divider link */
/* Mixins
 ============================================= */
/* Media Queries
 --------------------------------------------- */
/* Container
 --------------------------------------------- */
/* Image Aspect Ratio
 ---------------------------------------------
 <figure> // Apply image ratio to figure
   <img src=""/>
 </figure>
*/
/* Absolute
 --------------------------------------------- */
/* Gradient Fade
 --------------------------------------------- */
/* Badge / Tag label
 --------------------------------------------- */
/* Icons
 --------------------------------------------- */
table.cart .product-remove a:after, .wpcf7 form .wpcf7-response-output:before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Circle Object
 --------------------------------------------- */
/* Thumbnail Card
 ---------------------------------------------
<article class="thumbnail-card">
  <figure>
    <img src="">
  </figure>
  <div class="caption">
    <h4></h4>
    <p></p>
    <a href="#"></a>
  </div>
</article>
 */
/* Line Border
 --------------------------------------------- */
/* Child Margin
 --------------------------------------------- */
/* Clear Fix
--------------------------------------------- */
/* Functions
 ============================================= */
/* Placeholders
 ============================================= */
/* White Gradient
  --------------------------------------------- */
/* Transitions
 --------------------------------------------- */
#woocommerce-product-search-field, .interactive-cart-header .interactive-cart-close, .woocommerce-MyAccount-navigation-link a, .shop_table.woocommerce-checkout-review-order-table .variation, li.product, .menu-shop-menu-container a,
.widget_product_categories a, .hero-slider, input[type=checkbox] + *:after, .menu-primary > li.menu-item-has-children:before, .slick-dots li button:before {
  transition: all 0.3s ease-in-out;
}

/* Flexbox
 --------------------------------------------- */
.woocommerce-pagination .page-numbers, .woocommerce-info a,
.woocommerce-message a, .interactive-cart-summary > div, #cart-items, .widget_layered_nav_filters ul li a::before, table.cart .product-remove a, #sidebar-toggle-close, .single-outlet .direction-link, .pagination, .wpcf7 form .wpcf7-response-output:before, .btn-icon-text i, #woocommerce-product-search-button, .header-widget-area a,
.header-widget-area button, .menu-toggle {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: flex;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Slider */
.slick-loading .slick-list {
  background: #fff url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/ajax-loader.gif") center center no-repeat;
}

/* Icons */
@font-face {
  font-family: "slick";
  src: url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/fonts/slick.eot");
  src: url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/fonts/slick.eot#iefix") format("embedded-opentype"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/fonts/slick.woff") format("woff"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/fonts/slick.ttf") format("truetype"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/js/plugins/slick/fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal;
}
/* Arrows */
.slick-next,
.slick-prev {
  position: absolute;
  display: block;
  height: 30px;
  width: 30px;
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 2;
}
.slick-next:focus, .slick-next:hover,
.slick-prev:focus,
.slick-prev:hover {
  outline: none;
  background: transparent;
  color: transparent;
}
.slick-next:focus:before, .slick-next:hover:before,
.slick-prev:focus:before,
.slick-prev:hover:before {
  opacity: 1;
}
.slick-next.slick-disabled:before,
.slick-prev.slick-disabled:before {
  opacity: 0.25;
}
.slick-next:before,
.slick-prev:before {
  font-family: "slick";
  font-size: 30px;
  line-height: 1;
  color: #ddd;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: 15px;
}
[dir=rtl] .slick-prev {
  left: auto;
  right: -35px;
}
.slick-prev:before {
  content: "←";
}
[dir=rtl] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: 15px;
}
[dir=rtl] .slick-next {
  left: -25px;
  right: auto;
}
.slick-next:before {
  content: "→";
}
[dir=rtl] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0;
  font-size: 0;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}
.slick-dots li button:focus, .slick-dots li button:hover {
  outline: none;
}
.slick-dots li button:focus:before, .slick-dots li button:hover:before {
  opacity: 1;
  font-size: 18px;
}
.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "•";
  width: 20px;
  height: 20px;
  font-family: "slick";
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  color: black;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
  color: black;
  opacity: 0.75;
}

/**
 * Featherlight – ultra slim jQuery lightbox
 * Version 1.7.13 - http://noelboss.github.io/featherlight/
 *
 * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
 * MIT Licensed.
**/
html.with-featherlight {
  /* disable global scrolling when featherlights are visible */
  overflow: hidden;
}

.featherlight {
  display: none;
  /* dimensions: spanning the background from edge to edge */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2147483647; /* z-index needs to be >= elements on the site. */
  /* position: centering content */
  text-align: center;
  /* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
  white-space: nowrap;
  /* styling */
  cursor: pointer;
  background: #333;
  /* IE8 "hack" for nested featherlights */
  background: rgba(0, 0, 0, 0);
}

/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
  background: rgba(0, 0, 0, 0.8);
}

.featherlight:before {
  /* position: trick to center content vertically */
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.featherlight .featherlight-content {
  /* make content container for positioned elements (close button) */
  position: relative;
  /* position: centering vertical and horizontal */
  text-align: left;
  vertical-align: middle;
  display: inline-block;
  /* dimensions: cut off images */
  overflow: auto;
  padding: 25px 25px 0;
  border-bottom: 25px solid transparent;
  /* dimensions: handling large content */
  margin-left: 5%;
  margin-right: 5%;
  max-height: 95%;
  /* styling */
  cursor: auto;
  /* reset white-space wrapping */
  white-space: normal;
}

/* contains the content */
.featherlight .featherlight-inner {
  /* make sure its visible */
  display: block;
}

/* don't show these though */
.featherlight script.featherlight-inner,
.featherlight link.featherlight-inner,
.featherlight style.featherlight-inner {
  display: none;
}

.featherlight .featherlight-close-icon {
  /* position: centering vertical and horizontal */
  position: absolute;
  z-index: 9999;
  top: 0;
  right: 0;
  /* dimensions: 25px x 25px */
  line-height: 25px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  /* styling */
  cursor: pointer;
  text-align: center;
  font-family: Arial, sans-serif;
  background: #fff; /* Set the background in case it overlaps the content */
  background: rgba(255, 255, 255, 0.3);
  color: #000;
  border: none;
  padding: 0;
}

/* See http://stackoverflow.com/questions/16077341/how-to-reset-all-default-styles-of-the-html5-button-element */
.featherlight .featherlight-close-icon::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.featherlight .featherlight-image {
  /* styling */
  width: 100%;
}

.featherlight-iframe .featherlight-content {
  /* removed the border for image croping since iframe is edge to edge */
  border-bottom: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
}

.featherlight iframe {
  /* styling */
  border: none;
}

.featherlight * { /* See https://github.com/noelboss/featherlight/issues/42 */
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
  .featherlight .featherlight-content {
    /* dimensions: maximize lightbox with for small screens */
    margin-left: 0;
    margin-right: 0;
    max-height: 98%;
    padding: 10px 10px 0;
    border-bottom: 10px solid transparent;
  }
}
/* hide non featherlight items when printing */
@media print {
  html.with-featherlight > * > :not(.featherlight) {
    display: none;
  }
}
/* --------------------------------

baseicon Web Font
Generated using nucleoapp.com

-------------------------------- */
@font-face {
  font-family: "baseicon";
  src: url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.eot");
  src: url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.eot") format("embedded-opentype"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.woff") format("woff"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.ttf") format("truetype"), url("https://demo.co-enterprise.com.sg/kimkeatsatay/wp-content/themes/kimkeatsatay-theme/fonts/baseicon.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
/*------------------------
	base class definition
-------------------------*/
.icon {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*------------------------
  change icon size
-------------------------*/
/* relative units */
.icon-sm {
  font-size: 0.8em;
}

.icon-lg {
  font-size: 1.2em;
}

/* absolute units */
.icon-16 {
  font-size: 16px;
}

.icon-32 {
  font-size: 32px;
}

/*----------------------------------
  add a square/circle background
-----------------------------------*/
.icon-bg-square,
.icon-bg-circle {
  padding: 0.35em;
  background-color: #eee;
}

.icon-bg-circle {
  border-radius: 50%;
}

/*------------------------------------
  use icons as list item markers
-------------------------------------*/
.icon-ul {
  padding-left: 0;
  list-style-type: none;
}
.icon-ul > li {
  display: flex;
  align-items: flex-start;
  line-height: 1.4;
}
.icon-ul > li > .icon {
  margin-right: 0.4em;
  line-height: inherit;
}

/*------------------------
  spinning icons
-------------------------*/
.icon-is-spinning {
  -webkit-animation: icon-spin 2s infinite linear;
  -moz-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear;
}

@-webkit-keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}
@-moz-keyframes icon-spin {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(360deg);
  }
}
@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/*------------------------
  rotated/flipped icons
-------------------------*/
.icon-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  transform: rotate(90deg);
}

.icon-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.icon-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -moz-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  -o-transform: rotate(270deg);
  transform: rotate(270deg);
}

.icon-flip-y {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
  -webkit-transform: scale(-1, 1);
  -moz-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  -o-transform: scale(-1, 1);
  transform: scale(-1, 1);
}

.icon-flip-x {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: scale(1, -1);
  -moz-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  -o-transform: scale(1, -1);
  transform: scale(1, -1);
}

/*------------------------
	icons
-------------------------*/
.icon-account::before {
  content: "\ea01";
}

.icon-bag-09::before {
  content: "\ea02";
}

.icon-checked-symbol::before {
  content: "\ea03";
}

.icon-facebook-1::before {
  content: "\ea04";
}

.icon-facebook-circle::before {
  content: "\ea05";
}

.icon-facebook::before {
  content: "\ea06";
}

.icon-fax::before {
  content: "\ea07";
}

.icon-ic_access_time_48px::before {
  content: "\ea08";
}

.icon-ic_arrow_back_36px::before {
  content: "\ea09";
}

.icon-ic_close_48px::before {
  content: "\ea0a";
}

.icon-ic_mail_outline_48px::before {
  content: "\ea0b";
}

.icon-instagram::before {
  content: "\ea0c";
}

.icon-lock::before {
  content: "\ea0d";
}

.icon-phone-2-2::before {
  content: "\ea0e";
}

.icon-phone-2::before {
  content: "\ea0f";
}

.icon-pin::before {
  content: "\ea10";
}

.icon-placeholder::before {
  content: "\ea11";
}

.icon-plus::before {
  content: "\ea12";
}

.icon-shopping-cart::before {
  content: "\ea13";
}

.icon-single-01::before {
  content: "\ea14";
}

.icon-star::before {
  content: "\ea15";
}

.icon-whatsapp-logo::before {
  content: "\ea16";
}

.icon-youtube::before {
  content: "\ea17";
}

.icon-zoom-2::before {
  content: "\ea18";
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

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

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small, .footer-widget-area p {
  font-size: 80%;
  line-height: 1.3;
  display: inline-block;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
[type=button],
[type=reset],
[type=submit],
button {
  -webkit-appearance: button;
  border: 0;
  cursor: pointer;
  background-color: transparent;
}

/**
 * Remove the inner border and padding in Firefox.
 */
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

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

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

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

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

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

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box Sizing
 --------------------------------------------- */
html {
  box-sizing: border-box;
}

*,
*::after,
*::before {
  box-sizing: inherit;
}

/* Typographical Elements
 --------------------------------------------- */
html {
  font-size: 56%;
  /* 10px browser default */
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}
@media only screen and (min-width: 960px) {
  html {
    font-size: 62.5%;
  }
}

/* Chrome fix */
body > div {
  font-size: 14px;
  font-size: 1.4rem;
}

body {
  background-color: #fff;
  color: #555;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.625;
}

button,
input:focus,
input[type=button],
input[type=reset],
input[type=submit],
textarea:focus,
.button,
.gallery img {
  transition: all 0.2s ease-in-out;
}

ol,
ul {
  margin: 0;
  padding: 0;
}

li {
  list-style-type: none;
}

hr {
  border: 0;
  border-collapse: collapse;
  border-top: 1px solid #eee;
  clear: both;
  margin: 30px 0;
}

b,
strong {
  font-weight: 700;
}

blockquote,
cite,
em,
i {
  font-style: italic;
}

mark {
  background: #ddd;
  color: #333;
}

blockquote {
  margin: 30px;
}

blockquote::before {
  content: "“";
  display: block;
  font-size: 30px;
  font-size: 3rem;
  height: 0;
  left: -20px;
  position: relative;
  top: -10px;
}

/* Headings
 --------------------------------------------- */
h1,
h2,
h3,
form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .checkout_coupon h4,
h4,
h5,
h6 {
  font-weight: 700;
  color: #ff850d;
  line-height: 1.2;
  margin: 0 0 2rem;
}

h1 {
  font-size: 5rem;
  font-family: "Libre Baskerville", serif;
}

h2 {
  font-size: 3.6rem;
  font-family: "Libre Baskerville", serif;
}

h3, form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  font-size: 2.4rem;
  font-family: "Libre Baskerville", serif;
}

h4 {
  font-size: 1.8rem;
  font-weight: 400;
}

h5 {
  font-size: 1.6rem;
}

h6 {
  font-size: 1.3rem;
}

a {
  text-decoration: none;
  font-weight: 700;
  color: #d96c00;
}
a:hover {
  text-decoration: underline;
  color: #a65200;
}

label {
  font-size: 1.4rem;
  color: hsl(0deg, 0%, 60%);
}

/* Text
 --------------------------------------------- */
p {
  font-size: 1.5rem;
  line-height: 2.4rem;
  margin: 0 0 15px;
}
p.x-small {
  font-size: 1.2rem;
  line-height: 1.2;
}
p.small, .woocommerce-privacy-policy-text p, .entry-content p.entry-meta, .post-entry-list p, .site-footer > .wrap > p {
  font-size: 1.4rem;
  line-height: 1.2;
}
p.large {
  font-size: 1.8rem;
  line-height: 1.5;
}

/* Dark theme
 --------------------------------------------- */
.post-single .has-post-thumbnail .entry-header a, .footer-widgets a,
.post-single .has-post-thumbnail .entry-header p,
.footer-widgets p {
  color: #fff;
}
.post-single .has-post-thumbnail .entry-header h1, .footer-widgets h1,
.post-single .has-post-thumbnail .entry-header h2,
.footer-widgets h2,
.post-single .has-post-thumbnail .entry-header h3,
.footer-widgets h3,
.footer-widgets form.woocommerce-checkout .col-1 h4,
.footer-widgets form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .footer-widgets h4,
form.woocommerce-checkout .checkout_coupon .footer-widgets h4,
.post-single .has-post-thumbnail .entry-header h4,
.footer-widgets h4,
.post-single .has-post-thumbnail .entry-header h5,
.footer-widgets h5,
.post-single .has-post-thumbnail .entry-header h6,
.footer-widgets h6 {
  color: #fff;
}
.post-single .has-post-thumbnail .entry-header hr, .footer-widgets hr {
  border-color: #fff;
}

.post-single .entry-content h2,
.post-single .entry-content h3,
.post-single .entry-content form.woocommerce-checkout .col-1 h4,
.post-single .entry-content form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .post-single .entry-content h4,
form.woocommerce-checkout .checkout_coupon .post-single .entry-content h4,
.post-single .entry-content h4,
.post-single .entry-content h5,
.post-single .entry-content h6 {
  line-height: 1.5;
  margin-top: 4rem;
}
.post-single .entry-content li,
.post-single .entry-content p {
  margin-bottom: 1.2em;
  line-height: 2;
  text-align: justify;
}
@media only screen and (max-width: 670px) {
  .post-single .entry-content li,
.post-single .entry-content p {
    font-size: 1.7rem;
  }
}

/* Defaults
 ============================================= */
/* Objects
 --------------------------------------------- */
.wp-caption,
embed,
iframe,
img,
object,
video {
  max-width: 100%;
}

img {
  height: auto;
  vertical-align: top;
}

figure {
  margin: 0;
}

/* Gallery
 --------------------------------------------- */
.gallery {
  overflow: hidden;
}
.gallery img {
  height: auto;
}
.gallery img:focus, .gallery img:hover {
  outline: none;
}

/* Tables
 --------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 2;
  margin-bottom: 40px;
  width: 100%;
}

tbody {
  border-bottom: 1px solid #eee;
}

td,
th {
  text-align: left;
}
td:first-child,
th:first-child {
  padding-left: 0;
}

td {
  border-top: 1px solid #eee;
  padding: 6px;
}

th {
  font-weight: 400;
  padding: 0 6px;
}

/* Screen Reader Text
 --------------------------------------------- */
.screen-reader-shortcut,
.screen-reader-text,
.screen-reader-text span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-shortcut:focus,
.screen-reader-text:focus {
  background: #fff;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #333;
  display: block;
  font-size: 1em;
  font-weight: 700;
  height: auto;
  padding: 15px 23px 14px;
  text-decoration: none;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

.more-link {
  position: relative;
}

/* Image release
 --------------------------------------------- */
.image-release {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: none;
  display: block;
}

/* Vertical align column objects
 --------------------------------------------- */
.vertical-center .wp-block-column {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

/* Animations
 ============================================= */
.fade-scale-before, .fade-left-before, .fade-right-before, .hidden {
  transition: all 0.5s ease-in-out;
  opacity: 0;
}

/* fade in top */
.hidden {
  transform: translateY(30px);
}

.shown {
  opacity: 1;
  transform: translateY(0px);
}

/* fade in right */
.fade-right-before {
  transform: translateX(-30px);
}

.fade-right {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in left */
.fade-left-before {
  transform: translateX(30px);
}

.fade-left {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in scale */
.fade-scale-before {
  transform: scale(0.9);
}

.fade-scale {
  opacity: 1;
  transform: scale(1);
}

/* Grid
 ============================================= */
/* Column Mixin
 --------------------------------------------- */
.woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details, .shop-banner p, .post-archive .archive-description p, .entry-header p,
.regular-banner p, .col-1, .checkout_coupon {
  padding: 0 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details, .shop-banner p, .post-archive .archive-description p, .entry-header p,
.regular-banner p, .col-1, .checkout_coupon {
    padding: 0;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
  }
}

.cols-2, .col2-set, .woocommerce-account.logged-in .woocommerce {
  display: flex;
  flex-flow: row wrap;
}
.cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
    width: calc((100% - (30px * (2 - 1))) / 2);
    margin-right: 30px;
  }
  .cols-2 > *:nth-child(2n), .col2-set > *:nth-child(2n), .woocommerce-account.logged-in .woocommerce > *:nth-child(2n) {
    margin-right: 0;
  }
}

.cols-3 {
  display: flex;
  flex-flow: row wrap;
}
.cols-3 > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-3 > * {
    width: calc((100% - (30px * (3 - 1))) / 3);
    margin-right: 30px;
  }
  .cols-3 > *:nth-child(3n) {
    margin-right: 0;
  }
}

/* Column Layouts
 --------------------------------------------- */
@media only screen and (min-width: 670px) {
  .two-one > *:nth-child(1) {
    flex: 2 1 0;
  }
  .two-one > *:nth-child(2) {
    flex: 1 1 0;
  }
}

/* Wrapper
 --------------------------------------------- */
section.wrapper {
  width: 100%;
  padding: 50px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper {
    padding: 80px 10%;
  }
}
section.wrapper-small {
  width: 100%;
  padding: 15px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-small {
    padding: 30px 10%;
  }
}
section.wrapper-large {
  width: 100%;
  padding: 80px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-large {
    padding: 120px 10%;
  }
}
section.wrapper-full {
  width: 100%;
  padding: 50px 0;
}
@media only screen and (min-width: 960px) {
  section.wrapper-full {
    padding: 80px 0;
  }
}

/* Genesis Structure and Layout
  ============================================== */
/* Site Container
 --------------------------------------------- */
.site-container {
  word-wrap: break-word;
  overflow: hidden;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  min-height: 100vh;
}

main.content {
  flex: 1 1 100%;
}

.site-header + * {
  margin-top: 67px;
}

/* Common Classes
------------------------------------------------------------------------------------------ */
/* Genesis
 --------------------------------------------- */
.after-entry,
.archive-description,
.author-box {
  margin-bottom: 40px;
}

.after-entry {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
  padding: 20px 30px;
}

.after-entry .widget:last-of-type {
  margin-bottom: 0;
}

.breadcrumb {
  border-bottom: 1px solid #eee;
  font-size: 16px;
  font-size: 1.6rem;
  margin-bottom: 40px;
  padding-bottom: 10px;
}

.archive-description p:last-child,
.author-box p:last-child {
  margin-bottom: 0;
}

/* Search Form
 --------------------------------------------- */
.search-form {
  overflow: hidden;
}

.entry-content .search-form {
  margin-bottom: 40px;
  width: 50%;
}

.post-password-form input[type=submit],
.search-form input[type=submit] {
  margin-top: 10px;
}

.widget_search input[type=submit] {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  width: 1px;
}

/* Titles
 --------------------------------------------- */
.entry-title a,
.sidebar .widget-title a {
  color: #333;
  text-decoration: none;
}

.entry-title a:focus,
.entry-title a:hover {
  color: #0073e5;
}

.widget-title {
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 20px;
}

/* WordPress
 --------------------------------------------- */
.aligncenter {
  text-align: center;
}

a.aligncenter img {
  display: block;
  margin: 0 auto;
}

a.alignnone {
  display: inline-block;
}

.alignleft {
  float: left;
  text-align: left;
}

.alignright {
  float: right;
  text-align: right;
}

a.alignleft,
a.alignnone,
a.alignright {
  max-width: 100%;
}

.aligncenter,
img.centered {
  display: block;
  margin: 0 auto 30px;
}

.wp-caption.alignleft,
a.alignleft,
img.alignleft {
  margin: 0 20px 20px 0;
}

.wp-caption.alignright,
a.alignright,
img.alignright {
  margin: 0 0 20px 20px;
}

.gallery-caption,
.wp-caption-text {
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0;
  text-align: center;
}

.entry-content p.wp-caption-text {
  margin-bottom: 0;
}

.entry-content .wp-audio-shortcode,
.entry-content .wp-playlist,
.entry-content .wp-video {
  margin: 0 0 30px;
}

/* Header Buttons
 --------------------------------------------- */
#woocommerce-product-search-button, .header-widget-area a,
.header-widget-area button, .menu-toggle {
  width: 40px;
  height: 40px;
  background-color: hsla(0deg, 0%, 0%, 0);
  border-radius: 50%;
  font-size: 17px;
  color: hsl(0deg, 0%, 100%);
  font-weight: 400;
  line-height: 1;
}
#woocommerce-product-search-button:hover, .header-widget-area a:hover,
.header-widget-area button:hover, .menu-toggle:hover,
#woocommerce-product-search-button a:hover,
.menu-toggle a:hover {
  text-decoration: none;
}
#woocommerce-product-search-button:hover, .header-widget-area a:hover,
.header-widget-area button:hover, .menu-toggle:hover {
  color: #FF850D;
}

/* Skip Links
 --------------------------------------------- */
.genesis-skip-link {
  margin: 0;
}
.genesis-skip-link .skip-link-hidden {
  display: none;
  visibility: hidden;
}
.genesis-skip-link li {
  height: 0;
  list-style: none;
  width: 0;
}

/* Site Header
 --------------------------------------------- */
.site-header {
  position: fixed;
  z-index: 999;
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/header-bg.jpg") no-repeat center/cover;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
  top: 0;
  width: 100%;
}
.site-header > .wrap {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  /* Structure */
}
.site-header > .wrap > *.pre-header {
  flex: 0 0 100%;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.title-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.header-widget-area {
  flex: 1 1 0;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.header-widget-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.menu-toggle {
  flex: 1 1 0;
}

/* Title Area
 --------------------------------------------- */
.title-area {
  width: 130px;
  padding: 12px 0;
  order: 2;
  margin: 0 auto;
}
@media only screen and (min-width: 960px) {
  .title-area {
    order: 0;
    margin: 0 30px 0 5%;
  }
}
.title-area a {
  display: block;
  max-width: 230px;
  margin: 0 auto;
}

.site-description,
.wp-custom-logo .site-title {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

/* Responsive Menu
 --------------------------------------------- */
.menu .menu-item:focus {
  position: static;
}

.menu .menu-item > a:focus + ul.sub-menu,
.menu .menu-item.sfHover > ul.sub-menu {
  left: auto;
  opacity: 1;
}

.genesis-responsive-menu {
  position: relative;
  display: none;
}
@media only screen and (min-width: 960px) {
  .genesis-responsive-menu {
    display: inherit;
  }
}

/* Menu Toggle & Sub Menu Toggle */
.menu-toggle,
.sub-menu-toggle {
  background-color: transparent;
  border-width: 0;
  color: #FF850D;
  display: block;
  margin: 0 auto;
  overflow: hidden;
  text-align: center;
  visibility: visible;
}
@media only screen and (min-width: 960px) {
  .menu-toggle,
.sub-menu-toggle {
    display: none;
    visibility: hidden;
  }
}
.menu-toggle:focus, .menu-toggle:hover,
.sub-menu-toggle:focus,
.sub-menu-toggle:hover {
  background-color: transparent;
  border-width: 0;
}

/* Menu Toggle */
.menu-toggle {
  position: relative;
  z-index: 1000;
  overflow: hidden;
  padding: 0;
  order: 4;
  margin: 0;
  font-size: 0;
  text-align: right;
}
.menu-toggle::before {
  position: relative;
  text-rendering: auto;
  margin-right: 20px;
}
.menu-toggle.activated::before {
  content: "\f335";
}

/* Sub Menu Toggle */
.sub-menu-toggle {
  position: absolute;
  right: 5px;
  top: 15px;
  z-index: 100;
  text-align: center;
}
.sub-menu-toggle:before {
  display: inline-block;
  text-rendering: auto;
  transform: rotate(0);
  transition: transform 0.25s ease-in-out;
  color: #FF850D;
}
.sub-menu-toggle.activated:before {
  transform: rotate(180deg);
  color: #ff9f40;
}

/* Header Menu
 --------------------------------------------- */
@media only screen and (min-width: 960px) {
  .menu-primary > li:focus, .menu-primary > li:hover {
    border-bottom: 3px solid #FF850D;
  }
}

/* Header Menu Structure */
.nav-primary {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 109px;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 99;
  overflow-y: scroll;
  display: none;
}
@media only screen and (min-width: 960px) {
  .nav-primary {
    position: relative;
    top: 0;
    height: auto;
    width: auto;
    background-color: transparent;
    display: flex;
    flex-flow: row wrap;
    align-self: stretch;
    overflow-y: visible;
    margin-left: auto;
    margin-right: 0%;
  }
}
@media only screen and (min-width: 960px) {
  .nav-primary .wrap {
    height: 100%;
  }
}

/* Main Header Menu */
.menu-primary {
  display: flex;
  flex-flow: row wrap;
  position: relative;
  line-height: 1;
  height: 100%;
  background-color: rgb(250, 250, 250);
  box-shadow: inset 0 0 20px 0 rgba(0, 0, 0, 0.1);
  /* Generic li style*/
  /* Generic nav link style */
  /* First level li */
  /* Level 2 Menu */
}
@media only screen and (max-width: 670px) {
  .menu-primary {
    justify-content: center;
  }
}
@media only screen and (min-width: 960px) {
  .menu-primary {
    background-color: transparent;
    box-shadow: none;
  }
}
.menu-primary .sub-menu {
  z-index: 99;
  box-shadow: inset 0 0 8px 0 rgba(0, 0, 0, 0.15);
  background-color: #f0f0f0;
  display: none;
  /* Second level li */
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu {
    position: absolute;
    min-width: 180px;
    width: auto;
    opacity: 0;
    left: 9999px;
    background-color: #fff;
    box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
    border-radius: 0 0 8px 8px;
  }
}
/* Styles for Main Navigation
--------------------------------------------- */
@media only screen and (min-width: 960px) {
  .menu-primary .menu-item {
    border: 0;
  }
}
.menu-primary > li {
  position: relative;
  width: 100%;
  /* If have children */
  /* If Highlighted */
}
@media only screen and (min-width: 960px) {
  .menu-primary > li {
    display: block;
    height: 100%;
    width: auto;
  }
}
.menu-primary > li.menu-item-has-children:before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 7px solid #FF850D;
  left: calc(50% - 10px);
  opacity: 0;
  bottom: 0;
}
.menu-primary > li.menu-item-has-children:hover:before {
  opacity: 1;
}
.menu-primary > li.menu-item--highlight > a {
  background-color: #FF850D;
  color: #fff;
  margin: 0 10px;
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item:hover {
    background-color: #FF850D;
  }
  .menu-primary .sub-menu .menu-item:hover > a {
    color: #fff;
  }
}

.menu-primary a {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  font-weight: 700;
  font-family: "Poppins", sans-serif;
  color: #fff;
  font-size: 1.4rem;
}
@media only screen and (min-width: 960px) {
  .menu-primary a {
    height: 100%;
    text-align: left;
    align-items: center;
    justify-content: flex-start;
  }
}
.menu-primary a:hover {
  text-decoration: none;
}
.menu-primary a i {
  font-weight: 400;
}
.menu-primary > li > a {
  padding: 20px 16px;
}
.menu-primary .sub-menu .menu-item > a {
  padding: 14px 15px;
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item > a {
    font-size: 14px;
  }
  .menu-primary .sub-menu .menu-item > a:hover {
    color: #fff;
    background-color: #FF850D;
  }
}

/* Header Widget Area
 --------------------------------------------- */
.header-widget-area {
  display: flex;
  flex-flow: row nowrap;
  position: relative;
  z-index: 101;
  order: 0;
}
@media only screen and (min-width: 960px) {
  .header-widget-area {
    order: 3;
    margin: 0 20px 0 20px;
  }
}
.header-widget-area .menu {
  display: flex;
  flex-flow: row wrap;
}
.header-widget-area .menu li {
  margin-bottom: 0;
}
.header-widget-area .widget {
  margin-bottom: 0;
}
/* Pre Header
 --------------------------------------------- */
.pre-header {
  position: relative;
  font-size: 10px;
  display: flex;
  justify-content: space-between;
  background-color: #f7f7f7;
  padding: 3px 3%;
}
.pre-header > * {
  margin-bottom: 0;
}
.pre-header > * i {
  margin: 0 3px;
  font-weight: 700;
}
.pre-header > *:nth-child(odd) {
  flex: 1 1 0;
  display: flex;
  line-height: 2;
  align-items: center;
}
.pre-header > *:nth-child(even) {
  flex: 11 1 0;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .pre-header > *:nth-child(even) {
    flex: 2 1 0;
  }
}
.pre-header > *:last-child {
  text-align: right;
  justify-content: flex-end;
}
.pre-header p {
  color: #B70000;
}
@media only screen and (max-width: 670px) {
  .pre-header a span {
    display: none;
  }
}

/* Sidebar
 --------------------------------------------- */
.sidebar {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5;
}

.sidebar .widget {
  margin-bottom: 50px;
}

.sidebar p {
  margin-bottom: 20px;
}

/* Footer
  ============================================== */
/* Footer Widgets
 --------------------------------------------- */
.footer-widgets {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/header-bg.jpg") repeat-y center/cover;
  width: 100%;
  padding: 60px 5%;
}
@media only screen and (max-width: 670px) {
  .footer-widgets {
    text-align: center;
  }
}
.footer-widgets:after {
  opacity: 1;
}
.footer-widgets .wrap {
  display: flex;
  flex-flow: column nowrap;
}
@media only screen and (min-width: 960px) {
  .footer-widgets .wrap {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }
  .footer-widgets .wrap > * {
    margin-right: 30px;
  }
  .footer-widgets .wrap > *:last-child {
    margin-right: 0;
  }
}
.footer-widgets .widget-title {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  border-bottom: 1px solid #fff;
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.footer-widgets .widget {
  margin-bottom: 20px;
}

.footer-widget-area {
  margin-bottom: 20px;
}
.footer-widget-area p {
  color: #FFF1E0;
}
@media only screen and (min-width: 960px) {
  .footer-widget-area {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 960px) {
  .footer-widget-area:nth-child(1) {
    flex: 1 1 0;
  }
}
@media only screen and (min-width: 960px) {
  .footer-widget-area:nth-child(2) {
    flex: 1 1 0;
  }
}
@media only screen and (min-width: 960px) {
  .footer-widget-area:nth-child(3) {
    flex: 1 1 0;
  }
}
@media only screen and (min-width: 960px) {
  .footer-widget-area:nth-child(4) {
    flex: 1 1 0;
  }
}

.footer-widgets .menu {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-end;
  align-items: flex-start;
}
.footer-widgets .menu li {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .footer-widgets .menu li {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 670px) {
  .footer-widgets .menu li {
    margin: 0;
    width: auto;
  }
}
.footer-widgets .menu li a {
  display: block;
  padding: 12px;
  text-align: center;
  font-size: 1.3rem;
  color: #FFF1E0;
}
@media only screen and (min-width: 960px) {
  .footer-widgets .menu li a {
    margin-bottom: 10px;
    padding: 0;
  }
}
.footer-widgets .menu li a i {
  font-size: 16px;
}

.footer-widgets-1 img {
  max-width: 80px;
  width: 80px;
  display: block;
  margin: 0 auto;
}
@media only screen and (min-width: 960px) {
  .footer-widgets-1 img {
    margin: 0 auto 0 0;
  }
}

.footer-widgets-4 img {
  width: 48px;
  margin-bottom: 6px;
}
.footer-widgets-4 img:not(:last-child) {
  margin-right: 6px;
}

.textwidget > p {
  display: block;
}

.footer-widget-area:last-child,
.footer-widgets .widget:last-child {
  margin-bottom: 0;
}

#menu-social-media-menu {
  justify-content: center;
}
@media only screen and (max-width: 670px) {
  #menu-social-media-menu .menu-item {
    width: auto;
  }
  .site-header #menu-social-media-menu {
    display: none;
  }
}

/* Site Footer
 --------------------------------------------- */
.site-footer {
  background-color: #733900;
  color: #FFF1E0;
  line-height: 1.5;
  padding: 15px 5% 5px;
}
.site-footer > .wrap {
  display: flex;
  flex-flow: column nowrap;
  text-align: center;
}
.site-footer > .wrap > p {
  margin: 0 0 5px;
}

/* Graphics
 ============================================= */
/* Secondary Graphic
 --------------------------------------------- */
/* Background Pattern
--------------------------------------------- */
.shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") repeat center;
}
@media only screen and (min-width: 960px) {
  .shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
    background-attachment: fixed;
  }
}

/* Graphic Divider 1
--------------------------------------------- */
/* Graphic Divider 2 - brush
--------------------------------------------- */
/* Divider after title
--------------------------------------------- */
/* Buttons
 =============================================
 btn-1
 btn-2
 btn-icon-text
 */
/* Structure of a button */
.woocommerce-info a,
.woocommerce-message a, button[type=submit],
.button, .wapf-radios .wapf-label-text, .wc_payment_method > label, .added_to_cart, form input[type=submit], .btn {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.9em 1.2em;
  font-size: 1.3rem;
}
.woocommerce-info a:hover,
.woocommerce-message a:hover, button[type=submit]:hover,
.button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, .added_to_cart:hover, form input[type=submit]:hover, .btn:hover {
  text-decoration: none;
}
.woocommerce-pagination a,
.woocommerce-pagination span, header.woocommerce-Address-title a, .post-entry-list .category-link, .btn-small {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.6em 0.9em;
  font-size: 1.2rem;
}
.woocommerce-pagination a:hover,
.woocommerce-pagination span:hover, header.woocommerce-Address-title a:hover, .post-entry-list .category-link:hover, .btn-small:hover {
  text-decoration: none;
}
#shipping_method label, #sidebar-toggle, .btn-large {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 1.2em;
  font-size: 1.4rem;
}
#shipping_method label:hover, #sidebar-toggle:hover, .btn-large:hover {
  text-decoration: none;
}

.btn.align-c {
  margin: 0 auto;
  display: table;
}
/* Solid Button - btn-1
   --------------------------------------------- */
.woocommerce-pagination a, .woocommerce-info a,
.woocommerce-message a, .wc-backward, .checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit], .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text, .woocommerce-form-login__submit,
.woocommerce-form-register__submit, #shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label, #sidebar-toggle, form input[type=submit], .btn-1 {
  background-color: #d96c00;
  color: #fff;
  border-radius: 3px;
}
.woocommerce-pagination a:hover, .woocommerce-info a:hover,
.woocommerce-message a:hover, .wc-backward:hover, .checkout-button:hover,
a.add_to_cart_button:hover,
button.add_to_cart_button:hover,
button[type=submit]:hover, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:hover, .woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover, #shipping_method input[type=hidden] + label:hover, #shipping_method input[type=radio]:checked + label:hover, #sidebar-toggle:hover, form input[type=submit]:hover, .btn-1:hover {
  color: #fff;
  background-color: #8d4600;
}
.woocommerce-pagination a:active, .woocommerce-info a:active,
.woocommerce-message a:active, .wc-backward:active, .checkout-button:active,
a.add_to_cart_button:active,
button.add_to_cart_button:active,
button[type=submit]:active, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:active, .woocommerce-form-login__submit:active,
.woocommerce-form-register__submit:active, #shipping_method input[type=hidden] + label:active, #shipping_method input[type=radio]:checked + label:active, #sidebar-toggle:active, form input[type=submit]:active, .btn-1:active {
  transform: translateY(3px);
}
header.woocommerce-Address-title a, .btn-1-secondary {
  background-color: hsl(0deg, 0%, 60%);
  color: hsl(0deg, 0%, 100%);
  border-radius: 3px;
}
header.woocommerce-Address-title a:hover, .btn-1-secondary:hover {
  color: #fff;
  background-color: #737373;
}
header.woocommerce-Address-title a:active, .btn-1-secondary:active {
  transform: translateY(3px);
}
.woocommerce-pagination span, .shop_table .button, .wapf-radios .wapf-label-text, .wc_payment_method > label, #shipping_method label, .added_to_cart, .post-entry-list .category-link, .btn-1-light {
  background-color: hsl(0deg, 0%, 90%);
  color: hsl(0deg, 0%, 50%);
  border-radius: 3px;
}
.woocommerce-pagination span:hover, .shop_table .button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, #shipping_method label:hover, .added_to_cart:hover, .post-entry-list .category-link:hover, .btn-1-light:hover {
  color: #fff;
  background-color: #bfbfbf;
}
.woocommerce-pagination span:active, .shop_table .button:active, .wapf-radios .wapf-label-text:active, .wc_payment_method > label:active, #shipping_method label:active, .added_to_cart:active, .post-entry-list .category-link:active, .btn-1-light:active {
  transform: translateY(3px);
}
.btn-1-success {
  background-color: #689447;
  color: hsl(0deg, 0%, 100%);
  border-radius: 3px;
}
.btn-1-success:hover {
  color: #fff;
  background-color: #44602e;
}
.btn-1-success:active {
  transform: translateY(3px);
}
.btn-1-info {
  background-color: #369;
  color: hsl(0deg, 0%, 100%);
  border-radius: 3px;
}
.btn-1-info:hover {
  color: #fff;
  background-color: #204060;
}
.btn-1-info:active {
  transform: translateY(3px);
}
.btn-1-warning {
  background-color: #FFBC00;
  color: #332600;
  border-radius: 3px;
}
.btn-1-warning:hover {
  color: #fff;
  background-color: #b38400;
}
.btn-1-warning:active {
  transform: translateY(3px);
}
.btn-1-danger {
  background-color: #B70000;
  color: hsl(0deg, 0%, 100%);
  border-radius: 3px;
}
.btn-1-danger:hover {
  color: #fff;
  background-color: #6b0000;
}
.btn-1-danger:active {
  transform: translateY(3px);
}

/* Outline Button - btn-2
   --------------------------------------------- */
.btn-2 {
  background-color: transparent;
  color: #FF850D;
  border: 2px solid #ff9f40;
  border-radius: 5px;
  text-transform: none;
}
.btn-2:hover {
  background-color: #FF850D;
  border-color: #FF850D;
  color: #fff;
}
.btn-2-white {
  background-color: transparent;
  color: #fff;
  border: 2px solid white;
  border-radius: 5px;
  text-transform: none;
}
.btn-2-white:hover {
  background-color: #fff;
  border-color: #fff;
  color: #fff;
}
.btn-2-white:hover {
  color: #c05f00;
}

/* Button Icon Text - .btn-icon-text
   --------------------------------------------- */
.btn-icon-text {
  display: flex;
  align-items: center;
  border-radius: 3px;
  background-color: #c05f00;
  color: #fff;
  width: auto;
  padding: 6px 12px;
}
.btn-icon-text:hover {
  color: #fff;
}
.btn-icon-text i {
  width: 30px;
  height: 30px;
  background-color: hsla(0deg, 0%, 100%, 0);
  border-radius: 50%;
  font-size: 18px;
  margin-right: 5px;
  margin-left: -5px;
}
.btn-icon-text i:hover,
.btn-icon-text i a:hover {
  text-decoration: none;
}

/* Genesis Widgets
 ============================================= */
/* Widget
 --------------------------------------------- */
.widget {
  margin-bottom: 40px;
}

.widget p:last-child,
.widget ul > li:last-of-type {
  margin-bottom: 0;
}

.widget ul > li {
  margin-bottom: 10px;
}

.widget ul > li:last-of-type {
  padding-bottom: 0;
}

.widget ol > li {
  list-style-position: inside;
  list-style-type: decimal;
  padding-left: 20px;
  text-indent: -20px;
}

.widget li li {
  border: 0;
  margin: 0 0 0 30px;
  padding: 0;
}

.widget_calendar table {
  width: 100%;
}

.widget_calendar td,
.widget_calendar th {
  text-align: center;
}

/* Featured Content
 --------------------------------------------- */
/* Plugins
 ---------------------------------------------------------------------------------------------------- */
/* Genesis eNews Extended
 --------------------------------------------- */
/* Genesis Simple FAQ
 --------------------------------------------- */
/* Jetpack
 --------------------------------------------- */
/* Forms
  ============================================== */
/*
 ** Form Errors
 */
.woocommerce-invalid-required-field label {
  color: #B70000 !important;
}

.woocommerce-invalid-required-field input, .StripeElement.invalid {
  box-shadow: 0 0 0 2px #B70000 !important;
  border: 1px solid white !important;
}

/*CONTACT FORM*/
:focus {
  outline: 0;
}

::placeholder {
  opacity: 0.5;
}

input:not([type=submit]):not([type=file]),
textarea {
  height: 38px;
  width: 100%;
  padding: 6px 10px;
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box;
  color: #555;
}
@media only screen and (max-width: 670px) {
  input:not([type=submit]):not([type=file]),
textarea {
    font-size: 16px;
    line-height: 1.5;
  }
}

/* Removes awkward default styles on some inputs for iOS */
input:not([type=submit]):not([type=file]),
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input:not([type=submit]):not([type=file]):focus, input:not([type=submit]):not([type=file]):hover,
select:focus,
select:hover,
textarea:focus,
textarea:hover {
  background-color: #eaeaea;
  border: 1px solid #bbbbbb;
  outline: 0;
}
input:not([type=submit]):not([type=file]):focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 2px #ff850d;
  border: 1px solid white;
}

input[type=checkbox],
input[type=radio] {
  display: inline;
}

form p {
  margin-bottom: 20px;
}
form label {
  font-weight: 700;
}
form textarea {
  min-height: 80px;
}
form input[type=file] {
  padding: 0.6em 0;
  background-color: transparent;
  border: 0;
}
form input[type=submit] {
  width: 100%;
}
form input[type=submit]:disabled {
  background: #f1f1f2;
  box-shadow: 0 0 0 0 #ccc;
}
form input[type=submit]:disabled:hover {
  top: 0;
}

/*WPCF7 SPECIFIC ERROR AND APPROVAL MESSAGES*/
.wpcf7 form .wpcf7-list-item {
  margin: 0;
}
.wpcf7 form .wpcf7-not-valid-tip {
  color: #fff;
  background-color: #cc4a4a;
  padding: 0.2em 0.6em;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 0 0 5px 5px;
  text-align: center;
}
.wpcf7 form .wpcf7-response-output {
  position: relative;
  margin: 10px 0;
  padding: 0.5em 1em;
  border: 0 solid #cc4a4a;
  font-size: 1.4rem;
  line-height: 2.2rem;
  color: #fff;
  background-color: #cc4a4a;
  border-radius: 5px;
  font-weight: 600;
}
.wpcf7 form .wpcf7-response-output:before {
  font-weight: 700;
  left: 5px;
  top: calc(50% - 15px);
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: rgba(255, 255, 255, 0.3);
}
.wpcf7 form .wpcf7-acceptance-missing,
.wpcf7 form .wpcf7-validation-errors {
  padding-left: 40px;
}
.wpcf7 form .wpcf7-acceptance-missing:before,
.wpcf7 form .wpcf7-validation-errors:before {
  content: "\ea0a";
}
.wpcf7 form .wpcf7-mail-sent-ok {
  padding-left: 40px;
  background-color: green;
}
.wpcf7 form .wpcf7-mail-sent-ok:before {
  content: "\ea03";
}

/* Select Reset
   --------------------------------------------- */
select {
  display: block;
  font-size: 1.5rem;
  color: #555;
  line-height: 1.3;
  padding: 0.6em 1.4em 0.5em 0.8em;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 0.3em;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat, repeat;
  background-position: right 0.7em top 50%, 0 0;
  background-size: 0.65em auto, 100%;
}
select::-ms-expand {
  display: none;
}
select:hover {
  border-color: #888;
}
select:focus {
  border-color: #aaa;
  box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);
  box-shadow: 0 0 0 3px -moz-mac-focusring;
  color: #222;
  outline: none;
}
select option {
  font-weight: normal;
}

/* Checkbox Reset
 --------------------------------------------- */
input[type=checkbox] {
  display: none;
  position: absolute;
  -webkit-appearance: none;
}
input[type=checkbox] + * {
  position: relative;
  line-height: 1.5;
  display: inline;
}
input[type=checkbox] + * > * {
  float: left;
}
input[type=checkbox] + *:after, input[type=checkbox] + *:before {
  pointer-events: none;
  content: "";
}
input[type=checkbox] + *:before {
  display: inline-flex;
  height: 16px;
  min-width: 16px;
  width: 16px;
  border: solid 2px #ccc;
  background: #fff;
  margin-right: 10px;
}
input[type=checkbox] + *:after {
  position: absolute;
  height: 11px;
  width: 22px;
  top: 0;
  left: 0;
  border-bottom: solid 3px #999;
  border-left: solid 3px #999;
  background: none;
  transform: rotate(-45deg) scale(0);
  transform-origin: center center;
}
input[type=checkbox] + *:hover {
  opacity: 0.8;
}
input[type=checkbox]:checked + *:before {
  border-color: #f2f2f2;
  background-color: #f2f2f2;
}
input[type=checkbox]:checked + *:after {
  opacity: 1;
  transform: rotate(-45deg) scale(0.8);
  border-bottom: solid 4px #689447;
  border-left: solid 4px #689447;
}

/* List style
 --------------------------------------------- */
.number-list, div.product .woocommerce-product-details__short-description ol, .post-single .entry-content > ol, .item-list, div.product .woocommerce-product-details__short-description ul, .post-single .entry-content > ul {
  margin-bottom: 24px;
}
.number-list li, div.product .woocommerce-product-details__short-description ol li, .post-single .entry-content > ol li, .item-list li, div.product .woocommerce-product-details__short-description ul li, .post-single .entry-content > ul li {
  margin-bottom: 12px;
  margin-left: 24px;
}
.number-list ol, div.product .woocommerce-product-details__short-description ol ol, .post-single .entry-content > ol ol, .item-list ol, div.product .woocommerce-product-details__short-description ul ol, .post-single .entry-content > ul ol,
.number-list ul,
div.product .woocommerce-product-details__short-description ol ul,
.post-single .entry-content > ol ul,
.item-list ul,
div.product .woocommerce-product-details__short-description ul ul,
.post-single .entry-content > ul ul {
  margin-bottom: 0;
}

.item-list > li, div.product .woocommerce-product-details__short-description ul > li, .post-single .entry-content > ul > li {
  list-style-type: disc;
}

.number-list > li, div.product .woocommerce-product-details__short-description ol > li, .post-single .entry-content > ol > li {
  list-style-type: decimal;
}

/* Entry Meta
 --------------------------------------------- */
.entry-footer .entry-meta {
  border-top: 1px solid #eee;
  padding-top: 20px;
}

.entry-comments-link::before {
  content: "—";
  margin: 0 6px 0 2px;
}

/* Pagination
 --------------------------------------------- */
.pagination {
  position: relative;
  margin: 60px 0;
}

.adjacent-entry-pagination {
  margin-bottom: 0;
}

.archive-pagination li {
  display: inline;
}

.archive-pagination li a {
  background-color: #f5f5f5;
  color: #333;
  cursor: pointer;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 4px;
  padding: 8px 12px;
  text-decoration: none;
}

.archive-pagination li a:focus,
.archive-pagination li a:hover,
.archive-pagination li.active a {
  background-color: #333;
  color: #fff;
}

/* Section Title
 --------------------------------------------- */
.section-title {
  margin-bottom: 20px;
}
.section-title.align-c {
  text-align: center;
  margin: 0 auto;
}
.section-title h4 {
  position: relative;
  color: #6F2102;
  font-family: "Poppins", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* Divider
 --------------------------------------------- */
hr {
  border: 0;
}

hr.small, .entry-content hr.entry-meta {
  margin: 10px 0;
}

.divider-c, .divider {
  position: relative;
  margin: -15px 0 15px -25px;
  width: 110px;
  height: 25px;
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/divider-stroke.svg") no-repeat left/contain;
  opacity: 0.5;
}

.divider-c {
  margin-left: auto;
  margin-right: auto;
}

/* Image Card
 ---------------------------------------------
<figure class="img-card">
  <img src="">
  <figcaption></figcaption>
</figure>
*/
.img-card {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-end;
  overflow: hidden;
  z-index: 0;
  background-color: #000;
}
.img-card:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100px;
  z-index: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(to top, hsl(10deg, 10%, 10%) 0%, hsla(10deg, 10%, 10%, 0) 100%);
}
.img-card:hover img {
  transform: scale(1.05);
  opacity: 1;
}
.img-card img {
  transition: all 0.8s ease-in-out;
  width: 100%;
  object-fit: cover;
  opacity: 0.8;
}
.img-card figcaption {
  position: absolute;
  padding: 15px 20px;
  font-size: 1.76rem;
  line-height: 1.2;
  color: #fff;
  text-transform: uppercase;
  width: 100%;
  z-index: 1;
}

/* Logo Gallery
 ---------------------------------------------
<section class="logo-showcase">
  <header class="section-title align-c">
    <h2>Our Clients</h2>
    <hr class="divider-c">
    <p>Here are some of our our clients.</p>
  </header>

  <div class="logo-showcase-gallery">
    <img src="../../../static/logo-1.jpg">
  </div>
</section>
*/
/* Image Banner
  ==========================================
  <section class="image-banner">
    <div class="container container-left">
      <h3>Title</h3>
      <p>Description</p>
      <a href="#" class="btn btn-3">Learn More</a>
    </div>
    <img src="/static/asd.jpg">
  </section>

  */
/* Banners
  ============================================== */
.hero-slider, .shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
  position: relative;
  width: 100%;
  z-index: 0;
  padding: 50px 5%;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}
.hero-slider img, .shop-banner img, .post-archive .archive-description img, .entry-header img,
.regular-banner img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  object-fit: cover;
}

/* Regular Banner
   --------------------------------------------- */
.shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
  height: auto;
  min-height: 250px;
  text-align: center;
}
.shop-banner > *, .post-archive .archive-description > *, .entry-header > *,
.regular-banner > * {
  margin-bottom: 10px;
}
.shop-banner > *:last-child, .post-archive .archive-description > *:last-child, .entry-header > *:last-child,
.regular-banner > *:last-child {
  margin-bottom: 0;
}
.shop-banner p, .post-archive .archive-description p, .entry-header p,
.regular-banner p {
  font-family: "Libre Baskerville", serif;
}
.shop-banner img, .post-archive .archive-description img, .entry-header img,
.regular-banner img {
  opacity: 0.8;
}

/* Giant Banner
 --------------------------------------------- */
/* Hero Slider
 ============================================= */
/* Giant Banner Slider */
.hero-slider {
  visibility: hidden;
  opacity: 0;
  padding: 0;
  overflow: hidden;
  height: auto;
}
@media only screen and (max-width: 670px) {
  .hero-slider {
    max-height: none;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider {
    max-height: 720px;
  }
}
.hero-slider .slick-next,
.hero-slider .slick-prev {
  z-index: 5;
}
@media only screen and (max-width: 670px) {
  .hero-slider .slick-next,
.hero-slider .slick-prev {
    top: 50vw;
  }
}
.hero-slider .slick-next:before,
.hero-slider .slick-prev:before {
  color: #733900;
}
.hero-slider .slick-prev {
  left: 1%;
}
.hero-slider .slick-next {
  right: 1%;
}

@media only screen and (min-width: 670px) {
  .hero-slider--short {
    max-height: 500px;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider--short .hero-slide {
    height: 500px;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slider--short .hero-slide {
    max-height: 500px;
    height: 100vh;
  }
}

/* Giant Banner Slide */
.hero-slide {
  height: auto;
  /* Generic Figcaption Styles */
  /* Caption Positions */
  /* Dark font styles */
}
@media only screen and (max-width: 670px) {
  .hero-slide {
    flex-direction: column;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide {
    height: 70vh;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slide {
    max-height: 56.25vw;
    height: 100vh;
  }
}
.hero-slide figcaption {
  position: relative;
  height: auto;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: flex-start;
  z-index: 0;
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .hero-slide figcaption {
    padding: 20px 5%;
    text-align: center;
    align-items: center;
  }
  .hero-slide figcaption:before {
    position: absolute;
    content: "";
    left: 0;
    top: -99px;
    width: 100%;
    height: 100px;
    background: linear-gradient(to top, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
  }
  .hero-slide figcaption br {
    display: none;
  }
  .hero-slide figcaption p {
    margin-bottom: 10px !important;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide figcaption {
    position: absolute;
  }
}
.hero-slide figcaption h2 {
  font-size: 4.8rem;
  color: #8d4600;
  font-weight: 700;
}
.hero-slide figcaption h4 {
  font-family: "Nothing You Could Do", cursive;
  font-size: 2.2rem;
  color: #d96c00;
  margin-bottom: 0;
}
@media only screen and (max-width: 670px) {
  .hero-slide img {
    position: relative;
    height: 100vw;
  }
}
.hero-slide--left:before {
  left: 0;
}
.hero-slide--left.hero-slide--light:before {
  background: linear-gradient(to right, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--left.hero-slide--dark:before {
  background: linear-gradient(to right, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--left figcaption {
    left: 5vw;
  }
}
@media only screen and (max-width: 670px) {
  .hero-slide--left img {
    object-position: right;
  }
}
.hero-slide--right:before {
  right: 0;
}
.hero-slide--right.hero-slide--light:before {
  background: linear-gradient(to left, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--right.hero-slide--dark:before {
  background: linear-gradient(to left, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--right figcaption {
    right: 5vw;
    text-align: right;
    align-items: flex-end;
  }
}
@media only screen and (max-width: 670px) {
  .hero-slide--right img {
    object-position: left;
  }
}
.hero-slide--top:before {
  top: 0;
}
.hero-slide--top.hero-slide--light:before {
  background: linear-gradient(to bottom, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--top.hero-slide--dark:before {
  background: linear-gradient(to bottom, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--top figcaption {
    top: 0;
  }
}
.hero-slide--top img {
  object-position: bottom;
}
.hero-slide--bottom:before {
  bottom: 0;
}
.hero-slide--bottom.hero-slide--light:before {
  background: linear-gradient(to top, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--bottom.hero-slide--dark:before {
  background: linear-gradient(to top, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--bottom figcaption {
    bottom: 0;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide--dark figcaption * {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }
  .hero-slide--dark figcaption h2 {
    color: #fff;
  }
  .hero-slide--dark figcaption h4 {
    color: #fff;
  }
  .hero-slide--dark figcaption p {
    color: #fff;
    font-weight: 700;
  }
}

/* Left and right figcaption*/
@media only screen and (min-width: 670px) {
  .hero-slide--left figcaption, .hero-slide--right figcaption {
    top: 50%;
    transform: translateY(-50%);
    width: 40%;
    max-width: 400px;
  }
  .hero-slide--top figcaption, .hero-slide--bottom figcaption {
    left: 0;
    height: 50%;
    padding: 0 20%;
    text-align: center;
    align-items: center;
    justify-content: center;
  }
}

.hero-slide--top:before, .hero-slide--bottom:before, .hero-slide--left:before, .hero-slide--right:before {
  position: absolute;
  mix-blend-mode: overlay;
  opacity: 0.5;
}
@media only screen and (min-width: 670px) {
  .hero-slide--top:before, .hero-slide--bottom:before, .hero-slide--left:before, .hero-slide--right:before {
    content: "";
  }
}
.hero-slide--left:before, .hero-slide--right:before {
  top: 0;
  width: 50%;
  height: 100%;
}
.hero-slide--top:before, .hero-slide--bottom:before {
  left: 0;
  width: 100%;
  height: 50%;
}

.post-archive {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 0 auto;
}
.post-archive > * {
  margin-bottom: 50px;
}
.post-archive > *:last-child {
  margin-bottom: 0;
}
.post-archive .post-entry-list {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-archive .post-entry-list {
    padding: 0;
    flex: 3 1 0;
    margin-left: 5%;
    margin-right: 50px;
    max-width: 650px;
  }
}
.post-archive .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-archive .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

.post-entry-list > * {
  margin-bottom: 30px;
}
.post-entry-list > *:last-child {
  margin-bottom: 0;
}
.post-entry-list .entry-content {
  display: flex;
  flex-flow: row wrap;
}
.post-entry-list .entry-content > * {
  width: 100%;
  margin-bottom: 15px;
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry-content > * {
    width: calc((100% - (15px * (2 - 1))) / 2);
    margin-right: 15px;
  }
  .post-entry-list .entry-content > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry-content > *:nth-child(1) {
    flex: 2 1 0;
  }
  .post-entry-list .entry-content > *:nth-child(2) {
    flex: 3 1 0;
  }
}
.post-entry-list h3, .post-entry-list form.woocommerce-checkout .col-1 h4, .post-entry-list form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .post-entry-list h4, form.woocommerce-checkout .checkout_coupon .post-entry-list h4 {
  margin: 10px 0;
}
.post-entry-list p {
  line-height: 1.5;
}
.post-entry-list .category-link {
  padding: 2px 6px;
}
.post-entry-list .entry-content__thumbnail-link {
  position: relative;
  min-height: 170px;
}
.post-entry-list .entry-content__thumbnail-link img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}

/* Structure of single post*/
.post-single .entry {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 0 auto;
}
.post-single .entry > * {
  margin-bottom: 50px;
}
.post-single .entry > *:last-child {
  margin-bottom: 0;
}
.post-single .has-post-thumbnail .entry-header {
  background: #FF850D;
}
.post-single .has-post-thumbnail .entry-header img {
  opacity: 0.7;
  mix-blend-mode: multiply;
}
.post-single .entry-content {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .entry-content {
    padding: 0;
    flex: 3 1 0;
    margin-left: 5%;
    margin-right: 50px;
    max-width: 650px;
  }
}
.post-single .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

/* Primary sidebar only */
.sidebar-primary .widget-title {
  border-bottom: 4px solid hsl(0deg, 0%, 85%);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.entry-content .entry-meta {
  color: hsl(0deg, 0%, 70%);
}

/* Single Page Content
  ========================================== */
.inline-wrap {
  width: min(90%, 1400px);
  margin-inline: auto;
}

.about-feature {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
  display: flex;
  justify-content: center;
  padding: 150px 10%;
  display: flex;
  flex-flow: row wrap;
}
.about-feature > * {
  width: 100%;
  margin-bottom: 0px;
}
@media only screen and (min-width: 670px) {
  .about-feature > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .about-feature > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 960px) {
  .about-feature {
    background-attachment: fixed;
  }
}

.about-feature-graphic {
  position: relative;
  z-index: 0;
}
.about-feature-graphic img {
  position: absolute;
  padding: 8px;
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/image-border.png") no-repeat center/cover;
  top: 0;
  width: 200px;
  height: auto;
  left: calc(50% - 100px);
  filter: drop-shadow(2px 4px 3px hsla(50deg, 10%, 50%, 0.9));
}
.about-feature-graphic img:first-child {
  transform: rotate(5deg) translate(-90px, -50px);
}
.about-feature-graphic img:nth-of-type(2) {
  transform: rotate(-5deg) translate(90px, 50px);
}

.giant-background-text {
  position: absolute;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
  font-size: 550px;
  font-family: "Nothing You Could Do", cursive;
  color: #FFF1E0;
  z-index: -1;
  white-space: nowrap;
}

.about-feature-details {
  z-index: 2;
}

.menu-feature {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .menu-feature {
    background-attachment: fixed;
  }
}

/* Menu Feature */
.menu-feature-list {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin-top: 50px;
}

.dish-single {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  width: 220px;
  padding: 0 15px;
}
.dish-single:hover .dish-shadow {
  transform: scale(1.3);
}
.dish-single:hover > img {
  transform: translate(0, -20px) scale(1.05);
}
.dish-single img {
  transition: 0.3s;
  z-index: 2;
  height: 125px;
  object-fit: contain;
  object-position: bottom;
}
.dish-single figcaption {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  text-align: center;
  margin-top: 15px;
}
.dish-single figcaption > * {
  margin-bottom: 7px;
}
.dish-single figcaption > *:last-child {
  margin-bottom: 0;
}

.dish-shadow {
  position: relative;
  background-color: hsla(50deg, 30%, 30%, 0.5);
  border-radius: 50%;
  width: 50px;
  height: 10px;
  filter: blur(4px);
  transition: 0.3s;
}

.dish-single-price {
  text-align: center;
  background-color: #99988a;
  font-size: 1.4rem;
  font-weight: 700;
  padding: 3px 6px;
  line-height: 1;
  color: #fff;
  border-radius: 5px;
}

.dish-single-title {
  font-family: "Libre Baskerville", serif;
  font-weight: 700;
}

.dish-single-title-chinese {
  font-family: "Nothing You Could Do", cursive;
  font-size: 2rem;
  color: #e07b00;
}

/* star gallery */
.star-wall-gallery img {
  height: 13vw;
  object-fit: cover;
}

.menu-list-category-nav {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 20px 0 50px;
}
.menu-list-category-nav a {
  position: relative;
  text-align: center;
  padding: 10px;
  text-transform: uppercase;
  line-height: 1.2;
  z-index: 0;
}
.menu-list-category-nav a:after {
  content: "";
  left: 0;
  top: 0;
  position: absolute;
  width: 100%;
  height: 30px;
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/divider-stroke.svg") no-repeat center/contain;
  opacity: 0.5;
  max-width: 0;
}
.menu-list-category-nav a:hover {
  text-decoration: none;
}
.menu-list-category-nav a:hover:after {
  transition: 0.5s;
  max-width: 100%;
}
.menu-list-category-nav a span {
  display: block;
  font-family: "Nothing You Could Do", cursive;
  font-size: 120%;
}

.menu-list {
  position: relative;
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
.menu-list:after {
  content: "";
  position: absolute;
  width: 1px;
  height: 100%;
  left: 50%;
  background-color: #ffdaad;
}
.menu-list article {
  position: relative;
  display: flex;
  flex: 0 1 45%;
  margin-bottom: 25px;
}
.menu-list article p {
  line-height: 1.4;
  font-size: 1.4rem;
  margin-bottom: 0;
}
.menu-list article p span {
  display: block;
}
.menu-list article:hover {
  color: #d96c00;
  cursor: pointer;
}
.menu-list article:hover figure {
  display: flex;
}
.menu-list article figure {
  display: none;
  position: absolute;
  width: 100%;
  top: calc(100% + 5px);
  left: 0;
  flex-flow: column nowrap;
  background-color: #fff;
  z-index: 10;
  border-radius: 10px;
  overflow: hidden;
}
.menu-list article figure img {
  width: 100%;
  max-height: 250px;
  object-fit: cover;
}
.menu-list article figure figcaption {
  padding: 10px;
}

.menu-reg-title {
  width: 100%;
  padding-right: 20px;
  font-weight: 700;
}
.menu-reg-title span {
  font-weight: 400;
}

.latest-promotions {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
  display: flex;
  flex-flow: row wrap;
}
.latest-promotions > * {
  width: 100%;
  margin-bottom: 50px;
}
@media only screen and (min-width: 670px) {
  .latest-promotions > * {
    width: calc((100% - (50px * (2 - 1))) / 2);
    margin-right: 50px;
  }
  .latest-promotions > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .latest-promotions > *:nth-child(1) {
    flex: 1 1 0;
  }
  .latest-promotions > *:nth-child(2) {
    flex: 2 1 0;
  }
}
@media only screen and (min-width: 960px) {
  .latest-promotions {
    background-attachment: fixed;
  }
}

.promotion-single {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: flex-start;
  border-top: 1px solid #ffc37a;
  padding-top: 20px;
  margin-top: 20px;
}
.promotion-single > * {
  margin-bottom: 10px;
}
.promotion-single > *:last-child {
  margin-bottom: 0;
}
.promotion-single h4 {
  font-weight: 700;
}

.promotion-single--dates {
  color: #fff;
  background-color: #99988a;
  padding: 2px 6px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
}

.latest-promotions {
  position: relative;
  z-index: 0;
}
.latest-promotions:after {
  content: "";
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/old-town-background.png") no-repeat center/contain;
  width: 400px;
  height: 400px;
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: 0;
  opacity: 0.5;
}

/* Outlets Page */
.outlets-page .entry-content {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .outlets-page .entry-content {
    background-attachment: fixed;
  }
}

.branch-list-wrapper {
  max-width: 960px;
  margin: 0 auto;
  padding: 15px 0;
}

.single-outlet {
  background-color: hsla(0deg, 0%, 100%, 0.5);
  margin-bottom: 10px;
  border-radius: 15px;
  display: flex;
  flex-flow: row wrap;
  overflow: hidden;
}
.single-outlet > * {
  width: 100%;
  margin-bottom: 0px;
}
@media only screen and (min-width: 670px) {
  .single-outlet > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .single-outlet > *:nth-child(2n) {
    margin-right: 0;
  }
}
.single-outlet figure {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: hsl(50deg, 10%, 80%);
}
.single-outlet .outlet-logo {
  object-fit: contain;
  max-width: 230px;
  margin: 0 auto;
}
.single-outlet iframe {
  height: 100%;
}
.single-outlet .single-outlet--details {
  padding: 30px;
}
.single-outlet label {
  display: block;
  text-transform: uppercase;
  font-size: 12px;
  color: hsl(0deg, 0%, 50%);
}
.single-outlet p {
  font-size: 14px;
}
.single-outlet .tag-label-small {
  background-color: #d96c00;
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  display: inline-block;
  font-size: 11px;
  padding: 2px 6px;
  margin-bottom: 5px;
}
.single-outlet h5 {
  margin-bottom: 10px;
  display: flex;
  justify-content: space-between;
}
.single-outlet .direction-link {
  width: 35px;
  height: 35px;
  background-color: #FF850D;
  border-radius: 50%;
  font-size: 15px;
  color: #fff;
}
.single-outlet .direction-link:hover,
.single-outlet .direction-link a:hover {
  text-decoration: none;
}

/* Contact Page */
.page-id-12 main.content {
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .page-id-12 main.content {
    background-attachment: fixed;
  }
}
.page-id-12 .entry-content {
  max-width: 960px;
  margin: 0 auto;
}
.page-id-12 .wp-block-column {
  border-radius: 10px;
  background-color: hsla(0deg, 0%, 100%, 0.6);
  padding: 15px;
}
.page-id-12 .wp-block-column p {
  font-size: 14px;
  line-height: 1.5;
}
.page-id-12 .wp-block-column .container > * {
  margin-bottom: 10px;
}
.page-id-12 .wp-block-column .container > *:last-child {
  margin-bottom: 0;
}

.wp-block-separator {
  border-top: 0;
  border-bottom: 0;
}

/* promotions */
.category-promotions main.content {
  width: 100%;
  background: url("https://demo.co-enterprise.com.sg/kimkeatsatay/static/background-pattern.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .category-promotions main.content {
    background-attachment: fixed;
  }
}
.category-promotions .post-entry-list {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  max-width: none;
}
.category-promotions .post-entry-list > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .category-promotions .post-entry-list > * {
    width: calc((100% - (30px * (3 - 1))) / 3);
    margin-right: 30px;
  }
  .category-promotions .post-entry-list > *:nth-child(3n) {
    margin-right: 0;
  }
}

.category-promotions.entry .promotion {
  width: 100%;
}

.promotions-wrapper {
  -ms-overflow-style: none;
}

.promotions-wrapper-inner {
  transform: rotate(90deg) translateY(-90vw);
  transform-origin: top left;
  white-space: nowrap;
  font-size: 0;
  margin-right: 20px;
}
@media only screen and (min-width: 670px) {
  .promotions-wrapper-inner {
    transform: rotate(90deg) translateY(-61vw);
  }
}

.promotion {
  position: relative;
  border-radius: 5px;
  overflow: hidden;
  display: inline-block;
  margin-right: 10px;
  width: 185px;
  height: 277px;
}
@media only screen and (min-width: 670px) {
  .promotion {
    width: 280px;
    height: 420px;
  }
}

.promotion__image {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.promotion__caption {
  position: absolute;
  z-index: 2;
  bottom: 0;
  color: #fff;
  width: 100%;
  z-index: 0;
  padding: 10px 15px;
  font-size: 1.4rem;
  white-space: normal;
}
.promotion__caption > * {
  margin-bottom: 5px;
}
.promotion__caption > *:last-child {
  margin-bottom: 0;
}
.promotion__caption .promotion-single--dates {
  display: inline-block;
}
.promotion__caption:after {
  background: linear-gradient(to top, hsl(0deg, 0%, 15%) 0%, hsla(0deg, 0%, 15%, 0) 100%);
  content: "";
  position: absolute;
  width: 100%;
  height: 200px;
  left: 0;
  bottom: 0;
  z-index: -1;
}
.promotion__caption strong {
  font-size: 1.6rem;
  text-transform: uppercase;
  display: block;
}

/* Image Banner */
.image-banner {
  position: relative;
  height: 90vh;
  max-height: 800px;
  background: no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .image-banner {
    background-attachment: fixed;
  }
}

.image-banner__caption {
  position: relative;
  width: 90%;
  height: auto;
  left: 5%;
  top: 5vw;
  padding: 50px 40px;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  background-color: #fff;
  text-align: center;
}
.image-banner__caption > * {
  margin-bottom: 20px;
}
.image-banner__caption > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  .image-banner__caption {
    position: absolute;
    width: 400px;
    padding: 20px 40px;
    right: 5%;
    height: 100%;
    left: auto;
    top: 0;
  }
}
.image-banner__caption:after, .image-banner__caption:before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 30px;
  opacity: 0.5;
}
@media only screen and (min-width: 670px) {
  .image-banner__caption:after, .image-banner__caption:before {
    height: 40px;
  }
}
.image-banner__caption:before {
  top: 0;
}
.image-banner__caption:after {
  bottom: 0;
}
.image-banner__caption img {
  align-self: center;
}

/* Featured Dishes*/
.cakes-list {
  position: relative;
  background-color: #fff;
  display: flex;
  flex-flow: row wrap;
}
.cakes-list > * {
  width: 100%;
  margin-bottom: 0px;
}
@media only screen and (min-width: 670px) {
  .cakes-list > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .cakes-list > *:nth-child(2n) {
    margin-right: 0;
  }
}
.cakes-list > figure {
  position: relative;
}
.cakes-list > figure img {
  object-fit: cover;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.cakes-list > article {
  padding: 50px 5%;
}
.cakes-list > article > * {
  margin-bottom: 10px;
}
.cakes-list > article > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  .cakes-list > article {
    padding: 50px;
  }
}

.single-cake {
  display: flex;
}
.single-cake img {
  position: relative;
  object-fit: contain;
  width: 100px;
  flex: 1 1 100px;
  display: block;
  padding: 10px;
  margin-right: 10px;
}
@media only screen and (min-width: 670px) {
  .single-cake img {
    width: 100%;
  }
}
.single-cake figcaption {
  flex: 1 1 auto;
}

.partners-section {
  margin: 8rem 0;
}

.partners {
  display: grid;
  gap: 6rem;
}
@media only screen and (min-width: 670px) {
  .partners {
    grid-template-columns: repeat(3, 1fr);
  }
}
.partners h3, .partners form.woocommerce-checkout .col-1 h4, .partners form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .partners h4, form.woocommerce-checkout .checkout_coupon .partners h4 {
  font-size: 1.8rem;
  color: #6F2102;
  margin-bottom: 1rem;
}
.partners p {
  font-size: 1.4rem;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.partners li > *:last-child {
  margin-bottom: 0;
}

/*
 * Edited 20190727
 */
/*
* TABLE OF CONTENTS
* ----------- *
* - Woocommerce Variables
* - Woocommerce Global Styles
* - Add to Cart Button
* - Breadcrumb
* - Sale Label
* - Message box
* - Pagination
*/
/* Woocommerce Variables */
form label, .addresses address p:before,
.woocommerce-customer-details address p:before, .addresses address:before,
.woocommerce-customer-details address:before, .woocommerce-order-overview .deliveryDetails > span, .variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt, div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  display: block;
  clip: unset;
  width: auto;
  height: auto;
  text-transform: none;
  font-size: 14px;
  cursor: pointer;
  color: hsl(0deg, 0%, 50%);
  font-weight: 700;
}

div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  font-weight: 700;
  font-size: 1.6rem;
  color: #666;
}

/* Archive Page Main Layout
 ============================================= */
.archive.woocommerce .content {
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  padding: 0 3vw;
  margin-top: 0;
}
@media only screen and (min-width: 960px) {
  .archive.woocommerce .content {
    padding: 0 5%;
  }
}
.archive.woocommerce aside.widget-area {
  align-self: stretch;
}
@media only screen and (max-width: 670px) {
  .archive.woocommerce aside.widget-area {
    position: fixed;
    display: none;
    width: 100%;
    margin-right: 0;
    border-right: 0;
    z-index: 10000;
    background: #fff;
    height: 100vh;
    top: 0;
    left: 0;
    padding: 100px 50px;
  }
}

/* Shop Banner
--------------------------------------------- */
.shop-banner {
  min-height: 200px;
}
.shop-banner p {
  padding: 0;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.4rem;
}
@media only screen and (min-width: 960px) {
  .shop-banner p {
    max-width: 60vw;
  }
}

/* Shop Archive Top Bar
--------------------------------------------- */
.archive-topbar {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
  position: relative;
  width: 100%;
  padding: 20px 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
}

.woocommerce-result-count {
  margin-bottom: 0;
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
}

.woocommerce-ordering {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .woocommerce-ordering {
    margin-bottom: 10px;
  }
}
@media only screen and (min-width: 960px) {
  .woocommerce-ordering {
    width: 250px;
  }
}

/* Shop Archive Widget Area
--------------------------------------------- */
.woocommerce aside.widget-area {
  border-right: 2px solid #f1f1f1;
  padding-right: 15px;
  margin-right: 15px;
  margin-bottom: 30px;
  width: 150px;
}
@media only screen and (min-width: 960px) {
  .woocommerce aside.widget-area {
    border-right: 2px solid #f1f1f1;
    padding-right: 30px;
    margin-right: 30px;
    width: 250px;
  }
}
.woocommerce aside.widget-area .widget {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

/* Sidebar Toggle */
#sidebar-toggle {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  #sidebar-toggle {
    display: none;
  }
}

#sidebar-toggle-close {
  width: 40px;
  height: 40px;
  background-color: #f1f1f1;
  border-radius: 50%;
  font-size: 25px;
  color: #c05f00;
  position: absolute;
  top: 5vw;
  right: 5vw;
}
#sidebar-toggle-close:hover,
#sidebar-toggle-close a:hover {
  text-decoration: none;
}

/* Specifically for product category */
.menu-shop-menu-container,
.widget_product_categories {
  font-size: 1.4rem;
}
.menu-shop-menu-container a,
.widget_product_categories a {
  color: hsl(0deg, 0%, 60%);
  display: block;
  padding: 0.2em 0;
}
.menu-shop-menu-container a:hover,
.widget_product_categories a:hover {
  color: hsl(0deg, 0%, 40%);
  padding-left: 0.4em;
  text-decoration: none;
}

/* Products
--------------------------------------------- */
/* Structure of products to differentiate it from related products */
.archive.woocommerce .products {
  display: flex;
  flex-flow: row wrap;
}
.archive.woocommerce .products > * {
  width: calc((100% - (5px / 2 * (2 - 1))) / 2);
  margin-right: 2.5px;
}
@media only screen and (max-width: 670px) {
  .archive.woocommerce .products > * {
    margin-bottom: 2.5px;
  }
}
@media only screen and (max-width: 670px) {
  .archive.woocommerce .products > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .archive.woocommerce .products > * {
    width: calc((100% - (5px * (4 - 1))) / 4);
    margin-right: 5px;
  }
  .archive.woocommerce .products > *:nth-child(4n) {
    margin-right: 0;
  }
}

ul.products {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  flex: 1 1 0;
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  ul.products {
    justify-content: flex-start;
  }
}

/* Product List */
li.product {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  text-align: center;
  padding: 5px;
}
li.product > * {
  margin-bottom: 10px;
}
li.product > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 960px) {
  li.product {
    padding: 10px;
  }
  li.product:hover {
    box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);
  }
}
li.product a {
  width: 100%;
  text-decoration: none;
}
li.product .attachment-woocommerce_thumbnail {
  object-fit: cover;
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  li.product .attachment-woocommerce_thumbnail {
    transition: all 0.2s ease-in-out;
    margin-left: auto;
    margin-right: auto;
  }
}
li.product .woocommerce-loop-product__title {
  font-size: 1.6rem;
  color: #d96c00;
  margin-bottom: 5px;
}
li.product .price {
  font-size: 1.4rem;
  font-weight: 400;
  color: #999;
  /* For sale item */
}
li.product .price ins {
  font-weight: 700;
  color: #FF850D;
  text-decoration: none;
}

/* Added to cart button */
/* Single Product Layout */
.single-product .product-primary-information {
  background-color: hsl(0deg, 0%, 97%);
  padding: 0 2.5%;
}
@media only screen and (min-width: 670px) {
  .single-product .product-primary-information {
    padding: 0 5%;
  }
}

/* Simple AND Variable Product */
div.product {
  position: relative;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  /* Common Product Description / Summary */
}
div.product .summary {
  position: relative;
}
div.product .summary > * {
  margin-bottom: 15px;
}
div.product .summary > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  div.product .summary {
    flex: 1 1 0;
  }
}
div.product .product_title {
  font-size: 3rem;
}
div.product .price {
  font-size: 2rem;
  font-weight: 700;
}
div.product .woocommerce-product-details__short-description {
  padding: 20px 10px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product .woocommerce-product-details__short-description {
    padding: 20px;
  }
}
div.product .woocommerce-product-details__short-description > *:last-child {
  margin-bottom: 0;
}

/* Common Product Page Gallery */
.woocommerce-product-gallery img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: none;
}
.woocommerce-product-gallery div.thumbnails {
  padding-top: 1em;
}
.woocommerce-product-gallery.woocommerce-product-gallery {
  position: relative;
  margin-bottom: 40px;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery {
    flex: 1 1 0;
    margin-right: 50px;
    flex-flow: row-reverse nowrap;
    max-width: 42vw;
  }
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image {
  background-color: transparent;
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
  height: 400px;
  object-fit: contain;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
    height: 500px;
  }
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
  margin: 0;
  padding: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper .zoomImg {
  background-color: #fff;
  opacity: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder {
  border: 1px solid #f2f2f2;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image:nth-child(n+2) {
  width: 25%;
  display: inline-block;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 0.5em;
  right: 0.5em;
  font-size: 2em;
  z-index: 9;
  width: 36px;
  height: 36px;
  background: #fff;
  text-indent: -9999px;
  border-radius: 100%;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid #000;
  border-radius: 100%;
  position: absolute;
  top: 9px;
  left: 9px;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
  content: "";
  display: block;
  width: 2px;
  height: 8px;
  background: #000;
  border-radius: 6px;
  position: absolute;
  top: 19px;
  left: 22px;
  transform: rotate(-45deg);
  box-sizing: content-box;
}
.woocommerce-product-gallery .flex-control-thumbs {
  zoom: 1;
  margin: 0;
  padding: 0;
  align-self: flex-start;
  margin-top: 30px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs {
    width: 80px;
    max-width: 80px;
    min-width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li {
  padding: 0 10px 10px;
  float: left;
  margin: 0;
  list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
  cursor: pointer;
  opacity: 0.5;
  margin: 0;
  width: 40px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  opacity: 1;
}
.woocommerce-product-gallery .flex-control-thumbs .slick-list {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-list {
    flex-direction: column;
  }
}
.woocommerce-product-gallery .flex-control-thumbs .slick-current img {
  opacity: 1;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-current img {
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px #ccc;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-next {
    transform: rotate(90deg) translateY(50%);
    top: auto;
    bottom: -30px;
    left: 50%;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-prev {
    transform: rotate(90deg) translateY(50%);
    top: -30px;
    left: 50%;
  }
}

/* Variable Product */
div.product-type-variable {
  /* For variations */
  /* After variation select */
}
div.product-type-variable table.variations {
  table-layout: fixed;
  margin-bottom: 10px;
}
div.product-type-variable table.variations tbody {
  vertical-align: top;
  border: 0;
}
div.product-type-variable table.variations td {
  border: 0;
}
div.product-type-variable table.variations .label {
  width: 120px;
}
div.product-type-variable table.variations .value {
  width: auto;
}
div.product-type-variable table.variations .value select {
  width: 100%;
}
div.product-type-variable table.variations .value .reset_variations {
  display: none !important;
}
div.product-type-variable .single_variation_wrap > * {
  margin-bottom: 15px;
}
div.product-type-variable .single_variation_wrap .single_variation {
  padding: 20px 10px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product-type-variable .single_variation_wrap .single_variation {
    padding: 20px;
  }
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price {
  border-top: 1px solid #f1f1f1;
  padding-top: 20px;
  margin-top: 20px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  content: "Price";
  display: inline-block;
  width: 120px;
  margin-right: 6px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price del {
  font-size: 1.2rem;
  opacity: 0.6;
  margin-right: 3px;
}

/* Quantity and Add to cart module */
div.product-type-variable .woocommerce-variation-add-to-cart, div.product-type-simple form.cart {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  padding: 15px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart input.qty, div.product-type-simple form.cart input.qty {
  height: 100%;
  width: 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity, div.product-type-simple form.cart .quantity {
  position: relative;
  z-index: 2;
  display: flex;
  flex-flow: row nowrap;
  flex: 0 0 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input, div.product-type-simple form.cart .quantity input {
  border: 0;
  border-top: 1px solid hsl(0deg, 0%, 80%);
  border-bottom: 1px solid hsl(0deg, 0%, 80%);
  text-align: center;
  border-radius: 0;
  z-index: 1;
  /* Hide HTML5 Up and Down arrows. */
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-inner-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number], div.product-type-simple form.cart .quantity input[type=number] {
  -moz-appearance: textfield;
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus,
div.product-type-variable .woocommerce-variation-add-to-cart .plus,
div.product-type-simple form.cart .plus {
  font-size: 20px;
  width: 40px;
  height: 40px;
  padding: 0;
  font-weight: 700;
  border: 1px solid hsl(0deg, 0%, 80%);
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus {
  border-radius: 4px 0 0 4px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .plus, div.product-type-simple form.cart .plus {
  border-radius: 0 4px 4px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .button.single_add_to_cart_button, div.product-type-simple form.cart .button.single_add_to_cart_button {
  flex: 1 1 0;
  margin-left: 15px;
}

/* Woocommerce Tabs */
.woocommerce .woocommerce-tabs {
  width: 100%;
}

/* Related Products */
.related.products {
  position: relative;
  width: 100%;
  padding: 50px 2.5%;
}
@media only screen and (min-width: 670px) {
  .related.products {
    padding: 50px 5%;
  }
}
.related.products > h2 {
  position: relative;
  text-align: center;
  font-size: 2.8rem;
}
.related.products .products {
  display: flex;
  flex-flow: row wrap;
}
.related.products .products > * {
  width: calc((100% - (20px / 2 * (2 - 1))) / 2);
  margin-right: 10px;
}
@media only screen and (max-width: 670px) {
  .related.products .products > * {
    margin-bottom: 10px;
  }
}
@media only screen and (max-width: 670px) {
  .related.products .products > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .related.products .products > * {
    width: calc((100% - (20px * (4 - 1))) / 4);
    margin-right: 20px;
  }
  .related.products .products > *:nth-child(4n) {
    margin-right: 0;
  }
}

/* Single product add to any plugin */
.summary .addtoany_header {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .summary .addtoany_header {
    text-align: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .addtoany_header {
    float: left;
    line-height: 30px;
    width: 120px;
  }
}
.summary .a2a_kit {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
@media only screen and (max-width: 670px) {
  .summary .a2a_kit {
    width: 100%;
    margin-top: -10px;
    padding-bottom: 30px;
    justify-content: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .a2a_kit {
    left: 10px;
  }
}

/* Woo Cart
 ============================================= */
/* Structure */
.woocommerce-cart .woocommerce {
  padding: 50px 3vw 80px;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce {
    padding: 50px 5% 80px;
  }
}

.woocommerce-cart .woocommerce-cart-form {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce-cart-form {
    margin-right: 5vw;
    flex: 2 1 0;
  }
}
.woocommerce-cart .cart-collaterals {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .cart-collaterals {
    flex: 1 1 0;
  }
}

/* General Table */
.shop_table {
  background-color: #fff;
  font-size: 1.4rem;
  table-layout: fixed;
  overflow: hidden;
}
.shop_table p {
  margin: 0;
}
.shop_table thead {
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
  text-transform: uppercase;
  border-bottom: 5px solid #eee;
}
.shop_table th {
  padding: 8px 10px;
  font-weight: 700;
  border-top: 1px solid #eee;
}
.shop_table td {
  padding: 15px 10px;
}
@media only screen and (min-width: 960px) {
  .shop_table td {
    padding: 25px 15px;
  }
}
.shop_table td:before {
  text-transform: uppercase;
  font-size: 1.2rem;
  color: #999;
}
.shop_table td.product-name {
  font-weight: 700;
  color: #d96c00;
  font-size: 1.4rem;
  width: auto;
  line-height: 2.2rem;
}
.shop_table td.product-name a {
  color: hsl(0deg, 0%, 30%);
  font-weight: 700;
}
.shop_table td.product-name p {
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
  margin-bottom: 15px;
  font-weight: 400;
}
.shop_table td.product-name p:last-child {
  margin-bottom: 0;
}
.shop_table .product-quantity {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity {
    width: 100px;
  }
}
.shop_table .product-quantity input {
  width: 50px;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity input {
    width: 80%;
    text-align: left;
  }
}
@media only screen and (min-width: 670px) {
  .shop_table .product-price {
    width: 100px;
  }
  .shop_table .product-subtotal {
    width: 100px;
  }
}

/* Cart Table */
table.cart {
  /* Mobile Table */
}
table.cart .product-remove {
  font-weight: 700;
  padding: 10px;
}
@media only screen and (min-width: 670px) {
  table.cart .product-remove {
    width: 30px;
  }
}
table.cart .product-remove a {
  width: 26px;
  height: 26px;
  background-color: #B70000;
  border-radius: 50%;
  font-size: 0;
  color: #fff;
  margin: 0 0 0 auto;
  font-size: 0;
}
table.cart .product-remove a:hover,
table.cart .product-remove a a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 960px) {
  table.cart .product-remove a {
    width: 20px;
    height: 20px;
    opacity: 0.6;
  }
  table.cart .product-remove a:hover {
    opacity: 1;
    text-decoration: none;
  }
}
table.cart .product-remove a:after {
  content: "\ea0a";
  font-size: 14px;
  font-weight: 700;
}
@media only screen and (min-width: 670px) {
  table.cart .product-thumbnail {
    width: 100px;
    text-align: center;
  }
  table.cart .product-thumbnail img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    padding: 5px;
  }
}
table.cart .actions {
  padding: 20px;
  border-top: 3px solid #eee;
  *zoom: 1;
}
table.cart .actions::after, table.cart .actions::before {
  content: " ";
  display: table;
}
table.cart .actions::after {
  clear: both;
}
table.cart .actions .button {
  margin: 0;
  font-size: 1.3rem;
}
table.cart .actions .coupon {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  float: left;
}
table.cart .actions .coupon label[for=coupon_code] {
  display: none;
}
table.cart .actions button[name=update_cart] {
  float: right;
}
table.cart .actions #coupon_code {
  width: 50%;
}
@media only screen and (min-width: 960px) {
  table.cart .actions #coupon_code {
    width: auto;
  }
}
@media only screen and (max-width: 670px) {
  table.cart tbody tr.cart_item {
    border: 1px solid #eee;
    margin-bottom: 20px;
    border-radius: 10px;
  }
  table.cart tbody tr.cart_item td {
    border-color: #f5f5f5;
  }
}

/* Variation text within table */
.variation,
.wc-item-meta {
  margin: 0;
}
.variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt {
  margin-top: 10px;
}
.variation dd,
.wc-item-meta dd {
  margin: 0;
}

/* Cart Totals Table */
.cart_totals {
  background-color: #f7f7f7;
  padding: 5px 20px 20px;
}
.cart_totals .shop_table {
  background-color: transparent;
  border-radius: 0;
  box-shadow: 0 0 0 0 transparent;
  margin-bottom: 10px;
}
@media only screen and (min-width: 670px) {
  .cart_totals .woocommerce-shipping-totals {
    width: 200%;
  }
}
.cart_totals > h2 {
  display: none;
}
.cart_totals tr:first-child > * {
  border-top: 0;
}
.cart_totals td,
.cart_totals th {
  padding: 12px 0;
}
.cart_totals th {
  width: auto;
  border-top: 1px solid #eee;
  color: #666;
}
.cart_totals td {
  text-align: right;
}
.cart_totals .woocommerce-shipping-destination {
  line-height: 20px;
  font-size: 1.2rem;
  margin: 10px 0;
  opacity: 0.8;
}
.cart_totals .woocommerce-shipping-destination strong {
  display: block;
}
.cart_totals .checkout-button i {
  font-size: 1.4rem;
}

#shipping_method {
  font: 700 1.4rem "Poppins", sans-serif;
}
#shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label {
  border-radius: 7px;
  border: 2px solid #733900;
}
#shipping_method input[type=radio] {
  display: none;
}
#shipping_method input[type=hidden] {
  display: none;
}
#shipping_method label {
  width: 100%;
  text-transform: capitalize;
}

.cart-empty {
  width: 100%;
  text-align: center;
}

.return-to-shop {
  width: 100%;
  text-align: center;
}

.woocommerce-checkout:not(.woocommerce-order-received) .entry,
.woocommerce-checkout:not(.woocommerce-order-received) .entry-content {
  padding: 0;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
  padding: 0 5% 50px;
  max-width: none;
}
@media only screen and (min-width: 960px) {
  .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
    padding: 0 5% 50px;
  }
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce .woocommerce-form-login-toggle {
  flex: 1 1 100%;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h3, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .col-1 h4, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4, form.woocommerce-checkout .checkout_coupon .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4 {
  margin-bottom: 20px;
}
.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address span {
  font-size: 1.6rem;
  font-weight: 400;
}

form.woocommerce-checkout .col2-set {
  display: flex;
  flex-flow: row wrap;
}
form.woocommerce-checkout .col2-set > * {
  width: 100%;
  margin-bottom: 30px 2;
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > * {
    width: calc((100% - (30px 2 * (2 - 1))) / 2);
    margin-right: 30px 2;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > *:nth-child(1) {
    flex: 3 1 0;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2) {
    flex: 2 1 0;
  }
}
form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
  margin-bottom: 50px;
}
form.woocommerce-checkout .col-1 > *, form.woocommerce-checkout .checkout_coupon > * {
  margin-bottom: 25px;
}
form.woocommerce-checkout .col-1 > *:last-child, form.woocommerce-checkout .checkout_coupon > *:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 670px) {
  form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
    padding: 0;
  }
}
form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  border-top: 1px solid hsl(0deg, 0%, 90%);
  padding-top: 50px;
  margin-top: 50px;
}
form.woocommerce-checkout .col-2 {
  padding: 30px 10px;
  align-self: flex-start;
}
@media only screen and (min-width: 960px) {
  form.woocommerce-checkout .col-2 {
    padding: 0;
  }
}

@media only screen and (min-width: 960px) {
  #order-review-wrapper {
    border-left: 1px solid hsl(0deg, 0%, 95%);
    padding-left: 50px;
    margin-left: 50px;
    max-width: 400px;
  }
}

/* Ship to a different address */
.woocommerce-form__label-for-checkbox span {
  font-size: 1.6rem;
  font-weight: 700;
  font-family: "Poppins", sans-serif;
  letter-spacing: 0;
}

/* Select shipping method
--------------------------------------------- */
.checkout-select-shipping-method {
  border-top: 1px solid hsl(0deg, 0%, 85%);
  padding-top: 60px;
  margin-top: 60px;
}

/* Payment method
--------------------------------------------- */
.woocommerce-checkout-review-order h4 {
  font-weight: 700;
}

/* Checkout Page Order Summary Table
--------------------------------------------- */
.shop_table.woocommerce-checkout-review-order-table .product-total,
.shop_table.woocommerce-checkout-review-order-table tfoot td {
  width: 80px;
  text-align: right;
  vertical-align: top;
}
.shop_table.woocommerce-checkout-review-order-table thead {
  display: none;
}
.shop_table.woocommerce-checkout-review-order-table th {
  padding: 8px 0;
}
.shop_table.woocommerce-checkout-review-order-table td {
  font-size: 13px;
  line-height: 1.3;
  padding: 13px 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation {
  overflow: hidden;
  max-height: 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation p {
  font-size: 12px;
}
.shop_table.woocommerce-checkout-review-order-table .variation--active {
  max-height: 500px;
}
.shop_table.woocommerce-checkout-review-order-table .order-total {
  border-bottom: 4px double hsl(0deg, 0%, 75%);
}
.shop_table.woocommerce-checkout-review-order-table .product-name {
  cursor: pointer;
}
.shop_table.woocommerce-checkout-review-order-table .product-name:hover {
  color: #8d4600;
}

/* Payment Section
--------------------------------------------- */
#payment {
  /* To select saved payment methods */
}
#payment .wc-saved-payment-methods {
  margin: 15px 0;
}
#payment .wc-saved-payment-methods label {
  padding: 0.5rem 1rem;
}
#payment .wc-saved-payment-methods label:hover {
  background-color: #e6e6e6;
}

input[id^=payment_method] {
  display: none;
}
input[id^=payment_method]:checked + label {
  background-color: #d96c00;
  color: #fff;
  border-radius: 7px 7px 0 0;
  border: 0;
}

.wc_payment_methods {
  margin-bottom: 25px;
}

.wc_payment_method {
  margin-bottom: 15px;
}
.wc_payment_method > label {
  cursor: pointer;
  width: 100%;
  text-align: left;
  border: 1px solid hsl(0deg, 0%, 80%);
  border-radius: 7px;
  text-transform: none;
  font-size: 1.6rem;
}
.wc_payment_method > label:hover {
  border: 1px solid hsl(0deg, 0%, 70%);
}
.wc_payment_method > label img {
  float: right;
}

.payment_box {
  border: 1px solid hsl(0deg, 0%, 88%);
  border-top: 0;
  border-radius: 0 0 7px 7px;
  padding: 20px;
  background-color: hsl(0deg, 0%, 98%);
  /* Error inside payment */
}
@media only screen and (min-width: 960px) {
  .payment_box {
    padding: 30px 30px 20px;
  }
}
.payment_box .wc-payment-form {
  border: 0;
  padding: 0;
}
.payment_box .wc-payment-form .form-row {
  margin-bottom: 10px;
}
.payment_box .woocommerce_error {
  font-weight: 700;
  padding: 0.5rem 1rem;
  text-align: center;
}

/* For Stripe only
--------------------------------------------- */
#stripe-payment-data p {
  font-size: 1.3rem;
  line-height: 1.5;
}

label[for=payment_method_stripe] img {
  display: none;
}

/* After payment box
--------------------------------------------- */
.place-order .woocommerce-terms-and-conditions-checkbox-text {
  display: inline-flex;
}
.place-order .woocommerce-terms-and-conditions-checkbox-text a {
  margin-left: 3px;
}
.place-order p {
  font-size: 1.4rem;
  color: #666;
}

#place_order {
  width: 100%;
}

/* Errors
--------------------------------------------- */
/* Order Delivery Date Only */
#orddd_time_slot_field .select2-selection,
#orddd_time_slot_field .select2-selection__arrow {
  height: 40px;
}
#orddd_time_slot_field .select2-selection__rendered {
  line-height: 38px;
}

#payment .payment_methods > li > label img {
  display: none;
}

/* Checkout coupon */
.checkout_coupon {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
}
.checkout_coupon button {
  width: 100%;
}
.checkout_coupon .form-row {
  margin-left: 0;
  margin-right: 0;
}

#order_review_heading {
  font-family: "Libre Baskerville", serif;
  font-weight: 700;
}

.woocommerce-checkout .woocommerce-form-login .form-row {
  width: 100%;
}

/* 1 item to review
 ============================================= */
.woocommerce-order-received .entry-title {
  font-size: 4rem;
}
.woocommerce-order-received .woocommerce-order {
  padding: 50px 5%;
  background-color: hsl(0deg, 0%, 97%);
}
.woocommerce-order-received .woocommerce-order > * {
  margin-bottom: 40px;
}
.woocommerce-order-received .woocommerce-order > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-received .woocommerce-order {
    padding: 50px 10%;
  }
}
.woocommerce-order-received .woocommerce-order-details__title {
  font-size: 2rem;
}
@media only screen and (max-width: 670px) {
  .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details {
    padding: 0;
  }
}

/* Overview bar */
.woocommerce-order-overview {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  background-color: #fff;
  position: relative;
  margin: 0 auto;
  border-top: 3px solid #FF850D;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
  /* REVIEW THIS */
}
.woocommerce-order-overview > * {
  flex: 1 1 100%;
  position: relative;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 1.2rem;
  padding: 10px 20px;
  border-right: 1px dotted #ddd;
  color: #888;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview > * {
    flex: 1 1 0;
  }
}
.woocommerce-order-overview > *:last-child {
  border-right: 0;
}
.woocommerce-order-overview > * strong {
  position: relative;
  text-transform: none;
  display: block;
  font-weight: 700;
  font-size: 1.6rem;
  color: #9c4d00;
  line-height: 20px;
}
.woocommerce-order-overview .deliveryDetails {
  flex: 1 1 100%;
  background-color: #d96c00;
  margin: 0;
  color: #fff;
  font-size: 1.6rem;
  text-transform: capitalize;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview .deliveryDetails {
    text-align: center;
    flex: 1 1 50%;
  }
}
.woocommerce-order-overview .deliveryDetails > span {
  color: #fff;
}

.woocommerce-thankyou-order-received {
  text-align: center;
}

.woocommerce-table--order-details .product-total,
.woocommerce-table--order-details tfoot td {
  width: 20%;
  text-align: right;
  vertical-align: top;
}

.woocommerce-order-pay .entry-content {
  background-color: hsl(0deg, 0%, 97%);
}
.woocommerce-order-pay .product-quantity {
  width: auto;
}

/* Woocommerce Account Page
 ============================================= */
/* Main Structure */
.woocommerce-MyAccount-content {
  padding: 35px 17.5px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 10px;
  border: 1px solid #ddd;
}
@media only screen and (min-width: 670px) {
  .woocommerce-MyAccount-content {
    padding: 35px;
  }
}

/* general woocommerce account style. For my account, logged in, and lost password */
.woocommerce-account {
  /* Woocommerce account logged in specific style*/
}
.woocommerce-account .entry-content {
  position: relative;
  background-color: hsl(0deg, 0%, 97%);
  padding: 30px 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-account .entry-content {
    max-width: none;
    width: 100%;
    padding: 30px 10%;
  }
}
.woocommerce-account.logged-in .woocommerce {
  align-items: flex-start;
}
@media only screen and (min-width: 670px) {
  .woocommerce-account.logged-in .woocommerce > *:nth-child(1) {
    flex: 1 1 0;
  }
  .woocommerce-account.logged-in .woocommerce > *:nth-child(2) {
    flex: 3 1 0;
  }
}

/* My Account Navigation */
.woocommerce-MyAccount-navigation {
  background-color: #fff;
  border-radius: 10px;
  border: 1px solid #ddd;
  padding: 15px 0;
}

.woocommerce-MyAccount-navigation-link {
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.woocommerce-MyAccount-navigation-link.is-active a {
  font-weight: 700;
  color: #d96c00;
}
.woocommerce-MyAccount-navigation-link a {
  display: block;
  padding: 0 12px;
  color: #888;
  font-size: 1.5rem;
  font-weight: 400;
}
.woocommerce-MyAccount-navigation-link a:hover {
  text-decoration: none;
  padding-left: 18px;
  color: #555;
}

/* Content */
.woocommerce-MyAccount-content {
  display: flex;
  flex-flow: column nowrap;
  margin: 0 auto;
}
.woocommerce-MyAccount-content em {
  opacity: 0.8;
  font-size: 1.4rem;
}
.woocommerce-MyAccount-content mark {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: hsl(0deg, 0%, 95%);
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
  color: hsl(0deg, 0%, 20%);
}
.woocommerce-MyAccount-content mark:hover {
  background-color: #d9d9d9;
}
.woocommerce-MyAccount-content fieldset {
  background-color: hsl(0deg, 0%, 99%);
  border: 1px solid hsl(0deg, 0%, 90%);
  padding: 10px 30px;
  margin: 20px 0;
}
.woocommerce-MyAccount-content fieldset legend {
  font-weight: 700;
  font-size: 1.6rem;
  color: hsl(0deg, 0%, 40%);
  padding: 0 10px;
  margin: 0 -10px;
}

/* Remove dashboard link */
.woocommerce-MyAccount-navigation-link--dashboard {
  display: none;
}

/* Password strength */
.woocommerce-password-strength {
  padding: 5px 0;
}
.woocommerce-password-strength.short {
  color: #B70000;
}
.woocommerce-password-strength.bad {
  color: #ff5b36;
}
.woocommerce-password-strength.good {
  color: #689447;
}
.woocommerce-password-strength.strong {
  color: #689447;
}

/* Woocommerce Account Orders Table */
.woocommerce-orders-table__cell-order-delivery-date, .woocommerce-orders-table__header-order-delivery-date {
  display: none !important;
}
@media only screen and (min-width: 960px) {
  .woocommerce-orders-table__header-order-number {
    width: 80px;
  }
  .woocommerce-orders-table__header-order-actions, .woocommerce-orders-table__header-order-status {
    width: 120px;
  }
}

.woocommerce-table--order-details td {
  padding: 15px 10px;
  line-height: 1.5;
}

/* Login
 ============================================= */
/* My account page
--------------------------------------------- */
#customer_login {
  display: flex;
  flex-flow: row wrap;
}
#customer_login > * {
  width: 100%;
  margin-bottom: 5vw;
}
@media only screen and (min-width: 670px) {
  #customer_login > * {
    width: calc((100% - (5vw * (2 - 1))) / 2);
    margin-right: 5vw;
  }
  #customer_login > *:nth-child(2n) {
    margin-right: 0;
  }
}
#customer_login .woocommerce-form-login {
  background-color: transparent;
  padding: 0;
}
#customer_login .col-1, #customer_login .checkout_coupon {
  border-bottom: 1px solid hsl(0deg, 0%, 85%);
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  #customer_login .col-1, #customer_login .checkout_coupon {
    border-bottom: 0;
    margin-bottom: 0;
  }
}

.woocommerce-form-login {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  background-color: #fff;
  padding: 30px;
  width: 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-form-login {
    max-width: 50vw;
    margin: 0 auto;
  }
}
.woocommerce-form-login label.woocommerce-form__label {
  float: right;
  font-size: 1.4rem;
}

.woocommerce-privacy-policy-text p {
  line-height: 1.5;
  color: hsl(0deg, 0%, 60%);
}

/* For lost password page */
.widget_layered_nav_filters ul {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none outside;
  zoom: 1;
}
.widget_layered_nav_filters ul li {
  float: left;
  padding: 0 1em 1px 1px;
  list-style: none;
}
.widget_layered_nav_filters ul li a {
  color: #888;
  font-size: 1.3rem;
  text-decoration: none;
}
.widget_layered_nav_filters ul li a::before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\ea0a";
  font-weight: 700;
  margin-right: 8px;
  width: 15px;
  height: 15px;
  background-color: #B70000;
  border-radius: 50%;
  font-size: 1.4rem;
  color: #fff;
}
.widget_layered_nav_filters ul li a::before:hover,
.widget_layered_nav_filters ul li a::before a:hover {
  text-decoration: none;
}

/* Interactive Cart
 ============================================= */
/* Header buttons */
#cart-items {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #FF850D;
  border-radius: 50%;
  font-size: 1.4rem;
  font-weight: 700;
  top: -5px;
  right: -3px;
  color: #fff;
}
#cart-items:hover,
#cart-items a:hover {
  text-decoration: none;
}

#interactive-cart-activate {
  position: relative;
}

.interactive-cart__bg {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background-color: rgba(0, 0, 20, 0.5);
}

.interactive-cart-wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 99999999;
  display: none;
}

.interactive-cart {
  position: relative;
  background-color: hsl(0deg, 0%, 95%);
  margin: 0 0 0 auto;
  height: 100%;
  display: flex;
  flex-flow: column nowrap;
  overflow: hidden;
}
@media only screen and (min-width: 960px) {
  .interactive-cart {
    width: 40vw;
  }
}

/* Cart Header */
.interactive-cart-header {
  position: relative;
  background-color: #fff;
  padding: 20px 12px;
  flex: 0 1 0;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-header {
    padding: 12px;
  }
}
.interactive-cart-header > * {
  margin: 0;
  text-align: center;
  color: #888;
}
.interactive-cart-header a:hover {
  text-decoration: none;
}
.interactive-cart-header .interactive-cart-close {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  left: 0;
  top: 0;
  color: hsl(0deg, 0%, 50%);
  height: 100%;
  width: 50px;
  font-size: 25px;
}
.interactive-cart-header .interactive-cart-close:hover {
  left: -3px;
  color: #777;
}

/* Mini Cart Notice */
.interactive-cart__notice {
  padding: 10px 0;
}
.interactive-cart__notice > * {
  margin-bottom: 5px;
}
.interactive-cart__notice > *:last-child {
  margin-bottom: 0;
}
.interactive-cart__notice > * {
  margin-left: 15px;
  margin-right: 15px;
}
.interactive-cart__notice.cart-item-card {
  flex-flow: column nowrap;
}
.interactive-cart__notice p {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.message--error {
  color: #B70000;
}

.message--success {
  color: #689447;
}

/* Cart Item List */
.interactive-cart-items {
  flex: 1 1 0;
  padding: 20px 0;
  overflow-y: scroll;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-items {
    margin-right: -17px;
    padding-right: 17px;
    /* Increase/decrease this value for cross-browser compatibility */
    box-sizing: content-box;
    /* So the width will be 100% + 17px */
  }
}

/* Cart Item */
.cart-item-card {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  flex-wrap: nowrap;
  width: 94%;
  background-color: #fff;
  border-radius: 8px;
  margin-left: 3%;
  margin-right: 3%;
  margin-bottom: 10px;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.cart-item-card > figure {
  position: relative;
  width: 80px;
  padding-top: 80px;
}
.cart-item-card > figure > img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 0;
  position: relative;
  padding: 15px;
  background-color: #fff;
}
@media only screen and (min-width: 960px) {
  .cart-item-card {
    width: 93%;
    margin-left: 5%;
    margin-right: auto;
  }
}
.cart-item-card img {
  align-self: center;
  margin: 10px;
  display: block;
  width: 100px;
  height: 100px;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 auto;
}
.cart-item-card .caption > * {
  margin-bottom: 8px;
}
.cart-item-card .caption > *:last-child {
  margin-bottom: 0;
}
.cart-item-card .caption > * {
  font-size: 1.4rem;
}
.cart-item-card .product-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #8d4600;
}
.cart-item-card .remove_from_cart_button {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 40px;
  height: 40px;
  font-size: 20px;
  text-align: center;
  line-height: 40px;
  text-decoration: none;
  font-weight: 700;
  color: #B70000;
}

.interactive-cart-summary {
  position: relative;
  background-color: #fff;
  flex: 0 1 0;
}
.interactive-cart-summary > div {
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 5px;
  margin-bottom: 5px;
  position: relative;
  justify-content: space-between;
  padding: 8px 5%;
}
.interactive-cart-summary > div > * {
  margin-bottom: 0;
}
.interactive-cart-summary > div:last-of-type {
  margin-bottom: 0;
  border-bottom: 0;
}

.interactive-cart-summary__buttons {
  display: flex;
  flex-flow: row wrap;
}
.interactive-cart-summary__buttons > * {
  width: calc((100% - (0px / 2 * (2 - 1))) / 2);
  margin-right: 0px;
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > * {
    margin-bottom: 0px;
  }
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .interactive-cart-summary__buttons > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
.interactive-cart-summary__buttons a {
  border-radius: 0;
}
.interactive-cart-summary__buttons a:first-child {
  border-right: 1px solid #c05f00;
}

/* If there are no products */
.no-product-text {
  position: relative;
  display: block;
  text-align: center;
  padding: 0 5%;
}

/* Woocommerce address component
 =============================================
1. Order order-received
2. My Account edit address
*/
/* Address section */
header.woocommerce-Address-title {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
header.woocommerce-Address-title h2,
header.woocommerce-Address-title h3,
header.woocommerce-Address-title form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 header.woocommerce-Address-title h4,
header.woocommerce-Address-title form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon header.woocommerce-Address-title h4 {
  margin-bottom: 0;
}
/* Addresses */
.addresses h2,
.addresses h3,
.addresses form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .addresses h4,
.addresses form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .addresses h4,
.woocommerce-customer-details h2,
.woocommerce-customer-details h3,
.woocommerce-customer-details form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .woocommerce-customer-details h4,
.woocommerce-customer-details form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .woocommerce-customer-details h4 {
  font-size: 1.8rem;
}
.addresses address,
.woocommerce-customer-details address {
  padding: 15px 7.5px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (min-width: 670px) {
  .addresses address,
.woocommerce-customer-details address {
    padding: 15px;
  }
}
.addresses address:before,
.woocommerce-customer-details address:before {
  content: "Address: ";
}
.addresses address p,
.woocommerce-customer-details address p {
  margin-top: 15px;
  margin-bottom: 0;
  line-height: 1.5;
  font-size: 1.4rem;
}
.addresses address p.woocommerce-customer-details--phone:before,
.woocommerce-customer-details address p.woocommerce-customer-details--phone:before {
  content: "Phone: ";
}
.addresses address p.woocommerce-customer-details--email:before,
.woocommerce-customer-details address p.woocommerce-customer-details--email:before {
  content: "Email address: ";
}

/**
 * woocommerce-smallscreen.scss
 * Optimises the default WooCommerce frontend layout when viewed on smaller screens.
 */
/**
 * Style begins
 */
@media only screen and (max-width: 670px) {
  .woocommerce,
.woocommerce-page {
    /**
    * General layout
    */
    /**
    * Products
    */
    /**
    * Product Details
    */
    /**
    * Cart
    */
    /**
    * Checkout
    */
    /**
    * Account
    */
  }
  .woocommerce table.shop_table_responsive thead,
.woocommerce-page table.shop_table_responsive thead {
    display: none;
  }
  .woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,
.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child {
    border-top: 0;
  }
  .woocommerce table.shop_table_responsive tbody th,
.woocommerce-page table.shop_table_responsive tbody th {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr,
.woocommerce-page table.shop_table_responsive tr {
    display: block;
  }
  .woocommerce table.shop_table_responsive tr td,
.woocommerce-page table.shop_table_responsive tr td {
    display: block;
    text-align: right !important;
  }
  .woocommerce table.shop_table_responsive tr td.order-actions,
.woocommerce-page table.shop_table_responsive tr td.order-actions {
    text-align: left !important;
  }
  .woocommerce table.shop_table_responsive tr td::before,
.woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    float: left;
  }
  .woocommerce table.shop_table_responsive tr td.actions::before, .woocommerce table.shop_table_responsive tr td.product-remove::before,
.woocommerce-page table.shop_table_responsive tr td.actions::before,
.woocommerce-page table.shop_table_responsive tr td.product-remove::before {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
    background-color: rgba(0, 0, 0, 0.025);
  }
  .woocommerce table.my_account_orders tr td.order-actions,
.woocommerce-page table.my_account_orders tr td.order-actions {
    text-align: left;
  }
  .woocommerce table.my_account_orders tr td.order-actions::before,
.woocommerce-page table.my_account_orders tr td.order-actions::before {
    display: none;
  }
  .woocommerce table.my_account_orders tr td.order-actions .button,
.woocommerce-page table.my_account_orders tr td.order-actions .button {
    float: none;
    margin: 0.125em 0.25em 0.125em 0;
  }
  .woocommerce .col2-set .col-1, .woocommerce .col2-set .checkout_coupon,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .checkout_coupon,
.woocommerce-page .col2-set .col-2 {
    float: none;
    width: 100%;
  }
  .woocommerce #content div.product div.images,
.woocommerce #content div.product div.summary,
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.images,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
    float: none;
    width: 100%;
  }
  .woocommerce #content table.cart .product-thumbnail,
.woocommerce table.cart .product-thumbnail,
.woocommerce-page #content table.cart .product-thumbnail,
.woocommerce-page table.cart .product-thumbnail {
    display: none;
  }
  .woocommerce #content table.cart td.actions,
.woocommerce table.cart td.actions,
.woocommerce-page #content table.cart td.actions,
.woocommerce-page table.cart td.actions {
    text-align: left;
  }
  .woocommerce #content table.cart td.actions .coupon,
.woocommerce table.cart td.actions .coupon,
.woocommerce-page #content table.cart td.actions .coupon,
.woocommerce-page table.cart td.actions .coupon {
    float: none;
    *zoom: 1;
    padding-bottom: 0.5em;
  }
  .woocommerce #content table.cart td.actions .coupon::after, .woocommerce #content table.cart td.actions .coupon::before,
.woocommerce table.cart td.actions .coupon::after,
.woocommerce table.cart td.actions .coupon::before,
.woocommerce-page #content table.cart td.actions .coupon::after,
.woocommerce-page #content table.cart td.actions .coupon::before,
.woocommerce-page table.cart td.actions .coupon::after,
.woocommerce-page table.cart td.actions .coupon::before {
    content: " ";
    display: table;
  }
  .woocommerce #content table.cart td.actions .coupon::after,
.woocommerce table.cart td.actions .coupon::after,
.woocommerce-page #content table.cart td.actions .coupon::after,
.woocommerce-page table.cart td.actions .coupon::after {
    clear: both;
  }
  .woocommerce #content table.cart td.actions .coupon .button,
.woocommerce #content table.cart td.actions .coupon .input-text,
.woocommerce #content table.cart td.actions .coupon input,
.woocommerce table.cart td.actions .coupon .button,
.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce table.cart td.actions .coupon input,
.woocommerce-page #content table.cart td.actions .coupon .button,
.woocommerce-page #content table.cart td.actions .coupon .input-text,
.woocommerce-page #content table.cart td.actions .coupon input,
.woocommerce-page table.cart td.actions .coupon .button,
.woocommerce-page table.cart td.actions .coupon .input-text,
.woocommerce-page table.cart td.actions .coupon input {
    width: 48%;
    box-sizing: border-box;
  }
  .woocommerce #content table.cart td.actions .coupon .button.alt,
.woocommerce #content table.cart td.actions .coupon .input-text + .button,
.woocommerce table.cart td.actions .coupon .button.alt,
.woocommerce table.cart td.actions .coupon .input-text + .button,
.woocommerce-page #content table.cart td.actions .coupon .button.alt,
.woocommerce-page #content table.cart td.actions .coupon .input-text + .button,
.woocommerce-page table.cart td.actions .coupon .button.alt,
.woocommerce-page table.cart td.actions .coupon .input-text + .button {
    float: right;
  }
  .woocommerce #content table.cart td.actions .button,
.woocommerce table.cart td.actions .button,
.woocommerce-page #content table.cart td.actions .button,
.woocommerce-page table.cart td.actions .button {
    display: block;
    width: 100%;
  }
  .woocommerce .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cross-sells,
.woocommerce .cart-collaterals .shipping_calculator,
.woocommerce-page .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cross-sells,
.woocommerce-page .cart-collaterals .shipping_calculator {
    width: 100%;
    float: none;
    text-align: left;
  }
  .woocommerce.woocommerce-checkout form.login .form-row,
.woocommerce-page.woocommerce-checkout form.login .form-row {
    width: 100%;
    float: none;
  }
  .woocommerce #payment .terms,
.woocommerce-page #payment .terms {
    text-align: left;
    padding: 0;
  }
  .woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
    float: none;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1em;
  }
  .woocommerce .lost_reset_password .form-row-first,
.woocommerce .lost_reset_password .form-row-last,
.woocommerce-page .lost_reset_password .form-row-first,
.woocommerce-page .lost_reset_password .form-row-last {
    width: 100%;
    float: none;
    margin-right: 0;
  }
  .woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
    float: none;
    width: 100%;
  }
  /**
  * Twenty Thirteen specific styles
  */
  .single-product .twentythirteen .panel {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
#woocommerce-product-search-field {
  position: fixed;
  width: 100%;
  height: 70px;
  border: 0;
  border-radius: 0;
  background-color: hsl(0deg, 0%, 95%);
  text-align: center;
  font-size: 2.4rem;
  max-width: 0;
  left: 50%;
  right: 50%;
  padding: 0;
}
#woocommerce-product-search-field:focus, #woocommerce-product-search-field:hover {
  background-color: #FF850D;
  color: #fff;
  box-shadow: none;
}
#woocommerce-product-search-field:focus::placeholder, #woocommerce-product-search-field:hover::placeholder {
  color: #fff;
}
.woocommerce-product-search--active #woocommerce-product-search-field {
  max-width: 100%;
  left: 0;
  right: 0;
  padding: 0 5%;
}

#woocommerce-product-search-button {
  -webkit-appearance: none;
  background: transparent;
  padding: 0;
}
#woocommerce-product-search-button:hover {
  background: transparent;
}
#woocommerce-product-search-button i {
  font-weight: 700;
  width: 40px;
  height: 40px;
  line-height: 40px;
}

/* Make woocommerce variations table full width*/
table.variations tr {
  display: flex;
  flex-flow: column nowrap;
}
table.variations tr td {
  padding: 0;
}

/* wapf checkbox prices */
.wapf-pricing-hint {
  float: right !important;
}

.wapf-input[type=checkbox] + .wapf-label-text {
  padding-left: 0;
}

/* WAPF Radio Buttons */
.wapf-radios {
  display: flex;
  flex-flow: row wrap;
}
.wapf-radios > * {
  margin-right: 6px;
}
.wapf-radios > *:last-child {
  margin-right: 0;
}

.wapf-radios .wapf-input-label {
  height: 100%;
}
.wapf-radios .wapf-checkable {
  width: calc(50% - 6px);
  margin-bottom: 6px;
}
.wapf-radios .wapf-checkable.wapf-checked .wapf-label-text {
  border: 1px solid #a65200;
}
.wapf-radios .wapf-checkable input[type=radio] {
  display: none;
}
.wapf-radios .wapf-label-text {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border: 1px solid hsl(0deg, 0%, 80%);
}
@media only screen and (max-width: 670px) {
  .wapf-radios .wapf-label-text {
    flex-direction: column;
  }
}

/* Woocommerce Global Styles */
.woocommerce {
  *zoom: 1;
}
.woocommerce::after, .woocommerce::before {
  content: " ";
  display: table;
}
.woocommerce::after {
  clear: both;
}

/* Newly discovered global styles */
.woocommerce-column__title {
  margin-bottom: 10px;
}

/* Global forms */
/* Button styles for woocommerce */
/* Add to Cart Button AKA Main button */
.checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit] {
  margin-bottom: 0;
  display: block;
}

@media only screen and (max-width: 670px) {
  .wc-backward {
    display: block;
  }
}

/* BREADCRUMB */
.woocommerce-breadcrumb {
  font-size: 1.3rem;
  text-transform: uppercase;
  /* Archive Page */
  /* Single Product Breadcrumbs */
}
.woocommerce.archive .woocommerce-breadcrumb {
  letter-spacing: 1px;
}
.single-product .woocommerce-breadcrumb {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 20px;
  margin-bottom: 20px;
  width: 100%;
  color: #888;
  font-size: 1.4rem;
  padding: 20px 0;
}
@media only screen and (min-width: 670px) {
  .single-product .woocommerce-breadcrumb {
    padding: 30px 0;
  }
}
.single-product .woocommerce-breadcrumb a {
  margin: 0;
  font-weight: 700;
}

/* SALE LABEL */
.onsale {
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
}
li.product .onsale {
  display: table;
  margin: -26px auto 5px;
  font-size: 12px;
  padding: 0.05rem 0.6rem;
  border-radius: 3px;
  background-color: #689447;
}
.summary .onsale {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: #689447;
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
}
.summary .onsale:hover {
  background-color: #507236;
}

/* Message box */
.woocommerce-notices-wrapper {
  margin: 30px auto 0;
  flex: 1 1 100%;
}
.woocommerce-account.logged-in .woocommerce-notices-wrapper {
  margin-top: 0;
}
.woocommerce-cart .woocommerce-notices-wrapper {
  margin-top: 0;
}

.woocommerce-NoticeGroup {
  margin: 30px auto 0;
  flex: 1 1 100%;
}

/* All information and messages */
.woocommerce-info,
.woocommerce-message {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  background-color: #f2f2f2;
  color: #555;
  list-style: none outside;
  width: 100%;
  margin: 0 auto 2em;
  word-wrap: break-word;
  text-align: center;
  padding: 12px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info,
.woocommerce-message {
    margin-bottom: 30px;
    padding: 12px 24px 12px 12px;
  }
}
.woocommerce-info a,
.woocommerce-message a {
  width: 100%;
  height: auto;
  white-space: nowrap;
  border-radius: 3px;
  margin: 0 0 10px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info a,
.woocommerce-message a {
    width: auto;
    margin: 0 10px;
  }
}
.woocommerce-info .restore-item,
.woocommerce-message .restore-item {
  display: none;
}

/* All errors */
.woocommerce-error {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  list-style: none outside;
  width: 100%;
  word-wrap: break-word;
  display: flex;
  flex-flow: column nowrap;
  padding: 12px;
  margin-bottom: 30px;
}
.woocommerce-error li {
  list-style: none outside !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  width: 100%;
  margin-bottom: 0 !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li {
  margin-bottom: 10px !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li:last-child {
  margin-bottom: 0 !important;
}

.woocommerce-message {
  color: #fff;
  background-color: #689447;
}
.woocommerce-message a {
  background: #5c833f;
}
.woocommerce-message a:hover {
  background-color: #507236;
}

.woocommerce-info {
  color: #fff;
  background-color: #ccc;
}
.woocommerce-info a {
  background: #bfbfbf;
}
.woocommerce-info a:hover {
  background-color: #b3b3b3;
}

.woocommerce-error {
  color: #fff;
  background-color: #B70000;
}
.woocommerce-error a {
  background: #9e0000;
}
.woocommerce-error a:hover {
  background-color: #840000;
}

/* PAGINATION */
.woocommerce-pagination {
  position: relative;
  text-align: center;
  margin: 10px 0;
  flex: 1 1 100%;
}
.woocommerce-pagination .page-numbers > * {
  margin-right: 5px;
}
.woocommerce-pagination .page-numbers > *:last-child {
  margin-right: 0;
}
.woocommerce-pagination a,
.woocommerce-pagination span {
  font-size: 1.6rem;
}
.woocommerce-pagination span {
  cursor: unset;
}
/* Woocommerce Store Notice */
.woocommerce-store-notice {
  position: fixed;
  width: 100%;
  color: #fff;
  background-color: #FF850D;
  text-align: center;
  margin-bottom: 0;
  padding: 12px 5%;
  z-index: 88;
  bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-store-notice {
    position: relative;
    padding: 6px 5%;
  }
}

.woocommerce-store-notice__dismiss-link {
  position: absolute;
  right: 5%;
  color: #fff;
  font-size: 18px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJhYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsImFic3RyYWN0cy9fZnVuY3Rpb25zLnNjc3MiLCJhYnN0cmFjdHMvX3BsYWNlaG9sZGVycy5zY3NzIiwidmVuZG9ycy9fc2xpY2suc2NzcyIsInZlbmRvcnMvX3NsaWNrLXRoZW1lLnNjc3MiLCJ2ZW5kb3JzL19mZWF0aGVybGlnaHQuc2NzcyIsImZvbnRzL251Y2xlby5zY3NzIiwiZm9udHMvX3ZhcmlhYmxlcy5zY3NzIiwiZm9udHMvX21peGlucy5zY3NzIiwiZm9udHMvaWNvbnMuc2NzcyIsImJhc2UvX3Jlc2V0LnNjc3MiLCJiYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19kZWZhdWx0cy5zY3NzIiwiYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX2dzLXN0cnVjdHVyZS1sYXlvdXQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX3NpZGViYXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ncmFwaGljcy5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fd2lkZ2V0LnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fbGlzdC1wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL190aXRsZS1kaXZpZGVyLnNjc3MiLCJjb21wb25lbnRzL19vYmplY3RzLnNjc3MiLCJjb21wb25lbnRzL19iYW5uZXJzLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLXNsaWRlci5zY3NzIiwicGFnZXMvX3Bvc3QtYXJjaGl2ZS5zY3NzIiwicGFnZXMvX3Bvc3Qtc2luZ2xlLnNjc3MiLCJ0aGVtZXMva2hvb3poLnNjc3MiLCJ0aGVtZXMvd29vY29tbWVyY2Uuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9hcmNoaXZlLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvc2luZ2xlLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvY2FydC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2NoZWNrb3V0LnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvb3JkZXItcmVjZWl2ZWQuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9vcmRlci1wYXkuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9hY2NvdW50LnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvbG9naW4uc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy93aWRnZXRzLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvaW50ZXJhY3RpdmUtY2FydC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2FkZHJlc3Muc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9zbWFsbHNjcmVlbi5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL3dvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvYWR2YW5jZWQtcHJvZHVjdC1maWVsZHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNoQkE7QUFBQTtBQUVBO0FBS0E7QUFJQTtBQVVBO0FBRUE7QUFHQTtBQzFCQTtBQUFBO0FBRUE7QUFBQTtBQThCQTtBQUFBO0FBYUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBO0FBQUE7QUFVQTtBQUFBO0FBb0JBO0FBQUE7QUE4QkE7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7OztBQVFGO0FBQUE7QUFnQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5Q0E7QUFBQTtBQVFBO0FBQUE7QUF3QkE7QUFBQTtBQ3RPQTtBQUFBO0FDQUE7QUFBQTtBQUVBO0FBQUE7QUFzQkE7QUFBQTtBQUVBO0FBQUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUNwQ0Y7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOzs7QUFHUjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFXQTs7QUFWQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFLSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTs7O0FDbEVKO0FBRUU7RUFDRTs7O0FBR0o7QUFFRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFDQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBQ0UsU0E1RG1COztBQWdFdkI7QUFBQTtFQUNFLFNBaEV1Qjs7QUFtRXpCO0FBQUE7RUFDRSxhQS9FZ0I7RUFnRmhCO0VBQ0E7RUFDQSxPQWhGZ0I7RUFpRmhCLFNBMUVvQjtFQTJFcEI7RUFDQTs7O0FBSUo7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRSxTQTdGbUI7O0FBK0ZuQjtFQUNFLFNBL0ZpQjs7O0FBb0d2QjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFLFNBN0dtQjs7QUErR25CO0VBQ0UsU0FqSGlCOzs7QUFxSHZCO0FBQ0E7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUU7O0FBRUE7RUFDRSxTQTFKZTtFQTJKZjs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBLFNBdEtjO0VBdUtkO0VBQ0E7RUFDQSxhQWhMWTtFQWlMWixXQXpLUztFQTBLVDtFQUNBO0VBQ0EsT0FqTFU7RUFrTFYsU0ExS21CO0VBMktuQjtFQUNBOztBQUtKO0VBQ0UsT0ExTFk7RUEyTFosU0FyTGtCOzs7QUNmeEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUNDO0VBQ0E7OztBQUdEO0VBQ0M7QUFFQTtFQUNBO0VBQ0E7RUFBUTtFQUFVO0VBQVc7RUFDN0I7QUFFQTtFQUNBO0FBRUE7RUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQzs7O0FBR0Q7QUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUVBO0FBRUE7RUFDQTs7O0FBR0Q7QUFDQTtBQUNDO0VBQ0E7OztBQUdEO0FBQ0E7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7OztBQUlEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztBQUNDO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUFDQTs7O0FBSUY7QUFDQTtFQUNDO0lBQ0M7OztBQzdKRjs7QUFBQTtBQUFBOztBQUFBO0FBU0E7RUFDRTtFQUNBO0VBQ0E7RUFLQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQ0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7RUFDQSxrQkM1RHNCOzs7QUQrRHhCO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFLGNDakZvQjtFRGtGcEI7OztBQUlKO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUo7QUFBQTtBQUFBO0FBSUE7RUV0SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZxSUY7RUUxSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ5SUY7RUU5SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUY2SUY7RUV6SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ1SUY7RUU1SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNmRjtBQUFBO0FBQUE7QUFnQ0E7RUFDRSxTQTFCYTs7O0FBNkJmO0VBQ0UsU0E3Qlk7OztBQWdDZDtFQUNFLFNBaENvQjs7O0FBbUN0QjtFQUNFLFNBbkNnQjs7O0FBc0NsQjtFQUNFLFNBdENxQjs7O0FBeUN2QjtFQUNFLFNBekNjOzs7QUE0Q2hCO0VBQ0UsU0E1Q1M7OztBQStDWDtFQUNFLFNBL0N5Qjs7O0FBa0QzQjtFQUNFLFNBbER3Qjs7O0FBcUQxQjtFQUNFLFNBckRtQjs7O0FBd0RyQjtFQUNFLFNBeEQwQjs7O0FBMkQ1QjtFQUNFLFNBM0RlOzs7QUE4RGpCO0VBQ0UsU0E5RFU7OztBQWlFWjtFQUNFLFNBakVlOzs7QUFvRWpCO0VBQ0UsU0FwRWE7OztBQXVFZjtFQUNFLFNBdkVTOzs7QUEwRVg7RUFDRSxTQTFFaUI7OztBQTZFbkI7RUFDRSxTQTdFVTs7O0FBZ0ZaO0VBQ0UsU0FoRm1COzs7QUFtRnJCO0VBQ0UsU0FuRmU7OztBQXNGakI7RUFDRSxTQXRGVTs7O0FBeUZaO0VBQ0UsU0F6Rm1COzs7QUE0RnJCO0VBQ0UsU0E1RmE7OztBQStGZjtFQUNFLFNBL0ZZOzs7QUM5QmQ7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVFLGFYdEVVOzs7QVd3RVo7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7RUFHRTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtBQUFBO0VBRUU7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFFQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FDN1RGO0FBQUE7QUFFQTtFQUNFO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FYY0E7RVduQkY7SUFPSTs7OztBQUdKO0FBQ0E7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQSxhWmZVO0VZZ0JWO0VBQ0E7RUFDQSxhWmZVO0VZZ0JWOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUU7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRSxhWmpEVTs7O0FZb0RaO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FLGFadEZVO0VZdUZWO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBLGFabkdXOzs7QVlzR2I7RUFDRTtFQUNBLGFaeEdXOzs7QVkyR2I7RUFDRTtFQUNBLGFaN0dXOzs7QVlnSGI7RUFDRTtFQUNBLGFaOUdVOzs7QVlpSFo7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBLGFaMUhVO0VZMkhWOztBQUVBO0VBQ0U7RUFDQTs7O0FBSUo7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQUdKO0FBQUE7QUFHRTtBQUFBO0FBQUE7RUFFRTs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7QUFHRjtFQUNFOzs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBOztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7O0FYck1GO0VXaU1BO0FBQUE7SUFNSTs7OztBQ2hOTjtBQUFBO0FBRUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0FBQUE7QUFFQTtFQUNFOztBQUVBO0VBQ0U7O0FBRUE7RUFFRTs7O0FBSU47QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFOztBQUVBO0FBQUE7RUFDRTs7O0FBSUo7RUFDRTtFQUNBOzs7QUFHRjtFQUNFLGFidkRVO0Vhd0RWOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0VBR0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhYi9FVTtFYWdGVjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFHRTtFQUNFO0VBQ0E7RUFDQTs7O0FDdkhKO0FBQUE7QUFFQTtFQUNFO0VBQ0E7OztBQUVGO0FBQ0E7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QUFnQkE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBOENBO0FBQUE7QUFBQTtBQXlCQTtBQUFBO0FBQUE7O0VBL0tDO0FBQUE7SUFDQzs7RUFLQztBQUFBO0lBQ0M7O0VBSUY7QUFBQTtJQUNDOztFQUlGO0FBQUE7SUFDQzs7RUFFQTtBQUFBO0lBQ0M7SUFDQTs7RUFFQTtBQUFBO0lBQ0M7O0VBR0Q7QUFBQTtJQUNDO0lBQ0E7SUFDQTs7RUFLQTtBQUFBO0FBQUE7SUFDQzs7RUFNRjtBQUFBO0lBQ0M7O0VBU0Q7QUFBQTtJQUNDOztFQUVBO0FBQUE7SUFDQzs7RUFHRDtBQUFBO0lBQ0M7SUFDQTs7RUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBRUM7SUFDQTs7RUF3QkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUVDO0lBQ0E7O0VBUUQ7QUFBQTtBQUFBO0FBQUE7SUFDQzs7RUFHRDtBQUFBO0FBQUE7QUFBQTtJQUNDOztFQUVBO0FBQUE7QUFBQTtBQUFBO0lBQ0M7STNDeUdIO0kyQ3ZHRzs7RTNDeUdIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBRUU7SUFDQTs7RUFHRjtBQUFBO0FBQUE7QUFBQTtJQUNFOztFMkM5R0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBR0M7SUFDQTs7RUFHRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBRUM7O0VBSUY7QUFBQTtBQUFBO0FBQUE7SUFDQztJQUNBOztFQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUdDO0lBQ0E7SUFDQTs7RUFRQTtBQUFBO0lBQ0M7SUFDQTs7RUFNRjtBQUFBO0lBQ0M7SUFDQTs7RUFHRDtBQUFBO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7O0VBT0Q7QUFBQTtBQUFBO0FBQUE7SUFFQztJQUNBO0lBQ0E7O0VBTUY7QUFBQTtJQUVDO0lBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBS0U7SUFDQztJQUNBOzs7QUNyTko7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFRSxrQjdDTFM7RTZDTVQ7RUFDQTs7QUFFQTtFQUNFOztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBRUU7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRSxhN0NuQ1E7RTZDb0NSO0VBQ0E7RUFDQTs7O0FDaERKO0FBQ0E7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0FBQ0E7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUVFO0VBQ0E7O0E3QzJMRTtFQUNFLGM2QzlMMkI7O0E3Q2dNM0I7RUFDRTs7O0E2QzVMTjtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRTtFQUVFOztBQUlKO0VBQ0U7O0FBSUo7RUFHRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0E3QzdDRjtFNkNxQ0E7SUFVSTs7OztBZEtOO0FBQ0E7RS9CMktFOztBQUVBO0VBRUU7RUFDQTs7QUFHRjtFQUNFOzs7QStCakxKO0FBS0E7RUFDRTs7O0FBRUY7QUFNQTtBQVNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBOzs7QS9CdEZBO0UrQnlGRjtJQUdJOzs7O0FBR0o7QUFDQTtFQUNFO0VBQ0E7QUFDQTtBQUlBOztBQUhBO0VBQ0U7O0FBR0Y7RS9Cd0ZBO0VBQ0EsZ0IrQnhGNkM7RS9CeUY3QyxlK0J6RjZDO0VBQzNDO0VBQ0E7RUFDQTtFQUNBOztBL0J2R0Y7RStCa0dBO0lBT0k7OztBQUdGO0VBQ0U7RUFDQSxhaENuSE07OztBZ0N1SFo7QUFDQTtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQmhDNUhJOztBZ0MrSE47RS9CL0NBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0JEcEZNO0VDcUZOLGFENUZVO0VDK0ZSO0VBQ0E7O0FBYUY7RUFDRTs7O0ErQjRCSjtBQUNBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7O0FBRUY7QUFDQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhaENwS1U7RWdDcUtWO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0EvQmhLQTtFK0JrSkY7QUFBQTtJQWdCSTtJQUNBOzs7QUFHRjtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QS9COUtGO0UrQnNLQTtBQUFBO0lBVUk7SUFDQTs7O0FBSUo7QUFBQTtFQUNFOzs7QUFHSjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhaEMzTVU7RWdDNE1WO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUVBO0VBQ0U7OztBQU1SO0VBMU1FO0VBQ0Esa0JoQ3BCTTs7QWdDc0JOO0VBQ0U7O0FBRUE7RUFDRTs7O0FBdU1OO0VBOU1FO0VBQ0Esa0JBOE02Qjs7QUE1TTdCO0VBQ0U7O0FBRUE7RUFDRTs7O0FBMk1OO0VBbE5FO0VBQ0Esa0JoQ3RCSTs7QWdDd0JKO0VBQ0U7O0FBRUE7RUFDRTs7O0FBOE1OO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QS9CNUNFO0VBQ0UsYytCK0M2Qjs7QS9CN0M3QjtFQUNFOztBK0IrQ047QUFBQTtFQUdFLFdoQ3JRYTs7QWdDd1FmO0VBRUU7O0FBT0o7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCaEM3UVc7RWdDOFFYO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0EvQnpRQTtFK0JnUUY7SUFXSTtJQUNBOzs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblx0VGhlbWUgTmFtZTogS2ltIEtlYXQgU2F0YXkgVGhlbWVcblx0VGhlbWUgVVJJOlxuXHREZXNjcmlwdGlvbjogVGhpcyBpcyB0aGUgdGhlbWUgY3JlYXRlZCBmb3IgS2ltIEtlYXQgU2F0YXlcblx0QXV0aG9yOiBLaG9vemhcblx0QXV0aG9yIFVSSTpcblxuXHRWZXJzaW9uOiAxLjAuMFxuXG5cdFRhZ3M6IG9uZS1jb2x1bW4sIHR3by1jb2x1bW5zLCBsZWZ0LXNpZGViYXIsIHJpZ2h0LXNpZGViYXIsIGFjY2Vzc2liaWxpdHktcmVhZHksIGN1c3RvbS1jb2xvcnMsIGN1c3RvbS1sb2dvLCBjdXN0b20tbWVudSwgZmVhdHVyZWQtaW1hZ2VzLCBmb290ZXItd2lkZ2V0cywgZnVsbC13aWR0aC10ZW1wbGF0ZSwgcnRsLWxhbmd1YWdlLXN1cHBvcnQsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHlcblxuXHRUZW1wbGF0ZTogZ2VuZXNpc1xuXG5cdExpY2Vuc2U6IEdQTC0yLjArXG5cdExpY2Vuc2UgVVJJOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1sXG4qL1xuLyogVGFibGUgb2YgQ29udGVudHNcbnNhc3MvXG58XG58LSBhYnN0cmFjdHMvXG58ICAgfC0gX3ZhcmlhYmxlcy5zY3NzICAgICMgU2FzcyBWYXJpYWJsZXNcbnwgICB8LSBfZnVuY3Rpb25zLnNjc3MgICAgIyBTYXNzIEZ1bmN0aW9uc1xufCAgIHwtIF9taXhpbnMuc2NzcyAgICAgICAjIFNhc3MgTWl4aW5zXG58ICAgfC0gX3BsYWNlaG9sZGVycy5zY3NzICMgU2FzcyBQbGFjZWhvbGRlcnNcbnxcbnwtIGZvbnRzL1xufCAgIHwtIF9udWNsZW8uc2NzcyAgICAgICAjIEljb24gUGFja1xufFxufOKAkyBiYXNlL1xufCAgIHwtIF9yZXNldC5zY3NzICAgICAgICAjIFJlc2V0L25vcm1hbGl6ZVxufCAgIHwtIF90eXBvZ3JhcGh5LnNjc3MgICAjIFR5cG9ncmFwaHkgcnVsZXNcbnwgICB8LSBfZGVmYXVsdHMuc2NzcyAgICAgIyBHZW5lc2lzIERlZmF1bHRzXG58ICAgfC0gX2FuaW1hdGlvbnMuc2NzcyAgICMgQW5pbWF0aW9uc1xufFxufOKAkyBjb21wb25lbnRzL1xufCAgIHwtIF9ncmFwaGljcy5zY3NzICAgICAgICAgICAgIyBHcmFwaGljc1xufCAgIHwtIF9idXR0b25zLnNjc3MgICAgICAgICAgICAgIyBCdXR0b25zXG58ICAgfC0gX3dpZGdldC5zY3NzICAgICAgICAgICAgICAjIEdlbmVzaXMgRGVmYXVsdCBXaWRnZXQgYW5kIFBsdWdpbnNcbnwgICB8LSBfZm9ybXMuc2NzcyAgICAgICAgICAgICAgICMgRm9ybXNcbnwgICB8LSBfbGlzdC1wYWdpbmF0aW9uLnNjc3MgICAgICMgTGlzdCBhbmQgcGFnaW5hdGlvblxufCAgIHwtIC10aXRsZS1kaXZpZGVyLnNjc3MgICAgICAgIyBUaXRsZSBhbmQgZGl2aWRlcnNcbnwgICB8LSBfb2JqZWN0cy5zY3NzICAgICAgICAgICAgICMgQ3VzdG9taXNlZCBvYmplY3RzXG58ICAgfC0gX2Jhbm5lcnMuc2NzcyAgICAgICAgICAgICAjIEJhbm5lcnNcbnwgICB8LSBfaGVyby1zbGlkZXIuc2NzcyAgICAgICAgICMgSGVybyBTbGlkZXJcbnxcbnzigJMgbGF5b3V0L1xufCAgIHwtIF9ncmlkLnNjc3MgICAgICAgICAjIEdyaWRcbnwgICB8LSBfZ3Mtc3RydWN0dXJlLWxheW91dC5zY3NzICMgR2VuZXNpcyBkZWZhdWx0IHN0cnVjdHVyZSBhbmQgbGF5b3V0XG58ICAgfC0gX2hlYWRlci5zY3NzICAgICAgICMgSGVhZGVyXG58ICAgfC0gX3NpZGViYXIuc2NzcyAgICAgICMgU2lkZWJhclxufCAgIHwtIF9mb290ZXIuc2NzcyAgICAgICAjIEZvb3RlclxufFxufOKAkyBwYWdlcy9cbnwgICB8LSBfcG9zdC1hcmNoaXZlLnNjc3MgICAgICAgICMgUG9zdCBhcmNoaXZlIHN0eWxlc1xufCAgIHwtIF9wb3N0LXNpbmdsZS5zY3NzICAgICAgICAgIyBTaW5nbGUgUG9zdCBTdHlsZXNcbnxcbnzigJMgdGhlbWVzL1xufCAgIHwtIF9raG9vemguc2NzcyAgICAgICAjIERlZmF1bHQgdGhlbWVcbnwgICB8LSBfd29vY29tbWVyY2Uuc2NzcyAgIyBXb29jb21tZXJjZSBTdHlsZXNcbnxcbnzigJMgdmVuZG9ycy9cbnwgICB8LSBfc2xpY2suc2NzcyAgICAgICAgIyBTbGljayBTbGlkZXJcbnwgICB8LSBfc2xpY2stdGhlbWUuc2NzcyAgIyBTbGljayBTbGlkZXIgVGhlbWVcbnwgICB8LSBfZmVhdGhlcmxpZ2h0LnNjc3MgIyBGZWF0aGVybGlnaHQgR2FsbGVyeVxufFxufC0gbWFpbi5zY3NzICAgICAgICAgICAgICAjIE1haW4gU2FzcyBmaWxlXG4qL1xuXG5AaW1wb3J0ICdhYnN0cmFjdHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2Fic3RyYWN0cy9taXhpbnMnO1xuQGltcG9ydCAnYWJzdHJhY3RzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdhYnN0cmFjdHMvcGxhY2Vob2xkZXJzJztcblxuQGltcG9ydCAndmVuZG9ycy9zbGljayc7XG5AaW1wb3J0ICd2ZW5kb3JzL3NsaWNrLXRoZW1lJztcbkBpbXBvcnQgJ3ZlbmRvcnMvZmVhdGhlcmxpZ2h0JztcblxuQGltcG9ydCAnZm9udHMvbnVjbGVvJztcblxuQGltcG9ydCAnYmFzZS9yZXNldCc7XG5AaW1wb3J0ICdiYXNlL3R5cG9ncmFwaHknO1xuQGltcG9ydCAnYmFzZS9kZWZhdWx0cyc7XG5AaW1wb3J0ICdiYXNlL2FuaW1hdGlvbnMnO1xuXG5AaW1wb3J0ICdsYXlvdXQvZ3JpZCc7XG5AaW1wb3J0ICdsYXlvdXQvZ3Mtc3RydWN0dXJlLWxheW91dCc7XG5AaW1wb3J0ICdsYXlvdXQvaGVhZGVyJztcbkBpbXBvcnQgJ2xheW91dC9zaWRlYmFyJztcbkBpbXBvcnQgJ2xheW91dC9mb290ZXInO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWNzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3dpZGdldCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGlzdC1wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtZGl2aWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29iamVjdHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYW5uZXJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVyby1zbGlkZXInO1xuXG5AaW1wb3J0ICdwYWdlcy9wb3N0LWFyY2hpdmUnO1xuQGltcG9ydCAncGFnZXMvcG9zdC1zaW5nbGUnO1xuLy8gQGltcG9ydCAncGFnZXMvY29udGFjdCc7XG5cbkBpbXBvcnQgJ3RoZW1lcy9raG9vemgnO1xuQGltcG9ydCAndGhlbWVzL3dvb2NvbW1lcmNlJztcbiIsIi8qIFZhcmlhYmxlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQm9keSBUZXh0IFN0eWxlcyAqL1xuJGJhc2UtZm9udC1zaXplOiAxLjZyZW07XG4kc3VidGl0bGUtZm9udDogXCJOb3RoaW5nIFlvdSBDb3VsZCBEb1wiLCBjdXJzaXZlO1xuJHRpdGxlLWZvbnQ6ICdMaWJyZSBCYXNrZXJ2aWxsZScsIHNlcmlmO1xuJG1haW4tZm9udDogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuLyogRm9udCBXZWlnaHQgKi9cbiRmb250LWxpZ2h0OiAyMDA7XG4kZm9udC1ub3JtOiA0MDA7XG4kZm9udC1ib2xkOiA3MDA7XG4vKiBDb2xvcnMgKi9cbiRtYWluLWNvbG9yOiAjRkY4NTBEO1xuJG9mZi13aGl0ZTogI0ZGRjFFMDtcbiRkYXJrLWNvbG9yOiAjNkYyMTAyO1xuJHJlZDogI0I3MDAwMDtcbiRvcmFuZ2U6ICNmZjViMzY7XG4kZ3JlZW46ICM2ODk0NDc7XG4kYmx1ZTogIzM2OTtcbiR5ZWxsb3c6ICNGRkJDMDA7XG4kZ3JleTogaHNsKDAsIDAlLCA1MCUpOyAvL2lucHV0cyB0aGF0IGFyZSBub3Qgc3VibWl0IGFuZCBidXR0b25cbi8qIEV0Yy4gKi9cbiRpbnB1dC1maWVsZHM6ICdpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pJztcbi8qIEJhY2tncm91bmQgcGF0dGVybiBpbWFnZSBsaW5rKi9cbiRwYXR0ZXJuLTEtbGluazogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JhY2tncm91bmQtcGF0dGVybi5qcGdcIik7XG4kcGF0dGVybi0yLWxpbms6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLXBhdHRlcm4tZGFyay5qcGdcIik7XG4vKiBHcmFwaGljIGRpdmlkZXIgbGluayAqL1xuJGdyYXBoaWMtZGl2aWRlci0xLWxpbms6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9ncmFwaGljLWRpdmlkZXIuc3ZnXCIpO1xuJGdyYXBoaWMtZGl2aWRlci0yLWxpbms6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9ncmFwaGljLWRpdmlkZXItYnJ1c2gucG5nXCIpOyIsIi8qIE1peGluc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTWVkaWEgUXVlcmllc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJHRhYmxldC13aWR0aDogNjcwcHg7XG4kZGVza3RvcC13aWR0aDogOTYwcHg7XG4kZGVza3RvcC14bC13aWR0aDogMTQwMHB4O1xuXG5AbWl4aW4gbW9iaWxlIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyR0YWJsZXQtd2lkdGh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHRhYmxldCB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skdGFibGV0LXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRkZXNrdG9wLXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXhsIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRkZXNrdG9wLXhsLXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qIENvbnRhaW5lclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGNvbnRhaW5lcigkcGFkZGluZywgJGJnLCAkYm9yZGVyLXJhZGl1cywgJGJvcmRlcikge1xuICBwYWRkaW5nOiAkcGFkZGluZyBjYWxjKCRwYWRkaW5nIC8gMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJvcmRlcjogJGJvcmRlcjtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8qIEltYWdlIEFzcGVjdCBSYXRpb1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIDxmaWd1cmU+IC8vIEFwcGx5IGltYWdlIHJhdGlvIHRvIGZpZ3VyZVxuICAgPGltZyBzcmM9XCJcIi8+XG4gPC9maWd1cmU+XG4qL1xuQG1peGluIGltZy1yYXRpbygkd2lkdGgsICRwLXRvcCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIHBhZGRpbmctdG9wOiAkcC10b3A7XG5cbiAgPmltZyB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cbi8qIEFic29sdXRlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cblxuLyogR3JhZGllbnQgRmFkZVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGdyYWRpZW50LWZhZGUoJGgsICRzLCAkbCwgJGRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiA9PWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsYSgkaCwgJHMsICRsLCAxKSAwJSwgaHNsYSgkaCwgJHMsICRsLCAwKSAxMDAlKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRkaXJlY3Rpb24gPT1sZWZ0IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgaHNsYSgkaCwgJHMsICRsLCAxKSAwJSwgaHNsYSgkaCwgJHMsICRsLCAwKSAxMDAlKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRkaXJlY3Rpb24gPT10b3Age1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhzbGEoJGgsICRzLCAkbCwgMSkgMCUsIGhzbGEoJGgsICRzLCAkbCwgMCkgMTAwJSk7XG4gIH1cblxuICBAZWxzZSBpZiAkZGlyZWN0aW9uID09cmlnaHQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsYSgkaCwgJHMsICRsLCAxKSAwJSwgaHNsYSgkaCwgJHMsICRsLCAwKSAxMDAlKTtcbiAgfVxufVxuXG4vKiBCYWRnZSAvIFRhZyBsYWJlbFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy1sYWJlbCgkYmcsICRzaXplKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcblxuICBAaWYgJHNpemUgPT1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gIH1cblxuICBAaWYgJHNpemUgPT1tZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgfVxuXG4gIEBpZiAkc2l6ZSA9PWxhcmdlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiZywgMTAlKTtcbiAgfVxufVxuXG4vKiBJY29uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdiYXNlaWNvbic7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gaWNvbigkdHlwZSkge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiAkdHlwZTtcbn1cblxuLyogQ2lyY2xlIE9iamVjdFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGNpcmNsZS1vYmplY3QoJGRpYW1ldGVyLCAkYmctY29sb3IsICRmb250LXNpemUpIHtcbiAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG4gIHdpZHRoOiAkZGlhbWV0ZXI7XG4gIGhlaWdodDogJGRpYW1ldGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICY6aG92ZXIsXG4gIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vKiBUaHVtYm5haWwgQ2FyZFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPGFydGljbGUgY2xhc3M9XCJ0aHVtYm5haWwtY2FyZFwiPlxuICA8ZmlndXJlPlxuICAgIDxpbWcgc3JjPVwiXCI+XG4gIDwvZmlndXJlPlxuICA8ZGl2IGNsYXNzPVwiY2FwdGlvblwiPlxuICAgIDxoND48L2g0PlxuICAgIDxwPjwvcD5cbiAgICA8YSBocmVmPVwiI1wiPjwvYT5cbiAgPC9kaXY+XG48L2FydGljbGU+XG4gKi9cbkBtaXhpbiB0aHVtYm5haWwtY2FyZCgkdGh1bWJXLCAkdGh1bWJILCAkY2FwdGlvbi1wb3MsICRwYWRkaW5nKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcblxuICBAaWYgJGNhcHRpb24tcG9zID09Ym90dG9tIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG5cbiAgICAuY2FwdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cblxuICA+ZmlndXJlIHtcbiAgICBAaW5jbHVkZSBpbWctcmF0aW8oJHRodW1iVywgJHRodW1iSCk7XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLyogTGluZSBCb3JkZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBsaW5lLWJvcmRlcigkd2lkdGgsICRjb2xvciwgJGRpcmVjdGlvbiwgJHNwYWNlKSB7XG4gIGJvcmRlci0jeyRkaXJlY3Rpb259OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICBwYWRkaW5nLSN7JGRpcmVjdGlvbn06ICRzcGFjZTtcbiAgbWFyZ2luLSN7JGRpcmVjdGlvbn06ICRzcGFjZTtcbn1cblxuLyogQ2hpbGQgTWFyZ2luXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY2hpbGQtbWFyZ2luKCRkaXJlY3Rpb24sICRzcGFjZSwgJHNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAkc2VsZWN0b3IgPT1udWxsIHtcbiAgICA+KiB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogJHNwYWNlO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgPiN7JHNlbGVjdG9yfSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogJHNwYWNlO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogQ2xlYXIgRml4XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgKnpvb206IDE7XG5cbiAgJjo6YWZ0ZXIsXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbiVjbGVhciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59IiwiLyogRnVuY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4iLCIvKiBQbGFjZWhvbGRlcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFdoaXRlIEdyYWRpZW50XG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXdoaXRlLWdyYWRpZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgwLCAwJSwgMTAwJSwgdG9wKTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuLyogVHJhbnNpdGlvbnNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiV0cmFuc2l0aW9uLWR1cmF0aW9uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi8qIEZsZXhib3hcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVmbGV4Ym94LWMtYyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufSIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8gU2xpY2sgaWNvbiBlbnRpdHkgY29kZXMgb3V0cHV0cyB0aGUgZm9sbG93aW5nXG4vLyBcIlxcMjE5MFwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oaQXCJcbi8vIFwiXFwyMTkyXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpJcIlxuLy8gXCJcXDIwMjJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKAolwiXG4kc2xpY2stZm9udC1wYXRoOiBcIi4vanMvcGx1Z2lucy9zbGljay9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4vanMvcGx1Z2lucy9zbGljay9cIiAhZGVmYXVsdDtcbiRzbGljay1hcnJvdy1jb2xvcjogI2RkZCAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU6ICRzbGljay1kb3QtY29sb3IgIWRlZmF1bHQ7XG4kc2xpY2stcHJldi1jaGFyYWN0ZXI6IFwiXFwyMTkwXCIgIWRlZmF1bHQ7XG4kc2xpY2stbmV4dC1jaGFyYWN0ZXI6IFwiXFwyMTkyXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCJcXDIwMjJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3Qtc2l6ZTogMTJweCAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LWRlZmF1bHQ6IDAuNzUgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjogMSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU6IDAuMjUgIWRlZmF1bHQ7XG5AZnVuY3Rpb24gc2xpY2staW1hZ2UtdXJsKCR1cmwpIHtcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICBAcmV0dXJuIGltYWdlLXVybCgkdXJsKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgJHVybCk7XG4gIH1cbn1cbkBmdW5jdGlvbiBzbGljay1mb250LXVybCgkdXJsKSB7XG4gIEBpZiBmdW5jdGlvbi1leGlzdHMoZm9udC11cmwpIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsKCR1cmwpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybCgkc2xpY2stZm9udC1wYXRoICsgJHVybCk7XG4gIH1cbn1cbi8qIFNsaWRlciAqL1xuLnNsaWNrLWxpc3Qge1xuICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIHNsaWNrLWltYWdlLXVybChcImFqYXgtbG9hZGVyLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgfVxufVxuLyogSWNvbnMgKi9cbkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90XCIpO1xuICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2suc3ZnI3NsaWNrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxufVxuLyogQXJyb3dzICovXG4uc2xpY2stbmV4dCxcbi5zbGljay1wcmV2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB6LWluZGV4OiAyO1xuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRzbGljay1hcnJvdy1jb2xvcjtcbiAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1kZWZhdWx0O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIH1cbn1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiAxNXB4O1xuXG4gIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTM1cHg7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xuXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICB9XG4gIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogMTVweDtcblxuICBbZGlyPVwicnRsXCJdICYge1xuICAgIGxlZnQ6IC0yNXB4O1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcblxuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgfVxuICB9XG59XG4vKiBEb3RzICovXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0yNXB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBtYXJnaW46IDAgNXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpmb2N1cyxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNsaWNrLWRvdC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHNsaWNrLWRvdC1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU7XG4gICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1kZWZhdWx0O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBGZWF0aGVybGlnaHQg4oCTIHVsdHJhIHNsaW0galF1ZXJ5IGxpZ2h0Ym94XG4gKiBWZXJzaW9uIDEuNy4xMyAtIGh0dHA6Ly9ub2VsYm9zcy5naXRodWIuaW8vZmVhdGhlcmxpZ2h0L1xuICpcbiAqIENvcHlyaWdodCAyMDE4LCBOb8OrbCBSYW91bCBCb3NzYXJ0IChodHRwOi8vd3d3Lm5vZWxib3NzLmNvbSlcbiAqIE1JVCBMaWNlbnNlZC5cbioqL1xuXG5odG1sLndpdGgtZmVhdGhlcmxpZ2h0IHtcblx0LyogZGlzYWJsZSBnbG9iYWwgc2Nyb2xsaW5nIHdoZW4gZmVhdGhlcmxpZ2h0cyBhcmUgdmlzaWJsZSAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmVhdGhlcmxpZ2h0IHtcblx0ZGlzcGxheTogbm9uZTtcblxuXHQvKiBkaW1lbnNpb25zOiBzcGFubmluZyB0aGUgYmFja2dyb3VuZCBmcm9tIGVkZ2UgdG8gZWRnZSAqL1xuXHRwb3NpdGlvbjpmaXhlZDtcblx0dG9wOiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwO1xuXHR6LWluZGV4OiAyMTQ3NDgzNjQ3OyAvKiB6LWluZGV4IG5lZWRzIHRvIGJlID49IGVsZW1lbnRzIG9uIHRoZSBzaXRlLiAqL1xuXG5cdC8qIHBvc2l0aW9uOiBjZW50ZXJpbmcgY29udGVudCAqL1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogaW5zdXJlcyB0aGF0IHRoZSA6OmJlZm9yZSBwc2V1ZG8gZWxlbWVudCBkb2Vzbid0IGZvcmNlIHdyYXAgd2l0aCBmaXhlZCB3aWR0aCBjb250ZW50OyAqL1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdC8qIHN0eWxpbmcgKi9cblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRiYWNrZ3JvdW5kOiAjMzMzO1xuXHQvKiBJRTggXCJoYWNrXCIgZm9yIG5lc3RlZCBmZWF0aGVybGlnaHRzICovXG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5cbi8qIHN1cHBvcnQgZm9yIG5lc3RlZCBmZWF0aGVybGlnaHRzLiBEb2VzIG5vdCB3b3JrIGluIElFOCAodXNlIEpTIHRvIGZpeCkgKi9cbi5mZWF0aGVybGlnaHQ6bGFzdC1vZi10eXBlIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuXG4uZmVhdGhlcmxpZ2h0OmJlZm9yZSB7XG5cdC8qIHBvc2l0aW9uOiB0cmljayB0byBjZW50ZXIgY29udGVudCB2ZXJ0aWNhbGx5ICovXG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGhlaWdodDogMTAwJTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQge1xuXHQvKiBtYWtlIGNvbnRlbnQgY29udGFpbmVyIGZvciBwb3NpdGlvbmVkIGVsZW1lbnRzIChjbG9zZSBidXR0b24pICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQvKiBwb3NpdGlvbjogY2VudGVyaW5nIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsICovXG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQvKiBkaW1lbnNpb25zOiBjdXQgb2ZmIGltYWdlcyAqL1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMjVweCAyNXB4IDA7XG5cdGJvcmRlci1ib3R0b206IDI1cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogZGltZW5zaW9uczogaGFuZGxpbmcgbGFyZ2UgY29udGVudCAqL1xuXHRtYXJnaW4tbGVmdDogNSU7XG5cdG1hcmdpbi1yaWdodDogNSU7XG5cdG1heC1oZWlnaHQ6IDk1JTtcblxuXHQvKiBzdHlsaW5nICovXG5cdC8vIGJhY2tncm91bmQ6ICNmZmY7XG5cdGN1cnNvcjogYXV0bztcblxuXHQvKiByZXNldCB3aGl0ZS1zcGFjZSB3cmFwcGluZyAqL1xuXHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vKiBjb250YWlucyB0aGUgY29udGVudCAqL1xuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWlubmVyIHtcblx0LyogbWFrZSBzdXJlIGl0cyB2aXNpYmxlICovXG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBkb24ndCBzaG93IHRoZXNlIHRob3VnaCAqL1xuLmZlYXRoZXJsaWdodCBzY3JpcHQuZmVhdGhlcmxpZ2h0LWlubmVyLFxuLmZlYXRoZXJsaWdodCBsaW5rLmZlYXRoZXJsaWdodC1pbm5lcixcbi5mZWF0aGVybGlnaHQgc3R5bGUuZmVhdGhlcmxpZ2h0LWlubmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNsb3NlLWljb24ge1xuXHQvKiBwb3NpdGlvbjogY2VudGVyaW5nIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogOTk5OTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblxuXHQvKiBkaW1lbnNpb25zOiAyNXB4IHggMjVweCAqL1xuXHRsaW5lLWhlaWdodDogMjVweDtcblx0d2lkdGg6IDI1cHg7XG5cdGhlaWdodDogMjVweDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXG5cdC8qIHN0eWxpbmcgKi9cblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcblx0YmFja2dyb3VuZDogI2ZmZjsgLyogU2V0IHRoZSBiYWNrZ3JvdW5kIGluIGNhc2UgaXQgb3ZlcmxhcHMgdGhlIGNvbnRlbnQgKi9cblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuXHRjb2xvcjogIzAwMDtcblx0Ym9yZGVyOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNjA3NzM0MS9ob3ctdG8tcmVzZXQtYWxsLWRlZmF1bHQtc3R5bGVzLW9mLXRoZS1odG1sNS1idXR0b24tZWxlbWVudCAqL1xuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNsb3NlLWljb246Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1pbWFnZSB7XG5cdC8qIHN0eWxpbmcgKi9cblx0d2lkdGg6IDEwMCU7XG59XG5cblxuLmZlYXRoZXJsaWdodC1pZnJhbWUgLmZlYXRoZXJsaWdodC1jb250ZW50IHtcblx0LyogcmVtb3ZlZCB0aGUgYm9yZGVyIGZvciBpbWFnZSBjcm9waW5nIHNpbmNlIGlmcmFtZSBpcyBlZGdlIHRvIGVkZ2UgKi9cblx0Ym9yZGVyLWJvdHRvbTogMDtcblx0cGFkZGluZzogMDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZmVhdGhlcmxpZ2h0IGlmcmFtZSB7XG5cdC8qIHN0eWxpbmcgKi9cblx0Ym9yZGVyOiBub25lO1xufVxuXG4uZmVhdGhlcmxpZ2h0ICogeyAvKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZWxib3NzL2ZlYXRoZXJsaWdodC9pc3N1ZXMvNDIgKi9cblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIGhhbmRsaW5nIHBob25lcyBhbmQgc21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcblx0LmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQge1xuXHRcdC8qIGRpbWVuc2lvbnM6IG1heGltaXplIGxpZ2h0Ym94IHdpdGggZm9yIHNtYWxsIHNjcmVlbnMgKi9cblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0bWF4LWhlaWdodDogOTglO1xuXG5cdFx0cGFkZGluZzogMTBweCAxMHB4IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0fVxufVxuXG4vKiBoaWRlIG5vbiBmZWF0aGVybGlnaHQgaXRlbXMgd2hlbiBwcmludGluZyAqL1xuQG1lZGlhIHByaW50IHtcblx0aHRtbC53aXRoLWZlYXRoZXJsaWdodCA+ICogPiA6bm90KC5mZWF0aGVybGlnaHQpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5iYXNlaWNvbiBXZWIgRm9udFxuR2VuZXJhdGVkIHVzaW5nIG51Y2xlb2FwcC5jb21cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnYmFzZWljb24nO1xuICBzcmM6IHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLmVvdCcpO1xuICBzcmM6IHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJyN7JGljb24tZm9udC1wYXRofS9iYXNlaWNvbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJyN7JGljb24tZm9udC1wYXRofS9iYXNlaWNvbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLnN2ZycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0YmFzZSBjbGFzcyBkZWZpbml0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdiYXNlaWNvbic7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBjaGFuZ2UgaWNvbiBzaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogcmVsYXRpdmUgdW5pdHMgKi9cbi5pY29uLXNtIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi5pY29uLWxnIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cbi8qIGFic29sdXRlIHVuaXRzICovXG4uaWNvbi0xNiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5pY29uLTMyIHtcbiAgZm9udC1zaXplOiAzMnB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgYWRkIGEgc3F1YXJlL2NpcmNsZSBiYWNrZ3JvdW5kXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLWJnLXNxdWFyZSxcbi5pY29uLWJnLWNpcmNsZSB7XG4gIHBhZGRpbmc6IDAuMzVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGljb24tYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuLmljb24tYmctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICB1c2UgaWNvbnMgYXMgbGlzdCBpdGVtIG1hcmtlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaWNvbi11bCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuXG4gID4gbGkgPiAuaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkaWNvbi1saS1tYXJnaW4tcmlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgc3Bpbm5pbmcgaWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaWNvbi1pcy1zcGlubmluZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICAtbW96LWFuaW1hdGlvbjogaWNvbi1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGljb24tc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHJvdGF0ZWQvZmxpcHBlZCBpY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLXJvdGF0ZS05MCAge1xuXHRAaW5jbHVkZSBpY29uLXJvdGF0ZSg5MGRlZywgMSk7XG59XG5cbi5pY29uLXJvdGF0ZS0xODAge1xuXHRAaW5jbHVkZSBpY29uLXJvdGF0ZSgxODBkZWcsIDIpO1xufVxuXG4uaWNvbi1yb3RhdGUtMjcwIHtcblx0QGluY2x1ZGUgaWNvbi1yb3RhdGUoMjcwZGVnLCAzKTtcbn1cblxuLmljb24tZmxpcC15IHtcblx0QGluY2x1ZGUgaWNvbi1mbGlwKC0xLCAxLCAwKTtcbn1cbi5pY29uLWZsaXAteCB7XG5cdEBpbmNsdWRlIGljb24tZmxpcCgxLCAtMSwgMik7XG59XG5cbkBpbXBvcnQgXCJpY29uc1wiO1xuIiwiJGljb24tZm9udC1wYXRoOiAgICAgICAgXCJmb250c1wiICFkZWZhdWx0O1xuJGljb24tYmFja2dyb3VuZC1jb2xvcjogI2VlZSAhZGVmYXVsdDtcbiRpY29uLWxpLW1hcmdpbi1yaWdodDogIDAuNGVtICFkZWZhdWx0O1xuIiwiQG1peGluIGljb24tcm90YXRlKCRkZWdyZWVzLCAkcm90YXRpb24pIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0jeyRyb3RhdGlvbn0pO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuXG5AbWl4aW4gaWNvbi1mbGlwKCRob3JpeiwgJHZlcnQsICRyb3RhdGlvbikge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbiAgLW8tdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBmdW5jdGlvbiB1bmljb2RlKCRzdHIpIHtcbiAgQHJldHVybiB1bnF1b3RlKFwiXFxcIlxcXFwjeyRzdHJ9XFxcIlwiKTtcbn1cblxuJGljb24tYWNjb3VudDogdW5pY29kZShlYTAxKTtcbiRpY29uLWJhZy0wOTogdW5pY29kZShlYTAyKTtcbiRpY29uLWNoZWNrZWQtc3ltYm9sOiB1bmljb2RlKGVhMDMpO1xuJGljb24tZmFjZWJvb2stMTogdW5pY29kZShlYTA0KTtcbiRpY29uLWZhY2Vib29rLWNpcmNsZTogdW5pY29kZShlYTA1KTtcbiRpY29uLWZhY2Vib29rOiB1bmljb2RlKGVhMDYpO1xuJGljb24tZmF4OiB1bmljb2RlKGVhMDcpO1xuJGljb24taWNfYWNjZXNzX3RpbWVfNDhweDogdW5pY29kZShlYTA4KTtcbiRpY29uLWljX2Fycm93X2JhY2tfMzZweDogdW5pY29kZShlYTA5KTtcbiRpY29uLWljX2Nsb3NlXzQ4cHg6IHVuaWNvZGUoZWEwYSk7XG4kaWNvbi1pY19tYWlsX291dGxpbmVfNDhweDogdW5pY29kZShlYTBiKTtcbiRpY29uLWluc3RhZ3JhbTogdW5pY29kZShlYTBjKTtcbiRpY29uLWxvY2s6IHVuaWNvZGUoZWEwZCk7XG4kaWNvbi1waG9uZS0yLTI6IHVuaWNvZGUoZWEwZSk7XG4kaWNvbi1waG9uZS0yOiB1bmljb2RlKGVhMGYpO1xuJGljb24tcGluOiB1bmljb2RlKGVhMTApO1xuJGljb24tcGxhY2Vob2xkZXI6IHVuaWNvZGUoZWExMSk7XG4kaWNvbi1wbHVzOiB1bmljb2RlKGVhMTIpO1xuJGljb24tc2hvcHBpbmctY2FydDogdW5pY29kZShlYTEzKTtcbiRpY29uLXNpbmdsZS0wMTogdW5pY29kZShlYTE0KTtcbiRpY29uLXN0YXI6IHVuaWNvZGUoZWExNSk7XG4kaWNvbi13aGF0c2FwcC1sb2dvOiB1bmljb2RlKGVhMTYpO1xuJGljb24teW91dHViZTogdW5pY29kZShlYTE3KTtcbiRpY29uLXpvb20tMjogdW5pY29kZShlYTE4KTtcblxuLmljb24tYWNjb3VudDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tYWNjb3VudDtcbn1cblxuLmljb24tYmFnLTA5OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1iYWctMDk7XG59XG5cbi5pY29uLWNoZWNrZWQtc3ltYm9sOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1jaGVja2VkLXN5bWJvbDtcbn1cblxuLmljb24tZmFjZWJvb2stMTo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tZmFjZWJvb2stMTtcbn1cblxuLmljb24tZmFjZWJvb2stY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1mYWNlYm9vay1jaXJjbGU7XG59XG5cbi5pY29uLWZhY2Vib29rOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1mYWNlYm9vaztcbn1cblxuLmljb24tZmF4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1mYXg7XG59XG5cbi5pY29uLWljX2FjY2Vzc190aW1lXzQ4cHg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWljX2FjY2Vzc190aW1lXzQ4cHg7XG59XG5cbi5pY29uLWljX2Fycm93X2JhY2tfMzZweDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24taWNfYXJyb3dfYmFja18zNnB4O1xufVxuXG4uaWNvbi1pY19jbG9zZV80OHB4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pY19jbG9zZV80OHB4O1xufVxuXG4uaWNvbi1pY19tYWlsX291dGxpbmVfNDhweDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24taWNfbWFpbF9vdXRsaW5lXzQ4cHg7XG59XG5cbi5pY29uLWluc3RhZ3JhbTo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24taW5zdGFncmFtO1xufVxuXG4uaWNvbi1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1sb2NrO1xufVxuXG4uaWNvbi1waG9uZS0yLTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXBob25lLTItMjtcbn1cblxuLmljb24tcGhvbmUtMjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tcGhvbmUtMjtcbn1cblxuLmljb24tcGluOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1waW47XG59XG5cbi5pY29uLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1wbGFjZWhvbGRlcjtcbn1cblxuLmljb24tcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tcGx1cztcbn1cblxuLmljb24tc2hvcHBpbmctY2FydDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tc2hvcHBpbmctY2FydDtcbn1cblxuLmljb24tc2luZ2xlLTAxOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1zaW5nbGUtMDE7XG59XG5cbi5pY29uLXN0YXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXN0YXI7XG59XG5cbi5pY29uLXdoYXRzYXBwLWxvZ286OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXdoYXRzYXBwLWxvZ287XG59XG5cbi5pY29uLXlvdXR1YmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXlvdXR1YmU7XG59XG5cbi5pY29uLXpvb20tMjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tem9vbS0yO1xufVxuXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSxcbmJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nLFxuYnV0dG9uOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEJveCBTaXppbmdcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qLFxuKjo6YWZ0ZXIsXG4qOjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuIiwiLyogVHlwb2dyYXBoaWNhbCBFbGVtZW50c1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogNTYlO1xuICAvKiAxMHB4IGJyb3dzZXIgZGVmYXVsdCAqL1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGZvbnQtc2l6ZTogNjIuNSU7XG4gIH1cbn1cbi8qIENocm9tZSBmaXggKi9cbmJvZHkgPiBkaXYge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM1NTU7XG4gIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgbGluZS1oZWlnaHQ6IDEuNjI1O1xufVxuXG5idXR0b24sXG5pbnB1dDpmb2N1cyxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxudGV4dGFyZWE6Zm9jdXMsXG4uYnV0dG9uLFxuLmdhbGxlcnkgaW1nIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbm9sLFxudWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDMwcHggMDtcbn1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5ibG9ja3F1b3RlLFxuY2l0ZSxcbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAzMHB4O1xufVxuXG5ibG9ja3F1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjAxQ1wiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXNpemU6IDNyZW07XG4gIGhlaWdodDogMDtcbiAgbGVmdDogLTIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTBweDtcbn1cbi8qIEhlYWRpbmdzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMCUpO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDAgMCAycmVtO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogNXJlbTtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMy42cmVtO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG4gIH1cbn1cblxubGFiZWwge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG59XG4vKiBUZXh0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5wIHtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjE7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1mb250LXNpemUgKyAwLjg7XG4gIG1hcmdpbjogMCAwIDE1cHg7XG5cbiAgJi54LXNtYWxsIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgJi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxuXG4gICYubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cbi8qIERhcmsgdGhlbWVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVkYXJrLXRoZW1lIHtcbiAgYSxcbiAgcCB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gIGhyIHtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gIH1cbn1cbi8vIC5kYXJrLXRoZW1lIHtcbi8vICAgQGV4dGVuZCAlZGFyay10aGVtZTtcbi8vIH1cblxuJWJsb2ctdHlwb2dyYXBoeSB7XG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICB9XG5cbiAgbGksXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4xO1xuICAgIH1cbiAgfVxufVxuIiwiLyogRGVmYXVsdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE9iamVjdHNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53cC1jYXB0aW9uLFxuZW1iZWQsXG5pZnJhbWUsXG5pbWcsXG5vYmplY3QsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG4vKiBHYWxsZXJ5XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ2FsbGVyeSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbi8qIFRhYmxlc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG50Ym9keSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xufVxuXG50ZCxcbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxudGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogNnB4O1xufVxuXG50aCB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBwYWRkaW5nOiAwIDZweDtcbn1cbi8qIFNjcmVlbiBSZWFkZXIgVGV4dFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNjcmVlbi1yZWFkZXItc2hvcnRjdXQsXG4uc2NyZWVuLXJlYWRlci10ZXh0LFxuLnNjcmVlbi1yZWFkZXItdGV4dCBzcGFuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXNob3J0Y3V0OmZvY3VzLFxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICB6LWluZGV4OiAxMDAwMDA7XG4gIC8qIEFib3ZlIFdQIHRvb2xiYXIuICovXG59XG5cbi5tb3JlLWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vKiBJbWFnZSByZWxlYXNlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaW1hZ2UtcmVsZWFzZSB7XG4gIHdpZHRoOiAxMDB2dztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNTB2dztcbiAgbWFyZ2luLXJpZ2h0OiAtNTB2dztcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFZlcnRpY2FsIGFsaWduIGNvbHVtbiBvYmplY3RzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udmVydGljYWwtY2VudGVyIHtcbiAgLndwLWJsb2NrLWNvbHVtbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi8qIEFuaW1hdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiVhbmltYXRpb24tYmFzaWMtaGlkZSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xufVxuLyogZmFkZSBpbiB0b3AgKi9cbi5oaWRkZW4ge1xuICBAZXh0ZW5kICVhbmltYXRpb24tYmFzaWMtaGlkZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xufVxuXG4uc2hvd24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbn1cbi8qIGZhZGUgaW4gcmlnaHQgKi9cbi5mYWRlLXJpZ2h0LWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpO1xufVxuXG4uZmFkZS1yaWdodCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xufVxuLyogZmFkZSBpbiBsZWZ0ICovXG4uZmFkZS1sZWZ0LWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7XG59XG5cbi5mYWRlLWxlZnQge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbn1cbi8qIGZhZGUgaW4gc2NhbGUgKi9cbi5mYWRlLXNjYWxlLWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcbn1cblxuLmZhZGUtc2NhbGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuIiwiLyogR3JpZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQ29sdW1uIE1peGluXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY29sdW1ucygkc3BhY2UsICRjb2xzOiAyLCAkbW9iaWxlLWNvbDogMSkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gID4qIHtcbiAgICBAaWYgJG1vYmlsZS1jb2wgPT0xIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlO1xuICAgIH1cblxuICAgIEBpZiAkbW9iaWxlLWNvbCA9PTIge1xuICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAoI3skc3BhY2V9IC8gMiAqICgjeyRtb2JpbGUtY29sfSAtIDEpKSkgLyAjeyRtb2JpbGUtY29sfSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoJHNwYWNlIC8gMik7XG5cbiAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoJHNwYWNlIC8gMik7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gKCN7JHNwYWNlfSAqICgjeyRjb2xzfSAtIDEpKSkgLyAjeyRjb2xzfSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjZTtcblxuICAgICAgJjpudGgtY2hpbGQoI3skY29sc31uKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbC0xIHtcbiAgcGFkZGluZzogMCA1JTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jb2wtMSB7XG4gIEBleHRlbmQgJWNvbC0xO1xufVxuXG4uY29scy0yIHtcbiAgQGluY2x1ZGUgY29sdW1ucygzMHB4LCAyKTtcbn1cblxuLmNvbHMtMyB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoMzBweCwgMyk7XG59XG5cbi8qIENvbHVtbiBMYXlvdXRzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY29sdW1uLWxheW91dCgkY29sLTEsICRjb2wtMiwgJGNvbC0zOiBudWxsKSB7XG4gIEBpZiAkY29sLTMgPT1udWxsIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgPio6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgZmxleDogJGNvbC0xIDEgMDtcbiAgICAgIH1cblxuICAgICAgPio6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgZmxleDogJGNvbC0yIDEgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgID4qOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMSAxIDA7XG4gICAgICB9XG5cbiAgICAgID4qOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMiAxIDA7XG4gICAgICB9XG5cbiAgICAgID4qOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMyAxIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50d28tb25lIHtcbiAgQGluY2x1ZGUgY29sdW1uLWxheW91dCgyLCAxKTtcbn1cblxuLyogV3JhcHBlclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNTBweCA1JTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiA4MHB4IDEwJTtcbiAgfVxuXG4gICYtc21hbGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE1cHggNSU7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMTAlO1xuICAgIH1cbiAgfVxuXG4gICYtbGFyZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDgwcHggNSU7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDEyMHB4IDEwJTtcbiAgICB9XG4gIH1cblxuICAmLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDUwcHggMDtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogODBweCAwO1xuICAgIH1cbiAgfVxufVxuXG5zZWN0aW9uLndyYXBwZXIge1xuICBAZXh0ZW5kICV3cmFwcGVyO1xuXG4gICYtc21hbGwge1xuICAgIEBleHRlbmQgJXdyYXBwZXItc21hbGw7XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICBAZXh0ZW5kICV3cmFwcGVyLWxhcmdlO1xuICB9XG5cbiAgJi1mdWxsIHtcbiAgICBAZXh0ZW5kICV3cmFwcGVyLWZ1bGw7XG4gIH1cbn0iLCIvKiBHZW5lc2lzIFN0cnVjdHVyZSBhbmQgTGF5b3V0XG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNpdGUgQ29udGFpbmVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1jb250YWluZXIge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxubWFpbi5jb250ZW50IHtcbiAgZmxleDogMSAxIDEwMCU7XG5cbn1cblxuLnNpdGUtaGVhZGVyICsgKiB7XG4gIG1hcmdpbi10b3A6NjdweDtcbn1cbi8qIENvbW1vbiBDbGFzc2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEdlbmVzaXNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hZnRlci1lbnRyeSxcbi5hcmNoaXZlLWRlc2NyaXB0aW9uLFxuLmF1dGhvci1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uYWZ0ZXItZW50cnkge1xuICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBwYWRkaW5nOiAyMHB4IDMwcHg7XG59XG5cbi5hZnRlci1lbnRyeSAud2lkZ2V0Omxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5icmVhZGNydW1iIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQsXG4uYXV0aG9yLWJveCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLyogU2VhcmNoIEZvcm1cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zZWFyY2gtZm9ybSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5lbnRyeS1jb250ZW50IC5zZWFyY2gtZm9ybSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5wb3N0LXBhc3N3b3JkLWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLndpZGdldF9zZWFyY2ggaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuLyogVGl0bGVzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZW50cnktdGl0bGUgYSxcbi5zaWRlYmFyIC53aWRnZXQtdGl0bGUgYSB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5lbnRyeS10aXRsZSBhOmZvY3VzLFxuLmVudHJ5LXRpdGxlIGE6aG92ZXIge1xuICBjb2xvcjogIzAwNzNlNTtcbn1cblxuLndpZGdldC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLyogV29yZFByZXNzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYWxpZ25jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmEuYWxpZ25jZW50ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5hLmFsaWdubm9uZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmEuYWxpZ25sZWZ0LFxuYS5hbGlnbm5vbmUsXG5hLmFsaWducmlnaHQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5hbGlnbmNlbnRlcixcbmltZy5jZW50ZXJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAzMHB4O1xufVxuXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQsXG5hLmFsaWdubGVmdCxcbmltZy5hbGlnbmxlZnQge1xuICBtYXJnaW46IDAgMjBweCAyMHB4IDA7XG59XG5cbi53cC1jYXB0aW9uLmFsaWducmlnaHQsXG5hLmFsaWducmlnaHQsXG5pbWcuYWxpZ25yaWdodCB7XG4gIG1hcmdpbjogMCAwIDIwcHggMjBweDtcbn1cblxuLmdhbGxlcnktY2FwdGlvbixcbi53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmVudHJ5LWNvbnRlbnQgcC53cC1jYXB0aW9uLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZW50cnktY29udGVudCAud3AtYXVkaW8tc2hvcnRjb2RlLFxuLmVudHJ5LWNvbnRlbnQgLndwLXBsYXlsaXN0LFxuLmVudHJ5LWNvbnRlbnQgLndwLXZpZGVvIHtcbiAgbWFyZ2luOiAwIDAgMzBweDtcbn1cbiIsIi8vIC5tZW51LWl0ZW0tLWhpZ2hsaWdodFxuLyogSGVhZGVyIEJ1dHRvbnNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVoZWFkZXItYnV0dG9ucyB7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoNDBweCwgaHNsYSgwLCAwJSwgMCUsIDApLCAxN3B4KTtcbiAgY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gIH1cbn1cblxuLyogU2tpcCBMaW5rc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdlbmVzaXMtc2tpcC1saW5rIHtcbiAgbWFyZ2luOiAwO1xuXG4gIC5za2lwLWxpbmstaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIGxpIHtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgfVxufVxuXG4vKiBTaXRlIEhlYWRlclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk7XG4gIC8vIGJvcmRlci10b3A6IDVweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvaGVhZGVyLWJnLmpwZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLy8gcGFkZGluZzogMCA1JTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICA+LndyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLyogU3RydWN0dXJlICovXG4gICAgPioge1xuICAgICAgJi5wcmUtaGVhZGVyIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYudGl0bGUtYXJlYSB7XG4gICAgICAgIC8vIGZsZXg6IDIgMSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaGVhZGVyLXdpZGdldC1hcmVhIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51LXRvZ2dsZSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBUaXRsZSBBcmVhXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGl0bGUtYXJlYSB7XG4gIHdpZHRoOiAxMzBweDtcbiAgcGFkZGluZzogMTJweCAwO1xuICBvcmRlcjogMjtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgb3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwIDMwcHggMCA1JTtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMjMwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuLnNpdGUtZGVzY3JpcHRpb24sXG4ud3AtY3VzdG9tLWxvZ28gLnNpdGUtdGl0bGUge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLyogUmVzcG9uc2l2ZSBNZW51XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWVudSAubWVudS1pdGVtOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuLm1lbnUgLm1lbnUtaXRlbT5hOmZvY3VzK3VsLnN1Yi1tZW51LFxuLm1lbnUgLm1lbnUtaXRlbS5zZkhvdmVyPnVsLnN1Yi1tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgb3BhY2l0eTogMTtcbn1cblxuLmdlbmVzaXMtcmVzcG9uc2l2ZS1tZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gIH1cbn1cblxuLyogTWVudSBUb2dnbGUgJiBTdWIgTWVudSBUb2dnbGUgKi9cbi5tZW51LXRvZ2dsZSxcbi5zdWItbWVudS10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBjb2xvcjogJG1haW4tY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICB9XG59XG5cbi8qIE1lbnUgVG9nZ2xlICovXG4ubWVudS10b2dnbGUge1xuICBAZXh0ZW5kICVoZWFkZXItYnV0dG9ucztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBvcmRlcjogNDtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgfVxuXG4gICYuYWN0aXZhdGVkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzM1XCI7XG4gIH1cbn1cblxuLyogU3ViIE1lbnUgVG9nZ2xlICovXG4uc3ViLW1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICB0b3A6IDE1cHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgfVxuXG4gICYuYWN0aXZhdGVkOmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICBjb2xvcjogbGlnaHRlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgfVxufVxuXG4vKiBIZWFkZXIgTWVudVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJW1haW4tbmF2LWludGVyYWN0IHtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRtYWluLWNvbG9yO1xuICB9XG59XG5cbi8qIEhlYWRlciBNZW51IFN0cnVjdHVyZSAqL1xuLm5hdi1wcmltYXJ5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDEwOXB4O1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDk5O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICB9XG5cbiAgLndyYXAge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vKiBNYWluIEhlYWRlciBNZW51ICovXG4ubWVudS1wcmltYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbGkgc3R5bGUqL1xuICAubWVudS1pdGVtIHtcbiAgICBAZXh0ZW5kICVtYWluLW1lbnUtaXRlbTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbmF2IGxpbmsgc3R5bGUgKi9cbiAgYSB7XG4gICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbms7XG4gIH1cblxuICAvKiBGaXJzdCBsZXZlbCBsaSAqL1xuICA+bGkge1xuICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLWZpcnN0O1xuXG4gICAgPmEge1xuICAgICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbmstZmlyc3Q7XG4gICAgfVxuICB9XG5cbiAgLyogTGV2ZWwgMiBNZW51ICovXG4gIC5zdWItbWVudSB7XG4gICAgei1pbmRleDogOTk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDYlKTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbGVmdDogOTk5OXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcbiAgICB9XG5cbiAgICAvKiBTZWNvbmQgbGV2ZWwgbGkgKi9cbiAgICAubWVudS1pdGVtIHtcbiAgICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLXNlY29uZDtcblxuICAgICAgPmEge1xuICAgICAgICBAZXh0ZW5kICVtYWluLW1lbnUtbGluay1zZWNvbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIFN0eWxlcyBmb3IgTWFpbiBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVtYWluLW1lbnUtaXRlbSB7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICYtZmlyc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvKiBJZiBoYXZlIGNoaWxkcmVuICovXG4gICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiA3cHggc29saWQgJG1haW4tY29sb3I7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXI6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLyogSWYgSGlnaGxpZ2h0ZWQgKi9cbiAgICAmLm1lbnUtaXRlbS0taGlnaGxpZ2h0IHtcbiAgICAgID5hIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgQGV4dGVuZCAlbWFpbi1uYXYtaW50ZXJhY3Q7XG4gICAgfVxuICB9XG5cbiAgJi1zZWNvbmQge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gICAgICAgID5hIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lbWFpbi1tZW51LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICB9XG5cbiAgJi1maXJzdCB7XG4gICAgcGFkZGluZzogMjBweCAxNnB4O1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7fVxuICB9XG5cbiAgJi1zZWNvbmQge1xuICAgIHBhZGRpbmc6IDE0cHggMTVweDtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBIZWFkZXIgV2lkZ2V0IEFyZWFcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5oZWFkZXItd2lkZ2V0LWFyZWEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAxO1xuICBvcmRlcjogMDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBvcmRlcjogMztcbiAgICBtYXJnaW46IDAgMjBweCAwIDIwcHg7XG4gIH1cblxuICAubWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVoZWFkZXItYnV0dG9ucztcbiAgfVxufVxuXG4vKiBQcmUgSGVhZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucHJlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIHBhZGRpbmc6IDNweCAzJTtcblxuICA+KiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGkge1xuICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIGZsZXg6IDExIDEgMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgZmxleDogMiAxIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgfVxuXG4gIGEge1xuICAgIHNwYW4ge1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKiBTaWRlYmFyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2lkZWJhciB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuXG4uc2lkZWJhciBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiIsIi8qIEZvb3RlclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gIC8qIEZvb3RlciBXaWRnZXRzXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLmZvb3Rlci13aWRnZXRzIHtcbiAgICBAZXh0ZW5kICVkYXJrLXRoZW1lO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2hlYWRlci1iZy5qcGcnKSByZXBlYXQteSBjZW50ZXIgLyBjb3ZlcjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDYwcHggNSU7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLndyYXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ3JpZ2h0JywgMzBweCk7XG4gICAgICAgIG1heC13aWR0aDogJGRlc2t0b3Atd2lkdGg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndpZGdldC10aXRsZSB7XG4gICAgICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsICNmZmYsICdib3R0b20nLCAxNXB4KTtcbiAgICB9XG5cbiAgICAud2lkZ2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgLmZvb3Rlci13aWRnZXQtYXJlYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIHAge1xuICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgICBAZXh0ZW5kIHNtYWxsO1xuICAgIH1cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItd2lkZ2V0cyAubWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIG1hcmdpbjogMCA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gICAgICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZm9vdGVyLXdpZGdldHMtMSB7XG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBtYXJnaW46IDAgYXV0byAwIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvb3Rlci13aWRnZXRzLTQge1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogNDhweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRleHR3aWRnZXQgPiBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5mb290ZXItd2lkZ2V0LWFyZWE6bGFzdC1jaGlsZCxcbiAgLmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICNtZW51LXNvY2lhbC1tZWRpYS1tZW51IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgLm1lbnUtaXRlbSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuc2l0ZS1oZWFkZXIgJiB7XG4gICAgICAgIC8vIHRvIGhpZGUgZGlzcGxheSBmcm9tIGhlYWRlclxuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuLyogU2l0ZSBGb290ZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwzMCUpO1xuICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZzogMTVweCA1JSA1cHg7XG5cbiAgPiAud3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiBwIHtcbiAgICAgIEBleHRlbmQgLnNtYWxsO1xuICAgICAgbWFyZ2luOiAwIDAgNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogR3JhcGhpY3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNlY29uZGFyeSBHcmFwaGljXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lc2Vjb25kYXJ5LWdyYXBoaWMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjphZnRlcixcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgbGVmdDogMTBweDtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDIyMGRlZyk7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICB9XG59XG4vLyAuc2Vjb25kYXJ5LWdyYXBoaWMge1xuLy8gICBAZXh0ZW5kICVzZWNvbmRhcnktZ3JhcGhpYztcbi8vIH1cbi8qIEJhY2tncm91bmQgUGF0dGVyblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lYmctcGF0dGVybiB7XG4gIGJhY2tncm91bmQ6ICRwYXR0ZXJuLTEtbGluayByZXBlYXQgY2VudGVyO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG59XG4vKiBHcmFwaGljIERpdmlkZXIgMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZ3JhcGhpYy1kaXZpZGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogJGdyYXBoaWMtZGl2aWRlci0xLWxpbmsgbm8tcmVwZWF0IGJvdHRvbSAvIDEwMnZ3IGF1dG87XG59XG5cbiVncmFwaGljLWRpdmlkZXItdG9wIHtcbiAgQGV4dGVuZCAlZ3JhcGhpYy1kaXZpZGVyO1xuICB0b3A6IC0xMTlweDtcbn1cblxuJWdyYXBoaWMtZGl2aWRlci1ib3R0b20ge1xuICBAZXh0ZW5kICVncmFwaGljLWRpdmlkZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGJvdHRvbTogLTExOXB4O1xufVxuLyogR3JhcGhpYyBEaXZpZGVyIDIgLSBicnVzaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZ3JhcGhpYy1kaXZpZGVyLS1icnVzaCB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTBweDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogJGdyYXBoaWMtZGl2aWRlci0yLWxpbmsgbm8tcmVwZWF0IGJvdHRvbSAvIDEwMnZ3IGF1dG87XG59XG5cbiVncmFwaGljLWRpdmlkZXItLWJydXNoLXRvcCB7XG4gIEBleHRlbmQgJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2g7XG4gIHRvcDogLTQ5cHg7XG59XG5cbiVncmFwaGljLWRpdmlkZXItLWJydXNoLWJvdHRvbSB7XG4gIEBleHRlbmQgJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2g7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGJvdHRvbTogLTQ5cHg7XG59XG4vKiBEaXZpZGVyIGFmdGVyIHRpdGxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVkaXZpZGVyLWFmdGVyLXRpdGxlIHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJG1haW4tY29sb3I7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG59XG4iLCIvKiBCdXR0b25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gYnRuLTFcbiBidG4tMlxuIGJ0bi1pY29uLXRleHRcbiAqL1xuLyogU3RydWN0dXJlIG9mIGEgYnV0dG9uICovXG5AbWl4aW4gYnRuKCRzaXplKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdG9wOiAwO1xuICBib3JkZXI6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBAaWYgJHNpemUgPT0gc21hbGwge1xuICAgIHBhZGRpbmc6IDAuNmVtIDAuOWVtO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICB9XG4gIEBpZiAkc2l6ZSA9PSBtZWRpdW0ge1xuICAgIHBhZGRpbmc6IDAuOWVtIDEuMmVtO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICB9XG4gIEBpZiAkc2l6ZSA9PSBsYXJnZSB7XG4gICAgcGFkZGluZzogMS4yZW07XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuJWJ0biB7XG4gIEBpbmNsdWRlIGJ0bihtZWRpdW0pO1xuXG4gICYtc21hbGwge1xuICAgIEBpbmNsdWRlIGJ0bihzbWFsbCk7XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBidG4obGFyZ2UpO1xuICB9XG59XG5cbi5idG4ge1xuICBAZXh0ZW5kICVidG47XG5cbiAgJi5hbGlnbi1jIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICYtc21hbGwge1xuICAgIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgfVxuXG4gICYtbGFyZ2Uge1xuICAgIEBleHRlbmQgJWJ0bi1sYXJnZTtcbiAgfVxufVxuXG4vKiBTb2xpZCBCdXR0b24gLSBidG4tMVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYnRuLTEoJGJnLWNvbG9yLCAkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiZy1jb2xvciwgMTUlKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxufVxuXG4lYnRuLTEge1xuICBAaW5jbHVkZSBidG4tMShkYXJrZW4oJG1haW4tY29sb3IsIDEwJSksICNmZmYpO1xuXG4gICYtc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBidG4tMShoc2woMCwwJSw2MCUpLCBoc2woMCwwJSwxMDAlKSk7XG4gIH1cblxuICAmLWxpZ2h0IHtcbiAgICBAaW5jbHVkZSBidG4tMShoc2woMCwwJSw5MCUpLCBoc2woMCwwJSw1MCUpKTtcbiAgfVxuXG4gICYtc3VjY2VzcyB7XG4gICAgQGluY2x1ZGUgYnRuLTEoJGdyZWVuLCBoc2woMCwwJSwxMDAlKSk7XG4gIH1cblxuICAmLWluZm8ge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCRibHVlLCBoc2woMCwwJSwxMDAlKSk7XG4gIH1cblxuICAmLXdhcm5pbmcge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCR5ZWxsb3csIGRhcmtlbigkeWVsbG93LCA0MCUpKTtcbiAgfVxuXG4gICYtZGFuZ2VyIHtcbiAgICBAaW5jbHVkZSBidG4tMSgkcmVkLCBoc2woMCwwJSwxMDAlKSk7XG4gIH1cbn1cblxuLmJ0bi0xIHtcbiAgQGV4dGVuZCAlYnRuLTE7XG5cbiAgJi1zZWNvbmRhcnkge1xuICAgIEBleHRlbmQgJWJ0bi0xLXNlY29uZGFyeTtcbiAgfVxuXG4gICYtbGlnaHQge1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuICB9XG5cbiAgJi1zdWNjZXNzIHtcbiAgICBAZXh0ZW5kICVidG4tMS1zdWNjZXNzO1xuICB9XG5cbiAgJi1pbmZvIHtcbiAgICBAZXh0ZW5kICVidG4tMS1pbmZvO1xuICB9XG5cbiAgJi13YXJuaW5nIHtcbiAgICBAZXh0ZW5kICVidG4tMS13YXJuaW5nO1xuICB9XG5cbiAgJi1kYW5nZXIge1xuICAgIEBleHRlbmQgJWJ0bi0xLWRhbmdlcjtcbiAgfVxufVxuXG4vKiBPdXRsaW5lIEJ1dHRvbiAtIGJ0bi0yXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBidG4tMigkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLCAxMCUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxufVxuXG4lYnRuLTIge1xuICBAaW5jbHVkZSBidG4tMigkbWFpbi1jb2xvcik7XG5cbiAgJi13aGl0ZSB7XG4gICAgQGluY2x1ZGUgYnRuLTIoI2ZmZik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDE1JSk7XG4gICAgfVxuICB9XG59XG5cbi5idG4tMiB7XG4gIEBleHRlbmQgJWJ0bi0yO1xuXG4gICYtd2hpdGUge1xuICAgIEBleHRlbmQgJWJ0bi0yLXdoaXRlO1xuICB9XG59XG5cbi8qIEJ1dHRvbiBJY29uIFRleHQgLSAuYnRuLWljb24tdGV4dFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lYnRuLWljb24tdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxNSUpO1xuICBjb2xvcjogI2ZmZjtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgaSB7XG4gICAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgzMHB4LCBoc2xhKDAsMCUsMTAwJSwwKSwgMThweCk7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIH1cbn1cblxuLmJ0bi1pY29uLXRleHQge1xuICBAZXh0ZW5kICVidG4taWNvbi10ZXh0O1xufVxuIiwiLyogR2VuZXNpcyBXaWRnZXRzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBXaWRnZXRcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4ud2lkZ2V0IHA6bGFzdC1jaGlsZCxcbi53aWRnZXQgdWwgPiBsaTpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ud2lkZ2V0IHVsID4gbGkge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ud2lkZ2V0IHVsID4gbGk6bGFzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi53aWRnZXQgb2wgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRleHQtaW5kZW50OiAtMjBweDtcbn1cblxuLndpZGdldCBsaSBsaSB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwIDAgMCAzMHB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53aWRnZXRfY2FsZW5kYXIgdGQsXG4ud2lkZ2V0X2NhbGVuZGFyIHRoIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogRmVhdHVyZWQgQ29udGVudFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLy8gLmZlYXR1cmVkLWNvbnRlbnQgLmVudHJ5IHtcbi8vICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4vLyAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4vLyB9XG4vL1xuLy8gLmZlYXR1cmVkLWNvbnRlbnQgLmVudHJ5Omxhc3Qtb2YtdHlwZSB7XG4vLyAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4vLyAgIG1hcmdpbi1ib3R0b206IDA7XG4vLyB9XG4vL1xuLy8gLmZlYXR1cmVkLWNvbnRlbnQgLmVudHJ5LWltYWdlIHtcbi8vICAgaGVpZ2h0OiA3NXB4O1xuLy8gICB3aWR0aDogNzVweDtcbi8vIH1cbi8vXG4vLyAuZmVhdHVyZWQtY29udGVudCAuZW50cnktdGl0bGUge1xuLy8gICBmb250LXNpemU6IDE2cHg7XG4vLyAgIGZvbnQtc2l6ZTogMS42cmVtO1xuLy8gICBtYXJnaW4tYm90dG9tOiA1cHg7XG4vLyAgIG1hcmdpbi10b3A6IDEwcHg7XG4vLyB9XG4vKiBQbHVnaW5zXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogR2VuZXNpcyBlTmV3cyBFeHRlbmRlZFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLy8gLmFmdGVyLWVudHJ5IC5lbmV3cyB7XG4vLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgcGFkZGluZzogMTBweDtcbi8vIH1cbi8vXG4vLyAuc2lkZWJhciAuZW5ld3Mge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuLy8gICBwYWRkaW5nOiAzMHB4O1xuLy8gfVxuLy9cbi8vIC5lbmV3cy13aWRnZXQgaW5wdXQge1xuLy8gICBmb250LXNpemU6IDE2cHg7XG4vLyAgIGZvbnQtc2l6ZTogMS42cmVtO1xuLy8gICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8gfVxuLy9cbi8vIC5hZnRlci1lbnRyeSAuZW5ld3Mtd2lkZ2V0IGlucHV0IHtcbi8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xuLy8gfVxuLy9cbi8vIC5lbmV3cy13aWRnZXQgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLyAgIG1hcmdpbjogMDtcbi8vICAgd2lkdGg6IDEwMCU7XG4vLyB9XG4vL1xuLy8gLmVuZXdzIGZvcm0rcCB7XG4vLyAgIG1hcmdpbi10b3A6IDIwcHg7XG4vLyB9XG4vKiBHZW5lc2lzIFNpbXBsZSBGQVFcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIC5ncy1mYXFfX3F1ZXN0aW9uIHtcbi8vICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4vLyAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuLy8gICBjb2xvcjogIzMzMztcbi8vICAgcGFkZGluZy1sZWZ0OiAwO1xuLy8gICBwYWRkaW5nLXJpZ2h0OiAwO1xuLy8gfVxuLy9cbi8vIC5ncy1mYXFfX3F1ZXN0aW9uOmZvY3VzLFxuLy8gLmdzLWZhcV9fcXVlc3Rpb246aG92ZXIge1xuLy8gICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbi8vICAgY29sb3I6ICMwMDczZTU7XG4vLyB9XG4vL1xuLy8gLmdzLWZhcV9fcXVlc3Rpb246OmFmdGVyIHtcbi8vICAgY29udGVudDogXCJcXGYxMzJcIjtcbi8vICAgZm9udC1mYW1pbHk6IFwiZGFzaGljb25zXCI7XG4vLyAgIGZsb2F0OiByaWdodDtcbi8vIH1cbi8vXG4vLyAuZ3MtZmFxX19xdWVzdGlvbi5ncy1mYXEtLWV4cGFuZGVkOjphZnRlciB7XG4vLyAgIGNvbnRlbnQ6IFwiXFxmNDYwXCI7XG4vLyB9XG4vKiBKZXRwYWNrXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vLyAjd3BzdGF0cyB7XG4vLyAgIGRpc3BsYXk6IG5vbmU7XG4vLyB9XG4iLCIvKiBGb3Jtc1xuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICoqIEZvcm0gRXJyb3JzXG4gKi9cbiVpbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICRyZWQhaW1wb3J0YW50O1xufVxuXG4laW52YWxpZC1pbnB1dCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkcmVkIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGUhaW1wb3J0YW50O1xufVxuLypDT05UQUNUIEZPUk0qL1xuOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuOjpwbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuI3skaW5wdXQtZmllbGRzfSxcbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNEMUQxRDE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICM1NTU7XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuLyogUmVtb3ZlcyBhd2t3YXJkIGRlZmF1bHQgc3R5bGVzIG9uIHNvbWUgaW5wdXRzIGZvciBpT1MgKi9cbiN7JGlucHV0LWZpZWxkc30sXG50ZXh0YXJlYSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4jeyRpbnB1dC1maWVsZHN9LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmJiYmI7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBzYXR1cmF0ZSgkbWFpbi1jb2xvciwgMTUlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbmZvcm0ge1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgJlt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICBwYWRkaW5nOiAwLjZlbSAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJlt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIEBleHRlbmQgJWJ0bjtcbiAgICAgIEBleHRlbmQgJWJ0bi0xO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjFmMWYyO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwICNjY2M7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKldQQ0Y3IFNQRUNJRklDIEVSUk9SIEFORCBBUFBST1ZBTCBNRVNTQUdFUyovXG4ud3BjZjcge1xuICBmb3JtIHtcbiAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRhNGE7XG4gICAgICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgYm9yZGVyOiAwIHNvbGlkICNjYzRhNGE7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRhNGE7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgICAgICBAZXh0ZW5kICVpY29uO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1hY2NlcHRhbmNlLW1pc3NpbmcsXG4gICAgLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1tYWlsLXNlbnQtb2sge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGVhMDNcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qIFNlbGVjdCBSZXNldFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5zZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjE7XG4gIGNvbG9yOiAjNTU1O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBwYWRkaW5nOiAwLjZlbSAxLjRlbSAwLjVlbSAwLjhlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVTLUFTQ0lJLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyOTIuNCUyMiUyMGhlaWdodCUzRCUyMjI5Mi40JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMwMDdDQjIlMjIlMjBkJTNEJTIyTTI4NyUyMDY5LjRhMTcuNiUyMDE3LjYlMjAwJTIwMCUyMDAtMTMtNS40SDE4LjRjLTUlMjAwLTkuMyUyMDEuOC0xMi45JTIwNS40QTE3LjYlMjAxNy42JTIwMCUyMDAlMjAwJTIwMCUyMDgyLjJjMCUyMDUlMjAxLjglMjA5LjMlMjA1LjQlMjAxMi45bDEyOCUyMDEyNy45YzMuNiUyMDMuNiUyMDcuOCUyMDUuNCUyMDEyLjglMjA1LjRzOS4yLTEuOCUyMDEyLjgtNS40TDI4NyUyMDk1YzMuNS0zLjUlMjA1LjQtNy44JTIwNS40LTEyLjglMjAwLTUtMS45LTkuMi01LjUtMTIuOHolMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43ZW0gdG9wIDUwJSwgMCAwO1xuICBiYWNrZ3JvdW5kLXNpemU6IDAuNjVlbSBhdXRvLCAxMDAlO1xuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICM4ODg7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNhYWE7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAzcHggcmdiYSg1OSwgMTUzLCAyNTIsIC43KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggLW1vei1tYWMtZm9jdXNyaW5nO1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmIG9wdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuLyogQ2hlY2tib3ggUmVzZXRcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICsgKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgPiAqIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgICY6YWZ0ZXIsXG4gICAgJjpiZWZvcmUge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbWluLXdpZHRoOiAxNnB4O1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBib3JkZXI6IHNvbGlkIDJweCAjY2NjO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTFweDtcbiAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDNweCAjOTk5O1xuICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjOTk5O1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICArICo6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG4gICY6Y2hlY2tlZCArICoge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCNmZmYsIDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjZmZmLCA1JSk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSguOCk7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCA0cHggbGlnaHRlbigkZ3JlZW4sIDApO1xuICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDRweCBsaWdodGVuKCRncmVlbiwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvKiBMaXN0IHN0eWxlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4laXRlbS1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogMjRweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gIG9sLFxuICB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uaXRlbS1saXN0IHtcbiAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gID4gbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgfVxufVxuXG4ubnVtYmVyLWxpc3Qge1xuICBAZXh0ZW5kICVpdGVtLWxpc3Q7XG5cbiAgPiBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG59XG4vKiBFbnRyeSBNZXRhXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZW50cnktZm9vdGVyIC5lbnRyeS1tZXRhIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4uZW50cnktY29tbWVudHMtbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwMTRcIjtcbiAgbWFyZ2luOiAwIDZweCAwIDJweDtcbn1cbi8qIFBhZ2luYXRpb25cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgbWFyZ2luOiA2MHB4IDA7XG59XG5cbi5hZGphY2VudC1lbnRyeS1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgY29sb3I6ICMzMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSBhOmZvY3VzLFxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSBhOmhvdmVyLFxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaS5hY3RpdmUgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGNvbG9yOiAjZmZmO1xufVxuIiwiLyogU2VjdGlvbiBUaXRsZVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNlY3Rpb24tdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICYuYWxpZ24tYyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgaDQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJGRhcmstY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG59XG5cbi8qIERpdmlkZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmhyIHtcbiAgYm9yZGVyOiAwO1xufVxuXG5oci5zbWFsbCB7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuXG4lZGl2aWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAtMTVweCAwIDE1cHggLTI1cHg7XG4gIHdpZHRoOiAxMTBweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9kaXZpZGVyLXN0cm9rZS5zdmcnKSBuby1yZXBlYXQgbGVmdCAvIGNvbnRhaW47XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmRpdmlkZXIge1xuICBAZXh0ZW5kICVkaXZpZGVyO1xuXG4gICYtYyB7XG4gICAgQGV4dGVuZCAlZGl2aWRlcjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn0iLCIvKiBJbWFnZSBDYXJkXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG48ZmlndXJlIGNsYXNzPVwiaW1nLWNhcmRcIj5cbiAgPGltZyBzcmM9XCJcIj5cbiAgPGZpZ2NhcHRpb24+PC9maWdjYXB0aW9uPlxuPC9maWd1cmU+XG4qL1xuLmltZy1jYXJkIHtcbiAgQGV4dGVuZCAlaW1nLWNhcmQ7XG59XG5cbiVpbWctY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDEwLDEwJSwxMCUsdG9wKTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjhzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjE7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cbi8qIExvZ28gR2FsbGVyeVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPHNlY3Rpb24gY2xhc3M9XCJsb2dvLXNob3djYXNlXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJzZWN0aW9uLXRpdGxlIGFsaWduLWNcIj5cbiAgICA8aDI+T3VyIENsaWVudHM8L2gyPlxuICAgIDxociBjbGFzcz1cImRpdmlkZXItY1wiPlxuICAgIDxwPkhlcmUgYXJlIHNvbWUgb2Ygb3VyIG91ciBjbGllbnRzLjwvcD5cbiAgPC9oZWFkZXI+XG5cbiAgPGRpdiBjbGFzcz1cImxvZ28tc2hvd2Nhc2UtZ2FsbGVyeVwiPlxuICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vc3RhdGljL2xvZ28tMS5qcGdcIj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4qL1xuLy8gLmxvZ28tZmVhdHVyZS1nYWxsZXJ5IHtcbi8vICAgQGV4dGVuZCAlbG9nby1mZWF0dXJlLWdhbGxlcnk7XG4vLyB9XG5cbiVsb2dvLWZlYXR1cmUtZ2FsbGVyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG5cbiAgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cbn1cbi8qIEltYWdlIEJhbm5lclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgPHNlY3Rpb24gY2xhc3M9XCJpbWFnZS1iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci1sZWZ0XCI+XG4gICAgICA8aDM+VGl0bGU8L2gzPlxuICAgICAgPHA+RGVzY3JpcHRpb248L3A+XG4gICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnRuIGJ0bi0zXCI+TGVhcm4gTW9yZTwvYT5cbiAgICA8L2Rpdj5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvYXNkLmpwZ1wiPlxuICA8L3NlY3Rpb24+XG5cbiAgKi9cbi8vIC5pbWFnZS1iYW5uZXIge1xuLy8gICBAZXh0ZW5kICVpbWFnZS1iYW5uZXI7XG4vLyB9XG5cbiVpbWFnZS1iYW5uZXIge1xuICBAZXh0ZW5kICViYW5uZXI7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDYwcHggMDtcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEpO1xuXG4gICAgJi5jb250YWluZXItbGVmdCB7XG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skZGVza3RvcC13aWR0aH0gKiAwLjUpO1xuICAgICAgICBtYXgtd2lkdGg6ICRkZXNrdG9wLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwJSAtICN7JGRlc2t0b3Atd2lkdGh9KSAvIDIpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY29udGFpbmVyLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRkZXNrdG9wLXdpZHRofSkgLyAyKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBCYW5uZXJzXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiViYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBwYWRkaW5nOiA1MHB4IDUlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGltZyB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cbi8qIFJlZ3VsYXIgQmFubmVyXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVyZWd1bGFyLWJhbm5lciB7XG4gIEBleHRlbmQgJWJhbm5lcjtcbiAgQGV4dGVuZCAlYmctcGF0dGVybjtcbiAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCAxMHB4KTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIHAge1xuICAgIEBleHRlbmQgJWNvbC0xO1xuICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbiAgfVxuXG4gIGltZyB7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG59XG5cbi5lbnRyeS1oZWFkZXIsXG4ucmVndWxhci1iYW5uZXIge1xuICBAZXh0ZW5kICVyZWd1bGFyLWJhbm5lcjtcbn1cbi8qIEdpYW50IEJhbm5lclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWdpYW50LWJhbm5lciB7XG4gIGhlaWdodDogNTAwcHg7XG4gIG1heC1oZWlnaHQ6IDcyMHB4O1xuICBAZXh0ZW5kICViYW5uZXI7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGhlaWdodDogY2FsYygxMDB2aCk7XG4gIH1cblxuICAuZW50cnktdGl0bGUsXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRleHQtc2hhZG93OiAzcHggM3B4IDZweCByZ2JhKDAsMCwwLDAuNik7XG5cbiAgICBoMSxcbiAgICBoMiB7XG4gICAgICBjb2xvcjogaHNsKDAsMCUsMTAwJSk7XG4gICAgfVxuICB9XG59XG5cbi8vIC5naWFudC1iYW5uZXIge1xuLy8gICBAZXh0ZW5kICVnaWFudC1iYW5uZXI7XG4vLyB9XG4iLCIvKiBIZXJvIFNsaWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogR2lhbnQgQmFubmVyIFNsaWRlciAqL1xuLmhlcm8tc2xpZGVyIHtcbiAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgQGV4dGVuZCAlYmFubmVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogYXV0bztcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIG1heC1oZWlnaHQ6IDcyMHB4O1xuICB9XG5cbiAgLy8gRm9yIHNsaWNranNcbiAgLnNsaWNrLW5leHQsXG4gIC5zbGljay1wcmV2IHtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHRvcDogNTB2dztcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAzMCUpO1xuICAgIH1cbiAgfVxuXG4gIC5zbGljay1wcmV2IHtcbiAgICBsZWZ0OiAxJTtcbiAgfVxuXG4gIC5zbGljay1uZXh0IHtcbiAgICByaWdodDogMSU7XG4gIH1cbn1cblxuLmhlcm8tc2xpZGVyLS1zaG9ydCB7XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gIH1cblxuICAuaGVyby1zbGlkZSB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGhlaWdodDogNTAwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgfVxuICB9XG59XG5cbi8qIEdpYW50IEJhbm5lciBTbGlkZSAqL1xuLmhlcm8tc2xpZGUge1xuICAvLyBzbGljayB3aWxsIGRldGVybWluZSB3aWR0aFxuICBoZWlnaHQ6IGF1dG87XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBoZWlnaHQ6IDcwdmg7XG4gIH1cblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZ3IC8gMTYgKiA5KTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgLyogR2VuZXJpYyBGaWdjYXB0aW9uIFN0eWxlcyAqL1xuICBmaWdjYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHotaW5kZXg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgcGFkZGluZzogMjBweCA1JTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIC8vIEdyYWRpZW50IEZhZGVcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IC05OXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgyNTUsIDI1NSUsIDI1NSUsIHRvcCk7XG4gICAgICB9XG5cbiAgICAgIGJyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMztcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDI1JSk7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBmb250LWZhbWlseTogJHN1YnRpdGxlLWZvbnQ7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuNjtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwdnc7XG4gICAgfVxuICB9XG5cbiAgLyogQ2FwdGlvbiBQb3NpdGlvbnMgKi9cbiAgJi0tbGVmdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIEBleHRlbmQgJWhlcm8tc2xpZGUtZ3JhZGllbnQtZmFkZS1sZWZ0LXJpZ2h0O1xuICAgIH1cblxuICAgICYuaGVyby1zbGlkZS0tbGlnaHQ6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMjU1LCAyNTUlLCAyNTUlLCByaWdodCk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsIDAlLCAwJSwgcmlnaHQpO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1maWdjYXB0aW9uLWxlZnQtcmlnaHQ7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGxlZnQ6IDV2dztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGUtbGVmdC1yaWdodDtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWxpZ2h0OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDI1NSwgMjU1JSwgMjU1JSwgbGVmdCk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsIDAlLCAwJSwgbGVmdCk7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWZpZ2NhcHRpb24tbGVmdC1yaWdodDtcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgcmlnaHQ6IDV2dztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXRvcCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlLXRvcC1ib3R0b207XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1saWdodDpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgyNTUsIDI1NSUsIDI1NSUsIGJvdHRvbSk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsIDAlLCAwJSwgYm90dG9tKTtcbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIEBleHRlbmQgJWhlcm8tc2xpZGUtZmlnY2FwdGlvbi10b3AtYm90dG9tO1xuXG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogYm90dG9tO1xuICAgIH1cbiAgfVxuXG4gICYtLWJvdHRvbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlLXRvcC1ib3R0b207XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1saWdodDpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgyNTUsIDI1NSUsIDI1NSUsIHRvcCk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsIDAlLCAwJSwgdG9wKTtcbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIEBleHRlbmQgJWhlcm8tc2xpZGUtZmlnY2FwdGlvbi10b3AtYm90dG9tO1xuXG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogRGFyayBmb250IHN0eWxlcyAqL1xuICAmLS1kYXJrIGZpZ2NhcHRpb24ge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAqIHtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cblxuICAgICAgcCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogTGVmdCBhbmQgcmlnaHQgZmlnY2FwdGlvbiovXG4laGVyby1zbGlkZS1maWdjYXB0aW9uIHtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAmLWxlZnQtcmlnaHQge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB9XG5cbiAgICAmLXRvcC1ib3R0b20ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogNTAlO1xuICAgICAgcGFkZGluZzogMCAyMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbiVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGUge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1peC1ibGVuZC1tb2RlOiBvdmVybGF5O1xuICBvcGFjaXR5OiAwLjU7XG5cbiAgJi1sZWZ0LXJpZ2h0IHtcbiAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJi10b3AtYm90dG9tIHtcbiAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGU7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgfVxufSIsIi5wb3N0LWFyY2hpdmUge1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDUwcHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgLmFyY2hpdmUtZGVzY3JpcHRpb24ge1xuICAgIEBleHRlbmQgJXJlZ3VsYXItYmFubmVyO1xuICB9XG5cbiAgLnBvc3QtZW50cnktbGlzdCB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDMgMSAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG59XG5cbi5wb3N0LWVudHJ5LWxpc3Qge1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDMwcHgpO1xuXG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBjb2x1bW5zKDE1cHgsIDIpO1xuICAgIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMiwgMyk7XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cblxuICBwIHtcbiAgICBAZXh0ZW5kIC5zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpbmsge1xuICAgIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgICBAZXh0ZW5kICVidG4tMS1saWdodDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICB9XG5cbiAgLmVudHJ5LWNvbnRlbnRfX3RodW1ibmFpbC1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTcwcHg7XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIFN0cnVjdHVyZSBvZiBzaW5nbGUgcG9zdCovXG4ucG9zdC1zaW5nbGUge1xuICAuZW50cnkge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgNTBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgLmhhcy1wb3N0LXRodW1ibmFpbCAuZW50cnktaGVhZGVyIHtcbiAgICBAZXh0ZW5kICVkYXJrLXRoZW1lO1xuICAgIGJhY2tncm91bmQ6ICRtYWluLWNvbG9yO1xuXG4gICAgaW1nIHtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICB9XG4gIH1cblxuICAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDMgMSAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG59XG4vKiBQcmltYXJ5IHNpZGViYXIgb25seSAqL1xuLnNpZGViYXItcHJpbWFyeSB7XG4gIC53aWRnZXQtdGl0bGUge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDRweCwgaHNsKDAsMCUsODUlKSwgJ2JvdHRvbScsIDEwcHgpO1xuICB9XG59XG5cbi5lbnRyeS1jb250ZW50IHtcbiAgLmVudHJ5LW1ldGEge1xuICAgIEBleHRlbmQgLnNtYWxsO1xuICAgIGNvbG9yOiBoc2woMCwwJSw3MCUpO1xuICB9XG59XG4vKiBTaW5nbGUgUGFnZSBDb250ZW50XG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnBvc3Qtc2luZ2xlIHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIEBleHRlbmQgJWJsb2ctdHlwb2dyYXBoeTtcblxuICAgID4gdWwge1xuICAgICAgQGV4dGVuZCAuaXRlbS1saXN0O1xuICAgIH1cblxuICAgID4gb2wge1xuICAgICAgQGV4dGVuZCAubnVtYmVyLWxpc3Q7XG4gICAgfVxuICB9XG4gIC8vXG4gIC8vIC5jb21tZW50LXJlc3BvbmQge1xuICAvLyAgIHBhZGRpbmc6IDAgNSU7XG4gIC8vIH1cbn1cbiIsIi5pbmxpbmUtd3JhcCB7XG4gIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC14bC13aWR0aCk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi5hYm91dC1mZWF0dXJlIHtcbiAgYmFja2dyb3VuZDogJHBhdHRlcm4tMS1saW5rIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1MHB4IDEwJTtcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgQGluY2x1ZGUgY29sdW1ucygwcHgsIDIpO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cblxuLmFib3V0LWZlYXR1cmUtZ3JhcGhpYyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcblxuICBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2ltYWdlLWJvcmRlci5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciAvIGNvdmVyO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwcHgpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMnB4IDRweCAzcHggaHNsYSg1MCwgMTAlLCA1MCUsIDAuOSkpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKSB0cmFuc2xhdGUoLTkwcHgsIC01MHB4KTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKSB0cmFuc2xhdGUoOTBweCwgNTBweCk7XG4gICAgfVxuICB9XG59XG5cbi5naWFudC1iYWNrZ3JvdW5kLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBmb250LXNpemU6IDU1MHB4O1xuICBmb250LWZhbWlseTogJHN1YnRpdGxlLWZvbnQ7XG4gIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFib3V0LWZlYXR1cmUtZGV0YWlscyB7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5tZW51LWZlYXR1cmUge1xuICBiYWNrZ3JvdW5kOiAkcGF0dGVybi0xLWxpbmsgbm8tcmVwZWF0IGNlbnRlciAvIGNvdmVyO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cblxuLyogTWVudSBGZWF0dXJlICovXG4ubWVudS1mZWF0dXJlLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xufVxuXG4uZGlzaC1zaW5nbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAyMjBweDtcbiAgcGFkZGluZzogMCAxNXB4O1xuXG4gICY6aG92ZXIge1xuICAgIC5kaXNoLXNoYWRvdyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gICAgfVxuXG4gICAgPmltZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjBweCkgc2NhbGUoMS4wNSk7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiAxMjVweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG9iamVjdC1wb3NpdGlvbjogYm90dG9tO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCA3cHgpO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbn1cblxuLmRpc2gtc2hhZG93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDUwLCAzMCUsIDMwJSwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBmaWx0ZXI6IGJsdXIoNHB4KTtcbiAgdHJhbnNpdGlvbjogMC4zcztcbn1cblxuLmRpc2gtc2luZ2xlLXByaWNlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5ODhhO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZGlzaC1zaW5nbGUtdGl0bGUge1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4uZGlzaC1zaW5nbGUtdGl0bGUtY2hpbmVzZSB7XG4gIGZvbnQtZmFtaWx5OiAkc3VidGl0bGUtZm9udDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogZGFya2VuKCRvZmYtd2hpdGUsIDUwJSk7XG59XG5cbi8qIHN0YXIgZ2FsbGVyeSAqL1xuLnN0YXItd2FsbC1nYWxsZXJ5IHtcbiAgaW1nIHtcbiAgICBoZWlnaHQ6IDEzdnc7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLm1lbnUtbGlzdC1jYXRlZ29yeS1uYXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDIwcHggMCA1MHB4O1xuXG4gIGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgei1pbmRleDogMDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2RpdmlkZXItc3Ryb2tlLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIG1heC13aWR0aDogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IDAuNXM7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICRzdWJ0aXRsZS1mb250O1xuICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgIH1cbiAgfVxufVxuXG4ubWVudS1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG9mZi13aGl0ZSwgMTAlKTtcbiAgfVxuXG4gIGFydGljbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSA0NSU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgKyA1cHgpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm1lbnUtcmVnLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuXG4gIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICB9XG59XG5cbi5sYXRlc3QtcHJvbW90aW9ucyB7XG4gIGJhY2tncm91bmQ6ICRwYXR0ZXJuLTEtbGluayBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG4gIEBpbmNsdWRlIGNvbHVtbnMoNTBweCwgMik7XG4gIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMSwgMik7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgfVxufVxuXG4ucHJvbW90aW9uLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsIGRhcmtlbigkb2ZmLXdoaXRlLCAyMCUpLCAndG9wJywgMjBweCk7XG4gIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMTBweCk7XG5cbiAgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG59XG5cbi5wcm9tb3Rpb24tc2luZ2xlLS1kYXRlcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5ODhhO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi5sYXRlc3QtcHJvbW90aW9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9vbGQtdG93bi1iYWNrZ3JvdW5kLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbi8qIE91dGxldHMgUGFnZSAqL1xuLm91dGxldHMtcGFnZSB7XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkcGF0dGVybi0xLWxpbmsgbm8tcmVwZWF0IGNlbnRlciAvIGNvdmVyO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4uYnJhbmNoLWxpc3Qtd3JhcHBlciB7XG4gIG1heC13aWR0aDogJGRlc2t0b3Atd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxNXB4IDA7XG59XG5cbi5icmFuY2gtbGlzdCB7XG4gIC8vIEBpbmNsdWRlIGNvbHVtbnMoMzBweCwgMik7XG59XG5cbi5zaW5nbGUtb3V0bGV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC41KTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgQGluY2x1ZGUgY29sdW1ucygwcHgsIDIpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGZpZ3VyZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg1MCwgMTAlLCA4MCUpO1xuICB9XG5cbiAgLm91dGxldC1sb2dvIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG1heC13aWR0aDogMjMwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICBpZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zaW5nbGUtb3V0bGV0LS1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDUwJSk7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAudGFnLWxhYmVsLXNtYWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG5cbiAgaDUge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAuZGlyZWN0aW9uLWxpbmsge1xuICAgIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoMzVweCwgJG1haW4tY29sb3IsIDE1cHgpO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG59XG5cbi8qIENvbnRhY3QgUGFnZSAqL1xuLnBhZ2UtaWQtMTIge1xuICBtYWluLmNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICRwYXR0ZXJuLTEtbGluayBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgfVxuICB9XG5cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIG1heC13aWR0aDogJGRlc2t0b3Atd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICAud3AtYmxvY2stY29sdW1uIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNik7XG4gICAgcGFkZGluZzogMTVweDtcblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMTBweCk7XG4gICAgfVxuICB9XG59XG5cbi53cC1ibG9jay1zZXBhcmF0b3Ige1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG4vKiBwcm9tb3Rpb25zICovXG4uY2F0ZWdvcnktcHJvbW90aW9ucyB7XG4gIG1haW4uY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJHBhdHRlcm4tMS1saW5rIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICB9XG4gIH1cblxuICAucG9zdC1lbnRyeS1saXN0IHtcbiAgICBAaW5jbHVkZSBjb2x1bW5zKDMwcHgsIDMpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4uY2F0ZWdvcnktcHJvbW90aW9ucy5lbnRyeSAucHJvbW90aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wcm9tb3Rpb25zLXdyYXBwZXIge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG5cbi5wcm9tb3Rpb25zLXdyYXBwZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlWSgtOTB2dyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDA7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVZKC02MXZ3KTtcbiAgfVxufVxuXG4ucHJvbW90aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB3aWR0aDogMTg1cHg7XG4gIGhlaWdodDogMjc3cHg7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICB3aWR0aDogMjgwcHg7XG4gICAgaGVpZ2h0OiA0MjBweDtcbiAgfVxufVxuXG4ucHJvbW90aW9uX19pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5wcm9tb3Rpb25fX2NhcHRpb24ge1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDVweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgYm90dG9tOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgLnByb21vdGlvbi1zaW5nbGUtLWRhdGVzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsIDAlLCAxNSUsIHRvcCk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vKiBJbWFnZSBCYW5uZXIgKi9cbi5pbWFnZS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogOTB2aDtcbiAgbWF4LWhlaWdodDogODAwcHg7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG59XG5cbi5pbWFnZS1iYW5uZXJfX2NhcHRpb24ge1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDIwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNSU7XG4gIHRvcDogNXZ3O1xuICBwYWRkaW5nOiA1MHB4IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgcGFkZGluZzogMjBweCA0MHB4O1xuICAgIHJpZ2h0OiA1JTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmOmFmdGVyLFxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgb3BhY2l0eTogMC41O1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cbn1cblxuLyogRmVhdHVyZWQgRGlzaGVzKi9cbi5jYWtlcy1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBjb2x1bW5zKDBweCwgMik7XG5cbiAgPmZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgPmFydGljbGUge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMTBweCk7XG4gICAgcGFkZGluZzogNTBweCA1JTtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiA1MHB4O1xuICAgIH1cbiAgfVxufVxuXG4uc2luZ2xlLWNha2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIGltZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGZsZXg6IDEgMSAxMDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxufVxuXG4ucGFydG5lcnMtc2VjdGlvbiB7XG4gIG1hcmdpbjogOHJlbSAwO1xufVxuXG4ucGFydG5lcnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDZyZW07XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgbGk+KjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59IiwiLypcbiAqIEVkaXRlZCAyMDE5MDcyN1xuICovXG4vLyBFbGVtZW50cyB1bnFpdWUgdG8gd29vY29tbWVyY2UgdGVtcGxhdGVcbi8qXG4qIFRBQkxFIE9GIENPTlRFTlRTXG4qIC0tLS0tLS0tLS0tICpcbiogLSBXb29jb21tZXJjZSBWYXJpYWJsZXNcbiogLSBXb29jb21tZXJjZSBHbG9iYWwgU3R5bGVzXG4qIC0gQWRkIHRvIENhcnQgQnV0dG9uXG4qIC0gQnJlYWRjcnVtYlxuKiAtIFNhbGUgTGFiZWxcbiogLSBNZXNzYWdlIGJveFxuKiAtIFBhZ2luYXRpb25cbiovXG4vKiBXb29jb21tZXJjZSBWYXJpYWJsZXMgKi9cbiV3b28tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xpcDogdW5zZXQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IGhzbCgwLDAlLDUwJSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4ld29vLWxhYmVsLTIge1xuICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICM2NjY7XG59XG4kcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xOiAxMjBweDtcbkBtaXhpbiB3b29jb21tZXJjZS1tZXNzYWdlKCRtc2ctY29sb3IpIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtc2ctY29sb3I7XG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRtc2ctY29sb3IsIDUlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtc2ctY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG59XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYXJjaGl2ZVwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL3NpbmdsZVwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2NhcnRcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9jaGVja291dFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL29yZGVyLXJlY2VpdmVkXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvb3JkZXItcGF5XCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYWNjb3VudFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2xvZ2luXCI7IC8vIEBpbXBvcnQgXCJfd29vLXN0eWxlcy9wcmljZS1zbGlkZXJcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy93aWRnZXRzXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvaW50ZXJhY3RpdmUtY2FydFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2FkZHJlc3NcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9zbWFsbHNjcmVlblwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL3dvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYWR2YW5jZWQtcHJvZHVjdC1maWVsZHNcIjtcbi8qIFdvb2NvbW1lcmNlIEdsb2JhbCBTdHlsZXMgKi9cbi53b29jb21tZXJjZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG4vKiBOZXdseSBkaXNjb3ZlcmVkIGdsb2JhbCBzdHlsZXMgKi9cbi5jb2wyLXNldCB7XG4gIEBleHRlbmQgLmNvbHMtMjtcbn1cblxuLndvb2NvbW1lcmNlLWNvbHVtbl9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLyogR2xvYmFsIGZvcm1zICovXG5mb3JtIHtcbiAgbGFiZWwge1xuICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgfVxufVxuLyogQnV0dG9uIHN0eWxlcyBmb3Igd29vY29tbWVyY2UgKi9cbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bjtcbn1cblxuLnNob3BfdGFibGUgLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xufVxuLyogQWRkIHRvIENhcnQgQnV0dG9uIEFLQSBNYWluIGJ1dHRvbiAqL1xuLmNoZWNrb3V0LWJ1dHRvbixcbmEuYWRkX3RvX2NhcnRfYnV0dG9uLFxuYnV0dG9uLmFkZF90b19jYXJ0X2J1dHRvbixcbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgQGV4dGVuZCAlYnRuLTE7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2MtYmFja3dhcmQge1xuICBAZXh0ZW5kICVidG4tMTtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLyogQlJFQURDUlVNQiAqL1xuLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLyogQXJjaGl2ZSBQYWdlICovXG4gIC53b29jb21tZXJjZS5hcmNoaXZlICYge1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIH1cbiAgLyogU2luZ2xlIFByb2R1Y3QgQnJlYWRjcnVtYnMgKi9cbiAgLnNpbmdsZS1wcm9kdWN0ICYge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgYm90dG9tLCAyMHB4KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cbiAgfVxufVxuLyogU0FMRSBMQUJFTCAqL1xuLm9uc2FsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGNvbG9yOiAjZmZmO1xuXG4gIGxpLnByb2R1Y3QgJiB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAtMjZweCBhdXRvIDVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMC4wNXJlbSAwLjZyZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgfVxuXG4gIC5zdW1tYXJ5ICYge1xuICAgIEBpbmNsdWRlIHRhZy1sYWJlbCgkZ3JlZW4sICdzbWFsbCcpO1xuICB9XG59XG4vKiBNZXNzYWdlIGJveCAqL1xuLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciB7XG4gIG1hcmdpbjogMzBweCBhdXRvIDA7XG4gIGZsZXg6IDEgMSAxMDAlO1xuXG4gIC53b29jb21tZXJjZS1hY2NvdW50LmxvZ2dlZC1pbiAmIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLWNhcnQgJiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ud29vY29tbWVyY2UtTm90aWNlR3JvdXAge1xuICBtYXJnaW46IDMwcHggYXV0byAwO1xuICBmbGV4OiAxIDEgMTAwJTtcbn1cbi8qIEFsbCBpbmZvcm1hdGlvbiBhbmQgbWVzc2FnZXMgKi9cbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4od2hpdGUsIDUlKTtcbiAgY29sb3I6ICM1NTU7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvIDJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4IDEycHggMTJweDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWJ0bjtcbiAgICBAZXh0ZW5kICVidG4tMTtcbiAgICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnJlc3RvcmUtaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLyogQWxsIGVycm9ycyAqL1xuLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuICB3aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZSAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgLndvb2NvbW1lcmNlLU5vdGljZUdyb3VwLWNoZWNrb3V0ICYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCFpbXBvcnRhbnQ7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtbWVzc2FnZSB7XG4gIEBpbmNsdWRlIHdvb2NvbW1lcmNlLW1lc3NhZ2UoJGdyZWVuKTtcbn1cblxuLndvb2NvbW1lcmNlLWluZm8ge1xuICBAaW5jbHVkZSB3b29jb21tZXJjZS1tZXNzYWdlKCNjY2MpO1xufVxuXG4ud29vY29tbWVyY2UtZXJyb3Ige1xuICBAaW5jbHVkZSB3b29jb21tZXJjZS1tZXNzYWdlKCRyZWQpO1xufVxuLyogUEFHSU5BVElPTiAqL1xuLndvb2NvbW1lcmNlLXBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIGZsZXg6IDEgMSAxMDAlO1xuXG4gIC5wYWdlLW51bWJlcnMge1xuICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbigncmlnaHQnLCA1cHgpO1xuICB9XG5cbiAgYSxcbiAgc3BhbiB7XG4gICAgQGV4dGVuZCAlYnRuLXNtYWxsO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG4gICAgY3Vyc29yOiB1bnNldDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWJ0bi0xO1xuICB9XG59XG4vKiBXb29jb21tZXJjZSBTdG9yZSBOb3RpY2UgKi9cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMTJweCA1JTtcbiAgei1pbmRleDogODg7XG4gIGJvdHRvbTogMDtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDZweCA1JTtcbiAgfVxufVxuXG4ud29vY29tbWVyY2Utc3RvcmUtbm90aWNlX19kaXNtaXNzLWxpbmsge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1JTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbiIsIi8qIEFyY2hpdmUgUGFnZSBNYWluIExheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFyY2hpdmUud29vY29tbWVyY2Uge1xuICAuY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDAgM3Z3O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAwIDUlO1xuICAgIH1cbiAgfVxuICAvLyBzcGVjaWZpYyBmb3IgYXJjaGl2ZSBwYWdlXG4gIGFzaWRlLndpZGdldC1hcmVhIHtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwYWRkaW5nOiAxMDBweCA1MHB4O1xuICAgIH1cbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB9XG59XG4vKiBTaG9wIEJhbm5lclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2hvcC1iYW5uZXIge1xuICBAZXh0ZW5kICVyZWd1bGFyLWJhbm5lcjtcbiAgbWluLWhlaWdodDogMjAwcHg7XG5cbiAgcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBtYXgtd2lkdGg6IDYwdnc7XG4gICAgfVxuICB9XG59XG4vKiBTaG9wIEFyY2hpdmUgVG9wIEJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXJjaGl2ZS10b3BiYXIge1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIGJvdHRvbSwgMzBweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xufVxuXG4ud29vY29tbWVyY2Utb3JkZXJpbmcge1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHdpZHRoOiAyNTBweDtcbiAgfVxufVxuLyogU2hvcCBBcmNoaXZlIFdpZGdldCBBcmVhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53b29jb21tZXJjZSBhc2lkZS53aWRnZXQtYXJlYSB7XG4gIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgcmlnaHQsIDE1cHgpO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB3aWR0aDogMTUwcHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgcmlnaHQsIDMwcHgpO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgfVxuXG4gIC53aWRnZXQge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgYm90dG9tLCAzMHB4KTtcbiAgfVxufVxuLyogU2lkZWJhciBUb2dnbGUgKi9cbiNzaWRlYmFyLXRvZ2dsZSB7XG4gIEBleHRlbmQgJWJ0bi1sYXJnZTtcbiAgQGV4dGVuZCAlYnRuLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuI3NpZGViYXItdG9nZ2xlLWNsb3NlIHtcbiAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCg0MHB4LCAjZjFmMWYxLCAyNXB4KTtcbiAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTUlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDV2dztcbiAgcmlnaHQ6IDV2dztcbn1cbi8qIFNwZWNpZmljYWxseSBmb3IgcHJvZHVjdCBjYXRlZ29yeSAqL1xuJWFyY2hpdmUtcHJvZHVjdC1jYXRlZ29yeSB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuXG4gIGEge1xuICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGhzbCgwLDAlLDQwJSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4ubWVudS1zaG9wLW1lbnUtY29udGFpbmVyLFxuLndpZGdldF9wcm9kdWN0X2NhdGVnb3JpZXMge1xuICBAZXh0ZW5kICVhcmNoaXZlLXByb2R1Y3QtY2F0ZWdvcnk7XG59XG4vKiBQcm9kdWN0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTdHJ1Y3R1cmUgb2YgcHJvZHVjdHMgdG8gZGlmZmVyZW50aWF0ZSBpdCBmcm9tIHJlbGF0ZWQgcHJvZHVjdHMgKi9cbi5hcmNoaXZlLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoNXB4LCA0LCAyKTtcbn1cblxudWwucHJvZHVjdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleDogMSAxIDA7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxufVxuLyogUHJvZHVjdCBMaXN0ICovXG4lcHJvZHVjdC1zdHlsZSB7XG4gIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMTBweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4O1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwwLDAsMC4xNSk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmF0dGFjaG1lbnQtd29vY29tbWVyY2VfdGh1bWJuYWlsIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBoZWlnaHQ6IDE4MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gICAgY29sb3I6ICM5OTk7XG4gICAgLyogRm9yIHNhbGUgaXRlbSAqL1xuICAgIGlucyB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxubGkucHJvZHVjdCB7XG4gIEBleHRlbmQgJXByb2R1Y3Qtc3R5bGU7XG59XG4vKiBBZGRlZCB0byBjYXJ0IGJ1dHRvbiAqL1xuLmFkZGVkX3RvX2NhcnQge1xuICBAZXh0ZW5kICVidG47XG4gIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xufVxuIiwiLyogU2luZ2xlIFByb2R1Y3QgTGF5b3V0ICovXG4uc2luZ2xlLXByb2R1Y3Qge1xuICAucHJvZHVjdC1wcmltYXJ5LWluZm9ybWF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NyUpO1xuICAgIHBhZGRpbmc6IDAgMi41JTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMCA1JTtcbiAgICB9XG4gIH1cbn1cbi8qIFNpbXBsZSBBTkQgVmFyaWFibGUgUHJvZHVjdCAqL1xuZGl2LnByb2R1Y3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAvKiBDb21tb24gUHJvZHVjdCBEZXNjcmlwdGlvbiAvIFN1bW1hcnkgKi9cbiAgLnN1bW1hcnkge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMTVweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG4gIH1cbiAgLy8gUHJvZHVjdCBUaXRsZVxuICAucHJvZHVjdF90aXRsZSB7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICB9XG4gIC8vIFByaWNlXG4gIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG4gIC8vIFNob3J0IERlc2NyaXB0aW9uXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWRldGFpbHNfX3Nob3J0LWRlc2NyaXB0aW9uIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoMjBweCwgaHNsKDAsMCUsMTAwJSksIDVweCwgMXB4IHNvbGlkIGhzbCgwLDAlLDkwJSkpO1xuXG4gICAgb2wge1xuICAgICAgQGV4dGVuZCAubnVtYmVyLWxpc3Q7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgQGV4dGVuZCAuaXRlbS1saXN0O1xuICAgIH1cblxuICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4vKiBDb21tb24gUHJvZHVjdCBQYWdlIEdhbGxlcnkgKi9cbi53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgZGl2LnRodW1ibmFpbHMge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gIH1cblxuICAmLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICAgIG1hcmdpbi1yaWdodDogNTBweDtcbiAgICAgIGZsZXgtZmxvdzogcm93LXJldmVyc2Ugbm93cmFwO1xuICAgICAgbWF4LXdpZHRoOiA0MnZ3O1xuICAgIH1cblxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICBhID4gaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fd3JhcHBlciB7XG4gICAgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllcigwLjc5NSwgLTAuMDM1LCAwLCAxKSAwLjVzO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fd3JhcHBlciAuem9vbUltZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2UtLXBsYWNlaG9sZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2U6bnRoLWNoaWxkKG4rMikge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC41ZW07XG4gICAgcmlnaHQ6IDAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIHotaW5kZXg6IDk7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA5cHg7XG4gICAgICBsZWZ0OiA5cHg7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxOXB4O1xuICAgICAgbGVmdDogMjJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG4gIH1cblxuICAuZmxleC1jb250cm9sLXRodW1icyB7XG4gICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6b29tOiAxO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBtYXgtd2lkdGg6IDgwcHg7XG4gICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgcGFkZGluZzogMCAxMHB4IDEwcHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLWN1cnJlbnQge1xuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggI2ZmZiwgMCAwIDAgNHB4ICNjY2M7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlWSg1MCUpO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogLTMwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlWSg1MCUpO1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKiBWYXJpYWJsZSBQcm9kdWN0ICovXG5kaXYucHJvZHVjdC10eXBlLXZhcmlhYmxlIHtcbiAgLndvb2NvbW1lcmNlLXZhcmlhdGlvbi1hZGQtdG8tY2FydCB7XG4gICAgQGV4dGVuZCAlc2luZ2xlLWFkZC10by1jYXJ0LW1vZHVsZTtcbiAgfVxuICAvKiBGb3IgdmFyaWF0aW9ucyAqL1xuICB0YWJsZS52YXJpYXRpb25zIHtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICB0Ym9keSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgd2lkdGg6ICRwcm9kdWN0LXNlbGVjdGlvbi1sYXlvdXQtY29sLTE7XG4gICAgfVxuXG4gICAgLnZhbHVlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyogQWZ0ZXIgdmFyaWF0aW9uIHNlbGVjdCAqL1xuICAuc2luZ2xlX3ZhcmlhdGlvbl93cmFwIHtcbiAgICA+ICoge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICB9XG5cbiAgICAuc2luZ2xlX3ZhcmlhdGlvbiB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXIoMjBweCwgaHNsKDAsMCUsMTAwJSksIDVweCwgMXB4IHNvbGlkIGhzbCgwLDAlLDkwJSkpO1xuICAgIH1cblxuICAgIC53b29jb21tZXJjZS12YXJpYXRpb24tcHJpY2Uge1xuICAgICAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCAjZjFmMWYxLCB0b3AsIDIwcHgpO1xuXG4gICAgICAucHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlByaWNlXCI7XG4gICAgICAgICAgQGV4dGVuZCAld29vLWxhYmVsLTI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsIHtcbiAgICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZGl2LnByb2R1Y3QtdHlwZS1zaW1wbGUge1xuICBmb3JtLmNhcnQge1xuICAgIEBleHRlbmQgJXNpbmdsZS1hZGQtdG8tY2FydC1tb2R1bGU7XG4gIH1cbn1cbi8qIFF1YW50aXR5IGFuZCBBZGQgdG8gY2FydCBtb2R1bGUgKi9cbiVzaW5nbGUtYWRkLXRvLWNhcnQtbW9kdWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nOiAxNXB4IDA7XG5cbiAgaW5wdXQucXR5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDQwcHg7XG4gIH1cblxuICAucXVhbnRpdHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGhzbCgwLDAlLDgwJSk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgaHNsKDAsMCUsODAlKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgLyogSGlkZSBIVE1MNSBVcCBhbmQgRG93biBhcnJvd3MuICovXG4gICAgICAmW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAmW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgJlt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1pbnVzLFxuICAucGx1cyB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDgwJSk7XG4gIH1cblxuICAubWludXMge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICB9XG5cbiAgLnBsdXMge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICB9XG5cbiAgLmJ1dHRvbi5zaW5nbGVfYWRkX3RvX2NhcnRfYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgfVxufVxuLyogV29vY29tbWVyY2UgVGFicyAqL1xuLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS10YWJzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBSZWxhdGVkIFByb2R1Y3RzICovXG4ucmVsYXRlZC5wcm9kdWN0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDUwcHggMi41JTtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBwYWRkaW5nOiA1MHB4IDUlO1xuICB9XG5cbiAgPiBoMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgfVxuXG4gIC5wcm9kdWN0cyB7XG4gICAgQGluY2x1ZGUgY29sdW1ucygyMHB4LCA0LCAyKTtcbiAgfVxufVxuXG4vKiBTaW5nbGUgcHJvZHVjdCBhZGQgdG8gYW55IHBsdWdpbiAqL1xuLnN1bW1hcnkge1xuICAuYWRkdG9hbnlfaGVhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiAkcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xO1xuICAgIH1cbiAgfVxuXG4gIC5hMmFfa2l0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgbGVmdDogMTBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIFdvbyBDYXJ0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTdHJ1Y3R1cmUgKi9cbi53b29jb21tZXJjZS1jYXJ0IHtcbiAgLndvb2NvbW1lcmNlIHtcbiAgICBwYWRkaW5nOiA1MHB4IDN2dyA4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggNSUgODBweDtcbiAgICB9XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLWNhcnQge1xuICAud29vY29tbWVyY2UtY2FydC1mb3JtIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXZ3O1xuICAgICAgZmxleDogMiAxIDA7XG4gICAgfVxuICB9XG5cbiAgLmNhcnQtY29sbGF0ZXJhbHMge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuICB9XG59XG4vKiBHZW5lcmFsIFRhYmxlICovXG4uc2hvcF90YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIHRoZWFkIHtcbiAgICBjb2xvcjogaHNsKDAsMCUsNjAlKTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjZWVlO1xuICB9XG5cbiAgdGgge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDI1cHggMTVweDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICB9XG4gIH1cblxuICB0ZC5wcm9kdWN0LW5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcblxuICAgIGEge1xuICAgICAgY29sb3I6IGhzbCgwLDAlLDMwJSk7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiBoc2woMCwwJSw2MCUpO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIC5wcm9kdWN0LXByaWNlIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1zdWJ0b3RhbCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICB9XG59XG4vKiBDYXJ0IFRhYmxlICovXG50YWJsZS5jYXJ0IHtcbiAgLnByb2R1Y3QtcmVtb3ZlIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoMjZweCwgJHJlZCwgMCk7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1hcmdpbjogMCAwIDAgYXV0bztcbiAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIEBleHRlbmQgJWljb247XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgLnByb2R1Y3QtdGh1bWJuYWlsIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZWVlO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgIH1cblxuICAgIC5jb3Vwb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgbGFiZWxbZm9yPVwiY291cG9uX2NvZGVcIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbltuYW1lPVwidXBkYXRlX2NhcnRcIl0ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgICNjb3Vwb25fY29kZSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKiBNb2JpbGUgVGFibGUgKi9cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICB0Ym9keSB0ci5jYXJ0X2l0ZW0ge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICB0ZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2Y1ZjVmNTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qIFZhcmlhdGlvbiB0ZXh0IHdpdGhpbiB0YWJsZSAqL1xuLnZhcmlhdGlvbixcbi53Yy1pdGVtLW1ldGEge1xuICBtYXJnaW46IDA7XG5cbiAgLndjLWl0ZW0tbWV0YS1sYWJlbCxcbiAgZHQge1xuICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG5cbiAgZGQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLyogQ2FydCBUb3RhbHMgVGFibGUgKi9cbi5jYXJ0X3RvdGFscyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjZmZmLCAzJSk7XG4gIHBhZGRpbmc6IDVweCAyMHB4IDIwcHg7XG5cbiAgLnNob3BfdGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLXRvdGFscyB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiAyMDAlO1xuICAgIH1cbiAgfVxuXG4gID4gaDIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cjpmaXJzdC1jaGlsZCA+ICoge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cblxuICB0ZCxcbiAgdGgge1xuICAgIHBhZGRpbmc6IDEycHggMDtcbiAgfVxuXG4gIHRoIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxuXG4gIHRkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1zaGlwcGluZy1kZXN0aW5hdGlvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgb3BhY2l0eTogMC44O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5jaGVja291dC1idXR0b24ge1xuICAgIGkge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgfVxuICB9XG59XG5cbiNzaGlwcGluZ19tZXRob2Qge1xuICBmb250OiAkZm9udC1ib2xkICRiYXNlLWZvbnQtc2l6ZSAtIDAuMiAkbWFpbi1mb250O1xuXG4gICVjaGVja2VkLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVidG4tMTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgZGFya2VuKCRtYWluLWNvbG9yLCAzMCUpO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJjpjaGVja2VkK2xhYmVsIHtcbiAgICAgIEBleHRlbmQgJWNoZWNrZWQtbGFiZWw7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1cImhpZGRlblwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICtsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVjaGVja2VkLWxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBAZXh0ZW5kICVidG4tbGFyZ2U7XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIH1cbn1cblxuLmNhcnQtZW1wdHkge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmV0dXJuLXRvLXNob3Age1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLndvb2NvbW1lcmNlLWNoZWNrb3V0Om5vdCgud29vY29tbWVyY2Utb3JkZXItcmVjZWl2ZWQpIHtcbiAgLmVudHJ5LFxuICAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAvLyBtYWtlIGxheW91dCBmdWxsIHdpZHRoXG4gIC53b29jb21tZXJjZSB7XG4gICAgcGFkZGluZzogMCA1JSA1MHB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDAgNSUgNTBweDtcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuICAgICAgZmxleDoxIDEgMTAwJTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgfVxuXG4gICNzaGlwLXRvLWRpZmZlcmVudC1hZGRyZXNzIHtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gICAgfVxuICB9XG59XG4vLyBDaGVja291dCBmb3JtXG5mb3JtLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcbiAgLmNvbDItc2V0IHtcbiAgICBAaW5jbHVkZSBjb2x1bW5zKDMwcHggMik7XG4gICAgQGluY2x1ZGUgY29sdW1uLWxheW91dCgzLDIpO1xuICB9XG5cbiAgLmNvbC0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgMjVweCk7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgQGV4dGVuZCBoMztcbiAgICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgaHNsKDAsMCUsOTAlKSwgJ3RvcCcsIDUwcHgpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2wtMiB7XG4gICAgcGFkZGluZzogMzBweCAxMHB4O1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuXG4jb3JkZXItcmV2aWV3LXdyYXBwZXIge1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsIGhzbCgwLDAlLDk1JSksICdsZWZ0JywgNTBweCk7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgfVxufVxuLyogU2hpcCB0byBhIGRpZmZlcmVudCBhZGRyZXNzICovXG4ud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94IHtcbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIH1cbn1cbi8qIFNlbGVjdCBzaGlwcGluZyBtZXRob2Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNoZWNrb3V0LXNlbGVjdC1zaGlwcGluZy1tZXRob2Qge1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsIGhzbCgwLDAlLDg1JSksICd0b3AnLCA2MHB4KTtcbn1cbi8qIFBheW1lbnQgbWV0aG9kXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXIgaDQge1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cbi8qIENoZWNrb3V0IFBhZ2UgT3JkZXIgU3VtbWFyeSBUYWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2hvcF90YWJsZS53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUge1xuICAucHJvZHVjdC10b3RhbCxcbiAgdGZvb3QgdGQge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRoIHtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxuXG4gIHRkIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBwYWRkaW5nOiAxM3B4IDA7XG4gIH1cblxuICAudmFyaWF0aW9uIHtcbiAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LWhlaWdodDogMDtcblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC52YXJpYXRpb24tLWFjdGl2ZSB7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gIH1cblxuICAub3JkZXItdG90YWwge1xuICAgIGJvcmRlci1ib3R0b206IDRweCBkb3VibGUgaHNsKDAsMCUsNzUlKTtcbiAgfVxuXG4gIC5wcm9kdWN0LW5hbWUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMjUlKTtcbiAgICB9XG4gIH1cbn1cbi8qIFBheW1lbnQgU2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jcGF5bWVudCB7XG4gIC8qIFRvIHNlbGVjdCBzYXZlZCBwYXltZW50IG1ldGhvZHMgKi9cbiAgLndjLXNhdmVkLXBheW1lbnQtbWV0aG9kcyB7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG5cbiAgICBsYWJlbCB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjZmZmLCAxMCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5pbnB1dFtpZF49XCJwYXltZW50X21ldGhvZFwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8vIElmIHBhcnRpY3VsYXIgcGF5bWVudCBtZXRob2QgaXMgc2VsZWN0ZWRcbiAgJjpjaGVja2VkICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHggN3B4IDAgMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLndjX3BheW1lbnRfbWV0aG9kcyB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59XG5cbi53Y19wYXltZW50X21ldGhvZCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgPiBsYWJlbCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsODAlKTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgQGV4dGVuZCAlYnRuO1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw3MCUpO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi5wYXltZW50X2JveCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDg4JSk7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA3cHggN3B4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5OCUpO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMjBweDtcbiAgfVxuXG4gIC53Yy1wYXltZW50LWZvcm0ge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLmZvcm0tcm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICB9XG4gIC8qIEVycm9yIGluc2lkZSBwYXltZW50ICovXG4gIC53b29jb21tZXJjZV9lcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4vKiBGb3IgU3RyaXBlIG9ubHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3N0cmlwZS1wYXltZW50LWRhdGEge1xuICBwIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG5cbmxhYmVsW2Zvcj1cInBheW1lbnRfbWV0aG9kX3N0cmlwZVwiXSB7XG4gIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uU3RyaXBlRWxlbWVudC5pbnZhbGlkIHtcbiAgQGV4dGVuZCAlaW52YWxpZC1pbnB1dDtcbn1cbi8qIEFmdGVyIHBheW1lbnQgYm94XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wbGFjZS1vcmRlciB7XG4gIC53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucy1jaGVja2JveC10ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxufVxuXG4jcGxhY2Vfb3JkZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEVycm9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud29vY29tbWVyY2UtaW52YWxpZC1yZXF1aXJlZC1maWVsZCB7XG4gIGxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnZhbGlkLWxhYmVsO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIEBleHRlbmQgJWludmFsaWQtaW5wdXQ7XG4gIH1cbn1cbi8qIE9yZGVyIERlbGl2ZXJ5IERhdGUgT25seSAqL1xuI29yZGRkX3RpbWVfc2xvdF9maWVsZCB7XG4gIC5zZWxlY3QyLXNlbGVjdGlvbixcbiAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG5cbiAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gIH1cbn1cblxuI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kcyA+IGxpID4gbGFiZWwgaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIENoZWNrb3V0IGNvdXBvbiAqL1xuLmNoZWNrb3V0X2NvdXBvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIEBleHRlbmQgLmNvbC0xO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuZm9ybS1yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4jb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICAuZm9ybS1yb3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKiAxIGl0ZW0gdG8gcmV2aWV3XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ud29vY29tbWVyY2Utb3JkZXItcmVjZWl2ZWQge1xuICAuZW50cnktdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1vcmRlciB7XG4gICAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCA0MHB4KTtcbiAgICBwYWRkaW5nOiA1MHB4IDUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk3JSk7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDEwJTtcbiAgICB9XG4gIH1cblxuICAud29vY29tbWVyY2Utb3JkZXItZGV0YWlsc19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLFxuICAud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XG4gICAgQGV4dGVuZCAlY29sLTE7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG4vKiBPdmVydmlldyBiYXIgKi9cbi53b29jb21tZXJjZS1vcmRlci1vdmVydmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgJG1haW4tY29sb3I7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsMCwwLDAuMTUpO1xuXG4gID4gKiB7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IGRvdHRlZCAjZGRkO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICB9XG5cbiAgICBzdHJvbmcge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAyMiUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgfVxuICB9XG4gIC8qIFJFVklFVyBUSElTICovXG4gIC5kZWxpdmVyeURldGFpbHMge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmbGV4OiAxIDEgNTAlO1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLXJlY2VpdmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud29vY29tbWVyY2UtdGFibGUtLW9yZGVyLWRldGFpbHMge1xuICAucHJvZHVjdC10b3RhbCxcbiAgdGZvb3QgdGQge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxufVxuIiwiLndvb2NvbW1lcmNlLW9yZGVyLXBheSB7XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NyUpO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlIHtcbiAgICBAZXh0ZW5kICVjb2wtMTtcbiAgfVxuXG4gIC5wcm9kdWN0LXF1YW50aXR5IHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuIiwiLyogV29vY29tbWVyY2UgQWNjb3VudCBQYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBNYWluIFN0cnVjdHVyZSAqL1xuJXdvb2NvbW1lcmNlLWFjY291bnQtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyKDM1cHgsIGhzbCgwLDAlLDEwMCUpLCAxMHB4LCAxcHggc29saWQgI2RkZCk7XG59XG4vKiBnZW5lcmFsIHdvb2NvbW1lcmNlIGFjY291bnQgc3R5bGUuIEZvciBteSBhY2NvdW50LCBsb2dnZWQgaW4sIGFuZCBsb3N0IHBhc3N3b3JkICovXG4ud29vY29tbWVyY2UtYWNjb3VudCB7XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTclKTtcbiAgICBwYWRkaW5nOiAzMHB4IDUlO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAzMHB4IDEwJTtcbiAgICB9XG4gIH1cbiAgLyogV29vY29tbWVyY2UgYWNjb3VudCBsb2dnZWQgaW4gc3BlY2lmaWMgc3R5bGUqL1xuICAmLmxvZ2dlZC1pbiB7XG4gICAgLndvb2NvbW1lcmNlIHtcbiAgICAgIEBleHRlbmQgLmNvbHMtMjtcbiAgICAgIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMSwzKTtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxufVxuLyogTXkgQWNjb3VudCBOYXZpZ2F0aW9uICovXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiAxNXB4IDA7XG59XG5cbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rIHtcbiAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCAjZWVlLCBib3R0b20sIDEwcHgpO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICAgY29sb3I6ICM1NTU7XG4gICAgfVxuICB9XG59XG4vKiBDb250ZW50ICovXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xuICBAZXh0ZW5kICV3b29jb21tZXJjZS1hY2NvdW50LWNvbnRhaW5lcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgLy8gcGFkZGluZzogMzBweCA1JTtcbiAgQGluY2x1ZGUgZGVza3RvcCB7fVxuXG4gIGVtIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIH1cblxuICBtYXJrIHtcbiAgICBAaW5jbHVkZSB0YWctbGFiZWwoaHNsKDAsMCUsOTUlKSwgc21hbGwpO1xuICAgIGNvbG9yOiBoc2woMCwwJSwyMCUpO1xuICB9XG5cbiAgZmllbGRzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk5JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsOTAlKTtcbiAgICBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICBsZWdlbmQge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiBoc2woMCwwJSw0MCUpO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgbWFyZ2luOiAwIC0xMHB4O1xuICAgIH1cbiAgfVxufVxuLyogUmVtb3ZlIGRhc2hib2FyZCBsaW5rICovXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZGFzaGJvYXJkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFBhc3N3b3JkIHN0cmVuZ3RoICovXG4ud29vY29tbWVyY2UtcGFzc3dvcmQtc3RyZW5ndGgge1xuICBwYWRkaW5nOiA1cHggMDtcblxuICAmLnNob3J0IHtcbiAgICBjb2xvcjogJHJlZDtcbiAgfVxuXG4gICYuYmFkIHtcbiAgICBjb2xvcjogJG9yYW5nZTtcbiAgfVxuXG4gICYuZ29vZCB7XG4gICAgY29sb3I6ICRncmVlbjtcbiAgfVxuXG4gICYuc3Ryb25nIHtcbiAgICBjb2xvcjogJGdyZWVuO1xuICB9XG59XG4vKiBXb29jb21tZXJjZSBBY2NvdW50IE9yZGVycyBUYWJsZSAqL1xuLndvb2NvbW1lcmNlLW9yZGVycy10YWJsZSB7XG4gICZfX2NlbGwtb3JkZXItZGVsaXZlcnktZGF0ZSxcbiAgJl9faGVhZGVyLW9yZGVyLWRlbGl2ZXJ5LWRhdGUge1xuICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICB9XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICZfX2hlYWRlci1vcmRlci1udW1iZXIge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyLW9yZGVyLWFjdGlvbnMsXG4gICAgJl9faGVhZGVyLW9yZGVyLXN0YXR1cyB7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS10YWJsZS0tb3JkZXItZGV0YWlscyB7XG4gIHRkIHtcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuIiwiLyogTG9naW5cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE15IGFjY291bnQgcGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jY3VzdG9tZXJfbG9naW4ge1xuICBAaW5jbHVkZSBjb2x1bW5zKDV2dywgMik7XG5cbiAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuY29sLTEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2woMCwwJSw4NSUpO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG1heC13aWR0aDogNTB2dztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIGxhYmVsLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW5fX3N1Ym1pdCxcbi53b29jb21tZXJjZS1mb3JtLXJlZ2lzdGVyX19zdWJtaXQge1xuICBAZXh0ZW5kICVidG4tMTtcbn1cblxuLndvb2NvbW1lcmNlLXByaXZhY3ktcG9saWN5LXRleHQge1xuICBwIHtcbiAgICBAZXh0ZW5kIC5zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiBoc2woMCwwJSw2MCUpO1xuICB9XG59XG4vKiBGb3IgbG9zdCBwYXNzd29yZCBwYWdlICovXG4ud29vY29tbWVyY2UtbG9zdC1wYXNzd29yZCAud29vY29tbWVyY2Uge1xuICBAZXh0ZW5kICVjb2wtMTtcbn1cbiIsIi53aWRnZXRfbGF5ZXJlZF9uYXZfZmlsdGVycyB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG4gIHpvb206IDE7XG5cbiAgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgMWVtIDFweCAxcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxZW0vMSAnYmFzZWljb24nO1xuICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogJGljb24taWNfY2xvc2VfNDhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBAaW5jbHVkZSBjaXJjbGUtb2JqZWN0KDE1cHgsICRyZWQsICRiYXNlLWZvbnQtc2l6ZSAtIDAuMik7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogSW50ZXJhY3RpdmUgQ2FydFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogSGVhZGVyIGJ1dHRvbnMgKi9cbiNjYXJ0LWl0ZW1zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBAaW5jbHVkZSBjaXJjbGUtb2JqZWN0KDIwcHgsICRtYWluLWNvbG9yLCAkYmFzZS1mb250LXNpemUgLSAwLjIpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgdG9wOiAtNXB4O1xuICByaWdodDogLTNweDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNpbnRlcmFjdGl2ZS1jYXJ0LWFjdGl2YXRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaW50ZXJhY3RpdmUtY2FydF9fYmcge1xuICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDIwLDAuNSk7XG59XG5cbi5pbnRlcmFjdGl2ZS1jYXJ0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTk5OTk5OTk7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5pbnRlcmFjdGl2ZS1jYXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NSUpO1xuICBtYXJnaW46IDAgMCAwIGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICB3aWR0aDogNDB2dztcbiAgfVxufVxuLyogQ2FydCBIZWFkZXIgKi9cbi5pbnRlcmFjdGl2ZS1jYXJ0LWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMjBweCAxMnB4O1xuICBmbGV4OiAwIDEgMDtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgfVxuXG4gID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzg4ODtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5pbnRlcmFjdGl2ZS1jYXJ0LWNsb3NlIHtcbiAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgY29sb3I6IGhzbCgwLDAlLDUwJSk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMjVweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIGNvbG9yOiAjNzc3O1xuICAgIH1cbiAgfVxufVxuLyogTWluaSBDYXJ0IE5vdGljZSAqL1xuLmludGVyYWN0aXZlLWNhcnRfX25vdGljZSB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCA1cHgpO1xuXG4gID4gKiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICB9XG5cbiAgJi5jYXJ0LWl0ZW0tY2FyZCB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIH1cbn1cblxuLm1lc3NhZ2UtLWVycm9yIHtcbiAgY29sb3I6ICRyZWQ7XG59XG5cbi5tZXNzYWdlLS1zdWNjZXNzIHtcbiAgY29sb3I6ICRncmVlbjtcbn1cbi8qIENhcnQgSXRlbSBMaXN0ICovXG4uaW50ZXJhY3RpdmUtY2FydC1pdGVtcyB7XG4gIGZsZXg6IDEgMSAwO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTdweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxN3B4O1xuICAgIC8qIEluY3JlYXNlL2RlY3JlYXNlIHRoaXMgdmFsdWUgZm9yIGNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC8qIFNvIHRoZSB3aWR0aCB3aWxsIGJlIDEwMCUgKyAxN3B4ICovXG4gIH1cbn1cbi8qIENhcnQgSXRlbSAqL1xuLmNhcnQtaXRlbS1jYXJkIHtcbiAgQGluY2x1ZGUgdGh1bWJuYWlsLWNhcmQoODBweCwgODBweCwgcmlnaHQsIDE1cHgpO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDYlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBtYXJnaW4tbGVmdDogMyU7XG4gIG1hcmdpbi1yaWdodDogMyU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsMCwwLDAuMSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA3JSk7XG4gICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIGltZyB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxuXG4gIC5jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDhweCk7XG4gICAgZmxleDogMSAxIGF1dG87XG5cbiAgICA+ICoge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDI1JSk7XG4gIH1cblxuICAucmVtb3ZlX2Zyb21fY2FydF9idXR0b24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgLy8gbWFyZ2luLXRvcDogMDtcbiAgICAvLyBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBjb2xvcjogJHJlZDtcbiAgfVxufVxuXG4uaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmbGV4OiAwIDEgMDtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCAjZTVlNWU1LCBib3R0b20sIDVweCk7XG4gICAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiA4cHggNSU7XG5cbiAgICA+ICoge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLmludGVyYWN0aXZlLWNhcnQtc3VtbWFyeV9fYnV0dG9ucyB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoMHB4LCAyLCAyKTtcblxuICBhIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBkYXJrZW4oJG1haW4tY29sb3IsIDE1JSk7XG4gICAgfVxuICB9XG59XG4vKiBJZiB0aGVyZSBhcmUgbm8gcHJvZHVjdHMgKi9cbi5uby1wcm9kdWN0LXRleHQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgNSU7XG59XG4vL1xuLy8gLmludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSAuaW50ZXJhY3RpdmUtY2FydF9fY291cG9uIHtcbi8vICAgcGFkZGluZzogMDtcbi8vIH1cbi8vXG4vLyAuaW50ZXJhY3RpdmUtY2FydF9fY291cG9uLWZvcm0ge1xuLy8gICB3aWR0aDogMTAwJTtcbi8vICAgQGluY2x1ZGUgY29sdW1ucygwcHgsIDIpO1xuLy9cbi8vICAgaW5wdXRbbmFtZT1cImFwcGx5X2NvdXBvblwiXSB7XG4vLyAgICAgbWFyZ2luLXRvcDogMDtcbi8vICAgfVxuLy8gfVxuIiwiLyogV29vY29tbWVyY2UgYWRkcmVzcyBjb21wb25lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIE9yZGVyIG9yZGVyLXJlY2VpdmVkXG4yLiBNeSBBY2NvdW50IGVkaXQgYWRkcmVzc1xuKi9cbi8qIEFkZHJlc3Mgc2VjdGlvbiAqL1xuaGVhZGVyLndvb2NvbW1lcmNlLUFkZHJlc3MtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gIGgyLFxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgICBAZXh0ZW5kICVidG4tMS1zZWNvbmRhcnk7XG4gIH1cbn1cbi8qIEFkZHJlc3NlcyAqL1xuLmFkZHJlc3Nlcyxcbi53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIHtcbiAgaDIsXG4gIGgzIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuMjtcbiAgfVxuXG4gIGFkZHJlc3Mge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigxNXB4LCBoc2woMCwwJSwxMDAlKSwgNXB4LCAxcHggc29saWQgaHNsKDAsMCUsOTAlKSk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIkFkZHJlc3M6IFwiO1xuICAgICAgQGV4dGVuZCAld29vLWxhYmVsO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGV4dGVuZCAld29vLWxhYmVsO1xuICAgICAgfVxuXG4gICAgICAmLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLXBob25lOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiUGhvbmU6IFwiO1xuICAgICAgfVxuXG4gICAgICAmLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLWVtYWlsOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiRW1haWwgYWRkcmVzczogXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIHdvb2NvbW1lcmNlLXNtYWxsc2NyZWVuLnNjc3NcbiAqIE9wdGltaXNlcyB0aGUgZGVmYXVsdCBXb29Db21tZXJjZSBmcm9udGVuZCBsYXlvdXQgd2hlbiB2aWV3ZWQgb24gc21hbGxlciBzY3JlZW5zLlxuICovXG4vKipcbiAqIFN0eWxlIGJlZ2luc1xuICovXG5AaW5jbHVkZSBtb2JpbGUge1xuXHQud29vY29tbWVyY2UsXG5cdC53b29jb21tZXJjZS1wYWdlIHtcblx0XHR0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUge1xuXHRcdFx0dGhlYWQge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHR0Ym9keSB7XG5cdFx0XHRcdHRyOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHR0ZDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRyIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdFx0dGQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IC8vIEltcG9ydGFudCB0byBvdmVyd3JpdGUgb3JkZXIgc3RhdHVzIGlubGluZSBzdHlsaW5nXG5cblx0XHRcdFx0XHQmLm9yZGVyLWFjdGlvbnMge1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyAvLyBUaGlzIG11c3QgYWx3YXlzIGFsaWduIGxlZnQgb24gaGFuZGhlbGRcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDogYXR0cihkYXRhLXRpdGxlKSAnOiAnO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuYWN0aW9ucyxcblx0XHRcdFx0XHQmLnByb2R1Y3QtcmVtb3ZlIHtcblx0XHRcdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpudGgtY2hpbGQoMm4pIHtcblx0XHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDI1KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR0YWJsZS5teV9hY2NvdW50X29yZGVycyB7XG5cdFx0XHR0ciB7XG5cdFx0XHRcdHRkIHtcblx0XHRcdFx0XHQmLm9yZGVyLWFjdGlvbnMge1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdFx0XHRtYXJnaW46IDAuMTI1ZW0gMC4yNWVtIDAuMTI1ZW0gMDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0LyoqXG5cdCAqIEdlbmVyYWwgbGF5b3V0XG5cdCAqL1xuXHRcdC5jb2wyLXNldCB7XG5cdFx0XHQuY29sLTEsXG5cdFx0XHQuY29sLTIge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qKlxuXHQgKiBQcm9kdWN0c1xuXHQgKi9cblx0XHQvLyB1bC5wcm9kdWN0c1tjbGFzcyo9J2NvbHVtbnMtJ10ge1xuXHRcdC8vIFx0bGkucHJvZHVjdCB7XG5cdFx0Ly8gXHRcdHdpZHRoOiA0OCU7XG5cdFx0Ly8gXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdC8vIFx0XHRjbGVhcjogYm90aDtcblx0XHQvLyBcdFx0bWFyZ2luOiAwIDAgMi45OTJlbTtcblx0XHQvL1xuXHRcdC8vIFx0XHQmOm50aC1jaGlsZCggMm4gKSB7XG5cdFx0Ly8gXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdC8vIFx0XHRcdGNsZWFyOiBub25lICFpbXBvcnRhbnQ7IC8vIFRoaXMgc2hvdWxkIG5ldmVyIGNsZWFyLlxuXHRcdC8vIFx0XHR9XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gfVxuXHRcdC8qKlxuXHQgKiBQcm9kdWN0IERldGFpbHNcblx0ICovXG5cdFx0I2NvbnRlbnQgZGl2LnByb2R1Y3QsXG5cdFx0ZGl2LnByb2R1Y3Qge1xuXHRcdFx0ZGl2LmltYWdlcyxcblx0XHRcdGRpdi5zdW1tYXJ5IHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvKipcblx0ICogQ2FydFxuXHQgKi9cblx0XHQjY29udGVudCB0YWJsZS5jYXJ0LFxuXHRcdHRhYmxlLmNhcnQge1xuXHRcdFx0LnByb2R1Y3QtdGh1bWJuYWlsIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0dGQuYWN0aW9ucyB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHRcdFx0LmNvdXBvbiB7XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMC41ZW07XG5cblx0XHRcdFx0XHQuYnV0dG9uLFxuXHRcdFx0XHRcdC5pbnB1dC10ZXh0LFxuXHRcdFx0XHRcdGlucHV0IHtcblx0XHRcdFx0XHRcdHdpZHRoOiA0OCU7XG5cdFx0XHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5idXR0b24uYWx0LFxuXHRcdFx0XHRcdC5pbnB1dC10ZXh0ICsgLmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY2FydC1jb2xsYXRlcmFscyB7XG5cdFx0XHQuY2FydF90b3RhbHMsXG5cdFx0XHQuY3Jvc3Mtc2VsbHMsXG5cdFx0XHQuc2hpcHBpbmdfY2FsY3VsYXRvciB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LyoqXG5cdCAqIENoZWNrb3V0XG5cdCAqL1xuXHRcdCYud29vY29tbWVyY2UtY2hlY2tvdXQge1xuXHRcdFx0Zm9ybS5sb2dpbiB7XG5cdFx0XHRcdC5mb3JtLXJvdyB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQjcGF5bWVudCB7XG5cdFx0XHQudGVybXMge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQjcGxhY2Vfb3JkZXIge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LyoqXG5cdCAqIEFjY291bnRcblx0ICovXG5cdFx0Lmxvc3RfcmVzZXRfcGFzc3dvcmQge1xuXHRcdFx0LmZvcm0tcm93LWZpcnN0LFxuXHRcdFx0LmZvcm0tcm93LWxhc3Qge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud29vY29tbWVyY2UtYWNjb3VudCB7XG5cdFx0Lndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50LFxuXHRcdC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXHQvKipcbiAqIFR3ZW50eSBUaGlydGVlbiBzcGVjaWZpYyBzdHlsZXNcbiAqL1xuXHQuc2luZ2xlLXByb2R1Y3Qge1xuXHRcdC50d2VudHl0aGlydGVlbiB7XG5cdFx0XHQucGFuZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiI3dvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoLWZpZWxkIHtcbiAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA3MHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk1JSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjU7XG4gIG1heC13aWR0aDogMDtcbiAgbGVmdDogNTAlO1xuICByaWdodDogNTAlO1xuICBwYWRkaW5nOiAwO1xuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1zZWFyY2gtLWFjdGl2ZSAmIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDUlO1xuICB9XG59XG5cbiN3b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaC1idXR0b24ge1xuICBAZXh0ZW5kICVoZWFkZXItYnV0dG9ucztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIGkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgfVxufVxuIiwiLyogTWFrZSB3b29jb21tZXJjZSB2YXJpYXRpb25zIHRhYmxlIGZ1bGwgd2lkdGgqL1xudGFibGUudmFyaWF0aW9ucyB0ciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcblxuICB0ZCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vKiB3YXBmIGNoZWNrYm94IHByaWNlcyAqL1xuLndhcGYtcHJpY2luZy1oaW50IHtcbiAgZmxvYXQ6IHJpZ2h0IWltcG9ydGFudDtcbn1cblxuLndhcGYtaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgLndhcGYtbGFiZWwtdGV4dCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLyogV0FQRiBSYWRpbyBCdXR0b25zICovXG4ud2FwZi1yYWRpb3Mge1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ3JpZ2h0JywgNnB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cbi53YXBmLXJhZGlvcyB7XG4gIC53YXBmLWlucHV0LWxhYmVsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAud2FwZi1jaGVja2FibGUge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDZweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgJi53YXBmLWNoZWNrZWQge1xuICAgICAgLndhcGYtbGFiZWwtdGV4dCB7XG4gICAgICAgIEBleHRlbmQgJWJ0bi0xO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLndhcGYtbGFiZWwtdGV4dCB7XG4gICAgQGV4dGVuZCAlYnRuO1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsODAlKTtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
