/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

#social {
  width: 960px;
  margin: auto;
  margin-top: 16px;
}

@media screen and (max-width: 59.99em) {
  #social {
    display: none;
  }
}

#social .addthis_toolbox {
  margin-left: 300px;
}

#social .addthis_button_twitter_follow_native,
#social .addthis_button_google_plusone {
  margin-left: 8px !important;
}

#social .atc_s {
  margin-left: 12px !important;
}

/********************************************************
* Header
********************************************************/
#header {
  padding-top: 16px;
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #header {
    padding-top: 8px;
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (min-width: 60em) {
  #header {
    background-image: none;
    background-size: 0;
    background-image: none !important;
  }
}

#banner {
  height: 86px;
}

@media screen and (max-width: 440px) {
  #banner {
    height: 59px;
  }
}

@media screen and (max-width: 320px) {
  #banner {
    height: 37px;
  }
}

#banner h1 {
  padding: 0;
  margin: 0;
  position: relative;
}

@media screen and (min-width: 60em) {
  #banner h1 {
    z-index: -1;
  }
}

#banner picture {
  display: block;
  height: 74px;
}

@media screen and (max-width: 440px) {
  #banner picture {
    height: 59px;
  }
}

@media screen and (max-width: 320px) {
  #banner picture {
    height: 37px;
  }
}

#banner img.logo {
  left: 50%;
  transform: translateX(-50%);
  position: absolute;
  height: auto;
  cursor: pointer;
  width: calc(100% - 110px);
  max-width: 414px;
}

@media screen and (max-width: 440px) {
  #banner img.logo {
    max-width: 331px;
  }
}

@media screen and (max-width: 320px) {
  #banner img.logo {
    max-width: 207px;
  }
}

#banner .appstore-logo, #banner .awards {
  position: absolute;
  top: 2px;
}

@media screen and (max-width: 59.99em) {
  #banner .appstore-logo, #banner .awards {
    display: none;
  }
}

#banner .appstore-logo {
  width: 150px;
  right: 0;
}

#banner .awards {
  width: 67px;
  right: 153px;
}

@keyframes slideRight {
  0% {
    transform: translateX(-100%);
    display: block;
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes slideLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.slicknav_menu {
  display: none;
  position: relative;
  background: transparent !important;
  padding: 0 !important;
}

@media (pointer: coarse) and (hover: none) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

@media screen and (max-width: 48.615em) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

.slicknav_menu .slicknav_btn {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  padding: 0.5em;
  margin: 0 0 0 10px;
  font-size: 1rem !important;
}

.slicknav_menu .slicknav_btn .slicknav_menutxt {
  display: none;
}

.slicknav_menu .slicknav_btn .slicknav_icon {
  margin: 0;
}

.slicknav_menu .slicknav_nav {
  display: none;
  font-size: 1em !important;
  width: auto;
  float: left;
  position: absolute;
  z-index: 999999;
  animation-timing-function: ease-in-out;
  animation-duration: 300ms;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}

.slicknav_menu .slicknav_nav.slicknav_initialising {
  display: none !important;
}

.slicknav_menu .slicknav_nav.slicknav_hiding {
  display: block;
  animation-name: slideLeft;
}

.slicknav_menu .slicknav_nav.slicknav_showing {
  animation-name: slideRight;
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_shown {
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_hidden {
  display: none !important;
}

.slicknav_menu .slicknav_nav ul {
  overflow: hidden;
}

.slicknav_menu .slicknav_nav ul.slicknav_hiding, .slicknav_menu .slicknav_nav ul.slicknav_hidden {
  max-height: 0;
  transition: max-height 300ms cubic-bezier(0, 1, 0, 1);
}

.slicknav_menu .slicknav_nav ul.slicknav_showing, .slicknav_menu .slicknav_nav ul.slicknav_shown {
  max-height: 9999px;
  transition: max-height 300ms cubic-bezier(1, 0, 1, 0);
}

.slicknav_menu .slicknav_nav li a {
  position: relative;
  z-index: 1;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li a:hover {
  border-radius: inherit;
  background: inherit;
  color: inherit;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li > a {
  padding-top: 10px;
  padding-bottom: 10px;
}

.slicknav_menu .slicknav_nav > ul {
  z-index: 1;
}

.slicknav_menu .slicknav_nav > li > a {
  padding-right: 40px;
}

.slicknav_menu .slicknav_nav:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  background-color: #222;
  opacity: 0.95;
  border-radius: 0 10px 0 0;
}

.slicknav_menu .slicknav_nav a.basket-cta span {
  display: block;
}

.slicknav_menu .slicknav_nav a.basket-cta:after {
  display: none;
}

.nav {
  margin-right: 2px;
  /* fix for megamenu overspilling 2px */
}

body.fullscreen .nav {
  display: none !important;
}

@media (pointer: coarse) and (hover: none) {
  .nav {
    margin-right: 0;
  }
}

@media screen and (max-width: 48.615em) {
  .nav {
    margin-right: 0;
  }
}

.nav li .icon {
  position: absolute;
  right: 0;
  z-index: 2;
}

.nav li.android,
.nav li.apple {
  position: relative;
}

.nav li.android .icon {
  background: url("/images/graphics/android_logo_icon.png") top right no-repeat !important;
  width: 34px;
  height: 30px;
}

.nav li.apple .icon {
  background: url("/images/graphics/apple_logo_icon.png") top right no-repeat !important;
  width: 25px;
  height: 30px;
  margin-right: 3px;
}

.nav > .login-cta-container {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > .login-cta-container {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > .login-cta-container {
    display: block;
  }
}

body.accounts-disabled .nav > .login-cta-container {
  display: none !important;
}

.nav > .login-cta-container a {
  position: relative;
  display: block;
}

.nav > .login-cta-container a span {
  display: none;
}

.nav > .login-cta-container a:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  content: '';
  position: absolute;
  right: 10px;
  background-image: url("/images/graphics/user.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

@media screen and (min-width: 60em) {
  .nav > .login-cta-container a:after {
    right: auto;
    left: 54px;
  }
}

.nav .basket-cta-container, .nav .basket-cta {
  display: none;
}

body.signed-in .nav .basket-cta-container, .nav .basket-cta {
  display: block;
}

body.accounts-disabled .nav .basket-cta-container, .nav .basket-cta {
  display: none !important;
}

.nav a.basket-cta {
  position: relative;
  display: block;
}

.nav a.basket-cta span {
  display: none;
}

.nav a.basket-cta:after {
  content: '';
  position: absolute;
  width: 26px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: 26px 20px;
  background-position: center center;
  background-image: url("/images/graphics/shopping_cart.png");
}

.nav #menu a.basket-cta {
  padding: 20px 29px 20px 29px !important;
}

.nav #menu a.basket-cta:after {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.nav #menu a.basket-cta:hover:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav #menu li.mega-hover a.basket-cta:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav > a.basket-cta {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 23.125em) {
  .nav > a.basket-cta {
    display: none !important;
  }
}

.nav > a.basket-cta:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  right: 54px;
}

@media screen and (min-width: 60em) {
  .nav > a.basket-cta:after {
    right: auto;
    left: 108px;
  }
}

@media (pointer: coarse) and (hover: none) {
  #menu {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #menu {
    display: none;
  }
}

#menu .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #menu .menubar-icon.social {
    display: none;
  }
}

/********************************************************
* Footer
********************************************************/
#footer {
  background: #2f2f2f;
  padding-top: 8px;
  padding-bottom: 8px;
  font-size: 10pt;
}

