@charset "UTF-8";
/*
*
フォント周り
*
*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap");
/*! 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.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* 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: bolder;
}

/**
 * 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 {
  font-size: 80%;
}

/**
 * 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.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

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

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-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;
}

/*
noto sans weight

Regular 400
Medium 500
SemiBold 600
Bold 700
ExtraBold 800
Black 900
*/
/*.font-notosansjp{
  font-family: 'Noto Sans JP', sans-serif;
}*/
.font-lexend {
  font-family: "Lexend", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

/*
*
スタイルリセット
*
*/
a img {
  border-style: none;
}

h1, h2, h3, h4, h5, h6, ul, ol, li, dl, dt, dd, figure, p {
  margin: 0;
  padding: 0;
}

ul, li {
  list-style: none;
}

/*
layout
*/
/*
z-index
*/
/*
pxをvwに変換

ウインドウ幅1400pxに対して要素幅50pxの場合
getvw(50,1400)となる
*/
/*
メディアクエリ
記述例
body{
  @include ms-w('max',1200){
    background-color: red;
  }
}
*/
/*
ICON FONT
*/
/*
*
全ページに共有されるスタイル
*
*/
/************************************************************
SCREEN RESPONSIVE
*************************************************************/
html, body {
  width: 100%;
}

html {
  height: 100%;
  overflow: auto;
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  /*ipad 文字サイズ対策*/
  text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

main {
  width: 100%;
  display: block;
}
@media only screen and (min-width:768px) {
  main {
    min-width: 1200px;
  }
}

/*
全要素にborder-box
*/
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

@media only screen and (min-width:768px) {
  br.sp {
    display: none;
  }
}
@media only screen and (max-width:767px) {
  br.pc {
    display: none;
  }
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  vertical-align: top;
  max-width: 100%;
}

.inline-block {
  display: inline-block;
}

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

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

.text-align-center {
  text-align: center;
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
@font-face {
  font-family: "icons";
  src: url("../../fonts/icons.eot");
  src: url("../../fonts/icons.eot?#iefix") format("eot"), url("../../fonts/icons.woff") format("woff"), url("../../fonts/icons.ttf") format("truetype"), url("../../fonts/icons.svg#icons") format("svg");
  font-weight: normal;
  font-style: normal;
}
[class^=icons-], [class*=" icons-"] {
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icons-arrow-a:before {
  content: "\ea01";
}

.icons-arrow-b:before {
  content: "\ea02";
}

.icons-blank:before {
  content: "\ea03";
}

.icons-play:before {
  content: "\ea04";
}

.icons-x:before {
  content: "\ea05";
}

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

.icons-instagram:before {
  content: "\ea07";
}

.icons-youtube:before {
  content: "\ea08";
}

.icons-line:before {
  content: "\ea09";
}

/*
mixin
*/
/*
*
共有ヘッダー
*
*/
@keyframes bar1-on {
  0% {
    transform: translateY(-5px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0) rotate(155deg);
  }
}
@keyframes bar1-off {
  0% {
    transform: translateY(0) rotate(155deg);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-5px);
  }
}
@keyframes bar2-on {
  0% {
    transform: translateY(5px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0) rotate(-155deg);
  }
}
@keyframes bar2-off {
  0% {
    transform: translateY(0) rotate(-155deg);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(5px);
  }
}
/************************************************************
SCREEN ALL
*************************************************************/
section.header button {
  background: none;
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  color: inherit;
}

section.header {
  position: sticky;
  top: 0;
  z-index: 999;
}
@media only screen and (min-width:768px) {
  section.header {
    min-width: 1200px;
  }
}
@media only screen and (min-width:768px) {
  section.header.-pc-alpha {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
  }
  section.header.-pc-alpha header::before {
    content: "";
    display: block;
    width: 100%;
    height: 80px;
    position: absolute;
    top: 0;
    left: 0;
    backdrop-filter: blur(8px);
    background-color: rgba(46, 46, 46, 0.2);
  }
  section.header.-pc-alpha .header-logo {
    filter: invert(100%) brightness(100%);
  }
  section.header.-pc-alpha nav.header-nav > ul > li a {
    color: white;
  }
}
@media only screen and (max-width:767px) {
  section.header.-sp-alpha {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
  }
  section.header.-sp-alpha.menu-opened .header-logo {
    filter: none;
    transition-delay: 0s;
  }
  section.header.-sp-alpha header {
    background: none;
  }
  section.header.-sp-alpha header::before {
    content: "";
    display: block;
    width: 100%;
    height: 50px;
    position: absolute;
    top: 0;
    left: 0;
    backdrop-filter: blur(8px);
    background-color: rgba(46, 46, 46, 0.2);
  }
  section.header.-sp-alpha .header-logo {
    filter: invert(100%) brightness(200%);
    transition: 0.4s;
    transition-delay: 0.2s;
  }
  section.header.-sp-alpha .header-menu-toggle::before, section.header.-sp-alpha .header-menu-toggle::after {
    background-color: white;
    transition-delay: 0.2s;
  }
  section.header.-sp-alpha .header-menu-toggle[data-open=true]::before, section.header.-sp-alpha .header-menu-toggle[data-open=true]::after {
    background-color: black;
    transition-delay: 0s;
  }
}
@media only screen and (max-width:767px) {
  section.header.-lightblue .header-menu {
    background-color: #ecf3f3;
  }
}
@media only screen and (max-width:767px) {
  section.header.-beige .header-menu {
    background-color: #eae8e0;
  }
}
section.header.-tech header {
  background-color: #f1f1f1;
}
section.header header {
  position: relative;
}
@media only screen and (min-width:768px) {
  section.header header {
    height: 80px;
  }
}
@media only screen and (max-width:767px) {
  section.header header {
    height: 50px;
  }
}
@media only screen and (max-width:767px) {
  section.header header {
    background-color: white;
  }
}
section.header .header-logo {
  height: 100%;
  position: absolute;
  top: 0;
}
@media only screen and (min-width:768px) {
  section.header .header-logo {
    width: 125px;
    left: 7.1428571429%;
  }
}
@media only screen and (max-width:767px) {
  section.header .header-logo {
    width: 77.5px;
    left: 5.3333333333vw;
  }
}
section.header .header-logo h1, section.header .header-logo a, section.header .header-logo picture {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

/************************************************************
SCREEN SP
*************************************************************/
@media screen and (max-width:767px) {
  section.header .header-logo {
    position: relative;
    z-index: 1001;
  }
  section.header .header-menu-toggle {
    width: calc(30px + 10.6666666667vw);
    height: 50px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1003;
    padding: 0 5.3333333333vw;
  }
  section.header .header-menu-toggle-bar {
    position: absolute;
    top: 50%;
    width: 30px;
  }
  section.header .header-menu-toggle::before, section.header .header-menu-toggle::after {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background-color: black;
    position: absolute;
    top: 50%;
    will-change: transform;
  }
  section.header .header-menu-toggle::before {
    animation: bar1-off 0.6s forwards;
  }
  section.header .header-menu-toggle::after {
    animation: bar2-off 0.6s forwards;
  }
  section.header .header-menu-toggle[data-open=true] .header-menu-toggle-bar {
    opacity: 0;
  }
  section.header .header-menu-toggle[data-open=true]::before {
    animation: bar1-on 0.6s forwards;
  }
  section.header .header-menu-toggle[data-open=true]::after {
    animation: bar2-on 0.6s forwards;
  }
  section.header .header-menu {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    height: 120svh;
    max-height: 120svh;
    overflow: hidden;
    background-color: #f1f1f1;
    visibility: visible;
    opacity: 1;
    transition: opacity 0.5s, visibility 0.5s, max-height 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
  }
  section.header .header-menu[hidden] {
    max-height: 0;
    visibility: hidden;
    opacity: 1;
  }
  section.header .header-menu[hidden] .header-menu-inner {
    transform: translateY(-25px);
    opacity: 0;
  }
  section.header .header-menu-inner {
    position: absolute;
    top: 0;
    bottom: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    width: 100%;
    height: 100%;
    padding: 40px 0 calc(20svh + 70px);
    transform: translateY(0);
    opacity: 1;
    transition: transform 0.5s, opacity 0.5s linear;
    transition-delay: 0.25s;
    will-change: transform;
  }
  section.header nav.header-nav {
    margin: 0 auto;
  }
  section.header nav.header-nav > ul {
    padding-top: 30px;
  }
  section.header nav.header-nav > ul > li {
    font-size: 20px;
    line-height: 1.5em;
    letter-spacing: 0.1em;
    position: relative;
  }
  section.header nav.header-nav > ul > li > a {
    padding: 15px 5.3333333333vw;
  }
  section.header nav.header-nav > ul > li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  section.header nav.header-nav > ul > li a::after {
    font-size: 12px;
    display: inline-block;
    content: "\ea01";
    display: inline-block;
    font-family: "icons";
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: transform 0.4s;
    will-change: transform;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown > button.accordion-trigger {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    opacity: 1;
    height: 67px;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown > button.accordion-trigger[aria-expanded=true] {
    width: 100px;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown > button.accordion-trigger[aria-expanded=true] + a::after {
    transform: rotate(270deg);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown > a::after {
    transform: rotate(90deg);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.accordion-contents {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.2s ease-out;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.accordion-contents[hidden] {
    display: grid;
    grid-template-rows: 0fr;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner {
    overflow: hidden;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul {
    padding-bottom: 24px;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul li {
    font-size: clamp(10px, 4vw, 15px);
    font-weight: 400;
    background-color: #f8f8f8;
    border-top: 1px solid #f1f1f1;
    border-bottom: 2px solid #f1f1f1;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul li > a {
    padding: 2px 5.3333333333vw 2px 6.6666666667vw;
  }
}
/************************************************************
SCREEN PC
*************************************************************/
@media screen and (min-width:768px) {
  section.header header {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding-right: 2.8571428571%;
  }
  section.header .header-menu-toggle {
    display: none;
  }
}
@media screen and (min-width:768px) and (hover: hover) {
  section.header.-pc-alpha .header-nav-dropdown:hover > a::before {
    background-color: white !important;
  }
}
@media screen and (min-width:768px) {
  section.header .header-menu {
    order: 1;
    height: 100%;
  }
  section.header .header-menu .header-menu-inner {
    height: 100%;
    display: flex;
    justify-content: flex-end;
    padding-right: 88px;
  }
}
@media screen and (min-width:768px) and (max-width: 1300px) {
  section.header .header-menu .header-menu-inner {
    padding-right: 30px;
  }
}
@media screen and (min-width:768px) {
  section.header nav.header-nav {
    height: 100%;
  }
  section.header nav.header-nav > ul {
    display: flex;
    align-items: center;
    gap: 0 60px;
    height: 100%;
  }
  section.header nav.header-nav > ul > li {
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.125em;
    height: 100%;
    position: relative;
  }
  section.header nav.header-nav > ul > li > a {
    display: flex;
    align-items: center;
    height: 100%;
    transition: color 0.2s, opacity 0.2s;
  }
  section.header nav.header-nav > ul > li > a span {
    display: inline-block;
    padding: 10px 0;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown {
    position: relative;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown > button.accordion-trigger {
    display: none;
  }
}
@media screen and (min-width:768px) and (hover: hover) {
  section.header nav.header-nav > ul > li.header-nav-dropdown:hover > a::before {
    content: "";
    display: block;
    background: #000;
    height: calc(tan(60deg) * 12px / 2);
    width: 16px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translate(-100%, -50%);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown:hover .header-nav-dropdown-menu {
    visibility: visible;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown:hover .header-nav-dropdown-menu-inner {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition: visibility 0.4s, opacity 0.4s, transform 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  }
}
@media screen and (min-width:768px) {
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu {
    position: absolute;
    top: 80px;
    padding-top: 10px;
    visibility: hidden;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.-pos-center {
    left: 50%;
    transform: translateX(-50%);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.-pos-center-right {
    left: 50%;
    transform: translateX(calc(-50% - 100px));
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.-pos-right {
    right: 0;
    transform: translateX(7.1428571429vw);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu.accordion-contents[hidden] {
    display: block;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner {
    backdrop-filter: blur(8px);
    background-color: rgba(46, 46, 46, 0.2);
    height: 60px;
    padding: 0 7.1428571429vw;
    border-radius: 50px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-40px);
    will-change: transform;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner.-speaker {
    background-color: rgba(112, 108, 103, 0.8);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner.-earphone {
    background-color: rgba(243, 152, 0, 0.8);
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul {
    height: 100%;
    display: flex;
    align-items: center;
    gap: 0 35px;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul li {
    height: 100%;
    font-size: 18px;
    font-weight: 400;
  }
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul li > a {
    white-space: nowrap;
    height: 100%;
    display: flex;
    align-items: center;
    transition: opacity 0.2s;
  }
}
@media screen and (min-width:768px) and (hover: hover) {
  section.header nav.header-nav > ul > li.header-nav-dropdown .header-nav-dropdown-menu-inner > ul li > a:hover {
    opacity: 0.7;
  }
}
@media screen and (min-width:768px) {
  section.header button.accordion-trigger {
    display: none !important;
  }
}
/*
*
共有フッター
*
*/
/************************************************************
SCREEN ALL
*************************************************************/
section.footer {
  background-color: black;
  color: white;
}
@media only screen and (min-width:768px) {
  section.footer {
    padding: 100px 7.1428571429% 40px;
    min-width: 1200px;
  }
}
@media only screen and (max-width:767px) {
  section.footer {
    padding: 56.5px 0 54.5px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-01-columns {
    display: flex;
    justify-content: space-between;
  }
}
section.footer .footer-content-01 .footer-logo-kikippa {
  filter: invert(100%) brightness(200%);
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-01 .footer-logo-kikippa {
    width: 224px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-logo-kikippa {
    width: 174px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-logo-kikippa {
    margin-inline: auto;
  }
}
section.footer .footer-content-01 .footer-txt-01 {
  line-height: 1.45em;
  letter-spacing: 0.05em;
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-txt-01 {
    text-align: center;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-01 .footer-txt-01 {
    font-size: 13px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-txt-01 {
    font-size: 11px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-01 .footer-txt-01 {
    margin-top: 23px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-txt-01 {
    margin-top: 14px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-01 .footer-gnav {
    display: none;
  }
}
section.footer .footer-content-01 .footer-gnav ul {
  display: flex;
  gap: 0 5.7142857143vw;
}
section.footer .footer-content-01 .footer-gnav ul > li {
  font-size: 16px;
  letter-spacing: 0.1em;
}
section.footer .footer-content-01 .footer-gnav ul > li > a {
  transition: opacity 0.2s;
}
@media (hover: hover) {
  section.footer .footer-content-01 .footer-gnav ul > li > a:hover {
    opacity: 0.7;
  }
}
section.footer .footer-content-01 .footer-gnav ul > li .footer-nav-dropdown-menu {
  padding-top: 30px;
  padding-left: 15px;
}
section.footer .footer-content-01 .footer-gnav ul > li .footer-nav-dropdown-menu ul {
  display: block;
}
section.footer .footer-content-01 .footer-gnav ul > li .footer-nav-dropdown-menu ul li {
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.6428571429em;
  position: relative;
  padding-left: 10px;
}
section.footer .footer-content-01 .footer-gnav ul > li .footer-nav-dropdown-menu ul li::before {
  content: "";
  display: block;
  width: 4px;
  height: 1px;
  background-color: white;
  position: absolute;
  top: 18px;
  left: 0;
}
section.footer .footer-content-01 .footer-gnav ul > li .footer-nav-dropdown-menu ul li a {
  display: inline-block;
  padding: 6px 0;
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 {
    padding-top: 109px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 {
    padding-top: 67px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02-columns {
    display: flex;
    justify-content: space-between;
  }
}
section.footer .footer-content-02 .footer-logo-shionogi {
  filter: invert(100%) brightness(200%);
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-logo-shionogi {
    width: 252px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-logo-shionogi {
    width: 190px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-logo-shionogi {
    margin-inline: auto;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-logo-shionogi {
    transform: translateY(10px);
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links {
    margin-top: 25px;
  }
}
section.footer .footer-content-02 .footer-links ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul {
    width: 330px;
    margin: 0 auto;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li {
    padding: 6px 0;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li:nth-child(2) a {
    padding-right: 0;
    border-right: none;
  }
}
section.footer .footer-content-02 .footer-links ul li:last-child a {
  padding-right: 0;
  border-right: none;
}
section.footer .footer-content-02 .footer-links ul li a {
  display: inline-block;
  line-height: 1em;
  border-right: 1px solid white;
  transition: opacity 0.2s;
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-links ul li a {
    font-size: 14px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li a {
    font-size: 14px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-links ul li a {
    padding: 0 16px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li a {
    padding: 0 14px;
  }
}
section.footer .footer-content-02 .footer-links ul li a[target=_blank]::after {
  content: "\ea03";
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: inline-block;
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-links ul li a[target=_blank]::after {
    font-size: 10px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li a[target=_blank]::after {
    font-size: 10px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-links ul li a[target=_blank]::after {
    margin-left: 4px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-links ul li a[target=_blank]::after {
    margin-left: 4px;
  }
}
@media (hover: hover) {
  section.footer .footer-content-02 .footer-links ul li a:hover {
    opacity: 0.7;
  }
}
section.footer .footer-content-02 .footer-copyright {
  text-align: center;
  letter-spacing: 0.05em;
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-copyright {
    font-size: 14px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-copyright {
    font-size: 11px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-copyright {
    margin-top: 20px;
  }
}
@media only screen and (max-width:767px) {
  section.footer .footer-content-02 .footer-copyright {
    margin-top: 15px;
  }
}
@media only screen and (min-width:768px) {
  section.footer .footer-content-02 .footer-copyright {
    text-align: right;
  }
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/************************************************************
SCREEN ALL
*************************************************************/
@media only screen and (min-width:768px) {
  .to-top {
    width: 60px;
    height: 60px;
    background-color: white;
    position: fixed;
    bottom: 30px;
    left: -60px;
    z-index: 989;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
    transition: left 0.4s;
  }
}
@media only screen and (max-width:767px) {
  .to-top {
    height: 60px;
    background-color: white;
    border-top: 1.5px solid #f5f4f2;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
.to-top.-show {
  left: 0;
}
.to-top::before {
  content: "\ea02";
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  display: inline-block;
  transform: rotate(-90deg);
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/************************************************************
SCREEN ALL
*************************************************************/
@media only screen and (min-width:768px) {
  .floating-btns {
    position: fixed;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns {
    position: fixed;
    bottom: 10px;
    left: 0;
    width: 100%;
    z-index: 1000;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(0px, 1.3333333333vw, 10px);
    padding: 0 clamp(0px, 1.3333333333vw, 10px);
  }
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-inner-btn-wrapper {
    display: flex;
    justify-content: flex-start;
    flex-direction: row-reverse;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-inner-btn-wrapper {
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
  }
}
.floating-btns .floating-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: white;
  border: 1px solid #e9e9e9;
  position: relative;
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-btn {
    font-size: 20px;
    width: 45px;
    border-radius: 5px;
    padding: 15px 0;
    transition: width 0.2s;
  }
  .floating-btns .floating-btn:not(.-dropdown) {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-btn {
    font-size: clamp(10px, 2.9333333333vw, 13px);
    width: 100%;
    height: 40px;
    border-radius: 2.5px;
    white-space: nowrap;
    padding: 0;
    letter-spacing: 0.05em;
    transition: height 0.2s;
  }
}
.floating-btns .floating-btn.-yellow {
  background-color: #f4bd00;
  border-color: #f4bd00;
}
.floating-btns .floating-btn.-dropdown {
  overflow: hidden;
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-btn.-dropdown {
    justify-content: flex-end;
    padding: 8px 0 8px 10px;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-btn.-dropdown {
    align-items: flex-end;
    min-width: 120px;
    padding: 0 clamp(5px, 1.3333333333vw, 10px);
  }
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-btn.-open {
    width: 155px !important;
  }
  .floating-btns .floating-btn.-open .floating-inner-btn.-toggle {
    width: 45px !important;
    min-width: 45px !important;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-btn.-open {
    height: 135px !important;
  }
}
@media only screen and (hover: hover) and (min-width:768px) {
  .floating-btns .floating-btn:hover {
    width: 55px;
  }
  .floating-btns .floating-btn:hover .floating-inner-btn.-toggle {
    width: 55px;
    min-width: 55px;
  }
}
.floating-btns .floating-btn .icon {
  display: block;
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-btn .icon {
    width: 25px;
    margin-bottom: 10px;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-btn .icon {
    width: 14px;
    margin-right: 7px;
  }
}
.floating-btns .floating-inner-btn {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  position: relative;
  cursor: pointer;
  border-radius: 5px;
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-inner-btn {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    width: 45px;
    min-width: 45px;
    padding: 15px 0;
    transition: width 0.2s, min-width 0.2s;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-inner-btn {
    width: 100%;
    height: 40px;
    min-height: 40px;
    justify-content: center;
    padding: 0 clamp(5px, 1.3333333333vw, 10px);
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-inner-btn:nth-child(1) {
    order: 1;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-inner-btn:nth-child(3) {
    order: 2;
    margin-top: 5px;
  }
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-inner-btn:nth-child(2) {
    margin-left: 10px;
  }
}
@media only screen and (max-width:767px) {
  .floating-btns .floating-inner-btn:nth-child(2) {
    order: 3;
  }
}
.floating-btns .floating-inner-btn:not(.-toggle) {
  background-color: rgba(255, 255, 255, 0.7);
  transition: background-color 0.2s;
}
@media only screen and (min-width:768px) {
  .floating-btns .floating-inner-btn:not(.-toggle):hover {
    background-color: rgba(255, 255, 255, 0.9);
  }
}
.floating-btns .tel-btn {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  cursor: pointer;
}
@media only screen and (min-width:768px) {
  .floating-btns .tel-btn {
    display: none;
  }
}
.floating-btns .plan-btn {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
@media only screen and (max-width:767px) {
  .floating-btns .plan-btn {
    display: none;
  }
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/*
*
コンテンツ幅左右余白など調整した汎用ボックス
*
*/
/************************************************************
SCREEN ALL
*************************************************************/
.common-round-btn {
  display: inline-block;
  background-color: white;
  color: black;
  border-radius: 999px;
}
@media only screen and (min-width:768px) {
  .common-round-btn {
    padding: 25px 40px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn {
    padding: 20px 25px;
  }
}
@media only screen and (min-width:768px) {
  .common-round-btn {
    font-size: 18px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn {
    font-size: 12px;
  }
}
@media only screen and (min-width:768px) {
  .common-round-btn {
    letter-spacing: 0.075em;
  }
}
@media (hover: hover) {
  .common-round-btn:hover.-arrow::after {
    padding-left: 0.7em;
    transform: translateY(-50%) translateX(10%) scale(1.1);
  }
}
.common-round-btn.-arrow {
  position: relative;
}
@media only screen and (min-width:768px) {
  .common-round-btn.-arrow {
    padding: 25px 80px 25px 40px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn.-arrow {
    padding: 20px 55px 20px 25px;
  }
}
.common-round-btn.-arrow::after {
  content: "\ea01";
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  border-radius: 50%;
  background-color: white;
  color: black;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding-left: 0.2em;
  transition: transform 0.2s, padding-left 0.2s;
  will-change: transform;
}
@media only screen and (min-width:768px) {
  .common-round-btn.-arrow::after {
    width: 46px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn.-arrow::after {
    width: 32px;
  }
}
@media only screen and (min-width:768px) {
  .common-round-btn.-arrow::after {
    height: 46px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn.-arrow::after {
    height: 32px;
  }
}
@media only screen and (min-width:768px) {
  .common-round-btn.-arrow::after {
    right: 17px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn.-arrow::after {
    right: 12px;
  }
}
@media only screen and (min-width:768px) {
  .common-round-btn.-arrow::after {
    font-size: 15px;
  }
}
@media only screen and (max-width:767px) {
  .common-round-btn.-arrow::after {
    font-size: 12px;
  }
}
.common-round-btn.-orange {
  background-color: #f58207;
  color: white;
}
.common-round-btn.-orange.-arrow::after {
  color: #f58207;
}
.common-round-btn.-brown {
  background-color: #706c67;
  color: white;
}
.common-round-btn.-brown.-arrow::after {
  color: #706c67;
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/*
*
コンテンツ幅左右余白など調整した汎用ボックス
*
*/
/************************************************************
SCREEN ALL
*************************************************************/
@media (hover: hover) {
  .common-circle-arrow-hover:hover .common-circle-arrow {
    padding-left: 0.75em;
  }
  .common-circle-arrow-hover:hover .common-circle-arrow::before {
    transform: scale(1.1);
  }
}

.common-circle-arrow {
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: black;
  position: relative;
  transition: padding-left 0.2s;
}
@media only screen and (min-width:768px) {
  .common-circle-arrow {
    width: 46px;
  }
}
@media only screen and (max-width:767px) {
  .common-circle-arrow {
    width: 23px;
  }
}
@media only screen and (min-width:768px) {
  .common-circle-arrow {
    height: 46px;
  }
}
@media only screen and (max-width:767px) {
  .common-circle-arrow {
    height: 23px;
  }
}
@media only screen and (min-width:768px) {
  .common-circle-arrow {
    font-size: 16px;
  }
}
@media only screen and (max-width:767px) {
  .common-circle-arrow {
    font-size: 8px;
  }
}
.common-circle-arrow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  border-radius: 50%;
  display: block;
  transition: transform 0.2s;
  will-change: transform;
}
.common-circle-arrow::after {
  content: "\ea01";
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/*
*
コンテンツ幅左右余白など調整した汎用ボックス
*
*/
/************************************************************
SCREEN ALL
*************************************************************/
@media only screen and (min-width:768px) {
  .common-contents-box {
    max-width: 1000px;
    margin-inline: auto;
  }
}
@media only screen and (max-width:767px) {
  .common-contents-box {
    width: 89.3333333333vw;
    margin-inline: auto;
  }
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/************************************************************
SCREEN ALL
*************************************************************/
.icon-gw {
  will-change: transform;
  transform: translate3d(0);
}
@media only screen and (min-width:768px) {
  .icon-gw.-pc-white .gamma-cl {
    fill: #FFFFFF;
  }
}
@media only screen and (max-width:767px) {
  .icon-gw.-sp-white .gamma-cl {
    fill: #FFFFFF;
  }
}
.icon-gw svg {
  vertical-align: bottom;
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb21tb24vX2NvbW1vbl9iYXNlL19mb250cy5zY3NzIiwiY29tbW9uL19jb21tb25fYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJjb21tb24vX2NvbW1vbl9iYXNlL19teV9yZXNldC5zY3NzIiwiX2ZvdW5kYXRpb24vX3ZhcnMuc2NzcyIsIl9mb3VuZGF0aW9uL19mdW5jdGlvbi5zY3NzIiwiX2ZvdW5kYXRpb24vX21peGluLnNjc3MiLCJjb21tb24vX2NvbW1vbl9iYXNlL19teV9zdHlsZS5zY3NzIiwiX2ZvdW5kYXRpb24vX21lZGlhLnNjc3MiLCJjb21tb24vX2NvbW1vbl9iYXNlL19pY29ucy5zY3NzIiwiX2ZvdW5kYXRpb24vX2ljb25zLnNjc3MiLCJjb21tb24vX2NvbW1uX2xheW91dC9faGVhZGVyLnNjc3MiLCJjb21tb24vX2NvbW1uX2xheW91dC9fZm9vdGVyLnNjc3MiLCJjb21tb24vX2NvbW1vbl9jb21wb25lbnQvX3RvLXRvcC5zY3NzIiwiY29tbW9uL19jb21tb25fY29tcG9uZW50L19mbG9hdGluZy1idG5zLnNjc3MiLCJjb21tb24vX2NvbW1vbl9jb21wb25lbnQvX2NvbW1vbi1yb3VuZC1idG4uc2NzcyIsImNvbW1vbi9fY29tbW9uX2NvbXBvbmVudC9fY29tbW9uLWNpcmNsZS1hcnJvdy5zY3NzIiwiY29tbW9uL19jb21tb25fY29tcG9uZW50L19jb21tb24tY29udGVudHMtYm94LnNjc3MiLCJjb21tb24vX2NvbW1vbl9jb21wb25lbnQvX2ljb24tZ3cuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1RO0FBQ0E7QUNQUjtBQUVBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxRQUNRO0VBQ047OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxTQUNTO0VBQ1A7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7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RjtFR3dMQTtJQUtJO0lBQ0E7OztBSDNMSjtFR3FMQTtJQVNJO0lBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS047QUFBQTtBQUFBO0FBSUE7RUFHSTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUY7SUFFRTs7RUFFRjtJQUVFOztFQUdBO0lBQ0U7O0VBRUY7SUFFRTs7RUFFRjtJQUVFOztFQUtOO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7RUFHSjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUlKO0lBQ0U7O0VBQ0E7SUFDRTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUR2VFM7SUFUbkI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUM0VFU7SUFDQTs7RUFJRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUE7O0VBQ0E7SUFDRTs7RUFFRTtJQUNFOztFQU1OO0lBQ0U7O0VBSUY7SUFDRTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTtJQUNBOztFQUdKO0lBQ0U7O0VBQ0E7SUFDRTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7O0FBY3RCO0FBQUE7QUFBQTtBQUlBO0VBR0k7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFFRjtJQUNFOzs7QUh2WUo7RUc2WVU7SUFDRTs7O0FBakJkO0VBd0JJO0lBQ0U7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOzs7QUw5Wk47RUswWkk7SUFNSTs7O0FBakNWO0VBc0NJO0lBQ0U7O0VBQ0E7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBTUE7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFJQTtJQUNFO0lBQ0E7O0VBR0o7SUFDRTs7RUFDQTtJQUNFOzs7QUhyY1o7RUc0Y2M7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFHSjtJQUNFOztFQUVGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7OztBQW5HaEI7RUFzR1k7SUFDRTtJQUNBO0lBQ0E7SUFFQTs7RUFDQTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7RUFHQTtJQUNFOztFQUdKO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVFBO0lBQ0E7SUFDQTtJQUNBOztFQVZBO0lBQ0U7O0VBRUY7SUFDRTs7RUFPRjtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FIemhCcEI7RUFDRTtJRzBoQm9COzs7QUE5SnhCO0VBeUtJO0lBQ0U7OztBQy9pQk47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7QUpmQTtFSWFGO0lBSUk7SUFDQSxXUmRVOzs7QUlEWjtFSVVGO0lBUUk7OztBSnJCRjtFSXlCRTtJQUVJO0lBQ0E7OztBQUdKO0VBQ0U7O0FKaENKO0VJK0JFO0lKekJZLE9JMkJnQjs7O0FKOUI5QjtFSTRCRTtJSnhCWSxPSTBCc0I7OztBSjlCcEM7RUk0QkU7SUFJSTs7O0FBR0o7RUFNRTtFQUNBOztBSjFDSjtFSW1DRTtJQUVJOzs7QUp4Q047RUlzQ0U7SUpoQ1ksV0lvQ29COzs7QUp2Q2xDO0VJbUNFO0lKL0JZLFdJbUN5Qjs7O0FKMUN2QztFSXNDRTtJSmhDWSxZSXFDcUI7OztBSnhDbkM7RUltQ0U7SUovQlksWUlvQzBCOzs7QUp4Q3hDO0VJNENFO0lBRUk7OztBQUVGO0VBQ0U7RUFDQTs7QUFDQTtFQUNFO0VBQ0E7O0FBQ0E7RUFDRTs7QUovQ1Y7RUFDRTtJSWdEVTs7O0FBR0o7RUFDRTtFQUNBOztBQUNBO0VBQ0U7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRjtFQUNFO0VBQ0E7O0FKdEZoQjtFSStGQTtJSnpGYyxhSTBGb0I7OztBSjdGbEM7RUk0RkE7SUp4RmMsYUl5RjBCOzs7QUpoR3hDO0VJaUdFO0lBRUk7SUFDQTs7O0FBR0o7RUFDRTs7QUp4R0o7RUl1R0U7SUpqR1ksT0ltR2dCOzs7QUp0RzlCO0VJb0dFO0lKaEdZLE9Ja0dzQjs7O0FKdEdwQztFSW9HRTtJQUlJOzs7QUozR047RUl1R0U7SUFPSTs7O0FKM0dOO0VJOEdFO0lBRUk7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOztBSnJITjtFSWtISTtJQUtJO0lBQ0E7OztBSnhIUjtFSTBITTtJQUVJOzs7QUo1SFY7RUlnSVk7SUFDRTtJQUNBOzs7QUFLSjtFQUNFO0VBQ0E7O0FBR0o7RUFDRTtFQUVBO0VBQ0E7RUFDQTs7QUpwSlY7RUkrSVE7SUp6SU0sV0kySTBCOzs7QUo5SXhDO0VJNElRO0lKeElNLFdJMEkrQjs7O0FKako3QztFSStJUTtJQU9JOzs7QUpuSlo7RUk0SVE7SUFVSTs7O0FBR0E7RUYvSU87RUFYakI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUV3Slk7O0FKaEtkO0VJNEpZO0lKdEpFLFdJd0o4Qjs7O0FKM0o1QztFSXlKWTtJSnJKRSxXSXVKbUM7OztBSjlKakQ7RUk0Slk7SUp0SkUsYUl5SmdDOzs7QUo1SjlDO0VJeUpZO0lKckpFLGFJd0pvQzs7O0FKcEpsRDtFQUNFO0lJd0pVOzs7QUFNVjtFQUNFO0VBR0E7O0FKOUtKO0VJMEtFO0lKcEtZLFdJc0tvQjs7O0FKektsQztFSXVLRTtJSm5LWSxXSXFLeUI7OztBSjVLdkM7RUkwS0U7SUpwS1ksWUl1S3FCOzs7QUoxS25DO0VJdUtFO0lKbktZLFlJc0swQjs7O0FKN0t4QztFSTBLRTtJQU1JOzs7O0FBUVI7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FDOUxBO0FBQUE7QUFBQTtBTEhFO0VLT0Y7SUFFSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FMbEJGO0VLSUY7SUFpQkk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFFRjtFQUNFOztBQUVGO0VIdEJxQjtFQVZuQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFRzRCQTtFQUNBO0VBQ0E7OztBQUlKO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQzlDQTtBQUFBO0FBQUE7QU5GRTtFTU1GO0lBRUk7SUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QU5mRjtFTUdGO0lBZUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBTjlCRjtFTWdDQTtJQUVJO0lBQ0E7SUFFQTs7O0FObENKO0VNNkJBO0lBUUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QU50REY7RU0rQ0E7SUFTSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7O0FONUROO0VNNENBO0lBb0JJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7QUFFRjtFQUNFOztBTmpGSjtFTWdGRTtJQUdJO0lBQ0E7OztBTmpGTjtFTTZFRTtJQU9JO0lBRUE7SUFDQTs7O0FOMUZOO0VNNkZFO0lBRUk7O0VBQ0E7SUFDRTtJQUNBOzs7QU4vRlI7RU0wRkU7SUFTSTs7O0FOdEdOO0VBWUU7SU0rRkk7O0VBQ0E7SUFDRTtJQUNBOzs7QUFJTjtFQUNFOztBTm5ISjtFTWtIRTtJQUdJO0lBQ0E7OztBTm5ITjtFTStHRTtJQU9JO0lBQ0E7OztBQUlOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FOdElGO0VNOEhBO0lBVUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBOzs7QU4zSUo7RU0ySEE7SUFtQkk7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FObEpKO0VNb0pFO0lBRUk7OztBTnRKTjtFTXlKRTtJQUVJO0lBQ0E7OztBTi9KTjtFTWtLRTtJQUVJOzs7QU5qS047RU0rSkU7SUFLSTs7O0FBR0o7RUFDRTtFQUNBOztBTjVLSjtFTTZLSTtJQUVJOzs7QUFLUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FONUxGO0VNb0xBO0lBVUk7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FOck1GO0VNOExBO0lBU0k7Ozs7QUFLTjtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUNsTkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FQakJBO0VPYUY7SVBQZ0IsU09ZYzs7O0FQZjVCO0VPVUY7SVBOZ0IsU09Xd0I7OztBUGxCdEM7RU9hRjtJUFBnQixXT2FnQjs7O0FQaEI5QjtFT1VGO0lQTmdCLFdPWXFCOzs7QVBuQm5DO0VPYUY7SUFRSTs7O0FQVkY7RU9jSTtJQUNFO0lBQ0E7OztBQUlOO0VBRUU7O0FQakNGO0VPK0JBO0lQekJjLFNPMEJnQjs7O0FQN0I5QjtFTzRCQTtJUHhCYyxTT3lCb0M7OztBQUVoRDtFTHZCbUI7RUFUbkI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUs4QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBOztBUG5ESjtFT2tDRTtJUDVCWSxPTzhCZ0I7OztBUGpDOUI7RU8rQkU7SVAzQlksT082QnFCOzs7QVBwQ25DO0VPa0NFO0lQNUJZLFFPK0JpQjs7O0FQbEMvQjtFTytCRTtJUDNCWSxRTzhCc0I7OztBUHJDcEM7RU9rQ0U7SVA1QlksT093Q2dCOzs7QVAzQzlCO0VPK0JFO0lQM0JZLE9PdUNxQjs7O0FQOUNuQztFT2tDRTtJUDVCWSxXTzBDb0I7OztBUDdDbEM7RU8rQkU7SVAzQlksV095Q3lCOzs7QUFNdkM7RUFDRTtFQUNBOztBQUVFO0VBQ0U7O0FBSU47RUFDRTtFQUNBOztBQUVFO0VBQ0U7OztBQVNSO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQ2hGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FSRUU7RVFJRTtJQUNFOztFQUNBO0lBQ0U7Ozs7QUFNUjtFQUdFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBOztBUm5DQTtFUXdCRjtJUmxCZ0IsT1FtQlk7OztBUnRCMUI7RVFxQkY7SVJqQmdCLE9Ra0JpQjs7O0FSekIvQjtFUXdCRjtJUmxCZ0IsUVFvQmE7OztBUnZCM0I7RVFxQkY7SVJqQmdCLFFRbUJrQjs7O0FSMUJoQztFUXdCRjtJUmxCZ0IsV1EyQmdCOzs7QVI5QjlCO0VRcUJGO0lSakJnQixXUTBCcUI7OztBQUluQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUY7RU52Q3FCO0VBVG5CO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VNNENBOzs7QUFPSjtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUM5REE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBVFRFO0VTYUY7SUFFSTtJQUNBOzs7QVRiRjtFU1VGO0lBTUk7SUFDQTs7OztBQU9KO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQzlCQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7O0FWVEE7RVVZSTtJQUNFOzs7QVZWTjtFVWdCSTtJQUNFOzs7QUFJTjtFQUNFOzs7QUFJSjtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUEiLCJmaWxlIjoiY29tbW9uL2NvbW1vbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKlxu44OV44Kp44Oz44OI5ZGo44KKXG4qXG4qL1xuXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Ob3RvK1NhbnMrSlA6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwJyk7XG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1MZXhlbmQ6d2dodEAxMDAuLjkwMCZkaXNwbGF5PXN3YXAnKTtcbi8vQGltcG9ydCB1cmwoJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0veWFrdWhhbmpwQDQuMC4xL2Rpc3QvY3NzL3lha3VoYW5qcC5jc3MnKTtcblxuLypcbm5vdG8gc2FucyB3ZWlnaHRcblxuUmVndWxhciA0MDBcbk1lZGl1bSA1MDBcblNlbWlCb2xkIDYwMFxuQm9sZCA3MDBcbkV4dHJhQm9sZCA4MDBcbkJsYWNrIDkwMFxuKi9cblxuLyouZm9udC1ub3Rvc2Fuc2pwe1xuICBmb250LWZhbWlseTogJ05vdG8gU2FucyBKUCcsIHNhbnMtc2VyaWY7XG59Ki9cblxuLmZvbnQtbGV4ZW5ke1xuICBmb250LWZhbWlseTogXCJMZXhlbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1vcHRpY2FsLXNpemluZzogYXV0bztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn0iLCIvKlxuKlxu44K544K/44Kk44Or44Oq44K744OD44OIXG4qXG4qL1xuXG5cbmEgaW1nIHtcbiAgICBib3JkZXItc3R5bGU6bm9uZTtcbn1cblxuaDEsaDIsaDMsaDQsaDUsaDYsdWwsb2wsbGksZGwsZHQsZGQsZmlndXJlLHB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxudWwsbGl7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59IiwiJHNjcmVlbl9zcDpcInNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweClcIjtcbiRzY3JlZW5fcGM6XCJzY3JlZW4gYW5kIChtaW4td2lkdGg6NzY4cHgpXCI7XG5cbi8qXG5sYXlvdXRcbiovXG5cbiRwY19taW5fd2lkdGg6MTIwMHB4O1xuJHBjX21heF93aWR0aDoxNDAwcHg7XG5cbi8qXG56LWluZGV4XG4qL1xuXG4kel9pbmRleF9oZWFkZXI6OTk5O1xuXG5cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLypcbnB444KSdnfjgavlpInmj5tcblxu44Km44Kk44Oz44OJ44Km5bmFMTQwMHB444Gr5a++44GX44Gm6KaB57Sg5bmFNTBweOOBruWgtOWQiFxuZ2V0dncoNTAsMTQwMCnjgajjgarjgotcbiovXG5AZnVuY3Rpb24gZ2V0dncoJHNpemUsICR2aWV3cG9ydDo3NTApe1xuICAkcmF0ZTogbWF0aC5kaXYoMTAwLCR2aWV3cG9ydCk7XG4gIEByZXR1cm4gJHJhdGUgKiAkc2l6ZSAqIDF2dztcbn1cblxuLy/vvIXjgpLov5TjgZlcbkBmdW5jdGlvbiBnZXRwZXIoJHNpemUsICRwYXJlbnQpe1xuICAkcmF0ZTogbWF0aC5kaXYoMTAwLCRwYXJlbnQpO1xuICBAcmV0dXJuICRyYXRlICogJHNpemUgKiAxJTtcbn1cblxuLy/ljYrliIbjga7jgrXjgqTjgrrjgpJweOOBp+i/lOOBmVxuQGZ1bmN0aW9uIGdldGhhbGYoJHNpemUpe1xuICBAcmV0dXJuICRzaXplICogMC41cHg7XG59XG5cbi8vcmVt44KS6L+U44GZXG5AZnVuY3Rpb24gZ2V0cmVtKCRzaXplLCAkYmFzZTogMTYpIHtcblx0QHJldHVybiBtYXRoLmRpdigkc2l6ZSwgJGJhc2UpICsgcmVtO1xufVxuXG4vL2xpbmUtaGVpZ2h044GuZW3jgpLoqIjnrpdcbkBmdW5jdGlvbiBnZXRsaGVtKCRmb250LXNpemUsICRsaW5lLWhlaWdodCkge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRsaW5lLWhlaWdodCwkZm9udC1zaXplKSArIGVtO1xufVxuXG4vL2xldHRlci1zcGFjaW5n44GuZW3jgpLoqIjnrpdcbkBmdW5jdGlvbiBnZXRsc2VtKCRmb250LXNpemUsICRweCkge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRweCwkZm9udC1zaXplKSArIGVtO1xufSIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLypcbuODoeODh+OCo+OCouOCr+OCqOODqlxu6KiY6L+w5L6LXG5ib2R5e1xuICBAaW5jbHVkZSBtcy13KCdtYXgnLDEyMDApe1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgfVxufVxuKi9cbkBtaXhpbiBtcy13KCRtYXhtaW4sJHZhbCl7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgjeyRtYXhtaW59LXdpZHRoOiN7JHZhbH1weCl7XG4gICAgQGNvbnRlbnQ7XG4gIH07XG59XG5cbi8qXG5JQ09OIEZPTlRcbiovXG5cbkBtaXhpbiBpY29ucy1mb250e1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gaWNvbnMteHsgY29udGVudDogXCJcXEVBMDRcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWZhY2Vib29reyBjb250ZW50OiBcIlxcRUEwNVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtaW5zdGFncmFteyBjb250ZW50OiBcIlxcRUEwNlwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMteW91dHViZXsgY29udGVudDogXCJcXEVBMDdcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWxpbmV7IGNvbnRlbnQ6IFwiXFxFQTA4XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cblxuIiwiQHVzZSBcIi4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5cbi8qXG4qXG7lhajjg5rjg7zjgrjjgavlhbHmnInjgZXjgozjgovjgrnjgr/jgqTjg6tcbipcbiovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBSRVNQT05TSVZFXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5odG1sLGJvZHl7XG5cdHdpZHRoOjEwMCU7XG59XG5cbmh0bWx7XG5cdGhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3c6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG5ib2R5e1xuICBmb250LWZhbWlseTogJ05vdG8gU2FucyBKUCcsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwicGFsdFwiO1xuICAvKmlwYWQg5paH5a2X44K144Kk44K65a++562WKi9cblx0dGV4dC1zaXplLWFkanVzdDogbm9uZTtcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lO1xufVxuXG5tYWlue1xuXHR3aWR0aDoxMDAlO1xuXHRkaXNwbGF5OmJsb2NrO1xuICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICBtaW4td2lkdGg6IHZhcnMuJHBjX21pbl93aWR0aDtcbiAgfVxufVxuXG4vKlxu5YWo6KaB57Sg44GrYm9yZGVyLWJveFxuKi9cbiosICo6YmVmb3JlLCAqOmFmdGVye1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzpib3JkZXItYm94O1xufVxuXG5icntcbiAgJi5zcHtcbiAgICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICYucGN7XG4gICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5he1xuXHRjb2xvcjogaW5oZXJpdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5pbWd7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdG1heC13aWR0aDoxMDAlO1xufVxuXG4uaW5saW5lLWJsb2Nre1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi50ZXh0LWFsaWduLXJpZ2h0e1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50ZXh0LWFsaWduLWxlZnR7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udGV4dC1hbGlnbi1jZW50ZXJ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17XG5cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFBDXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fcGN9e1xuXG59IiwiQHVzZSBcIi4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuXG5AbWl4aW4gcGMge1xuICBAbWVkaWEgb25seSAje3ZhcnMuJHNjcmVlbl9wY30geyBAY29udGVudDsgfVxufVxuQG1peGluIHNwIHtcbiAgQG1lZGlhIG9ubHkgI3t2YXJzLiRzY3JlZW5fc3B9IHsgQGNvbnRlbnQ7IH1cbn1cbkBtaXhpbiByZXNwKCRhdHIsICRwYywgJHNwKSB7XG4gIEBpbmNsdWRlIHBjIHsgI3skYXRyfTogJHBjOyB9XG4gIEBpbmNsdWRlIHNwIHsgI3skYXRyfTogJHNwOyB9XG59XG5cbkBtaXhpbiBob3ZlcntcbiAgQG1lZGlhKGhvdmVyOmhvdmVyKSB7XG4gICAgJjpob3ZlcntcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufSIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL2ljb25zLmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi8uLi9mb250cy9pY29ucy5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKSxcbiAgICAgICAgdXJsKCcuLi8uLi9mb250cy9pY29ucy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnLi4vLi4vZm9udHMvaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL2ljb25zLnN2ZyNpY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29ucy1cIl0sIFtjbGFzcyo9XCIgaWNvbnMtXCJde1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaWNvbnMtYXJyb3ctYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwMVwiIH1cbi5pY29ucy1hcnJvdy1iOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTAyXCIgfVxuLmljb25zLWJsYW5rOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTAzXCIgfVxuLmljb25zLXBsYXk6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDRcIiB9XG4uaWNvbnMteDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwNVwiIH1cbi5pY29ucy1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwNlwiIH1cbi5pY29ucy1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDdcIiB9XG4uaWNvbnMteW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwOFwiIH1cbi5pY29ucy1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTA5XCIgfVxuXG4iLCIvKlxubWl4aW5cbiovXG5cbkBtaXhpbiBpY29ucy1mb250e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBpY29ucy1hcnJvdy1hIHsgY29udGVudDogXCJcXEVBMDFcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWFycm93LWIgeyBjb250ZW50OiBcIlxcRUEwMlwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtYmxhbmsgeyBjb250ZW50OiBcIlxcRUEwM1wiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtcGxheSB7IGNvbnRlbnQ6IFwiXFxFQTA0XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy14IHsgY29udGVudDogXCJcXEVBMDVcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWZhY2Vib29rIHsgY29udGVudDogXCJcXEVBMDZcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWluc3RhZ3JhbSB7IGNvbnRlbnQ6IFwiXFxFQTA3XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy15b3V0dWJlIHsgY29udGVudDogXCJcXEVBMDhcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWxpbmUgeyBjb250ZW50OiBcIlxcRUEwOVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG4iLCJAdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vdmFyc1wiIGFzIHZhcnM7XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vZnVuY3Rpb25cIiBhcyBmdW5jO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL21peGluXCIgYXMgbWl4aW47XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vaWNvbnNcIiBhcyBpY29ucztcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuXG4vKlxuKlxu5YWx5pyJ44OY44OD44OA44O8XG4qXG4qL1xuXG5cbkBrZXlmcmFtZXMgYmFyMS1vbiB7XG4gIDAle1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbiAgfVxuICA1MCV7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDEwMCV7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgxNTVkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJhcjEtb2ZmIHtcbiAgMCV7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgxNTVkZWcpO1xuICB9XG4gIDUwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYXIyLW9uIHtcbiAgMCV7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gIH1cbiAgNTAle1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICAxMDAle1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoLTE1NWRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYmFyMi1vZmYge1xuICAwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKC0xNTVkZWcpO1xuICB9XG4gIDUwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBBTExcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbnNlY3Rpb24uaGVhZGVyeyAvL3Jlc2V0XG4gIGJ1dHRvbntcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBjb2xvcjppbmhlcml0O1xuICB9XG59XG5cbnNlY3Rpb24uaGVhZGVye1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6MDtcbiAgei1pbmRleDogdmFycy4kel9pbmRleF9oZWFkZXI7XG4gIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgIG1pbi13aWR0aDogdmFycy4kcGNfbWluX3dpZHRoO1xuICB9XG4gICYuLXBjLWFscGhhe1xuICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOjA7XG4gICAgICBsZWZ0OjA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlYWRlcntcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDowO1xuICAgICAgICAgIGxlZnQ6MDtcbiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCMyZTJlMmUsLjIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaGVhZGVyLWxvZ297XG4gICAgICAgIGZpbHRlcjogaW52ZXJ0KDEwMCUpIGJyaWdodG5lc3MoMTAwJSk7XG4gICAgICB9XG4gICAgICBuYXYuaGVhZGVyLW5hdntcbiAgICAgICAgJiA+IHVse1xuICAgICAgICAgICYgPiBsaXtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi4tc3AtYWxwaGF7XG4gICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6MDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgJi5tZW51LW9wZW5lZHtcbiAgICAgICAgLmhlYWRlci1sb2dve1xuICAgICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaGVhZGVye1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgbGVmdDowO1xuICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzJlMmUyZSwuMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5oZWFkZXItbG9nb3tcbiAgICAgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSkgYnJpZ2h0bmVzcygyMDAlKTtcbiAgICAgICAgdHJhbnNpdGlvbjouNHM7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC4ycztcbiAgICAgIH1cbiAgICAgIC5oZWFkZXItbWVudS10b2dnbGV7XG4gICAgICAgICY6OmJlZm9yZSwmOjphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMnM7XG4gICAgICAgIH1cbiAgICAgICAgJltkYXRhLW9wZW49XCJ0cnVlXCJde1xuICAgICAgICAgICY6OmJlZm9yZSwmOjphZnRlcntcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYuLWxpZ2h0Ymx1ZXtcbiAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgIC5oZWFkZXItbWVudXtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZjNmMztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi4tYmVpZ2V7XG4gICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAuaGVhZGVyLW1lbnV7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWU4ZTA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYuLXRlY2h7XG4gICAgaGVhZGVye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICB9XG4gIH1cbiAgaGVhZGVye1xuICAgIEBpbmNsdWRlIG1lZGlhLnJlc3AoaGVpZ2h0LDgwcHgsNTBweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIC5oZWFkZXItbG9nb3tcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDowO1xuICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgd2lkdGg6IDEyNXB4O1xuICAgICAgbGVmdDpmdW5jLmdldHBlcigxMDAsMTQwMCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgd2lkdGg6IGZ1bmMuZ2V0aGFsZigxNTUpO1xuICAgICAgbGVmdDpmdW5jLmdldHZ3KDQwKTtcbiAgICB9XG4gICAgaDEsYSxwaWN0dXJle1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17XG5cbiAgc2VjdGlvbi5oZWFkZXJ7XG4gICAgLmhlYWRlci1sb2dve1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogdmFycy4kel9pbmRleF9oZWFkZXIgKyAyO1xuICAgIH1cbiAgICAuaGVhZGVyLW1lbnUtdG9nZ2xle1xuICAgICAgd2lkdGg6IGNhbGMoMzBweCArIGZ1bmMuZ2V0dncoODApKTtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDowO1xuICAgICAgcmlnaHQ6MDtcbiAgICAgIHotaW5kZXg6IHZhcnMuJHpfaW5kZXhfaGVhZGVyICsgNDtcbiAgICAgIHBhZGRpbmc6MCBmdW5jLmdldHZ3KDQwKTtcbiAgICAgICYtYmFye1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDo1MCU7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgfVxuICAgICAgJjo6YmVmb3JlLCY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6NTAlO1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgfVxuICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgICAgIGFuaW1hdGlvbjogYmFyMS1vZmYgMC42cyBmb3J3YXJkcztcbiAgICAgIH1cbiAgICAgICY6OmFmdGVye1xuICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICAgICAgYW5pbWF0aW9uOiBiYXIyLW9mZiAwLjZzIGZvcndhcmRzO1xuICAgICAgfVxuICAgICAgJltkYXRhLW9wZW49XCJ0cnVlXCJde1xuICAgICAgICAuaGVhZGVyLW1lbnUtdG9nZ2xlLWJhcntcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAvL3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICBhbmltYXRpb246IGJhcjEtb24gMC42cyBmb3J3YXJkcztcbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAvL3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgIGFuaW1hdGlvbjogYmFyMi1vbiAwLjZzIGZvcndhcmRzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8v6ZaL6ZaJ44Oh44OL44Ol44O844Kz44Oz44OG44OKXG4gICAgLmhlYWRlci1tZW51e1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOjA7XG4gICAgICBsZWZ0OjA7XG4gICAgICB6LWluZGV4OiB2YXJzLiR6X2luZGV4X2hlYWRlciArIDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTIwc3ZoO1xuICAgICAgbWF4LWhlaWdodDogMTIwc3ZoO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgICAvL1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgLjVzLHZpc2liaWxpdHkgLjVzLG1heC1oZWlnaHQgLjVzIGN1YmljLWJlemllcigwLjM5LCAwLjU3NSwgMC41NjUsIDEpO1xuICAgICAgJltoaWRkZW5de1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC5oZWFkZXItbWVudS1pbm5lcntcbiAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjVweCk7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1pbm5lcntcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzo0MHB4IDAgY2FsYygyMHN2aCArIDcwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzLG9wYWNpdHkgLjVzIGxpbmVhcjtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjI1cztcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy/jgrDjg63jg4rjg5NcbiAgICBuYXYuaGVhZGVyLW5hdntcbiAgICAgIG1hcmdpbjowIGF1dG87XG4gICAgICAmID4gdWx7XG4gICAgICAgIHBhZGRpbmctdG9wOjMwcHg7XG4gICAgICAgICYgPiBsaXtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgJiA+IGF7XG4gICAgICAgICAgICBwYWRkaW5nOjE1cHggZnVuYy5nZXR2dyg0MCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBpY29ucy5pY29ucy1hcnJvdy1hO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzO1xuICAgICAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmhlYWRlci1uYXYtZHJvcGRvd257IC8v44OJ44Ot44OD44OX44OA44Km44Oz44Oh44OL44Ol44O844GM44GC44KLbGlcbiAgICAgICAgICAgICYgPiBidXR0b24uYWNjb3JkaW9uLXRyaWdnZXJ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiA2N3B4O1xuICAgICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJde1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICAmICsgYXtcbiAgICAgICAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgPiBhe1xuICAgICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaGVhZGVyLW5hdi1kcm9wZG93bi1tZW51eyAvL+S4i+WxpOODoeODi+ODpeODvFxuICAgICAgICAgICAgICAmLmFjY29yZGlvbi1jb250ZW50c3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0O1xuICAgICAgICAgICAgICAgICZbaGlkZGVuXXtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJi1pbm5lcntcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICYgPiB1bHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgJiBsaXtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxMHB4LGZ1bmMuZ2V0dncoMzApLDE1cHgpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmMWYxZjE7XG4gICAgICAgICAgICAgICAgICAgICYgPiBhe1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6MnB4IGZ1bmMuZ2V0dncoNDApIDJweCBmdW5jLmdldHZ3KDUwKTtcbiAgICAgICAgICAgICAgICAgICAgICAvL3RleHQtaW5kZW50OiAtMC43ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFBDXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fcGN9e1xuXG4gIHNlY3Rpb24uaGVhZGVye1xuICAgIGhlYWRlcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGZ1bmMuZ2V0cGVyKDQwLDE0MDApO1xuICAgIH1cbiAgICAuaGVhZGVyLW1lbnUtdG9nZ2xle1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJi4tcGMtYWxwaGF7XG4gICAgICAuaGVhZGVyLW5hdi1kcm9wZG93bnsgLy/jg4njg63jg4Pjg5fjg4Djgqbjg7Pjg6Hjg4vjg6Xjg7zjgYzjgYLjgotsaVxuICAgICAgICBAaW5jbHVkZSBtZWRpYS5ob3ZlcntcbiAgICAgICAgICAmID4gYXtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy/plovplonjg6Hjg4vjg6Xjg7zjgrPjg7Pjg4bjg4pcbiAgICAuaGVhZGVyLW1lbnV7XG4gICAgICBvcmRlcjoxO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgLmhlYWRlci1tZW51LWlubmVye1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDg4cHg7XG4gICAgICAgIEBpbmNsdWRlIG1peGluLm1zLXcoJ21heCcsMTMwMCl7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvL+OCsOODreODiuODk1xuICAgIG5hdi5oZWFkZXItbmF2e1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgJiA+IHVse1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6MCA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICYgPiBsaXtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xMjVlbTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICYuLWN1cnJlbnR7XG4gICAgICAgICAgICAmID4gYXtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYgPiBhe1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmNvbG9yIC4ycyxvcGFjaXR5IC4ycztcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLmhvdmVye1xuICAgICAgICAgICAgICAvL29wYWNpdHk6IC43O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3BhbntcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBwYWRkaW5nOjEwcHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5oZWFkZXItbmF2LWRyb3Bkb3dueyAvL+ODieODreODg+ODl+ODgOOCpuODs+ODoeODi+ODpeODvOOBjOOBguOCi2xpXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmID4gYnV0dG9uLmFjY29yZGlvbi10cmlnZ2Vye1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJiA+IGF7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEuaG92ZXJ7XG4gICAgICAgICAgICAgICYgPiBhe1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh0YW4oNjBkZWcpICogMTJweCAvIDIpO1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAsIDUwJSAxMDAlKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6LTEwcHg7XG4gICAgICAgICAgICAgICAgICB0b3A6NTAlO1xuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSwtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmhlYWRlci1uYXYtZHJvcGRvd24tbWVudXtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5oZWFkZXItbmF2LWRyb3Bkb3duLW1lbnUtaW5uZXJ7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgLjRzLG9wYWNpdHkgLjRzLHRyYW5zZm9ybSAuNHMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5oZWFkZXItbmF2LWRyb3Bkb3duLW1lbnV7IC8v5LiL5bGk44Oh44OL44Ol44O8XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOjgwcHg7XG4gICAgICAgICAgICAgIHBhZGRpbmctdG9wOjEwcHg7XG5cbiAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAmLi1wb3MtY2VudGVye1xuICAgICAgICAgICAgICAgIGxlZnQ6NTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICYuLXBvcy1jZW50ZXItcmlnaHR7XG4gICAgICAgICAgICAgICAgbGVmdDo1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygtNTAlIC0gMTAwcHgpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmLi1wb3MtcmlnaHR7XG4gICAgICAgICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWChmdW5jLmdldHZ3KDEwMCwxNDAwKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJi5hY2NvcmRpb24tY29udGVudHN7XG4gICAgICAgICAgICAgICAgJltoaWRkZW5de1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICYtaW5uZXJ7XG4gICAgICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMmUyZTJlLC4yKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzowIGZ1bmMuZ2V0dncoMTAwLDE0MDApO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICAgICAgJi4tc3BlYWtlcntcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzcwNmM2NywuOCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuLWVhcnBob25le1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjZjM5ODAwLC44KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNDBweCk7XG4gICAgICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAmID4gdWx7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGdhcDowIDM1cHg7XG4gICAgICAgICAgICAgICAgICAmIGxpe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGF7XG4gICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMnM7XG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEuaG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uLmFjY29yZGlvbi10cmlnZ2Vye1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vaWNvbnNcIiBhcyBpY29ucztcblxuLypcbipcbuWFseacieODleODg+OCv+ODvFxuKlxuKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIEFMTFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuc2VjdGlvbi5mb290ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjp3aGl0ZTtcbiAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgcGFkZGluZzoxMDBweCBmdW5jLmdldHBlcigxMDAsMTQwMCkgNDBweDtcbiAgICBtaW4td2lkdGg6IHZhcnMuJHBjX21pbl93aWR0aDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICBwYWRkaW5nOmZ1bmMuZ2V0aGFsZigxMTMpIDAgZnVuYy5nZXRoYWxmKDEwOSk7XG4gIH1cbiAgLmZvb3Rlci1jb250ZW50LTAxe1xuICAgIC8vQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLDEyMHB4IDAgMTAwcHgsNzBweCAwIDUwcHgpO1xuICAgICYtY29sdW1uc3tcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItbG9nby1raWtpcHBhe1xuICAgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSkgYnJpZ2h0bmVzcygyMDAlKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3Aod2lkdGgsMjI0cHgsZnVuYy5nZXRoYWxmKDM0OCkpO1xuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItdHh0LTAxe1xuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3AoZm9udC1zaXplLDEzcHgsMTFweCk7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKG1hcmdpbi10b3AsMjNweCwxNHB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgIH1cbiAgICAuZm9vdGVyLWduYXZ7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIHVse1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6MCBmdW5jLmdldHZ3KDgwLDE0MDApO1xuICAgICAgICAmID4gbGl7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICAgICAgICAmID4gYXtcbiAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMnM7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS5ob3ZlcntcbiAgICAgICAgICAgICAgb3BhY2l0eTouNztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLmZvb3Rlci1uYXYtZHJvcGRvd24tbWVudXtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOjMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICB1bHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGZ1bmMuZ2V0bGhlbSgxNCwyMyk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OlwiXCI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICB0b3A6MThweDtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6MDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6NnB4IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mb290ZXItY29udGVudC0wMntcbiAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKHBhZGRpbmctdG9wLDEwOXB4LDY3cHgpO1xuICAgICYtY29sdW1uc3tcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItbG9nby1zaGlvbm9naXtcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDEwMCUpIGJyaWdodG5lc3MoMjAwJSk7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKHdpZHRoLDI1MnB4LDE5MHB4KTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLWxpbmtze1xuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIG1hcmdpbi10b3A6MjVweDtcbiAgICAgIH1cbiAgICAgIHVse1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgICAgICB3aWR0aDogMzMwcHg7XG4gICAgICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICBsaXtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgICAgICAgIHBhZGRpbmc6NnB4IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpe1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhe1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEucmVzcChmb250LXNpemUsMTRweCwxNHB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMnM7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICAgICAgICAgICAgcGFkZGluZzowIDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgICAgICAgICAgcGFkZGluZzowIDE0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmW3RhcmdldD1cIl9ibGFua1wiXXtcbiAgICAgICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbnMuaWNvbnMtYmxhbms7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEucmVzcChmb250LXNpemUsMTBweCwxMHB4KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKG1hcmdpbi1sZWZ0LDRweCw0cHgpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEuaG92ZXJ7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLWNvcHlyaWdodHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3AoZm9udC1zaXplLDE0cHgsMTFweCk7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKG1hcmdpbi10b3AsMjBweCwxNXB4KTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFNQXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fc3B9e1xuXG4gIHNlY3Rpb24uZm9vdGVye31cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFBDXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fcGN9e1xuXG4gIHNlY3Rpb24uZm9vdGVye31cbn1cbiIsIkB1c2UgXCIuLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9mdW5jdGlvblwiIGFzIGZ1bmM7XG5AdXNlIFwiLi4vX2ZvdW5kYXRpb24vbWl4aW5cIiBhcyBtaXhpbjtcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL2ljb25zXCIgYXMgaWNvbnM7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBBTExcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi50by10b3B7XG4gIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOjMwcHg7XG4gICAgbGVmdDotNjBweDtcbiAgICB6LWluZGV4OiB2YXJzLiR6X2luZGV4X2hlYWRlciAtIDEwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246bGVmdCAuNHM7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci10b3A6IDEuNXB4IHNvbGlkICNmNWY0ZjI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gICYuLXNob3d7XG4gICAgbGVmdDowO1xuICB9XG4gICY6OmJlZm9yZXtcbiAgICBAaW5jbHVkZSBpY29ucy5pY29ucy1hcnJvdy1iO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17fVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUENcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9wY317fSIsIkB1c2UgXCIuLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9mdW5jdGlvblwiIGFzIGZ1bmM7XG5AdXNlIFwiLi4vX2ZvdW5kYXRpb24vbWl4aW5cIiBhcyBtaXhpbjtcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gQUxMXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uZmxvYXRpbmctYnRuc3tcbiAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIC8vYm90dG9tOmNsYW1wKDUwcHgsOHZoLDEwdmgpO1xuICAgIC8vYm90dG9tOjA7XG4gICAgdG9wOjUwJTtcbiAgICByaWdodDoyMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB6LWluZGV4OiB2YXJzLiR6X2luZGV4X2hlYWRlciArIDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6MTBweDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOjEwcHg7XG4gICAgbGVmdDowO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IHZhcnMuJHpfaW5kZXhfaGVhZGVyICsgMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6Y2xhbXAoMHB4LGZ1bmMuZ2V0dncoMTApLDEwcHgpO1xuICAgIHBhZGRpbmc6MCBjbGFtcCgwcHgsZnVuYy5nZXR2dygxMCksMTBweCk7XG4gIH1cbiAgLmZsb2F0aW5nLWlubmVyLWJ0bi13cmFwcGVye1xuICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIC8vYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gIH1cbiAgLmZsb2F0aW5nLWJ0bntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjoxcHggc29saWQgI2U5ZTllOTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB3aWR0aDogNDVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIHBhZGRpbmc6MTVweCAwO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggLjJzO1xuICAgICAgJjpub3QoLi1kcm9wZG93bil7XG4gICAgICAgIC1tcy13cml0aW5nLW1vZGU6IHRiLXJsO1xuICAgICAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMTBweCxmdW5jLmdldHZ3KDIyKSwxM3B4KTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMi41cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzowO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAuMnM7XG4gICAgfVxuICAgICYuLXllbGxvd3tcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGJkMDA7XG4gICAgICBib3JkZXItY29sb3I6ICNmNGJkMDA7XG4gICAgfVxuICAgICYuLWRyb3Bkb3due1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nOjhweCAwIDhweCAxMHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgLy9wYWRkaW5nOjAgMTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgcGFkZGluZzowIGNsYW1wKDVweCxmdW5jLmdldHZ3KDEwKSwxMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi4tb3BlbntcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICB3aWR0aDo0NXB4ICsgNDUgKyA0NSArIDEwICsgMTAgIWltcG9ydGFudDtcbiAgICAgICAgLmZsb2F0aW5nLWlubmVyLWJ0bi4tdG9nZ2xle1xuICAgICAgICAgIHdpZHRoOiA0NXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWluLXdpZHRoOiA0NXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgICBoZWlnaHQ6IDQwcHggKyA0MCArIDQwICsgMTUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEuaG92ZXJ7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICAgICAgd2lkdGg6IDU1cHg7XG4gICAgICAgIC5mbG9hdGluZy1pbm5lci1idG4uLXRvZ2dsZXtcbiAgICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDU1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmljb257XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mbG9hdGluZy1pbm5lci1idG57XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgICAtbXMtd3JpdGluZy1tb2RlOiB0Yi1ybDtcbiAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG4gICAgICB3aWR0aDogNDVweDtcbiAgICAgIG1pbi13aWR0aDogNDVweDtcbiAgICAgIHBhZGRpbmc6MTVweCAwO1xuICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuMnMsbWluLXdpZHRoIC4ycztcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6MCBjbGFtcCg1cHgsZnVuYy5nZXR2dygxMCksMTBweCk7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDEpe1xuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIG9yZGVyOjE7XG4gICAgICB9XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDMpe1xuICAgICAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgICAgIG9yZGVyOjI7XG4gICAgICAgIG1hcmdpbi10b3A6NXB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmOm50aC1jaGlsZCgyKXtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnBje1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhLnNwe1xuICAgICAgICBvcmRlcjozO1xuICAgICAgfVxuICAgIH1cbiAgICAmOm5vdCguLXRvZ2dsZSl7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHdoaXRlLC43KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh3aGl0ZSwuOSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRlbC1idG57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OjA7XG4gICAgei1pbmRleDogMjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEucGN7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAucGxhbi1idG57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OjA7XG4gICAgei1pbmRleDogMjtcbiAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBTUFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhICN7dmFycy4kc2NyZWVuX3NwfXt9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBQQ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhICN7dmFycy4kc2NyZWVuX3BjfXt9IiwiQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vaWNvbnNcIiBhcyBpY29ucztcblxuLypcbipcbuOCs+ODs+ODhuODs+ODhOW5heW3puWPs+S9meeZveOBquOBqeiqv+aVtOOBl+OBn+axjueUqOODnOODg+OCr+OCuVxuKlxuKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIEFMTFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmNvbW1vbi1yb3VuZC1idG57XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOmJsYWNrO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLDI1cHggNDBweCwyMHB4IDI1cHgpO1xuICBAaW5jbHVkZSBtZWRpYS5yZXNwKGZvbnQtc2l6ZSwxOHB4LDEycHgpO1xuICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNzVlbTtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYS5ob3ZlcntcbiAgICAmLi1hcnJvd3tcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDEwJSkgc2NhbGUoMS4xKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi4tYXJyb3d7XG4gICAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLDI1cHggODBweCAyNXB4IDQwcHgsMjBweCA1NXB4IDIwcHggMjVweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6OmFmdGVye1xuICAgICAgQGluY2x1ZGUgaWNvbnMuaWNvbnMtYXJyb3ctYTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3Aod2lkdGgsNDZweCwzMnB4KTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3AoaGVpZ2h0LDQ2cHgsMzJweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGNvbG9yOmJsYWNrO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDo1MCU7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKHJpZ2h0LDE3cHgsMTJweCk7XG4gICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLnJlc3AoZm9udC1zaXplLDE1cHgsMTJweCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuMmVtO1xuICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLHBhZGRpbmctbGVmdCAuMnM7XG4gICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIH1cbiAgfVxuICAmLi1vcmFuZ2V7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ODIwNztcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICAmLi1hcnJvd3tcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb2xvcjojZjU4MjA3O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLi1icm93bntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzA2YzY3O1xuICAgIGNvbG9yOndoaXRlO1xuICAgICYuLWFycm93e1xuICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgIGNvbG9yOiM3MDZjNjc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBTUFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhICN7dmFycy4kc2NyZWVuX3NwfXt9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBQQ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhICN7dmFycy4kc2NyZWVuX3BjfXt9IiwiQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vaWNvbnNcIiBhcyBpY29ucztcblxuLypcbipcbuOCs+ODs+ODhuODs+ODhOW5heW3puWPs+S9meeZveOBquOBqeiqv+aVtOOBl+OBn+axjueUqOODnOODg+OCr+OCuVxuKlxuKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIEFMTFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmNvbW1vbi1jaXJjbGUtYXJyb3ctaG92ZXJ7XG4gIEBpbmNsdWRlIG1lZGlhLmhvdmVye1xuICAgIC5jb21tb24tY2lyY2xlLWFycm93e1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07XG4gICAgICAmOjpiZWZvcmV7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNvbW1vbi1jaXJjbGUtYXJyb3d7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3Aod2lkdGgsNDZweCwyM3B4KTtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChoZWlnaHQsNDZweCwyM3B4KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6YmxhY2s7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AoZm9udC1zaXplLDE2cHgsOHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOnBhZGRpbmctbGVmdCAuMnM7XG4gIC8vdHJhbnNpdGlvbi1kZWxheTogLjJzO1xuICAmOjpiZWZvcmV7XG4gICAgY29udGVudDpcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnM7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxuICAmOjphZnRlcntcbiAgICBAaW5jbHVkZSBpY29ucy5pY29ucy1hcnJvdy1hO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17fVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUENcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9wY317fSIsIkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9mdW5jdGlvblwiIGFzIGZ1bmM7XG5AdXNlIFwiLi4vLi4vX2ZvdW5kYXRpb24vbWl4aW5cIiBhcyBtaXhpbjtcbkB1c2UgXCIuLi8uLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuQHVzZSBcIi4uLy4uL19mb3VuZGF0aW9uL2ljb25zXCIgYXMgaWNvbnM7XG5cbi8qXG4qXG7jgrPjg7Pjg4bjg7Pjg4TluYXlt6blj7PkvZnnmb3jgarjganoqr/mlbTjgZfjgZ/msY7nlKjjg5zjg4Pjgq/jgrlcbipcbiovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBBTExcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5jb21tb24tY29udGVudHMtYm94e1xuICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW4taW5saW5lOmF1dG87XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEuc3B7XG4gICAgd2lkdGg6IGZ1bmMuZ2V0dncoNjcwKTtcbiAgICBtYXJnaW4taW5saW5lOmF1dG87XG4gIH1cbn1cblxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFNQXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fc3B9e31cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFBDXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgI3t2YXJzLiRzY3JlZW5fcGN9e30iLCJAdXNlIFwiLi4vX2ZvdW5kYXRpb24vdmFyc1wiIGFzIHZhcnM7XG5AdXNlIFwiLi4vX2ZvdW5kYXRpb24vZnVuY3Rpb25cIiBhcyBmdW5jO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL21peGluXCIgYXMgbWl4aW47XG5AdXNlIFwiLi4vX2ZvdW5kYXRpb24vbWVkaWFcIiBhcyBtZWRpYTtcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9pY29uc1wiIGFzIGljb25zO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gQUxMXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uaWNvbi1nd3tcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDApO1xuICAmLi1wYy13aGl0ZXtcbiAgICBAaW5jbHVkZSBtZWRpYS5wY3tcbiAgICAgIC5nYW1tYS1jbHtcbiAgICAgICAgZmlsbDojRkZGRkZGO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLi1zcC13aGl0ZXtcbiAgICBAaW5jbHVkZSBtZWRpYS5zcHtcbiAgICAgIC5nYW1tYS1jbHtcbiAgICAgICAgZmlsbDojRkZGRkZGO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzdmd7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17fVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUENcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9wY317fSJdfQ== */