/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

::-webkit-input-placeholder {
  color: #222121; }

:-moz-placeholder {
  color: #222121; }

::-moz-placeholder {
  color: #222121; }

:-ms-input-placeholder {
  color: #222121; }

input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea {
  -webkit-appearance: none;
  border-radius: 0;
  background-color: white;
  border: 1px solid #cccccc;
  color: #000;
  outline: 0px; }

input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, textarea:focus {
  border-color: #999999;
  outline: none; }

nav ul {
  list-style: none;
  padding: 0; }

h1, h2, h3, h4, h5, h6 {
  color: #b60005;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  line-height: 1.3;
  padding: 0; }
  h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: inherit; }

h1, .h1 {
  font-size: 36px;
  margin: 0; }

h2, .h2 {
  font-size: 24px;
  margin: 0 0 10px 0; }

h3, .h3 {
  font-size: 18px;
  margin: 0 0 10px 0; }

h4, .h4 {
  font-size: 14px;
  margin: 0 0 5px 0; }

h5, .h5 {
  font-size: 14px;
  margin: 0 0 5px 0; }

h6, .h6 {
  font-size: 14px;
  margin: 0 0 5px 0; }

a {
  color: #b60005; }

p {
  margin: 0 0 1em; }

[class^="icon-"]:before {
  line-height: 1;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: "Project Name"; }

[class^="icon-social"][href*="google"]:before, [class^="icon-social"].icon-google:before {
  content: "g"; }

[class^="icon-social"][href*="facebook"]:before, [class^="icon-social"].icon-facebook:before {
  content: "f"; }

[class^="icon-social"][href*="instagram"]:before, [class^="icon-social"].icon-instagram:before {
  content: "i"; }

[class^="icon-social"][href*="linkedin"]:before, [class^="icon-social"].icon-linkedin:before {
  content: "l"; }

[class^="icon-social"][href*="pinterest"]:before, [class^="icon-social"].icon-pinterest:before {
  content: "p"; }

[class^="icon-social"][href*="twitter"]:before, [class^="icon-social"].icon-twitter:before {
  content: "t"; }

[class^="icon-social"][href*="youtube"]:before, [class^="icon-social"].icon-youtube:before {
  content: "y"; }

#subfooter .paymenttypes {
  background: transparent url("/wp-content/uploads/2017/12/cards.jpg") top left !important;
  width: 170px !important;
  background-repeat: no-repeat !important; }

.wpcf7 .screen-reader-response {
  display: none !important; }

.wpcf7 .wpcf7-not-valid-tip {
  display: block; }

.wpcf7 .wpcf7-validation-errors {
  color: #B60005; }

.slideshow .slideshow-slide {
  width: 100%;
  height: 200px; }

.variation-meta-value {
  font-weight: 200; }

.products .product figure > a .product-image {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 350px; }
  .products .product figure > a .product-image img {
    display: block;
    margin: 0 auto;
    width: auto !important; }

label.screen-reader-text {
  display: none; }

.woocommerce-product-search > fieldset {
  position: relative; }
  .woocommerce-product-search > fieldset > input[type="search"] {
    height: 13px;
    max-width: 225px;
    margin-bottom: 0;
    text-transform: uppercase;
    padding-right: 30px; }
    @media (max-width: 1025px) {
      .woocommerce-product-search > fieldset > input[type="search"] {
        max-width: 200px;
        padding-right: 12px; } }
  .woocommerce-product-search > fieldset button[type="submit"] {
    background-color: transparent;
    border: 0;
    font-size: 0;
    height: 30px;
    position: absolute;
    top: 5px;
    right: 5px;
    width: 30px; }
    @media (max-width: 1025px) {
      .woocommerce-product-search > fieldset button[type="submit"] {
        right: 25px; } }
    .woocommerce-product-search > fieldset button[type="submit"]:before {
      color: #757575;
      content: "\f002";
      display: block;
      font-family: 'FontAwesome';
      font-size: 16px;
      font-weight: 400;
      z-index: 99; }

.single_variation_wrap {
  display: inline-block; }
  .single_variation_wrap label {
    display: block;
    float: none;
    width: initial; }
    .single_variation_wrap label.screen-reader-text {
      display: none !important; }

html {
  -webkit-text-size-adjust: 100%; }

body {
  font: 10.7692307692px "Arial", sans-serif;
  color: #080808; }

body, input, textarea, select, button {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

::-moz-selection {
  background: #B3D4FC; }

::selection {
  background: #B3D4FC; }

.centering {
  max-width: 1000px;
  padding: 0 20px; }

*, *:before, *:after {
  box-sizing: border-box; }

.hidden {
  display: none !important; }

.free-shipping {
  text-transform: uppercase; }

.lowercase {
  text-transform: lowercase; }

.all-orders {
  color: #F4524D;
  font-weight: bold; }

.home-parallax {
  color: #ffffff;
  font-size: 60px;
  line-height: 76px;
  font-family: "Playfair Display" !important; }

@media screen and (min-width: 1000px) {
  .home-parallax {
    padding-top: 110px; }
  #nav ul > li {
    margin-right: 18px !important; }
  div#woocommerce_product_tag_cloud-1 {
    width: 173px; }
  #footer .columns:nth-child(4) {
    width: 199px; }
  #header .logo .logoimg {
    display: block;
    max-height: 100px !important; } }

@media screen and (max-width: 1025px) {
  #header .logo .logolink.show-logo {
    max-height: 75px !important; } }

.free {
  display: block;
  text-transform: uppercase;
  font-size: 72px !important; }

#quick_cart .float_count {
  background: #F4524D !important; }

#subfooter a {
  color: #a2a2a2; }

[class^="tag-link"] {
  color: #fff !important; }

.widget {
  color: #fff !important; }

.widget.widget_product_categories li a {
  text-transform: uppercase; }

.widget.widget_shopping_cart .widget_shopping_cart_content ul li h6, .widget.widget_shopping_cart .widget_shopping_cart_content ul li .quantity, .widget.widget_shopping_cart .widget_shopping_cart_content ul li .amount {
  color: #fff !important; }

.widget.widget_shopping_cart .widget_shopping_cart_content .total {
  border-top: 2px solid #fff !important; }
  .widget.widget_shopping_cart .widget_shopping_cart_content .total strong, .widget.widget_shopping_cart .widget_shopping_cart_content .total .amount {
    color: #fff !important; }

.widget.widget_shopping_cart .widget_shopping_cart_content ul li .quantity {
  color: #fff !important; }

.home .banner {
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important; }

.main-header h1 {
  color: #131d52; }

#quick_cart .woocommerce-Price-currencySymbol {
  float: left !important; }

.wpb_single_image.vc_align_ {
  text-align: center;
  margin-bottom: 20px !important; }

.vc_gitem-link {
  border-bottom-width: 1px !important;
  border-bottom-style: solid !important; }

.banner.type5 > .divcontent {
  opacity: 1 !important; }
  .banner.type5 > .divcontent:hover {
    opacity: 1 !important; }

.banner.type5 > .divstyle {
  background: transparent !important; }
  .banner.type5 > .divstyle:hover {
    background: transparent !important; }

@media screen and (max-width: 768px) {
  .home-parallax {
    font-size: 45px;
    line-height: 60px; }
    .home-parallax .free {
      font-size: 52px !important; } }

#header.style1 {
  background: #0823584a !important; }
  #header.style1 a:not(.btn){
    color: #000000 !important; }
  #header.style1 #subnav {
    border-bottom: 1px dotted #fff !important; }
  #header.style1 .header_line {
    color: #F4524D !important; }

footer#footer.style1 {
  background: #0823584a !important; }
  footer#footer.style1 .boxed-icon {
    color: #fff !important;
    border: 1px solid #fff !important; }

small {
  font-size: 100% !important; }

.create-account {
  background-color: #ebebeb;
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  margin-bottom: 15px !important;
  padding: 10px;
  width: 100%; }
  .create-account .input-checkbox {
    display: inline-block;
    margin-top: 3px; }
  .create-account .checkbox {
    display: inline-block;
    padding-left: 10px;
    margin-bottom: 0; }

/*# sourceMappingURL=data:application/json;base64,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Qyw4Q0FBOEM7RUFDOUMsa0NBQWtDLEVBQUU7O0FBRXRDO0VBQ0UsZUFBZSxFQUFFOztBQUVuQjtFQUNFLHVCQUF1QixFQUFFOztBQUUzQjtFQUNFLG1CQUFtQjtFQUNuQiwrQkFBK0IsRUFBRTs7QUFFbkM7RUFDRSxvQ0FBb0M7RUFDcEMsc0NBQXNDLEVBQUU7O0FBRTFDO0VBQ0Usc0JBQXNCLEVBQUU7RUFDeEI7SUFDRSxzQkFBc0IsRUFBRTs7QUFFNUI7RUFDRSxtQ0FBbUMsRUFBRTtFQUNyQztJQUNFLG1DQUFtQyxFQUFFOztBQUV6QztFQUNFO0lBQ0UsZ0JBQWdCO0lBQ2hCLGtCQUFrQixFQUFFO0lBQ3BCO01BQ0UsMkJBQTJCLEVBQUUsRUFBRTs7QUFFckM7RUFDRSwrQkFBK0IsRUFBRTtFQUNqQztJQUNFLHVCQUF1QixFQUFFO0VBQzNCO0lBQ0UsMENBQTBDLEVBQUU7RUFDOUM7SUFDRSwwQkFBMEIsRUFBRTs7QUFFaEM7RUFDRSwrQkFBK0IsRUFBRTtFQUNqQztJQUNFLHVCQUF1QjtJQUN2QixrQ0FBa0MsRUFBRTs7QUFFeEM7RUFDRSwyQkFBMkIsRUFBRTs7QUFFL0I7RUFDRSwwQkFBMEI7RUFDMUIsZ0NBQXlCO0VBQXpCLGdDQUF5QjtFQUF6Qix5QkFBeUI7RUFDekIsK0JBQStCO0VBQy9CLGNBQWM7RUFDZCxZQUFZLEVBQUU7RUFDZDtJQUNFLHNCQUFzQjtJQUN0QixnQkFBZ0IsRUFBRTtFQUNwQjtJQUNFLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsaUJBQWlCLEVBQUUiLCJmaWxlIjoibGF5b3V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuLyoqXHJcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXHJcbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xyXG4gKiAgICB1c2VyIHpvb20uXHJcbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICogYW5kIEZpcmVmb3guXHJcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXHJcbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXHJcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXHJcbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXHJcbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXHJcbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBMaW5rc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxyXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcclxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcclxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxyXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcclxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXHJcbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cclxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXHJcbiAqL1xuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cclxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcclxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXHJcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cclxuICovXG4vKipcclxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcclxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXHJcbiAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cclxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cclxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cclxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxyXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxyXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxyXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxyXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxyXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxyXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXHJcbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcclxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxyXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxyXG4gKlxyXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxyXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxyXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxyXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxyXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXHJcbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXHJcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXHJcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxyXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qKlxyXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXHJcbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXHJcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cclxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcclxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxyXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAqL1xubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cclxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxyXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXHJcbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxyXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxyXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMyMjIxMjE7IH1cblxuOi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzIyMjEyMTsgfVxuXG46Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzIyMjEyMTsgfVxuXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMyMjIxMjE7IH1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxudGV4dGFyZWEge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGNvbG9yOiAjMDAwO1xuICBvdXRsaW5lOiAwcHg7IH1cblxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cywgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLCB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzk5OTk5OTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5uYXYgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBjb2xvcjogI2I2MDAwNTtcbiAgZm9udC1mYW1pbHk6IFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgcGFkZGluZzogMDsgfVxuICBoMSBhLCBoMiBhLCBoMyBhLCBoNCBhLCBoNSBhLCBoNiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBtYXJnaW46IDA7IH1cblxuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbWFyZ2luOiAwIDAgMTBweCAwOyB9XG5cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbjogMCAwIDEwcHggMDsgfVxuXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDAgMCA1cHggMDsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDAgMCA1cHggMDsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDAgMCA1cHggMDsgfVxuXG5hIHtcbiAgY29sb3I6ICNiNjAwMDU7IH1cblxucCB7XG4gIG1hcmdpbjogMCAwIDFlbTsgfVxuXG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LWZhbWlseTogXCJQcm9qZWN0IE5hbWVcIjsgfVxuXG5bY2xhc3NePVwiaWNvbi1zb2NpYWxcIl1baHJlZio9XCJnb29nbGVcIl06YmVmb3JlLCBbY2xhc3NePVwiaWNvbi1zb2NpYWxcIl0uaWNvbi1nb29nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJnXCI7IH1cblxuW2NsYXNzXj1cImljb24tc29jaWFsXCJdW2hyZWYqPVwiZmFjZWJvb2tcIl06YmVmb3JlLCBbY2xhc3NePVwiaWNvbi1zb2NpYWxcIl0uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcImZcIjsgfVxuXG5bY2xhc3NePVwiaWNvbi1zb2NpYWxcIl1baHJlZio9XCJpbnN0YWdyYW1cIl06YmVmb3JlLCBbY2xhc3NePVwiaWNvbi1zb2NpYWxcIl0uaWNvbi1pbnN0YWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJpXCI7IH1cblxuW2NsYXNzXj1cImljb24tc29jaWFsXCJdW2hyZWYqPVwibGlua2VkaW5cIl06YmVmb3JlLCBbY2xhc3NePVwiaWNvbi1zb2NpYWxcIl0uaWNvbi1saW5rZWRpbjpiZWZvcmUge1xuICBjb250ZW50OiBcImxcIjsgfVxuXG5bY2xhc3NePVwiaWNvbi1zb2NpYWxcIl1baHJlZio9XCJwaW50ZXJlc3RcIl06YmVmb3JlLCBbY2xhc3NePVwiaWNvbi1zb2NpYWxcIl0uaWNvbi1waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJwXCI7IH1cblxuW2NsYXNzXj1cImljb24tc29jaWFsXCJdW2hyZWYqPVwidHdpdHRlclwiXTpiZWZvcmUsIFtjbGFzc149XCJpY29uLXNvY2lhbFwiXS5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJ0XCI7IH1cblxuW2NsYXNzXj1cImljb24tc29jaWFsXCJdW2hyZWYqPVwieW91dHViZVwiXTpiZWZvcmUsIFtjbGFzc149XCJpY29uLXNvY2lhbFwiXS5pY29uLXlvdXR1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJ5XCI7IH1cblxuI3N1YmZvb3RlciAucGF5bWVudHR5cGVzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKFwiL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzEyL2NhcmRzLmpwZ1wiKSB0b3AgbGVmdCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTcwcHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50OyB9XG5cbi53cGNmNyAuc2NyZWVuLXJlYWRlci1yZXNwb25zZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ud3BjZjcgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ud3BjZjcgLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgY29sb3I6ICNCNjAwMDU7IH1cblxuLnNsaWRlc2hvdyAuc2xpZGVzaG93LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjAwcHg7IH1cblxuLnZhcmlhdGlvbi1tZXRhLXZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuXG4ucHJvZHVjdHMgLnByb2R1Y3QgZmlndXJlID4gYSAucHJvZHVjdC1pbWFnZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAzNTBweDsgfVxuICAucHJvZHVjdHMgLnByb2R1Y3QgZmlndXJlID4gYSAucHJvZHVjdC1pbWFnZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxubGFiZWwuc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UtcHJvZHVjdC1zZWFyY2ggPiBmaWVsZHNldCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAud29vY29tbWVyY2UtcHJvZHVjdC1zZWFyY2ggPiBmaWVsZHNldCA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIGhlaWdodDogMTNweDtcbiAgICBtYXgtd2lkdGg6IDIyNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAgICAgLndvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoID4gZmllbGRzZXQgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDsgfSB9XG4gIC53b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaCA+IGZpZWxkc2V0IGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICB3aWR0aDogMzBweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIC53b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaCA+IGZpZWxkc2V0IGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgcmlnaHQ6IDI1cHg7IH0gfVxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaCA+IGZpZWxkc2V0IGJ1dHRvblt0eXBlPVwic3VibWl0XCJdOmJlZm9yZSB7XG4gICAgICBjb2xvcjogIzc1NzU3NTtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMDAyXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHotaW5kZXg6IDk5OyB9XG5cbi5zaW5nbGVfdmFyaWF0aW9uX3dyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnNpbmdsZV92YXJpYXRpb25fd3JhcCBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGluaXRpYWw7IH1cbiAgICAuc2luZ2xlX3ZhcmlhdGlvbl93cmFwIGxhYmVsLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuaHRtbCB7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxuXG5ib2R5IHtcbiAgZm9udDogMTAuNzY5MjMwNzY5MnB4IFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwODA4MDg7IH1cblxuYm9keSwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI0IzRDRGQzsgfVxuXG4uY2VudGVyaW5nIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIHBhZGRpbmc6IDAgMjBweDsgfVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZnJlZS1zaGlwcGluZyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLmFsbC1vcmRlcnMge1xuICBjb2xvcjogI0Y0NTI0RDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmhvbWUtcGFyYWxsYXgge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiA2MHB4O1xuICBsaW5lLWhlaWdodDogNzZweDtcbiAgZm9udC1mYW1pbHk6IFwiUGxheWZhaXIgRGlzcGxheVwiICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5ob21lLXBhcmFsbGF4IHtcbiAgICBwYWRkaW5nLXRvcDogMTEwcHg7IH1cbiAgI25hdiB1bCA+IGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE4cHggIWltcG9ydGFudDsgfVxuICBkaXYjd29vY29tbWVyY2VfcHJvZHVjdF90YWdfY2xvdWQtMSB7XG4gICAgd2lkdGg6IDE3M3B4OyB9XG4gICNmb290ZXIgLmNvbHVtbnM6bnRoLWNoaWxkKDQpIHtcbiAgICB3aWR0aDogMTk5cHg7IH1cbiAgI2hlYWRlciAubG9nbyAubG9nb2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNXB4KSB7XG4gICNoZWFkZXIgLmxvZ28gLmxvZ29saW5rLnNob3ctbG9nbyB7XG4gICAgbWF4LWhlaWdodDogNzVweCAhaW1wb3J0YW50OyB9IH1cblxuLmZyZWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiA3MnB4ICFpbXBvcnRhbnQ7IH1cblxuI3F1aWNrX2NhcnQgLmZsb2F0X2NvdW50IHtcbiAgYmFja2dyb3VuZDogI0Y0NTI0RCAhaW1wb3J0YW50OyB9XG5cbiNzdWJmb290ZXIgYSB7XG4gIGNvbG9yOiAjYTJhMmEyOyB9XG5cbltjbGFzc149XCJ0YWctbGlua1wiXSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cblxuLndpZGdldCB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cblxuLndpZGdldC53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzIGxpIGEge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi53aWRnZXQud2lkZ2V0X3Nob3BwaW5nX2NhcnQgLndpZGdldF9zaG9wcGluZ19jYXJ0X2NvbnRlbnQgdWwgbGkgaDYsIC53aWRnZXQud2lkZ2V0X3Nob3BwaW5nX2NhcnQgLndpZGdldF9zaG9wcGluZ19jYXJ0X2NvbnRlbnQgdWwgbGkgLnF1YW50aXR5LCAud2lkZ2V0LndpZGdldF9zaG9wcGluZ19jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50IHVsIGxpIC5hbW91bnQge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi53aWRnZXQud2lkZ2V0X3Nob3BwaW5nX2NhcnQgLndpZGdldF9zaG9wcGluZ19jYXJ0X2NvbnRlbnQgLnRvdGFsIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmZmYgIWltcG9ydGFudDsgfVxuICAud2lkZ2V0LndpZGdldF9zaG9wcGluZ19jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50IC50b3RhbCBzdHJvbmcsIC53aWRnZXQud2lkZ2V0X3Nob3BwaW5nX2NhcnQgLndpZGdldF9zaG9wcGluZ19jYXJ0X2NvbnRlbnQgLnRvdGFsIC5hbW91bnQge1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cblxuLndpZGdldC53aWRnZXRfc2hvcHBpbmdfY2FydCAud2lkZ2V0X3Nob3BwaW5nX2NhcnRfY29udGVudCB1bCBsaSAucXVhbnRpdHkge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5ob21lIC5iYW5uZXIge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50OyB9XG5cbi5tYWluLWhlYWRlciBoMSB7XG4gIGNvbG9yOiAjMTMxZDUyOyB9XG5cbiNxdWlja19jYXJ0IC53b29jb21tZXJjZS1QcmljZS1jdXJyZW5jeVN5bWJvbCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLndwYl9zaW5nbGVfaW1hZ2UudmNfYWxpZ25fIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnZjX2dpdGVtLWxpbmsge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQgIWltcG9ydGFudDsgfVxuXG4uYmFubmVyLnR5cGU1ID4gLmRpdmNvbnRlbnQge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cbiAgLmJhbm5lci50eXBlNSA+IC5kaXZjb250ZW50OmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cblxuLmJhbm5lci50eXBlNSA+IC5kaXZzdHlsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgLmJhbm5lci50eXBlNSA+IC5kaXZzdHlsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaG9tZS1wYXJhbGxheCB7XG4gICAgZm9udC1zaXplOiA0NXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4OyB9XG4gICAgLmhvbWUtcGFyYWxsYXggLmZyZWUge1xuICAgICAgZm9udC1zaXplOiA1MnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4jaGVhZGVyLnN0eWxlMSB7XG4gIGJhY2tncm91bmQ6ICM5MmQ0ZWQgIWltcG9ydGFudDsgfVxuICAjaGVhZGVyLnN0eWxlMSBhIHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG4gICNoZWFkZXIuc3R5bGUxICNzdWJuYXYge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2ZmZiAhaW1wb3J0YW50OyB9XG4gICNoZWFkZXIuc3R5bGUxIC5oZWFkZXJfbGluZSB7XG4gICAgY29sb3I6ICNGNDUyNEQgIWltcG9ydGFudDsgfVxuXG5mb290ZXIjZm9vdGVyLnN0eWxlMSB7XG4gIGJhY2tncm91bmQ6ICM5MmQ0ZWQgIWltcG9ydGFudDsgfVxuICBmb290ZXIjZm9vdGVyLnN0eWxlMSAuYm94ZWQtaWNvbiB7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmICFpbXBvcnRhbnQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4uY3JlYXRlLWFjY291bnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDE1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNyZWF0ZS1hY2NvdW50IC5pbnB1dC1jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDNweDsgfVxuICAuY3JlYXRlLWFjY291bnQgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiJdfQ== */