@media screen and (max-width: 59.99em) {
  #footer {
    display: none;
  }
}

#footer a {
  color: white;
  text-decoration: none;
}

#footer .links ul {
  text-align: center;
  padding-left: 0;
  margin: 4px 0;
}

#footer .links li {
  display: inline;
  padding-left: 8px;
  padding-right: 8px;
}

#footer .links li a:hover {
  text-decoration: underline;
}

#footer ul#social-footer {
  display: inline-block;
  padding: 0;
  margin-left: 50%;
  transform: translateX(-50%);
}

@media (pointer: coarse) and (hover: none) {
  #footer ul#social-footer {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #footer ul#social-footer {
    display: none;
  }
}

#footer ul#social-footer li {
  float: left;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: bold;
  border: none;
  list-style: none;
}

#footer ul#social-footer li a {
  float: left;
  display: block;
  color: #fff;
  text-shadow: 1px 1px 1px #000;
  text-decoration: none;
}

#footer ul#social-footer .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #footer ul#social-footer .menubar-icon.social {
    display: none;
  }
}

#footer ul#social-footer .facebook {
  background: url("/images/graphics/facebook-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .pinterest {
  background: url("/images/graphics/pinterest-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .threads {
  background: url("/images/graphics/threads-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .bluesky {
  background: url("/images/graphics/bluesky-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .twitter {
  background: url("/images/graphics/twitter-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .instagram {
  background: url("/images/graphics/instagram-icon.png") top right no-repeat !important;
}

#like_on_facebook {
  margin: 0;
  padding-bottom: 16px;
}

#like_on_facebook div.text {
  display: inline;
}

/********************************************************
* Footer section highlighting
********************************************************/
html.section-terms #footer li.terms a,
html.section-linking #footer li.linking a,
html.section-apps-menu #footer li.apps-menu a,
html.section-links #footer li.links a,
html.section-footpath-issues #footer li.footpath-issues a,
html.section-direction-correction #footer li.direction-correction a,
html.section-cookie-policy #footer li.cookie-policy a,
html.section-contact-us #footer li.contact-us a,
html.section-mobile-redirect #footer li.mobile-redirect a {
  color: #00d4ff;
  font-style: italic;
}

/********************************************************
* Nav section highlighting
********************************************************/
html.section-home ul.mega-menu li.nav-sec-home a,
html.section-all-walks ul.mega-menu li.nav-sec-all-walks a,
html.section-locations ul.mega-menu li.nav-sec-locations a,
html.section-walk-types ul.mega-menu li.nav-sec-walk-types a,
html.section-apps ul.mega-menu li.nav-sec-apps a,
html.section-buy ul.mega-menu li.nav-sec- a,
html.section-faq ul.mega-menu li.nav-sec-faq a,
html.section-blog ul.mega-menu li.nav-sec-blog a,
html.section-mysteries ul.mega-menu li.nav-sec-mysteries a {
  background-position: 100% -40px;
  color: #000;
  text-shadow: none;
}

/********************************************************
* Print mods
********************************************************/
@media print {
  body, #content {
    background: #fff !important;
  }
  #footer, .no-print, .nav, #social, #cookieTerms, #header, #sub-header {
    display: none !important;
  }
  a {
    text-decoration: none;
    color: black;
  }
  .print-only {
    display: block !important;
  }
  .print-only-inline {
    display: inline !important;
  }
  #banner {
    height: inherit;
    float: right;
    position: relative;
    top: -6px;
  }
  #banner img.logo {
    margin-left: 0;
    height: 50px;
  }
  #wrapper, #content {
    padding: 0;
  }
}

#login-popup {
  display: none;
}

body.js-loaded #login-popup {
  display: block;
}

#login-popup #firebaseui-auth-container.loading {
  padding: 5rem 10rem;
}

body:not(.fullscreen) #login-popup #firebaseui-auth-container.loading {
  position: relative;
}

#login-popup #firebaseui-auth-container.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/********************************************************
* Overall page
********************************************************/
body {
  margin: 0;
  padding: 0;
  font-family: Arial, Helvetica, Helv, sans-serif;
  background-attachment: fixed;
  background-color: #ccc;
}

@media screen and (min-width: 60em) {
  body {
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (max-width: 59.99em) {
  body {
    background-image: none;
    background-size: 0;
  }
}

body.fullscreen {
  max-height: 100vh;
  overflow-y: hidden;
}

#wrapper {
  margin: 0;
}

body:not(.fullscreen) #wrapper {
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #wrapper {
    padding-left: 0;
    padding-right: 0;
  }
}

#page {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page {
    margin: 0;
  }
}

#page-inner {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page, #page-inner {
    width: 100%;
  }
}

#content {
  padding: 16px;
  background: honeydew;
}

@media screen and (max-width: 59.99em) {
  #content {
    padding: 8px;
    min-height: 100vh;
  }
}

@media screen and (min-width: 60em) {
  #content {
    background: rgba(240, 255, 240, 0.8);
  }
}

a {
  color: #2f2f2f;
}

h1, h2, h3, h4, h5 {
  font-family: Georgia;
  font-weight: normal;
}

h1 {
  font-variant: small-caps;
  margin-top: 8px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h1:not(.non-responsive) {
    font-size: 1.5em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h1:not(.non-responsive) {
    font-size: 1.3em !important;
  }
}

h2 {
  font-variant: small-caps;
  border-bottom: 1px solid #aaa;
  margin-top: 24px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h2:not(.non-responsive) {
    font-size: 1.2em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h2:not(.non-responsive) {
    font-size: 1em !important;
  }
}

h3 {
  margin-top: 16px;
}

@media screen and (max-width: 46.24em) {
  h3:not(.non-responsive) {
    font-size: 1em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h3:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  p:not(.non-responsive), a:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  :not(li) > ul:not(.non-responsive), ol > li:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

h3, h4, h5 {
  text-decoration: underline;
  /* for when supported... */
  -webkit-text-decoration-color: #aaa;
  -webkit-text-decoration-skip: true;
  margin-bottom: 4px;
}

h1 + p, h2 + p, h3 + p, h4 + p, h5 + p {
  margin-top: 0;
}

@media (pointer: coarse) and (hover: none) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

@media screen and (max-width: 48.615em) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

#content ul, #content ol {
  margin-top: 8px;
  margin-bottom: 8px;
}

#content ul, #content ol {
  padding-left: 8px;
  margin-left: 8px;
}

.clear-right {
  clear: right;
}

.clear-left {
  clear: left;
}

.clear {
  clear: both;
}

.hidden {
  display: none !important;
}

/* Attach to any "slow loading" items */
body:not(.fullscreen) .loader {
  position: relative;
}

.loader::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-inverted {
  position: relative;
}

.loader-inverted::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-small {
  position: relative;
}

.loader-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-inverted-small {
  position: relative;
}

.loader-inverted-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@media screen {
  .print-only {
    display: none !important;
  }
  .print-only-inline {
    display: none !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="button"]:not(.non-responsive).blue {
    background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
    border-color: #126167;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
  [data-role="button"]:not(.non-responsive).blue:hover, [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="button"]:not(.non-responsive).blue {
    background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
    border-color: #126167;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
  [data-role="button"]:not(.non-responsive).blue:hover, [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

/********************************************************
* Device-specific mods
********************************************************/
body.os-android .ios:not(.os-always),
body.os-ios .android:not(.os-always),
body.os-android .not-android:not(.os-always),
body.os-ios .not-ios:not(.os-always),
body.os-ios .not-ios-or-android:not(.os-always),
body.os-android .not-ios-or-android:not(.os-always) {
  display: none !important;
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy9tYWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3MvbWFpbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fc29jaWFsLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fY29tbW9uLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9faGVhZGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fZm9vdGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fc2VjdGlvbl9oaWdobGlnaHRpbmcuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BtYWluL19wcmludC5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQG1haW4vX2xvZ2luX3BvcHVwLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX2xvYWRlci5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0IFwiQGluY2x1ZGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQG1haW4vc29jaWFsXCI7XG5AaW1wb3J0IFwiQG1haW4vaGVhZGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vZm9vdGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vc2VjdGlvbl9oaWdobGlnaHRpbmdcIjtcbkBpbXBvcnQgXCJAbWFpbi9wcmludFwiO1xuQGltcG9ydCBcIkBtYWluL2xvZ2luX3BvcHVwXCI7XG5AaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogT3ZlcmFsbCBwYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmJvZHkge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgSGVsdiwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuICAvLyBGb3Igc2NyZWVucyB3aWRlciB0aGFuIHBhZ2UgY29sdW1uLCBkaXNwbGF5IGZ1bGwgcGFnZSBCRyBpbWFnZVxuICAvLyBJbml0aWFsbHkgZGlzcGxheSBsb3cgcmVzIGltYWdlIHdoaWNoIGlzIHJlcGxhY2VkIGJ5IGhpZ2gtcmVzIGltYWdlIGluIG1haW4uanMgb25jZSBjb250ZW50IGhhcyBsb2FkZWRcbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMDtcbiAgfVxuXG4gICYuZnVsbHNjcmVlbiB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB9XG59XG5cblxuI3dyYXBwZXIge1xuICBtYXJnaW46MDtcblxuICBAYXQtcm9vdCB7XG4gICAgYm9keTpub3QoLmZ1bGxzY3JlZW4pICN7Jn17XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbiNwYWdlIHtcbiAgd2lkdGg6ICRwYWdlLXdpZHRoO1xuICBtYXJnaW46IGF1dG87XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4jcGFnZS1pbm5lcntcbiAgd2lkdGg6ICRwYWdlLXdpZHRoO1xuICBtYXJnaW46IGF1dG87XG59XG5cbkBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgI3BhZ2UsICNwYWdlLWlubmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5cbiNjb250ZW50IHtcbiAgcGFkZGluZzogMTZweDtcbiAgYmFja2dyb3VuZDogcmdiKDI0MCwyNTUsMjQwKTtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB9XG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQwLDI1NSwyNDAsMC44KTtcbiAgfVxufVxuXG5hIHtcbiAgY29sb3I6ICMyZjJmMmY7XG59XG5cbmgxLGgyLGgzLGg0LGg1IHtcbiAgZm9udC1mYW1pbHk6IEdlb3JnaWE7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmgxIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBmb250LXNpemU6IDEuM2VtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbmgyIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5oMyB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSl7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxucCxhe1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG46bm90KGxpKSA+IHVsLG9sID4gbGl7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSkge1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICBmb250LXNpemU6IDAuOWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbmgzLCBoNCwgaDUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogZm9yIHdoZW4gc3VwcG9ydGVkLi4uICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjYWFhO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiB0cnVlO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbmgxK3AsaDIrcCxoMytwLGg0K3AsaDUrcCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8vIE1vcmUgcGFkZGluZyBmb3IgdG91Y2ggaW5wdXRcbnNlbGVjdHtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKSB7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbiNjb250ZW50IHVsLCNjb250ZW50IG9sIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbiNjb250ZW50IHVsLCNjb250ZW50IG9sIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jbGVhci1yaWdodCB7XG4gIGNsZWFyOiByaWdodDtcbn1cblxuLmNsZWFyLWxlZnQge1xuICBjbGVhcjogbGVmdDtcbn1cblxuLmNsZWFyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5oaWRkZW57XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogQXR0YWNoIHRvIGFueSBcInNsb3cgbG9hZGluZ1wiIGl0ZW1zICovXG4ubG9hZGVyIHtcbiAgQGluY2x1ZGUgbG9hZGVyO1xufVxuXG4ubG9hZGVyLWludmVydGVkIHtcbiAgQGluY2x1ZGUgbG9hZGVyLWludmVydGVkO1xufVxuXG4kbG9hZGVyLXNtYWxsLXNpemU6IDI0cHg7XG4kbG9hZGVyLXNtYWxsLXRoaWNrbmVzczogMnB4O1xuXG4ubG9hZGVyLXNtYWxsIHtcbiAgQGluY2x1ZGUgbG9hZGVyKCRsb2FkZXItc21hbGwtc2l6ZSwgJGxvYWRlci1zbWFsbC10aGlja25lc3MpO1xufVxuXG4ubG9hZGVyLWludmVydGVkLXNtYWxsIHtcbiAgQGluY2x1ZGUgbG9hZGVyLWludmVydGVkKCRsb2FkZXItc21hbGwtc2l6ZSwgJGxvYWRlci1zbWFsbC10aGlja25lc3MpO1xufVxuXG5cbkBtZWRpYSBzY3JlZW4ge1xuICAucHJpbnQtb25seSB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVxuICAucHJpbnQtb25seS1pbmxpbmUge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O31cbn1cblxuLy8gVG91Y2ggZGV2aWNlc1xuQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tc3R5bGVzO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogRGV2aWNlLXNwZWNpZmljIG1vZHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuYm9keS5vcy1hbmRyb2lkIC5pb3M6bm90KC5vcy1hbHdheXMpLFxuYm9keS5vcy1pb3MgLmFuZHJvaWQ6bm90KC5vcy1hbHdheXMpLFxuYm9keS5vcy1hbmRyb2lkIC5ub3QtYW5kcm9pZDpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWlvcyAubm90LWlvczpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWlvcyAubm90LWlvcy1vci1hbmRyb2lkOm5vdCgub3MtYWx3YXlzKSxcbmJvZHkub3MtYW5kcm9pZCAubm90LWlvcy1vci1hbmRyb2lkOm5vdCgub3MtYWx3YXlzKXtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbiIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8vIFZhcmlhYmxlc1xuXG4kcGFnZS13aWR0aDogOTYwcHg7XG4kcmVzcG9uc2l2ZS1tZW51OiA3NzhweDtcblxuJGdyZXk6ICMyZjJmMmY7XG4kZGFyay1ncmVlbjogIzEzMTtcbiRncmVlbjogIzI4NWQxZTtcbiRibHVlOiAjMTk0MjRhO1xuJGxpZ2h0LWdyZWVuOiByZ2JhKDEyNCwgMTk3LCAxNDksIDAuNjUpO1xuJHJlZDogIzVjMWUxZTtcbiRkYXJrLXJlZDogIzY2MDAwMDtcblxuLy8gQm94IGdyYWRpZW50c1xuJGJveC1HcmFkLUhlaWdodDogMThweDtcblxuJGJveC1CRy1HcmV5OiAkZ3JleTtcbiRib3gtR3JhZC1VcHBlci1Ub3AtR3JleTogIzcxNzE3MTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleTogIzQyNDE0MTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JleTogIzQwNDA0MDtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleTogIzJmMmYyZjtcblxuJGJveC1CRy1HcmVlbjogJGdyZWVuO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbjogIzQ2OTkzNjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW46ICMzMDcwMjU7XG4kYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuOiAjMzA3MjI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbjogIzI4NWQxZTtcblxuJGJveC1CRy1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlOiAjMTI2MTY3O1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLVRvcC1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuXG5cbiRib3gtQkctRGFyay1HcmVlbjogJGRhcmstZ3JlZW47XG4kYm94LUdyYWQtVXBwZXItVG9wLURhcmstR3JlZW46ICMyZTgwMmU7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLURhcmstR3JlZW46ICMxNzQ1MTc7XG4kYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW46ICMxODQ3MTk7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLURhcmstR3JlZW46ICMxMTMzMTE7XG5cbiRib3gtQkctUmVkOiAkcmVkO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1SZWQ6ICNhODNiM2I7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZDogIzZlMjUyNTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtUmVkOiAjNzAyNTI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1SZWQ6ICM1YzFlMWU7XG5cbiRtcS1icmVha3BvaW50LW1vYmlsZTogMzIwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaDogNjAwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ6IDc0MHB4O1xuJG1xLWJyZWFrcG9pbnQtZGVza3RvcDogOTgwcHg7XG4kbXEtYnJlYWtwb2ludC13aWRlOiAxMzAwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wQWQ6IDgxMHB4O1xuJG1xLWJyZWFrcG9pbnQtbW9iaWxlTGFuZHNjYXBlOiA0ODBweDtcbiRtcS1icmVha3BvaW50LW1lZGl1bUxvZ286IDQ0MHB4O1xuJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvOiAzMjBweDtcbiRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zOiA5NTRweDtcbiRtcS1icmVha3BvaW50LXBhZ2U6ICRwYWdlLXdpZHRoO1xuJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnU6ICRyZXNwb25zaXZlLW1lbnU7XG5cblxuLy8gQnJlYWtwb2ludHNcbiRtcS1icmVha3BvaW50czogKFxuICAgICAgICBtb2JpbGU6ICAkbXEtYnJlYWtwb2ludC1tb2JpbGUsXG4gICAgICAgIHRhYmxldDdpbmNoOiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0N2luY2gsXG4gICAgICAgIHRhYmxldDogICRtcS1icmVha3BvaW50LXRhYmxldCxcbiAgICAgICAgZGVza3RvcDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcCxcbiAgICAgICAgd2lkZTogJG1xLWJyZWFrcG9pbnQtd2lkZSxcblxuICAvLyBUd2Vha3BvaW50c1xuICAgICAgICBkZXNrdG9wQWQ6ICRtcS1icmVha3BvaW50LWRlc2t0b3BBZCxcbiAgICAgICAgbW9iaWxlTGFuZHNjYXBlOiAkbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGUsXG4gICAgICAgIHNtYWxsTG9nbzogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvLFxuICAgICAgICBwYWdlOiAkbXEtYnJlYWtwb2ludC1wYWdlLFxuICAgICAgICByZXNwb25zaXZlTWVudTogJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnUsXG4gICAgICAgIGhlYWRlclNvY2lhbEljb25zOiAkbXEtYnJlYWtwb2ludC1oZWFkZXJTb2NpYWxJY29uc1xuKTtcblxuXG4vLyBUbyBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpIHNldCAkbXEtcmVzcG9uc2l2ZSB0byBmYWxzZVxuLy8gQ3JlYXRlIGEgc2VwYXJhdGUgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gdGhlc2UgYnJvd3NlcnMsXG4vLyBtZWFuaW5nIEBtZWRpYSBxdWVyaWVzIHdpbGwgYmUgcmFzdGVyaXplZCwgcmVseWluZyBvbiB0aGUgY2FzY2FkZSBpdHNlbGZcbiRtcS1yZXNwb25zaXZlOiB0cnVlO1xuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8kbXEtc2hvdy1icmVha3BvaW50czogKG1vYmlsZSwgbW9iaWxlTGFuZHNjYXBlLCB0YWJsZXQsIGRlc2t0b3AsIHdpZGUpO1xuIiwKCQkiQG1peGluIGlXYWxrTW9iaWxlR3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNjOWRjZjQgMCUsIzgyYjVlYyAyMiUsIzI5OGFlMyA0NiUsIzNlYzFmNyA3MCUsIzNlYzFmNyAxMDAlKTtcbn1cblxuQG1peGluIGNlbnRyZVl7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBjZW50cmVYe1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuQG1peGluIGNlbnRyZVhZe1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBncmV5X2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDE4MSwgMTg5LCAyMDAsIDEpIDAlLCByZ2JhKDEzMCwgMTQwLCAxNDksIDEpIDM2JSwgcmdiYSg0MCwgNTIsIDU5LCAxKSAxMDAlKTtcbn1cblxuQG1peGluIGdyZWVuX2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNGViOTRlIDAlLCAjMTA5MDEwIDM2JSwgIzA5M2UwOSAxMDAlKTtcbn1cblxuQG1peGluIGJveCgkYmcpe1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1yYWRpdXM6NHB4O1xuICAmLCBhe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5AbWl4aW4gYm94R3JhZGllbnQoJGJnLCAkdXBwZXItdG9wLCAkdXBwZXItYm90dG9tLCAkbG93ZXItdG9wLCAkbG93ZXItYm90dG9tLCAkaGVpZ2h0OiAkYm94LUdyYWQtSGVpZ2h0KXtcbiAgQGluY2x1ZGUgYm94KCRiZyk7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZXtcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCR1cHBlci10b3AsICR1cHBlci1ib3R0b20pO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJjphZnRlcntcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICRoZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRsb3dlci10b3AsICRsb3dlci1ib3R0b20pO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgPiAqe1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJveEdyYWRpZW50R3JleXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmV5LCAkYm94LUdyYWQtVXBwZXItVG9wLUdyZXksICRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleSwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmV5LCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZXkpO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnRHcmVlbntcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEJsdWV7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctQmx1ZSwgJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUJsdWUsICRib3gtR3JhZC1Mb3dlci1Ub3AtQmx1ZSwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50RGFya0dyZWVue1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLURhcmstR3JlZW4sICRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1EYXJrLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudFJlZHtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1SZWQsICRib3gtR3JhZC1VcHBlci1Ub3AtUmVkLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZCwgJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQsICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tUmVkKTtcbn1cblxuQG1peGluIGJveFNoYWRvd3tcbiAgYm94LXNoYWRvdzogNHB4IDRweCA0cHggI2JiYjtcbn1cblxuQG1peGluIGJveHl7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50R3JleTtcbiAgQGluY2x1ZGUgYm94U2hhZG93O1xuICBjb2xvcjogI2VlZTtcblxuICBhLCBzdHJvbmcge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtaXhpbiBsaWdodEdyZWVuQm94e1xuICBAaW5jbHVkZSBib3goJGxpZ2h0LWdyZWVuKTtcbiAgJixhe1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuXG4iLAoJCSJcbi8qKlxuICogQnJlYWtwb2ludHNcbiAqL1xuXG5AaW1wb3J0IFwibXFcIjtcblxuXG5AbWl4aW4gbXFzKCRmcm9tOiBmYWxzZSwgJHVudGlsOiBmYWxzZSl7XG4gIEBpbmNsdWRlIG1xKCRmcm9tLCAkdW50aWwsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vKipcbiAqIElucHV0IGNhcGFiaWxpdGllc1xuICovXG5cbi8vIHNtYXJ0cGhvbmVzIGFuZCB0YWJsZXRzXG5AbWl4aW4gdG91Y2gtc2NyZWVuLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpXG4gIGFuZCAoaG92ZXI6IG5vbmUpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1vdXNlIG9yIHRvdWNoIHBhZFxuQG1peGluIG1vdXNlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU2hvdyBmb3IgdG91Y2ggc2NyZWVuc1xuLy8gYW5kIHVwIHVudGlsIHRhYmxldCBkZXZpY2Ugd2lkdGggZm9yIHRhYmxldHMgbm90IHN1cHBvcnRpbmcgaW5wdXQgbWVkaWEgcXVlcmllcyBpZS4gb2xkIEFuZHJvaWQgNC54XG5AbWl4aW4gdG91Y2gtc2NyZWVuLWRldmljZXN7XG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1pbnB1dCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcmVzcG9uc2l2ZU1lbnUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBOaW50ZW5kbyBXaWkgY29udHJvbGxlciwgS2luZWN0LCBldGMuXG5AbWl4aW4gY29uc29sZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gc3R5bHVzLWJhc2VkIHNjcmVlbnMgKENpbnRpcSwgV2Fjb20sIGV0YylcbkBtaXhpbiBjb25zb2xlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBub25lKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBSZXRpbmEgZGlzcGxheXMgKDJ4KVxuQG1peGluIHJldGluYSB7XG4gIEBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzLzIpLFxuICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcblxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxuJG1xLWJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXG4vLy9cbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxuLy8vXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIG9sZC1pZS5zY3NzXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxuJG1xLXJlc3BvbnNpdmU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGxpc3Rcbi8vL1xuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgbW9iaWxlOiAgMzIwcHgsXG4gICAgdGFibGV0OiAgNzQwcHgsXG4gICAgZGVza3RvcDogOTgwcHgsXG4gICAgd2lkZTogICAgMTMwMHB4XG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxuLy8vXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XG4vLy8gKGkuZS4gd2hlbiAkbXEtcmVzcG9uc2l2ZSBpcyBzZXQgdG8gJ2ZhbHNlJykgaW4gYSBvbGQtaWUuc2Nzc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyB0YWJsZXQtb25seS5zY3NzXG4vLy8gIC8vXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxuLy8vICAvLyBhbmQgZml4IHRoZSBzdHlsZXMgKGUuZy4gbGF5b3V0KSBhdCB0YWJsZXQgd2lkdGhcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcblxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vL1xuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cbi8vL1xuLy8vIEB0eXBlIG1hcFxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XG4vLy9cbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXG4vLy8gQHJldHVybnMge051bWJlcn1cbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XG4gICAgfSBAZWxzZSBpZiB1bml0KCRweCkgPT0gZW0ge1xuICAgICAgICBAcmV0dXJuICRweDtcbiAgICB9XG4gICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcbn1cblxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFZhbHVlIGluIHBpeGVsc1xuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XG4gICAgfVxufVxuXG4vLy8gTWVkaWEgUXVlcnkgbWl4aW5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICR1bnRpbCAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXG4vLy9cbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcbi8vLyBAaWdub3JlIEBwYXJhbSB7U3RyaW5nfSAkc3RhdGljLWJyZWFrcG9pbnQgKCRtcS1zdGF0aWMtYnJlYWtwb2ludClcbi8vL1xuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4vLy8gICAgICBjb2xvcjogcmVkO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogZ3JlZW47XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XG4vLy8gICAgICBjb2xvcjogdGVhbDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XG4vLy8gICAgJG15LWJyZWFrcG9pbnRzOiAoTDogOTAwcHgsIFhMOiAxMjAwcHgpO1xuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgfVxuQG1peGluIG1xKFxuICAgICRmcm9tOiBmYWxzZSxcbiAgICAkdW50aWw6IGZhbHNlLFxuICAgICRhbmQ6IGZhbHNlLFxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcbiAgICAkcmVzcG9uc2l2ZTogJG1xLXJlc3BvbnNpdmUsXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbikge1xuICAgICRtaW4td2lkdGg6IDA7XG4gICAgJG1heC13aWR0aDogMDtcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xuXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXG4gICAgQGlmICRmcm9tIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJGZyb20pID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxuICAgIEBpZiAkdW50aWwge1xuICAgICAgICBAaWYgdHlwZS1vZigkdW50aWwpID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcblxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxuICAgICAgICAgICAgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgYW5kIChcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHsgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYSBicmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIFRvdWNoIGRldmljZXNcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xyXG5cclxuQG1peGluIGJveC1zaGFkb3d7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtcclxufVxyXG5cclxuQG1peGluIHRvdWNoLXNjcmVlbi1zdHlsZXMge1xyXG5cclxuICAvLyBCdXR0b25zXHJcbiAgW2RhdGEtcm9sZT1cImJ1dHRvblwiXTpub3QoLm5vbi1yZXNwb25zaXZlKXtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3c7XHJcblxyXG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQ6ICNlZWU7XHJcblxyXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG5cclxuXHJcbiAgICBtYXJnaW46IC41ZW0gMDtcclxuICAgIHBhZGRpbmc6IC43ZW0gMWVtO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG5cclxuICAgICY6aG92ZXIsICY6YWN0aXZle1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZThmMGZmO1xyXG4gICAgfVxyXG5cclxuICAgICZbZGF0YS1pY29uXXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbiAgICAgIGl7XHJcbiAgICAgICAgQGluY2x1ZGUgY2VudHJlWTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5ncmVlbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGRkYTAgMCUsICMzZGRiOGMgNTAlLCAjOGRkZGEwIDEwMCUpO1xyXG4gICAgICBib3JkZXItY29sb3I6ICMyYjZiMzc7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNSk7IC8vaGVhdmllciBzaGFkb3cgb24gZGFyayBncmVlbiBiZ1xyXG4gICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZjRlMSAwJSwgIzNkZGI4YyA1MCUsICNkY2Y0ZTEgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYuYmx1ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOGRjMGRkIDAlLCMzZGFjZGIgNTAlLCM4ZGMwZGQgMTAwJSk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTI2MTY3O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgJjpob3ZlciwgJjphY3RpdmV7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNlMWY0IDAlLCM2ZWFjZWIgNTAlLCNkY2UxZjQgMTAwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGlzdHZpZXdzXHJcbiAgW2RhdGEtcm9sZT1cImxpc3R2aWV3XCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xyXG4gICAgQGluY2x1ZGUgYm94eTtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG5cclxuICAgID5saXtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDhweCAhaW1wb3J0YW50O1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhe1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgY29udGVudDogJz4nO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgcmlnaHQ6IDRweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMaW5rIGxpc3RzXHJcbiAgOm5vdCgubm9uLXJlc3BvbnNpdmUpOm5vdChbZGF0YS1yb2xlXSk6bm90KFtyb2xlXSkgPiBsaSA+IGE6b25seS1jaGlsZHtcclxuICAgIHBhZGRpbmc6IDhweCAwO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsCgkJIkBpbXBvcnQgXCJAaW5jbHVkZS9jb21tb25cIjtcclxuXHJcbiNzb2NpYWwge1xyXG4gIHdpZHRoOiAkcGFnZS13aWR0aDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgbWFyZ2luLXRvcDogMTZweDtcclxuXHJcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5hZGR0aGlzX3Rvb2xib3gge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDMwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmFkZHRoaXNfYnV0dG9uX3R3aXR0ZXJfZm9sbG93X25hdGl2ZSxcclxuICAuYWRkdGhpc19idXR0b25fZ29vZ2xlX3BsdXNvbmUge1xyXG4gICAgbWFyZ2luLWxlZnQ6OHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYXRjX3Mge1xyXG4gICAgbWFyZ2luLWxlZnQ6MTJweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufSIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4kbG9nby1sYXJnZS1pbWctd2lkdGg6IDQxNHB4O1xuJGxvZ28tbGFyZ2UtaW1nLWhlaWdodDogNzRweDtcblxuJGxvZ28tbWVkaXVtLWltZy13aWR0aDogMzMxcHg7XG4kbG9nby1tZWRpdW0taW1nLWhlaWdodDogNTlweDtcblxuJGxvZ28tc21hbGwtaW1nLXdpZHRoOiAyMDdweDtcbiRsb2dvLXNtYWxsLWltZy1oZWlnaHQ6IDM3cHg7XG5cbiRsb2dvLWhlaWdodC1hZGp1c3RtZW50OiAxMnB4O1xuJGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQ6IDU1cHg7XG5cbiNoZWFkZXJ7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gRm9yIHNjcmVlbnMgc21hbGxlciB0aGFuIHBhZ2UgY29sdW1uLCBkaXNwbGF5IGhlYWRlciBCRyBpbWFnZVxuICAvLyBJbml0aWFsbHkgZGlzcGxheSBsb3cgcmVzIGltYWdlIHdoaWNoIGlzIHJlcGxhY2VkIGJ5IGhpZ2gtcmVzIGltYWdlIGluIG1haW4uanMgb25jZSBjb250ZW50IGhhcyBsb2FkZWRcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4jYmFubmVyIHtcblxuICAvLyBhZGQgc3BhY2UgZm9yIGFwcCBzdG9yZSBsb2dvc1xuICBoZWlnaHQ6ICRsb2dvLWxhcmdlLWltZy1oZWlnaHQgKyAkbG9nby1oZWlnaHQtYWRqdXN0bWVudDtcblxuICBAYXQtcm9vdCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgI3smfXtcbiAgICAgICAgaGVpZ2h0OiAkbG9nby1tZWRpdW0taW1nLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAjeyZ9e1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLXNtYWxsLWltZy1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBcbiAgaDEge1xuICAgIHBhZGRpbmc6MDtcbiAgICBtYXJnaW46MDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG4gIH1cblxuICBwaWN0dXJle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGxvZ28tbGFyZ2UtaW1nLWhlaWdodDtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1tZWRpdW1Mb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgaGVpZ2h0OiAkbG9nby1tZWRpdW0taW1nLWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28pIHtcbiAgICAgICAgI3smfXtcbiAgICAgICAgICBoZWlnaHQ6ICRsb2dvLXNtYWxsLWltZy1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIGltZy5sb2dve1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQgKiAyfSk7XG4gICAgbWF4LXdpZHRoOiAkbG9nby1sYXJnZS1pbWctd2lkdGg7Ly8gYmFubmVyX2xhcmdlLnBuZ1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgICAjeyZ9e1xuICAgICAgICAgIG1heC13aWR0aDogJGxvZ28tbWVkaXVtLWltZy13aWR0aDsgLy9iYW5uZXJfbWVkaXVtLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbG9nby1zbWFsbC1pbWctd2lkdGg7IC8vYmFubmVyX3NtYWxsLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFwcHN0b3JlLWxvZ28sIC5hd2FyZHN7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnB4O1xuXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5hcHBzdG9yZS1sb2dvIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuYXdhcmRzIHtcbiAgICB3aWR0aDogNjdweDtcbiAgICByaWdodDogMTUzcHg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZVJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG5cblxuJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoOiAzNHB4O1xuJG1vYmlsZUhlYWRlckJ1dHRvbkhlaWdodDogMzBweDtcbiRtb2JpbGVIZWFkZXJCdXR0b25TcGFjaW5nOiAxMHB4O1xuXG5AbWl4aW4gbW9iaWxlSGVhZGVyQnV0dG9ue1xuICBAaW5jbHVkZSBjZW50cmVZO1xuICB3aWR0aDogJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoO1xuICBoZWlnaHQ6ICRtb2JpbGVIZWFkZXJCdXR0b25IZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLy8gcmVzcG9uc2l2ZSB0b3VjaCBtZW51IChoaWRkZW4gYnkgZGVmYXVsdClcbiRzbGlja25hdl9hbmltYXRpb25fZHVyYXRpb246IDMwMG1zO1xuXG4uc2xpY2tuYXZfbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgfVxuICAuc2xpY2tuYXZfYnRue1xuICAgIEBpbmNsdWRlIGNlbnRyZVk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAuc2xpY2tuYXZfbWVudXR4dHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrbmF2X2ljb257XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrbmF2X25hdntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDk5OTk5OTtcblxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbjtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG4gICAgJi5zbGlja25hdl9pbml0aWFsaXNpbmd7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRpbmd7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUxlZnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9zaG93aW5ne1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlUmlnaHQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X3Nob3due1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdWx7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmLnNsaWNrbmF2X2hpZGluZywgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMCwxLDAsMSk7XG4gICAgICB9XG5cbiAgICAgICYuc2xpY2tuYXZfc2hvd2luZywgJi5zbGlja25hdl9zaG93bntcbiAgICAgICAgbWF4LWhlaWdodDogOTk5OXB4OyAvLyB2ZXJ5IGxhcmdlXG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMSwwLDEsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGl7XG4gICAgICBhe1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICA+IGF7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IHVse1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICA+IGxpID4gYXtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgICAgb3BhY2l0eTogMC45NTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAwIDA7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBiYXNrZXQgQ1RBIGFzIHRleHRcbiAgICBhLmJhc2tldC1jdGF7XG4gICAgICBzcGFue1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjphZnRlcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm5hdiB7XG4gIG1hcmdpbi1yaWdodDogMnB4OyAvKiBmaXggZm9yIG1lZ2FtZW51IG92ZXJzcGlsbGluZyAycHggKi9cblxuICBAYXQtcm9vdCB7XG4gICAgYm9keS5mdWxsc2NyZWVuICN7Jn17XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gIGxpIC5pY29ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgbGkuYW5kcm9pZCxcbiAgbGkuYXBwbGV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgbGkuYW5kcm9pZCAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYW5kcm9pZF9sb2dvX2ljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuICBsaS5hcHBsZSAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYXBwbGVfbG9nb19pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cblxuICAvLyBNb2JpbGUgdmlld1xuICA+IC5sb2dpbi1jdGEtY29udGFpbmVye1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgYm9keS5hY2NvdW50cy1kaXNhYmxlZCAjeyZ9e1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHNwYW57XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmFmdGVye1xuICAgICAgICBAaW5jbHVkZSBtb2JpbGVIZWFkZXJCdXR0b247XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3VzZXIucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAoMiAqICRtb2JpbGVIZWFkZXJCdXR0b25TcGFjaW5nKSArICRtb2JpbGVIZWFkZXJCdXR0b25XaWR0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2tldCBDVEE6IG1vYmlsZSAmIGRlc2t0b3BcbiAgLmJhc2tldC1jdGEtY29udGFpbmVyLCAuYmFza2V0LWN0YXtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgYm9keS5zaWduZWQtaW4gI3smfXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIGJvZHkuYWNjb3VudHMtZGlzYWJsZWQgI3smfXtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRiYXNrZXRJY29uSGVpZ2h0OiAyNnB4O1xuICAkYmFza2V0SWNvbldpZHRoOiAyMHB4O1xuXG4gIEBtaXhpbiBiYXNrZXRJY29uSG92ZXJ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3Nob3BwaW5nX2NhcnRfaW52ZXJ0ZWQucG5nJyk7XG4gIH1cblxuICBhLmJhc2tldC1jdGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBcbiAgICBzcGFue1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6ICRiYXNrZXRJY29uSGVpZ2h0O1xuICAgICAgaGVpZ2h0OiAkYmFza2V0SWNvbldpZHRoO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJGJhc2tldEljb25IZWlnaHQgJGJhc2tldEljb25XaWR0aDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3Mvc2hvcHBpbmdfY2FydC5wbmcnKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNrZXQgQ1RBOiBkZXNrdG9wXG4gICNtZW51IGEuYmFza2V0LWN0YXtcbiAgICAkdmVydDogMjBweDtcbiAgICAkaG9yaXo6IDE5cHg7XG4gICAgJHRvcDogJHZlcnQ7XG4gICAgJGJvdHRvbTogJHZlcnQ7XG4gICAgJGxlZnQ6ICgoJGJhc2tldEljb25XaWR0aCAvIDIpICsgJGhvcml6KTtcbiAgICAkcmlnaHQ6ICgoJGJhc2tldEljb25XaWR0aCAvIDIpICsgJGhvcml6KTtcbiAgICBwYWRkaW5nOiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0ICFpbXBvcnRhbnQ7XG5cbiAgICAmOmFmdGVye1xuICAgICAgQGluY2x1ZGUgY2VudHJlWFk7XG4gICAgfVxuICAgICY6aG92ZXI6YWZ0ZXJ7XG4gICAgICBAaW5jbHVkZSBiYXNrZXRJY29uSG92ZXI7XG4gICAgfVxuICB9XG5cbiAgI21lbnUgbGkubWVnYS1ob3ZlciBhLmJhc2tldC1jdGE6YWZ0ZXJ7XG4gICAgQGluY2x1ZGUgYmFza2V0SWNvbkhvdmVyO1xuICB9XG5cbiAgLy8gQmFza2V0IENUQTogbW9iaWxlXG4gID4gYS5iYXNrZXQtY3Rhe1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBvbiB0aW55IHNjcmVlbnMgYmVjYXVzZSBpdCBvdmVybGFwcyBsb2dvXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogMzcwcHgpe1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YWZ0ZXJ7XG4gICAgICBAaW5jbHVkZSBtb2JpbGVIZWFkZXJCdXR0b247XG4gICAgICByaWdodDogKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogKDQgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAoMiAqICRtb2JpbGVIZWFkZXJCdXR0b25XaWR0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdXNlL3BvaW50ZXIgbWVudVxuI21lbnV7XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWVudWJhci1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDo4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjAgIWltcG9ydGFudDtcbiAgICB3aWR0aDozMnB4O1xuICAgIGhlaWdodDozMnB4O1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHRvcDo0cHg7XG5cbiAgICAmLnNvY2lhbHtcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IGhlYWRlclNvY2lhbEljb25zKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuXG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogRm9vdGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI2Zvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMyZjJmMmY7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTBwdDtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAubGlua3N7XG4gICAgdWwge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgIHBhZGRpbmctbGVmdDo4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OjhweDtcblxuICAgICAgYTpob3ZlcntcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwjc29jaWFsLWZvb3RlcntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICBhIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4ICMwMDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudWJhci1pY29uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OjhweCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDozMnB4O1xuICAgICAgaGVpZ2h0OjMycHg7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgIHRvcDo0cHg7XG5cbiAgICAgICYuc29jaWFse1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBoZWFkZXJTb2NpYWxJY29ucykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmFjZWJvb2sge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvZmFjZWJvb2staWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnBpbnRlcmVzdCB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9waW50ZXJlc3QtaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRocmVhZHMge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvdGhyZWFkcy1pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYmx1ZXNreSB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9ibHVlc2t5LWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50d2l0dGVyIHtcbiAgICAgIGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3R3aXR0ZXItaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmluc3RhZ3JhbSB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9pbnN0YWdyYW0taWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbn1cblxuI2xpa2Vfb25fZmFjZWJvb2sge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZy1ib3R0b206MTZweDtcblxuICBkaXYudGV4dHtcbiAgICBkaXNwbGF5OmlubGluZTtcbiAgfVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEZvb3RlciBzZWN0aW9uIGhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5odG1sLnNlY3Rpb24tdGVybXMgI2Zvb3RlciBsaS50ZXJtcyBhLFxuaHRtbC5zZWN0aW9uLWxpbmtpbmcgI2Zvb3RlciBsaS5saW5raW5nIGEsXG5odG1sLnNlY3Rpb24tYXBwcy1tZW51ICNmb290ZXIgbGkuYXBwcy1tZW51IGEsXG5odG1sLnNlY3Rpb24tbGlua3MgI2Zvb3RlciBsaS5saW5rcyBhLFxuaHRtbC5zZWN0aW9uLWZvb3RwYXRoLWlzc3VlcyAjZm9vdGVyIGxpLmZvb3RwYXRoLWlzc3VlcyBhLFxuaHRtbC5zZWN0aW9uLWRpcmVjdGlvbi1jb3JyZWN0aW9uICNmb290ZXIgbGkuZGlyZWN0aW9uLWNvcnJlY3Rpb24gYSxcbmh0bWwuc2VjdGlvbi1jb29raWUtcG9saWN5ICNmb290ZXIgbGkuY29va2llLXBvbGljeSBhLFxuaHRtbC5zZWN0aW9uLWNvbnRhY3QtdXMgI2Zvb3RlciBsaS5jb250YWN0LXVzIGEsXG5odG1sLnNlY3Rpb24tbW9iaWxlLXJlZGlyZWN0ICNmb290ZXIgbGkubW9iaWxlLXJlZGlyZWN0IGF7XG4gIGNvbG9yOiAjMDBkNGZmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIE5hdiBzZWN0aW9uIGhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmh0bWwuc2VjdGlvbi1ob21lIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWhvbWUgYSxcbmh0bWwuc2VjdGlvbi1hbGwtd2Fsa3MgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYWxsLXdhbGtzIGEsXG5odG1sLnNlY3Rpb24tbG9jYXRpb25zIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWxvY2F0aW9ucyBhLFxuaHRtbC5zZWN0aW9uLXdhbGstdHlwZXMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtd2Fsay10eXBlcyBhLFxuaHRtbC5zZWN0aW9uLWFwcHMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYXBwcyBhLFxuaHRtbC5zZWN0aW9uLWJ1eSB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy0gYSxcbmh0bWwuc2VjdGlvbi1mYXEgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtZmFxIGEsXG5odG1sLnNlY3Rpb24tYmxvZyB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1ibG9nIGEsXG5odG1sLnNlY3Rpb24tbXlzdGVyaWVzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLW15c3RlcmllcyBhe1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC00MHB4O1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBQcmludCBtb2RzXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuQG1lZGlhIHByaW50IHtcclxuXHJcbiAgYm9keSwgI2NvbnRlbnQge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2Zvb3RlciwgLm5vLXByaW50LCAubmF2LCAjc29jaWFsLCAjY29va2llVGVybXMsICNoZWFkZXIsICNzdWItaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbiAgYSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogYmxhY2tcclxuICB9XHJcbiAgLnByaW50LW9ubHkge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLnByaW50LW9ubHktaW5saW5lIHtcclxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2Jhbm5lciB7XHJcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IC02cHg7XHJcblxyXG4gICAgaW1nLmxvZ28ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI3dyYXBwZXIsICNjb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDBcclxuICB9XHJcbiAgXHJcbiAgXHJcbn0iLAoJCSJAaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4jbG9naW4tcG9wdXB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBhdC1yb290IHtcbiAgICBib2R5LmpzLWxvYWRlZCAjeyZ9e1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgI2ZpcmViYXNldWktYXV0aC1jb250YWluZXJ7XG4gICAgJi5sb2FkaW5ne1xuICAgICAgQGluY2x1ZGUgbG9hZGVyO1xuICAgICAgcGFkZGluZzogNXJlbSAxMHJlbTtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLy8gTG9hZGluZyBhbmltYXRpb25cblxuJGxvYWRlci1kZWZhdWx0LXNpemU6IDUwcHg7XG4kbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzOiA1cHg7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZDogd2hpdGU7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkOiBibGFjaztcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkOiByZ2JhKDAsMCwwLDAuMjUpO1xuXG5AbWl4aW4gbG9hZGVyKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kXG4pe1xuXG4gIEBhdC1yb290e1xuICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzaXplO1xuICAgIGJvcmRlcjogJHRoaWNrbmVzcyBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBhbmltYXRpb246IGxvYWRpbmcgMXMgZWFzZSBpbmZpbml0ZTtcbiAgfVxuICBAa2V5ZnJhbWVzIGxvYWRpbmcge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsb2FkZXItaW52ZXJ0ZWQoXG4gICRzaXplOiAkbG9hZGVyLWRlZmF1bHQtc2l6ZSxcbiAgJHRoaWNrbmVzczogJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzcyxcbiAgJGZvcmVncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkLFxuICAkYmFja2dyb3VuZDogJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQtaW52ZXJ0ZWRcbil7XG4gIEBpbmNsdWRlIGxvYWRlcihcbiAgICAkc2l6ZTogJHNpemUsXG4gICAgJHRoaWNrbmVzczogJHRoaWNrbmVzcyxcbiAgICAkZm9yZWdyb3VuZDogJGZvcmVncm91bmQsXG4gICAgJGJhY2tncm91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 */