@charset "UTF-8";
/*=============================================================================
                            LAYOUT + RESPONSIVE
                            PROJECT: KOISPE THIAMIS
=============================================================================*/
/*============================== LAYOUT INCLUDES =============================

1. BASICS
2. RESET
3. FONTS
4. FOOTER
5. NAVIGATION
6. CONTACT

================================= END =======================================*/
*:focus {
  outline: none;
}

textarea:focus, input:focus {
  outline: none;
}

/*============================== FONTS ==============================*/
@font-face {
  font-family: "averta";
  font-weight: 300;
  src: url("../fonts/averta/averta-light-webfont.woff") format("woff");
}

@font-face {
  font-family: "averta";
  font-weight: 400;
  src: url("../fonts/averta/averta-regular-webfont.woff") format("woff");
}

@font-face {
  font-family: "averta";
  font-weight: 700;
  src: url("../fonts/averta/averta-bold-webfont.woff") format("woff");
}

* {
  font-family: averta,sans-serif;
}

/*============================== END FONTS ==============================*/
/*============================== BASICS ==============================*/
@media (min-width: 1200px) {
  .container {
    max-width: 1440px;
    padding-right: 30px;
    padding-left: 30px;
  }
}

/*@media(min--moz-device-pixel-ratio:0) {}*/
html {
  scroll-behavior: smooth;
}

.dropdown {
  margin: 20px 0px;
}

.dropdown-toggle {
  background-color: #1b75bc;
  border-color: #1b75bc;
  width: 100%;
  font-size: 21px;
  padding: 15px 10px;
  border-radius: 0;
}

.btn-secondary.dropdown-toggle:hover {
  background-color: #1C315E;
  border-color: #1C315E;
}

.dropdown-menu.show {
  width: 100%;
  border-radius: 0;
  border-color: #bad6ea;
  padding: 0;
}

.dropdown-item {
  padding: 0.75rem 1.5rem;
  border-bottom: 1px solid rgba(27, 118, 187, 0.3);
}

.dropdown-menu .dropdown-item {
  display: flex;
  align-items: center;
  transition: all .4s ease-out;
}

.dropdown-menu .dropdown-item:last-child {
  border-bottom: 0px solid rgba(0, 0, 0, 0);
}

.dropdown-menu .dropdown-item i {
  color: #1b75bc;
  font-size: 21px;
  margin-right: 10px;
  transition: all .4s ease-out;
}

.dropdown-item.active,
.dropdown-item:active,
.dropdown-menu .dropdown-item:active i,
.dropdown-item.hover,
.dropdown-item:hover,
.dropdown-menu .dropdown-item:hover i {
  color: #fff;
  background-color: #1b75bc;
  transition: all .4s ease-out;
}

.updated_date {
  margin-top: 30px;
  margin-bottom: 0;
}

.grecaptcha-badge {
  display: none !important;
}

.alert.alert-success {
  display: none;
  margin-top: 25px !important;
}

.alert.alert-success p {
  margin-bottom: 0px !important;
}

.alert.alert-success.alert-success-view {
  display: block;
  margin-top: 25px !important;
}

.alert.alert-success.alert-success-view p {
  margin-bottom: 0px !important;
}

.alert.alert-error {
  display: none;
  margin-top: 25px !important;
}

.alert.alert-error p {
  margin-bottom: 0px !important;
}

.alert.alert-error.alert-error-view {
  display: block;
  margin-top: 25px !important;
}

.alert.alert-error.alert-error-view p {
  margin-bottom: 0px !important;
}

/*============================== END BASICS ==============================*/
/*============================== RESPONSIVE ==============================*/
@media (max-width: 767px) {
  .dropdown-toggle {
    font-size: 18px;
  }
  .dropdown-menu .dropdown-item {
    font-size: 14px;
  }
}

@media (max-width: 575px) {
  .dropdown-item {
    white-space: normal;
  }
}

/*============================== END RESPONSIVE ==============================*/
/*=========================== NAVIGATION ===========================*/
#navi {
  margin-top: 15px;
  position: fixed;
  width: 100%;
  z-index: 999;
  background: #FFFFFF;
}

#navi:before {
  content: "";
  position: fixed;
  width: 100%;
  height: 10px;
  left: 0;
  top: 0;
  bottom: 0;
  border-top: 15px solid rgba(0, 167, 219, 0.5);
  z-index: 5;
  mix-blend-mode: soft-light;
  transition: all 0.4s ease-out;
}

#navi:after {
  content: "";
  position: fixed;
  width: 100%;
  height: 10px;
  left: 0;
  bottom: 0;
  z-index: 5;
  mix-blend-mode: soft-light;
  transition: all 0.4s ease-out;
}

.navi {
  display: flex;
  height: 100px;
  width: 100%;
  justify-content: space-between;
}

.navi .logo img {
  width: 120px;
}

.navi ul {
  list-style: none;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}

.navi ul li {
  position: relative;
  display: inline-block;
  height: 100px;
  border-left: 1px solid rgba(0, 0, 0, 0.05);
  vertical-align: middle;
  float: left;
}

.navi ul li:first-child {
  border-left: 0;
}

.navi ul li:nth-child(2) a:before,
.navi ul li:nth-last-child(2) a:before,
.navi ul li:nth-child(2) a:after,
.navi ul li:nth-last-child(2) a:after {
  transition: all 0.3s linear 0s;
}

.navi_fixed #callnow_menu:hover {
  background: #18629c;
  transition: all 0.4s ease-out;
  color: rgba(255, 255, 255, 0.8);
}

#callnow_menu {
  border-bottom: 15px solid #00a7db;
  color: #fff;
  padding: 0 3rem;
  display: flex;
  align-items: center;
  text-transform: uppercase;
  font-size: 0.95rem;
  margin-right: -2px;
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

#callnow_menu i {
  padding-right: 5px;
}

#callnow_menu:hover {
  background: #1b75bc;
  color: #fff;
  transition: all 0.4s ease-out;
  color: white;
}

.navi ul li a {
  position: relative;
  display: flex;
  padding: 0 20px;
  color: #1C315E;
  font-size: 0.95rem;
  text-decoration: none;
  transition: all 0.3s linear 0s;
  height: 100px;
  font-weight: 600;
  align-items: center;
}

.navi ul li a:hover {
  background: #e6e6e6;
  color: #000 !important;
  transition: all 0.3s linear 0s;
}

.navi ul li a:hover:before {
  border-right: 15px solid #f2f2f2;
}

.navi ul li a:hover:after {
  border-left: 15px solid #f2f2f2;
}

.navi ul li a.logo {
  background: #ffce54;
  padding: 15px 30px 15px 15px;
  line-height: 1;
  vertical-align: middle;
}

.navi ul li a.logo:hover {
  background: #ffce54;
}

.navi ul li a.logo img {
  width: 70px;
}

.navi ul li a i {
  margin-right: 5px;
}

.navi ul li .menu a i {
  margin-right: unset;
  margin-left: 5px;
}

.navi ul li .menu {
  display: none;
  position: absolute;
  flex-direction: column;
  background: #FFFFFF;
  top: 100%;
  width: 250px;
  height: unset;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  border-bottom: 3px solid #00a7db;
  overflow: hidden;
}

.navi ul li .menu li a {
  -webkit-clip-path: unset;
  clip-path: unset;
  font-size: 12px;
}

.navi ul li .menu li {
  display: block;
  width: 100%;
  height: unset;
  margin: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.navi ul li .menu li:nth-child(2) a:before,
.navi ul li .menu li:nth-last-child(2) a:before,
.navi ul li .menu li:nth-child(2) a:after,
.navi ul li .menu li:nth-last-child(2) a:after {
  content: '';
  display: none;
}

.navi ul li .menu li a {
  background: #FFFFFF;
  padding: 1rem;
  color: #666666;
  height: auto;
}

.navi ul li .menu li a:hover {
  background: #f2f2f2;
}

.js-loaded.nav-is-open #navi {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}

.js-loaded.nav-is-open #navi.navi_fixed {
  background: #00a7db;
}

.js-loaded.nav-is-open #navi.navi_fixed .navi .logo {
  background-color: #00a7db;
  background-image: url(../img/logo/logo.svg);
  border-left: unset;
  transition: background 0.4s ease-out;
}

.nav-is-open #navi .logo {
  background-image: url("../img/logo/logo_inverted_.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

#navi {
  transition: all 0.4s ease-out;
}

#navi .logo {
  background-image: url("../img/logo/logo.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 205px !important;
  background-repeat: no-repeat;
  background-position: left;
  width: 205px;
  transition: background 0.4s ease-out;
}

#navi.navi_fixed {
  background: #1b75bc;
  z-index: 999;
  transition: all 0.4s ease-out;
  box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.15);
}

#navi.navi_fixed #callnow_menu {
  border-bottom: 15px solid #fff;
  color: #fff;
}

#navi.navi_fixed .navi {
  border-top: unset;
}

#navi.navi_fixed .navi ul li:last-child a {
  -webkit-clip-path: unset;
  clip-path: unset;
}

#navi.navi_fixed .navi ul li a {
  height: 100px;
  color: #fff;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

#navi.navi_fixed .navi ul li a:hover {
  background: #fff;
}

#navi.navi_fixed .navi ul li .menu li a {
  height: unset;
  color: #000;
  border-right: 1px solid rgba(22, 22, 22, 0.2);
  padding: 1rem 0.5rem;
}

#navi.navi_fixed .navi .logo {
  background-image: url("../img/logo/logo_inverted_.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  border-left: unset;
  transition: background 0.4s ease-out;
}

/*============================== MENU RESPONSIVE ==============================*/
@media (max-width: 1440px) {
  .navi ul li a {
    padding: 0 10px;
    font-size: 0.75rem;
  }
}

@media (max-width: 1199px) {
  #callnow_menu {
    padding: 0px 0.7rem;
    font-size: 0.75rem;
  }
  .navi ul li a {
    position: relative;
    display: flex;
    padding: 0 10px;
    color: #666666;
    font-size: 0.65rem;
  }
}

@media (max-width: 991px) {
  .navi ul {
    display: none;
  }
  .navi {
    height: 70px;
  }
  #callnow_menu {
    display: none;
  }
  #navi.navi_fixed .navi #callnow.mobilecall {
    color: #fff;
  }
  #navi.navi_fixed .navi {
    border-top: unset;
    background: transparent;
  }
  #navi.navi_fixed {
    box-shadow: unset;
  }
  #navi .logo {
    width: 230px;
    background-size: 230px !important;
  }
  .column.third a {
    color: #fff;
  }
  .column.third.home_link {
    display: none;
  }
}

/*============================== END MENU RESPONSIVE ==============================*/
/*=========================== TOP HEADER ===========================*/
.top_header {
  display: none;
  background: #fff;
  z-index: 999;
  position: relative;
  width: 100%;
  padding: 25px 0;
  box-shadow: 0 0 20px rgba(119, 119, 119, 0.7);
  border-bottom: 4px solid #00a7db;
}

.top_header .logo img {
  width: 135px;
}

.top_header .top_header_wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top_header .top_header_wrapper .logo {
  display: block;
}

.top_header .top_header_wrapper .menu .active_menu_li a {
  color: #00a7db;
  font-weight: 600;
  font-size: 1.1rem;
  transition: all 0.4s ease-out;
}

.top_header .top_header_wrapper .menu ul {
  padding-left: 0 !important;
  margin-bottom: unset;
  display: inline-block;
}

.top_header .top_header_wrapper .menu ul li {
  list-style: none;
  display: inline-block;
  text-transform: uppercase;
  padding: 10px;
}

.top_header .top_header_wrapper .menu ul li a {
  text-decoration: none;
  color: #131313;
  transition: all 0.4s ease-out;
  font-weight: 400;
  font-size: 1rem;
  letter-spacing: 1.5px;
  transition: all 0.4s ease-out;
}

.top_header .top_header_wrapper .menu ul li a:hover {
  color: #00a7db;
  font-weight: 600;
  transition: all 0.4s ease-out;
}

.top_header .top_header_wrapper .menu #callnow {
  color: #ffffff;
  text-transform: uppercase;
  padding: 43px 15px;
  letter-spacing: 1px;
  margin-left: 5px;
  background: #f37877;
  transition: all 0.4s ease-out;
}

.top_header .top_header_wrapper .menu #callnow:hover {
  text-decoration: none;
  background: #000;
  transition: all 0.4s ease-out;
}

.top_header .top_header_wrapper .menu #callnow i {
  font-size: 1rem;
}

.top_header .top_header_wrapper .menu #callnow strong {
  font-size: 1rem;
  letter-spacing: 1px;
}

#callnow.mobilecall {
  display: none;
}

#nav-toggle {
  display: none !important;
}

#mobile_nav {
  display: none !important;
}

#mobile_nav .submenu {
  padding-left: unset;
}

#mobile_nav .submenu li {
  display: inline-block;
}

#mobile_nav .submenu li i {
  font-size: 0.9rem;
}

/*=========================== END TOP HEADER ===========================*/
/*=========================== MOBILE NAVIGATION ===========================*/
@media only screen and (max-width: 1024px) {
  body > header > nav .nav-links h1 {
    font-size: 20px;
    letter-spacing: 2px;
    line-height: 48px;
    color: #fff;
    text-transform: uppercase;
  }
  body > header > nav .container-fluid > .row .column {
    width: 200px;
    padding: unset;
    text-align: center;
  }
}

@media (max-width: 991px) {
  #mobile_nav {
    display: block;
  }
  #nav-toggle {
    display: block;
  }
  #callnow.mobilecall {
    display: block;
    position: absolute;
    right: 4rem;
    color: #000000;
    text-transform: uppercase;
    padding: 37px 5px;
    letter-spacing: 1px;
    margin-left: 5px;
    background: transparent;
    transition: all 0.4s ease-out;
    transition: all 0.4s ease-out;
  }
  #callnow.mobilecall:hover {
    color: #777;
    text-decoration: none;
    background: transparent;
    transition: all 0.4s ease-out;
  }
  #callnow.mobilecall i {
    font-size: 0.9rem;
  }
  #callnow.mobilecall strong {
    font-size: 0.75rem;
    letter-spacing: 1px;
  }
  #navi.navi_fixed 6
.nav span {
    background: #fff;
  }
  body > header > nav .nav-links h1 {
    font-size: 12px !important;
    line-height: 20px;
    font-weight: 600;
  }
  body > header > nav .container-fluid > .row .column {
    width: 50% !important;
    margin: 1rem 0;
    height: 120px;
  }
  body > header > nav .container-fluid > .row .column.last {
    width: 100% !important;
  }
  body > header .nav span {
    background: #fff;
  }
  #mobile_nav .submenu li {
    display: block;
  }
  #mobile_nav .submenu li a {
    color: #fff;
    font-weight: 300;
    color: #fff;
    font-weight: 300;
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  #mobile_nav:before {
    width: 215%;
  }
  body > header > nav .nav-links h1 {
    font-size: 11px !important;
    line-height: 32px !important;
    letter-spacing: 0.5px;
  }
  .column.third a i {
    font-size: .8rem !important;
  }
  .column.third p {
    font-size: 14px;
  }
  .column {
    padding: 0 15px 0px;
  }
}

nav ul {
  list-style: none;
  list-style-image: none;
}

nav ol {
  list-style: none;
  list-style-image: none;
}

body.is-fixed {
  overflow: hidden !important;
}

body.nav-is-open {
  overflow: hidden !important;
}

body.nav-is-open .top_header {
  box-shadow: unset;
  border-bottom: 1px solid #eae8e8;
}

body.nav-is-open .navi {
  background: #1b75bc;
  transition: all .3s ease-out;
}

body.nav-is-open #navi {
  background: #1b75bc;
  transition: all .3s ease-out;
}

body.nav-is-open #callnow.mobilecall {
  color: #fff;
}

body > header .logo:hover {
  opacity: 0.7;
  outline: none;
  transition: background 0.4s ease-out;
}

body > header .nav {
  position: relative;
  float: right;
  z-index: 999;
}

body > header .nav::after {
  clear: both;
  content: "";
  display: table;
}

body > header .nav span {
  display: block;
  background: #202530;
}

body > header #nav-toggle {
  transition: all 0.25s cubic-bezier(0.7, 0.3, 0, 1);
  width: 30px;
  height: 30px;
  margin: 12px auto 0 0;
  display: block;
  position: relative;
  cursor: pointer;
}

body > header #nav-toggle:hover {
  opacity: 0.7;
}

body > header #nav-toggle #menu {
  transform: rotate(180deg);
  display: block;
}

body > header #nav-toggle #menu span {
  transform: translateX(0);
  transition: all 0.25s cubic-bezier(0.7, 0.3, 0, 1);
  position: relative;
  margin: 0 0 4px 0;
  opacity: 1;
  height: 3px;
}

body > header #nav-toggle #menu span:last-of-type {
  margin-bottom: 0;
}

body > header #nav-toggle #menu span:nth-child(1) {
  width: 25px;
  transition-delay: .5s;
}

body > header #nav-toggle #menu span:nth-child(2) {
  width: 16px;
  transition-delay: .625s;
}

body > header #nav-toggle #menu span:nth-child(3) {
  width: 30px;
  transition-delay: .75s;
}

body > header #nav-toggle #close {
  position: absolute;
  top: -7px;
  right: auto;
  bottom: auto;
  left: 0;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
}

body > header #nav-toggle #close span {
  transition: all 0.25s cubic-bezier(0.7, 0.3, 0, 1);
  opacity: 0;
}

body > header #nav-toggle #close span:nth-child(1) {
  position: absolute;
  top: 0%;
  right: auto;
  bottom: auto;
  left: 14px;
  width: 3px;
  height: 0%;
  transition-delay: 0s;
}

body > header #nav-toggle #close span:nth-child(2) {
  position: absolute;
  top: 14px;
  right: auto;
  bottom: auto;
  left: 0%;
  width: 0%;
  height: 3px;
  transition-delay: .25s;
}

body > header #nav-toggle.is-open #menu span {
  transform: translateX(-10px);
  opacity: 0;
}

body > header #nav-toggle.is-open #menu span:nth-child(1) {
  transition-delay: 0s;
}

body > header #nav-toggle.is-open #menu span:nth-child(2) {
  transition-delay: .125s;
}

body > header #nav-toggle.is-open #menu span:nth-child(3) {
  transition-delay: .25s;
}

body > header #nav-toggle.is-open #close span {
  opacity: 1;
}

body > header #nav-toggle.is-open #close span:nth-child(1) {
  height: 100%;
  transition-delay: .625s;
}

body > header #nav-toggle.is-open #close span:nth-child(2) {
  width: 100%;
  transition-delay: .375s;
}

body > header > nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: auto;
  left: 0;
  padding: 95px 0 0 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  z-index: 99;
}

body > header > nav .container {
  padding: 0 0 20px 0;
}

body > header > nav .container > .row .column:first-child {
  padding-left: 0;
  padding: 0 10px;
}

body > header > nav .container > .row .column:last-child {
  padding-right: 0;
}

body nav {
  transform: translate3d(0, -100%, 0);
  transition: opacity .45s, transform .45s, visibility .35s;
  opacity: 1;
  visibility: hidden;
  z-index: 21;
}

body nav .column {
  opacity: 0;
  transform: translate3d(0, -30px, 0);
  transition: opacity .45s, transform .45s;
}

body.nav-is-open nav {
  visibility: visible;
  transform: translate3d(0, 0, 0);
}

body.nav-is-open nav .column {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: 0.3s;
}

body.nav-is-open nav .column:nth-child(2) {
  transition-delay: 0.4s;
}

body.nav-is-open nav .column:nth-child(3) {
  transition-delay: 0.5s;
}

body.nav-is-open main {
  transform: translate3d(0, 200px, 0);
}

body.nav-is-open main:after {
  opacity: 1;
  visibility: visible;
}

body.nav-is-open header .logo {
  transform: translateY(0);
}

body > header > nav .nav-links {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
}

body > header > nav .nav-links::after {
  clear: both;
  content: "";
  display: table;
}

body > header > nav .nav-links h1 {
  font-size: 62px;
}

body > header > nav .nav-links span {
  font-weight: 300;
}

body > header > nav .nav-links li {
  position: relative;
}

body > header > nav .nav-links li::after {
  clear: both;
  content: "";
  display: table;
}

body > header > nav .nav-links .btn,
body > header > nav .nav-links .btn-transparent,
body > header > nav .nav-links .btn-white,
body > header > nav .nav-links .btn-onyx {
  margin-top: 10px;
}

body > header > nav .nav-links .btn-transparent {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding: 0;
  line-height: 25px;
  font-size: 12px;
  display: block;
  text-align: left;
  font-weight: 600;
}

body > header > nav .nav-links .btn-transparent:hover i {
  margin-left: 10px;
}

body > header > nav .nav-links .btn-transparent i {
  margin-left: 3px;
}

body > header > nav .nav-links .mail {
  font-size: 12px;
}

body > header > nav .nav-links .mail a {
  color: #f7415f;
  font-weight: 600;
}

body > header > nav .nav-links .location {
  margin: 0;
  font-size: 15px;
  line-height: 21px;
  letter-spacing: 0.5px;
  font-weight: 500;
  padding-left: unset;
}

body > header > nav .nav-links .location a {
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

body > header > nav .nav-links .location a:hover {
  text-decoration: none;
  color: #00a7db;
  transition: all 0.4s ease-out;
}

body > header > nav .nav-links .phone {
  margin-top: 10px;
}

body > header > nav .nav-links .social {
  margin: 30px 0 0 0;
  display: inline-block;
  text-align: center;
}

body > header > nav .nav-links .social::after {
  clear: both;
  content: "";
  display: table;
}

body > header > nav .nav-links .social li {
  margin: 0 0 0 25px;
  display: inline-block;
  float: left;
  text-align: center;
}

body > header > nav .nav-links .social li:first-child {
  margin-left: 0;
}

body > header > nav .nav-links .social li a {
  display: block;
  font-size: 18px;
}

.column.single {
  width: 20% !important;
}

#homelink {
  display: flex;
  flex-direction: column-reverse;
  padding: 0 6px;
  color: #00a7db;
  transition: all 0.4s ease-out;
}

#homelink:hover {
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

#homelink span {
  text-transform: uppercase;
  font-weight: 500;
  letter-spacing: 3px;
}

#homelink img {
  width: 45px;
  margin-bottom: 7px;
  margin-left: 10px;
}

.column.third a {
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

.column.third a i {
  font-size: 0.8rem;
  color: #fff;
  transition: all 0.4s ease-out;
}

.column.third a:hover h1 {
  text-decoration: none;
  color: #00a7db;
  transition: all 0.4s ease-out;
}

.column.third p {
  font-weight: 300;
  font-size: 15px;
  padding: 0 35px;
  color: #fff;
}

@media only screen and (max-width: 1280px) {
  body > header > nav .nav-links h1 {
    font-size: 52px;
  }
  body > header > nav .nav-links .btn-transparent {
    font-size: 11px;
  }
}

@media only screen and (max-width: 767px) {
  body > header > nav .nav-links .btn-transparent {
    text-align: center;
  }
  body > header > nav .nav-links .mail {
    margin-top: 30px;
  }
  body > header > nav .nav-links li {
    text-align: center;
  }
  body > header > nav .container > .row .column {
    padding: 0;
    width: 100%;
  }
  body > header > nav .nav-links {
    text-align: center;
  }
  body > header .logo {
    width: 50px;
  }
  .column.third p {
    font-size: 13px;
  }
}

/*============================== END MOBILE NAVIGATION =============================*/
/*============================== END  NAVIGATION =============================*/
/*=========================== RESPONSIVE NAVIGATION ===========================*/
.nav-right {
  display: none;
}

@media (max-width: 1199px) {
  .top_header .top_header_wrapper .menu ul li a {
    font-size: 0.9rem;
    letter-spacing: 1px;
  }
  .top_header .top_header_wrapper .menu ul li {
    padding: 10px 5px;
  }
  .top_header .top_header_wrapper .menu #callnow {
    color: #ffffff;
    text-transform: uppercase;
    padding: 39px 7px;
    letter-spacing: 1px;
    margin-left: 5px;
    background: #f37877;
    transition: all 0.4s ease-out;
  }
  .top_header .top_header_wrapper .menu #callnow i {
    font-size: 0.8rem;
  }
  .top_header .top_header_wrapper .menu #callnow strong {
    font-size: 0.8rem;
    letter-spacing: 0px;
  }
  .top_header .top_header_wrapper .menu .active_menu_li a {
    color: #f37877;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.4s ease-out;
  }
  .top_header .logo img {
    width: 115px;
  }
}

@media (max-width: 991px) {
  .nav-right {
    display: flex;
    align-items: center;
    padding: 0 2rem;
  }
  #callnow.mobilecall {
    display: block;
    position: absolute;
    right: 6rem;
  }
  .menu {
    display: none;
  }
  #mobile_nav {
    display: block !important;
    background: rgba(27, 117, 188, 0.9);
    overflow: hidden;
  }
  #nav-toggle {
    display: block !important;
  }
  body > header #nav-toggle {
    margin: 15px 0 0 0;
  }
}

@media (max-width: 575px) {
  body > header > nav .container-fluid > .row .column {
    width: 100%;
    padding: 0.5rem 0px;
    margin: 0rem;
  }
  .column.third p {
    font-weight: 300;
    font-size: 15px;
    display: none;
  }
  .top_header {
    padding: 15px 0;
  }
  body > header > nav .nav-links h1 {
    font-size: 17px !important;
    margin-bottom: unset;
    letter-spacing: 2px;
  }
  #mobile_nav .submenu li {
    display: block;
    margin-bottom: 10px;
  }
  #mobile_nav .submenu_title {
    font-weight: 300;
    text-transform: uppercase;
    font-size: 20px !important;
    margin-bottom: unset;
  }
  #mobile_nav .submenu li a {
    font-size: 17px !important;
  }
  #mobile_nav {
    display: flex !important;
    overflow: hidden;
    align-items: center;
  }
  body > header > nav .container-fluid > .row .column {
    width: 100% !important;
  }
  body > header > nav .container-fluid > .row .column {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  body > header > nav .container-fluid > .row .column:last-child {
    border-bottom: unset;
  }
  #callnow.mobilecall {
    display: none;
  }
  body > header > nav .container-fluid > .row .column {
    height: unset;
  }
  #mobile_nav .submenu {
    margin-bottom: unset !important;
  }
}

@media (max-width: 420px) {
  body > header > nav .nav-links h1 {
    font-size: 24px;
  }
  #callnow.mobilecall {
    display: none;
  }
}

/*=========================== END RESPONSIVE NAVIGATION ===========================*/
/*============================== FOOTER ======================================*/
footer {
  background: #1b75bc;
  margin: 30px 0;
  margin-bottom: unset;
  padding: 50px;
}

footer .footer_title {
  line-height: 1.8;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 40px 0;
}

footer .footer_title span {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 300;
}

footer .footer_title p {
  color: #fff;
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: unset;
}

footer .footer_title p i {
  color: #fff;
}

footer .footer_box {
  padding: 40px 0;
}

footer .footer_box strong {
  font-size: 1.1rem;
  text-transform: uppercase;
  margin-bottom: 15px;
  display: block;
  letter-spacing: 2px;
  color: #fff;
}

footer .footer_box p {
  font-weight: 300;
  letter-spacing: 1px;
  line-height: 1.3;
  color: #fff;
}

footer .footer_box span {
  font-weight: 400;
  color: #fff;
}

footer .footer_box .footer_i a {
  text-decoration: none;
  color: #fff;
}

footer .footer_box ul {
  display: flex;
  padding-left: unset;
  list-style: none;
  margin-bottom: unset;
  letter-spacing: 1px;
  line-height: 1.3;
  font-size: 0.95rem;
}

footer .footer_box ul li {
  letter-spacing: 1px;
  line-height: 1.3;
  padding-right: 15px;
}

footer .footer_box ul li span {
  text-decoration: none;
  color: #fff;
}

footer .footer_box ul li a {
  color: #fff;
  transition: all 0.4s ease-out;
}

footer .footer_box ul li a:hover {
  text-decoration: none;
  text-decoration: none;
  color: #1C315E;
  transition: all 0.4s ease-out;
}

footer .footer_box .footer_i {
  letter-spacing: 1px;
  line-height: 1.3;
  font-size: 1.1rem;
  font-weight: 300;
}

footer .footer_box .footer_i a {
  color: #fff;
}

footer .footer_box .footer_i span {
  text-decoration: none;
  color: #000;
}

footer .footer_box .footer_i span {
  color: #fff;
}

footer .footer_box .footer_i i {
  font-size: 0.8rem;
}

footer .footer_box.footer_menu ul {
  flex-wrap: wrap;
  text-transform: uppercase;
}

footer .copyrights_text {
  text-align: center;
  font-size: 14px;
  color: #fff;
}

/*============================== END FOOTER ======================================*/
/*============================== FOOTER RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  footer {
    padding: 15px 15px 0;
  }
  footer .footer_title {
    padding: 10px 0;
  }
  footer .footer_box {
    padding: 10px 0;
  }
  footer .footer_box strong {
    font-size: 0.9rem;
  }
  footer .footer_box strong {
    margin-bottom: 5px;
  }
  footer .footer_box .footer_i {
    font-size: 0.9rem;
  }
  footer .footer_box ul li a {
    font-size: 12px;
  }
  footer .footer_box span {
    font-size: 12px;
  }
}

@media (max-width: 991px) {
  footer .footer_box ul li {
    padding-right: 5px;
  }
  footer .footer_box ul li a {
    font-size: 12px;
  }
  .footer_i.footer_last {
    display: none;
  }
  footer .footer_title p {
    font-size: 1.3rem;
  }
}

@media (max-width: 767px) {
  footer {
    text-align: center;
  }
  footer .footer_box ul {
    justify-content: center;
  }
  footer .footer_box span {
    font-size: 21px;
  }
  footer .footer_box ul li a {
    font-size: 16px;
  }
  footer .footer_title {
    line-height: 1.2;
  }
  footer .footer_title p {
    font-size: 1.3rem;
  }
}

@media (max-width: 575px) {
  footer {
    margin: 10px;
  }
  footer .footer_title span {
    font-size: 0.7rem;
    display: block;
    margin-bottom: 10px;
  }
  .copyrights_text {
    padding: 10px 0;
  }
  footer .footer_box span {
    font-size: 14px;
  }
}

@media (max-width: 420px) {
  footer .footer_title p {
    font-size: 1.3rem;
  }
}

/*============================== END FOOTER RESPONSIVE ==============================*/
/*============================== PAGES HEADER ======================================*/
.pages_header {
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: cover !important;
  height: 600px;
  display: flex;
  align-items: center;
}

.pages_header .pages_header_text {
  text-align: center;
  color: #fff;
}

.pages_header .pages_header_text h1 {
  font-size: 3.5rem;
  text-transform: uppercase;
  letter-spacing: 5px;
}

.pages_header .pages_header_text .pages_breadcrumb {
  text-transform: uppercase;
  letter-spacing: 5px;
}

.pages_header .pages_header_text .pages_breadcrumb a {
  text-decoration: none;
  color: #fff;
  transition: all 0.4s ease-out;
}

.pages_header .pages_header_text .pages_breadcrumb a:hover {
  text-decoration: none;
  color: #00a7db;
  transition: all 0.4s ease-out;
}

#whoweare_bg.pages_header {
  background-image: url("../img/swiper/1.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#contactpage_bg.pages_header {
  background-image: url("../img/swiper/3.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#iformpage_bg.pages_header {
  background-image: url("../img/photos_min/15.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#servicespage_bg.pages_header {
  background-image: url("../img/swiper/2.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#works_bg.pages_header {
  background-image: url("../img/swiper/4.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

/*============================== END PAGES HEADER ======================================*/
/*============================== PAGES HEADER RESPONSIVE ======================================*/
@media (max-width: 991px) {
  .pages_header {
    height: 450px;
  }
  .pages_header .pages_header_text h1 {
    font-size: 2.5rem;
  }
  .pages_header .pages_header_text {
    margin-top: 50px;
  }
}

@media (max-width: 575px) {
  .pages_header {
    height: 350px;
  }
  .pages_header .pages_header_text h1 {
    font-size: 2rem;
  }
  .pages_header .pages_header_text .pages_breadcrumb {
    font-size: 14px;
  }
  .pages_header .pages_header_text h1 {
    font-size: 1.6rem;
  }
  .pages_header .pages_header_text .pages_breadcrumb {
    font-size: 11px;
  }
}

/*============================== END PAGES HEADER RESPONSIVE ======================================*/
/*============================== BANNER ======================================*/
/*============================== END BANNER ======================================*/
/*============================== BANNER RESPONSIVE ==============================*/
/*============================== END BANNER RESPONSIVE ==============================*/
/*============================== CONTACT ======================================*/
.form_btn_wrapper #send-message {
  float: right;
}

#contact_form {
  font-size: 1.2rem;
  margin-top: 4rem;
  margin-bottom: 8rem;
}

#contact_form h3 {
  padding: 45px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 2.5rem;
}

#contact_form h3 strong {
  color: #00a7db;
  font-weight: 600;
}

#contact_form .first_input {
  margin-right: 1%;
}

#contact_form .form-group.textarea {
  margin-top: 2rem;
}

#contact_form .g-recaptcha {
  float: left;
}

#contact_form input {
  padding: 20px 15px;
  width: 49.1%;
  background: #1C315E;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 400;
  border: unset;
  border-radius: 0.2rem;
}

#contact_form input::-webkit-input-placeholder {
  color: #fff;
}

#contact_form input:-ms-input-placeholder {
  color: #fff;
}

#contact_form input::-ms-input-placeholder {
  color: #fff;
}

#contact_form input::placeholder {
  color: #fff;
}

#contact_form textarea {
  width: 100%;
  padding: 15px;
  background: #f5f5f5;
  border: unset;
}

#contact_form #contact_form .form_btn_wrapper {
  text-align: center;
  margin-top: 1rem;
}

#contact_form button {
  background: #1c315e;
  border: unset;
  border-radius: unset !important;
  padding: 10px 15px;
  color: #fff;
  font-size: 1rem;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 3px;
}

#contact_info {
  margin: 5rem 0;
}

#contact_info #cib_left.contact_info_box {
  border-right: 1px solid #ddd;
}

#contact_info .contact_info_box {
  background: #f5f5f5;
  padding: 55px 30px;
  height: 100%;
}

#contact_info .contact_info_box i {
  color: #00a7db;
}

#contact_info .contact_info_box strong {
  font-size: 1.6rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 1rem;
  display: block;
}

#contact_info .contact_info_box span {
  font-size: 1.1rem;
  font-weight: 300;
}

#contact_info .contact_info_box p {
  font-size: 1.4rem;
  font-weight: 300;
  margin-bottom: unset;
}

#contact_info .contact_info_box a {
  text-decoration: none;
  color: #000;
  font-size: 1.4rem;
  font-weight: 300;
  transition: all 0.4s ease-out;
}

#contact_info .contact_info_box a:hover {
  color: #00a7db;
  transition: all 0.4s ease-out;
}

#contact_info .contact_info_box #howtocome {
  background: #1C315E;
  color: #fff;
  padding: 7px 15px;
  border-radius: 4rem;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 500;
  position: relative;
  top: 12px;
  transition: all 0.4s ease-out;
}

#contact_info .contact_info_box #howtocome i {
  color: #fff;
}

#contact_info .contact_info_box #howtocome:hover {
  background: #000;
  transition: all 0.4s ease-out;
}

#contact_info .contact_info_box ul {
  padding-left: unset;
  list-style: none;
  margin-bottom: unset;
}

#contact_info .contact_info_box ul li {
  display: inline-block;
}

#contact_info .contact_info_box ul li a {
  text-decoration: none;
  color: #000;
  font-size: 1.4rem;
  font-weight: 300;
  transition: all 0.4s ease-out;
}

#contact_info .contact_info_box ul li a:hover {
  color: #00a7db;
  transition: all 0.4s ease-out;
}

/*============================== END CONTACT ======================================*/
/*============================== OFFERS CONTACT ==============================*/
@media (max-width: 991px) {
  #contact_info .contact_info_box {
    padding: 30px;
  }
  #contact_info .contact_info_box strong {
    font-size: 1.3rem;
  }
  #contact_info .contact_info_box p {
    font-size: 1.3rem;
  }
  #contact_info .contact_info_box ul li a {
    font-size: 1.3rem;
  }
  #contact_info .contact_info_box a {
    font-size: 1.1rem;
  }
  #contact_form h3 {
    padding: 20px 0;
    font-size: 2rem;
  }
}

@media (max-width: 767px) {
  #contact_info #cib_left.contact_info_box {
    border-right: unset;
    border-bottom: 1px solid #ddd;
  }
  #contact_form input {
    width: 100%;
    font-size: 1rem;
  }
  #contact_form textarea {
    height: 200px;
  }
  #contact_form button {
    padding: 8px 50px;
    color: #fff;
    font-size: 1rem;
  }
  #contact_form input {
    padding: 15px;
  }
  #contact_form {
    margin-bottom: 3rem;
  }
  .form_btn_wrapper {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }
  #contact_form .g-recaptcha {
    text-align: center;
    margin-bottom: 20px;
  }
  #contact_form .g-recaptcha > div {
    width: 100% !important;
  }
  #contact_form .first_input {
    margin-right: unset;
    margin-bottom: 15px;
  }
}

@media (max-width: 575px) {
  #contact_info .contact_info_box p {
    font-size: 1.1rem;
  }
  #contact_info .contact_info_box ul li a {
    font-size: 1.1rem;
  }
  #contact_info .contact_info_box #howtocome {
    font-size: 0.7rem;
  }
  #contact_info {
    text-align: center;
  }
  #contact_form h3 {
    font-size: 1.6rem;
    text-align: center;
  }
  .form_btn_wrapper {
    text-align: center;
    margin-top: 1rem;
  }
}

@media (max-width: 420px) {
  #contact_form input {
    width: 100%;
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }
  #contact_form .form-group {
    margin-bottom: 0rem;
  }
  #contact_form .form-group.textarea {
    margin-top: 1rem;
  }
  #contact_form textarea {
    font-size: 1rem;
  }
}

/*============================== END CONTACT RESPONSIVE ==============================*/
/*============================== SWIPER ======================================*/
.swiper-container {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #fff;
  /* Center slide text vertically */
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
}

#home_swiper {
  height: 100vh;
}

#home_swiper p {
  background: #f37877;
  font-size: 1.7rem;
  text-transform: uppercase;
  color: #fff;
  letter-spacing: 2.5px;
  border-left: 1rem solid rgba(0, 0, 0, 0.5);
  padding-left: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  display: block;
  width: 660px;
  font-weight: 600;
}

#home_swiper .slide_image1 {
  background-image: url("../img/swiper/1.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#home_swiper .slide_image2 {
  background-image: url("../img/swiper/2.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#home_swiper .slide_image3 {
  background-image: url("../img/swiper/3.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#home_swiper .swiper_text {
  width: 100%;
  position: absolute;
  display: -webkit-flex;
  display: flex;
  bottom: 0;
  z-index: 9;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

#home_swiper .swiper_text .swiper_text_wrapper {
  background: #1C315E;
  padding: 1.5rem;
  box-shadow: 7px -6px 8px 0px rgba(0, 0, 0, 0.03);
}

#home_swiper .swiper_text h1 {
  color: #fff;
  line-height: 1.3;
  font-size: 2.5rem;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
}

#home_swiper .swiper_text h1 strong {
  color: #00a7db;
  text-shadow: 0 0 5px rgba(80, 73, 73, 0.25);
  font-weight: 600;
  text-transform: capitalize;
}

#home_swiper .swiper-button-next, #home_swiper .swiper-button-prev {
  margin-top: 0 !important;
  position: relative !important;
  display: inline-block !important;
  -webkit-filter: saturate(0) brightness(100);
  filter: saturate(0) brightness(100);
  background-size: 30px 30px;
}

#home_swiper .swiper-button-next, #home_swiper .swiper-container-rtl .swiper-button-prev {
  right: -40px !important;
}

#home_swiper .swiper-button-prev, #home_swiper .swiper-container-rtl .swiper-button-next {
  left: -45px !important;
}

#home_swiper .swiper-container-horizontal > .swiper-pagination-bullets, #home_swiper .swiper-pagination-custom, #home_swiper .swiper-pagination-fraction {
  bottom: -22px !important;
  left: unset !important;
  width: unset !important;
  position: relative !important;
  color: #fff;
  font-size: 2rem;
  font-weight: 200;
}

#home_swiper .swiper_ui_controls {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  padding: 0 1rem .5rem;
}

#home_swiper span.swiper-pagination-current {
  font-weight: 500 !important;
}

#home_swiper span.swiper-pagination-total {
  color: #dcdcdc;
  font-weight: 500;
}

/*============================== PLAY BUTTON ======================================*/
@-webkit-keyframes spin {
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.stroke-dotted {
  opacity: 0;
  stroke-dasharray: 4,5;
  stroke-width: 1px;
  -webkit-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  -webkit-animation: spin 4s infinite linear;
  animation: spin 4s infinite linear;
  transition: opacity 1s ease,  stroke-width 1s ease;
}

.stroke-solid {
  stroke-dashoffset: 0;
  stroke-dashArray: 300;
  stroke-width: 4px;
  transition: stroke-dashoffset 1s ease,  opacity 1s ease;
}

.icon {
  -webkit-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  transition: -webkit-transform 200ms ease-out;
  transition: transform 200ms ease-out;
  transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;
  margin-bottom: unset;
}

#play:hover .stroke-dotted {
  stroke-width: 4px;
  opacity: 1;
}

#play:hover .stroke-solid {
  opacity: 0;
  stroke-dashoffset: 300;
}

#play:hover .icon {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}

#play {
  cursor: pointer;
  position: relative;
  top: 0px;
  left: 0;
  -webkit-transform: translateY(-50%) translateX(-50%);
  transform: translateY(-50%) translateX(-50%);
}

/*============================== PLAY BUTTON END ======================================*/
#welcome_video {
  display: block;
  margin-top: 8rem;
}

#welcome_video:hover {
  text-decoration: none;
}

#welcome_video strong {
  color: #fff;
  margin-top: -5.5rem;
  font-size: 1.8rem;
  letter-spacing: 2px;
  font-weight: 400;
}

#welcome_video .wv_description {
  height: 100%;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
}

/*============================== END SWIPER ======================================*/
/*============================== SWIPER RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #home_swiper p {
    font-size: 1.1rem;
    width: 450px;
  }
  #welcome_video strong {
    font-size: 1.4rem;
  }
  #home_swiper .swiper_text h1 {
    font-size: 2rem;
  }
}

@media (max-width: 991px) {
  #home_swiper .swiper_text h1 {
    padding-right: 0;
    margin-bottom: unset;
    font-size: 1.3rem;
  }
  #home_swiper p {
    font-size: 1.4rem;
    width: 100%;
  }
  #home_swiper .swiper_ui_controls {
    padding-right: 0;
  }
  #home_swiper {
    height: 530px;
  }
  #home_swiper .swiper_text {
    height: calc(100% - -60px);
    margin-bottom: unset;
    width: 100%;
  }
  #home_swiper .swiper-button-next, #home_swiper .swiper-button-prev {
    background-size: 25px 25px;
  }
  #home_swiper .swiper-container-horizontal > .swiper-pagination-bullets, #home_swiper .swiper-pagination-custom, #home_swiper .swiper-pagination-fraction {
    bottom: -34px !important;
    font-size: 1.5rem;
  }
  #home_swiper .swiper_text .swiper_text_wrapper {
    padding: 1rem;
  }
}

@media (max-width: 767px) {
  #home_swiper .swiper_text h1 {
    font-size: 1rem;
    padding-right: 0rem;
  }
  #home_swiper p {
    font-size: 1.2rem;
    width: 100%;
  }
  #home_swiper {
    height: 530px;
  }
}

@media (max-width: 575px) {
  #home_swiper p {
    font-size: 1rem;
  }
  #home_swiper .swiper_text {
    height: calc(100% - -70px);
  }
  #home_swiper .swiper-container-horizontal > .swiper-pagination-bullets, #home_swiper .swiper-pagination-custom, #home_swiper .swiper-pagination-fraction {
    font-size: 1.5rem;
  }
  #home_swiper .swiper_text h1 {
    font-size: 1.1rem;
  }
}

@media (max-width: 420px) {
  #home_swiper p {
    font-size: 0.8rem;
  }
  #home_swiper .swiper_text h1 {
    font-size: 0.8rem;
    letter-spacing: 1px;
  }
  #home_swiper {
    height: 425px;
  }
  #navi .logo {
    background-size: 195px !important;
  }
}

/*============================== END SWIPER RESPONSIVE ==============================*/
/*============================== HOMEPAGE ======================================*/
#welcome_promo.single_text {
  background: #f9f8f8;
  padding: 3rem 0;
  margin: 30px;
}

#welcome_promo.single_text.homepage {
  padding: 8rem 0;
}

#welcome_promo.single_text.homepage h2 {
  font-size: 2.6rem;
}

#welcome_promo.single_text h2 {
  letter-spacing: .5px;
  font-size: 2.6rem;
  font-weight: 300;
  line-height: 1.5;
}

#welcome_promo.single_text h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#welcome_promo.single_text .fas.fa-sort-down {
  font-size: 38rem;
  position: absolute;
  top: -18rem;
  color: #f37877;
  z-index: -1;
}

#services.single_text {
  background: #f9f8f8;
}

#services.single_text h2 {
  letter-spacing: .5px;
  font-size: 2.2rem;
  font-weight: 300;
  line-height: 1.5;
}

#services.single_text h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#services.single_text .fas.fa-sort-down {
  font-size: 38rem;
  position: absolute;
  top: -8rem;
  color: #f37877;
  z-index: -1;
}

.pages_button {
  margin-top: 10px;
  display: inline-block;
  background: #efefef;
  box-shadow: inset 0px 0px 0px 0px #1c315e;
  transition: all 0.6s cubic-bezier(0.9, 0.24, 0.4, 1);
  color: #1b75bc;
  text-transform: uppercase;
  font-size: 1rem;
  padding: 0.8rem .5rem;
}

.pages_button::before {
  content: '';
  width: 100%;
  height: 0%;
  display: block;
  background: rgba(0, 167, 219, 0.05);
  position: absolute;
  left: 0%;
  opacity: 0;
  top: 0;
  z-index: -1;
  transition: height 0.4s cubic-bezier(0.9, 1, 0.32, 1), opacity 0.1s ease;
}

.pages_button:hover::before {
  opacity: 1;
  height: 100%;
}

.pages_button:hover {
  box-shadow: inset 0px 100px 0px 0px #1b75bc;
  color: #ffffff;
  text-decoration: unset;
}

#whoweare {
  padding: 10rem 0;
}

#whoweare .parag_link {
  color: #f37877 !important;
  font-weight: 600 !important;
}

#whoweare .parag_link:hover {
  text-decoration: none;
}

#whoweare.single_text h2 {
  letter-spacing: 1.2px;
  font-size: 3rem;
  font-weight: 300;
  line-height: 1.5;
  text-transform: uppercase;
}

#whoweare.single_text h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#whoweare .single_text_description {
  padding: 20px 140px;
  font-size: 20px;
  font-weight: 300;
}

#whoweare .single_text_description .paragraph_style {
  border-bottom: 2px solid #1b75bc;
  padding: 20px 0;
}

#whoweare .single_text_description .paragraph_style.paragraph_style_last {
  border-bottom: unset !important;
}

#whoweare .single_text_description p strong {
  font-weight: 600;
}

#whoweare .single_text_description .promo_list p {
  float: left;
  width: 32.3%;
  font-weight: 400;
  background: #333;
  margin: 0.5%;
  padding: 1rem;
  color: #fff;
  font-size: 1.1rem;
}

#partners {
  padding: 3rem 0;
  background: #f9f8f8;
  margin: 30px;
}

#partners.single_text h2 {
  text-align: center;
  letter-spacing: 1.2px;
  font-size: 3rem;
  font-weight: 300;
  line-height: 1.5;
}

#partners.single_text h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#partners.single_text p {
  text-align: center;
  letter-spacing: 1px;
  font-size: 1.7rem;
  font-weight: 300;
  line-height: 1.5;
}

#partners.single_text p strong {
  border-bottom: 5px solid #00a7db;
  font: 600 2.2rem/6px "averta";
}

#partners .partners_images {
  display: -webkit-flex;
  display: flex;
  padding: 2rem 0;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

#partners .partners_images a {
  -webkit-filter: opacity(1);
  filter: opacity(1);
  padding: 0.5rem 1.5rem;
  transition: all 0.4s ease-out;
}

#partners .partners_images a:hover {
  -webkit-filter: opacity(0.5);
  filter: opacity(0.5);
  transition: all 0.4s ease-out;
}

#partners .partners_images a:last-child {
  border-left: 2px solid #000;
}

#partners .partners_images img {
  width: 190px;
}

.services_img {
  height: 100%;
}

#si_01 {
  background-image: url("../img/photos_min/15.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#si_02 {
  background-image: url("../img/swiper/2.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#si_03 {
  background-image: url("../img/photos_min/5.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#si_04 {
  background-image: url("../img/photos_min/17.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.single_text_wrapper {
  padding: 6rem 2.5rem;
}

.button_wrapper {
  text-align: center;
  padding: 2rem 0;
}

#services.single_text p {
  font-size: 20px;
  font-weight: 300;
}

#services.single_text ul {
  padding-left: unset;
  list-style: none;
  margin-bottom: unset;
  font-size: 20px;
  font-weight: 300;
}

#services.single_text ul li {
  padding: 5px;
}

#services.single_text ul li i {
  padding-right: 10px;
  font-size: 18px;
}

.counter-item-wrapper {
  padding: 2rem 0 0;
}

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

.counter-item.count-item-center {
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
}

.counter-item p .counter {
  font-size: 3rem;
}

.counter-item p.icon i {
  font-size: 1.5rem;
}

.counter-item h4 {
  font-size: 1rem;
  text-transform: uppercase;
}

.map {
  padding: 30px;
  padding-bottom: 0;
}

.map iframe {
  width: 100%;
  height: 500px;
}

.text_desc {
  text-align: left;
}

.extra_services_sec {
  padding: 4rem 0 0;
}

/*============================== END HOMEPAGE ======================================*/
/*============================== HOMEPAGE RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #welcome_promo.single_text.homepage h2 {
    font-size: 1.9rem;
  }
  #welcome_promo.single_text.homepage {
    padding: 3rem 0;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -16rem;
  }
  #welcome_promo.single_text h2 {
    font-size: 2.2rem;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -16rem;
    font-size: 36rem;
  }
  .counter-item h4 {
    font-size: 0.9rem;
  }
  .counter-item p .counter {
    font-size: 2rem;
  }
  #whoweare .single_text_description {
    padding: 20px 45px;
    font-size: 21px;
  }
}

@media (max-width: 991px) {
  #welcome_promo.single_text.homepage h2 {
    font-size: 1.6rem;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -17rem;
  }
  #whoweare .single_text_description {
    padding: 20px 0px;
    font-size: 18px;
  }
  .single_text_wrapper {
    padding: 2rem;
  }
  #services.single_text h2 {
    letter-spacing: 0px;
    font-size: 1.8rem;
  }
  #services.single_text ul li {
    font-size: 16px;
  }
  #whoweare {
    padding: 6rem 0;
  }
  #welcome_promo.single_text h2 {
    font-size: 1.6rem;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -15rem;
    font-size: 32rem;
  }
  #whoweare .profile_img {
    height: 350px !important;
    margin-bottom: 2.5rem;
  }
  #whoweare.single_text h2 {
    font-size: 2rem;
  }
}

@media (max-width: 767px) {
  #welcome_promo.single_text.homepage h2 {
    font-size: 1.4rem;
  }
  #welcome_promo.single_text.homepage {
    padding: 2rem 0;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -18rem;
  }
  #whoweare.single_text h2 {
    font-size: 1.8rem;
    line-height: 1.5;
  }
  #whoweare.single_text h2 strong {
    font-size: 1.6rem;
  }
  .services_img {
    height: 300px;
  }
  #welcome_promo.single_text h2 {
    font-size: 1.4rem;
  }
  #welcome_promo.single_text {
    padding: 2rem 0;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -15rem;
  }
  #welcome_promo.single_text {
    margin: 15px;
  }
  .counter-item h4 {
    font-size: 0.7rem;
  }
  .counter-item {
    text-align: center;
  }
  .counter-item.count-item-center {
    border-left: unset;
    border-right: unset;
  }
  .map iframe {
    height: 300px;
  }
  #whoweare .single_text_description .paragraph_style {
    padding: 10px 0 20px;
  }
}

@media (max-width: 575px) {
  #welcome_promo.single_text.homepage h2 {
    font-size: 1.3rem;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -7rem;
    font-size: 26rem;
  }
  #whoweare {
    padding: 5rem 0 2rem;
  }
  #whoweare.single_text h2 {
    font-size: 2.2rem;
    line-height: 0.5;
  }
  #whoweare .single_text_description {
    font-size: 16px;
  }
  .pages_button {
    padding: 10px 15px;
    font-size: 16px;
    margin-top: 10px;
  }
  #welcome_promo.single_text h2 {
    font-size: 1rem;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -7rem;
    font-size: 18rem;
  }
  .counter-item.counter-item-last {
    border-bottom: unset;
  }
  .counter-item {
    text-align: center;
    border-bottom: 1px solid #d6d6d6;
    padding: 1rem 0;
  }
  .counter-item h4 {
    font-size: 0.9rem;
  }
  .map iframe {
    height: 250px;
  }
}

@media (max-width: 420px) {
  #welcome_promo.single_text.homepage {
    padding: 1rem 0;
    margin: 15px;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    top: -9rem;
    font-size: 26rem;
  }
  .single_text_wrapper {
    padding: 1.2rem;
  }
  #services.single_text h2 {
    font-size: 1.4rem;
  }
  #welcome_promo.single_text {
    padding: 1rem 0;
  }
  #welcome_promo.single_text .fas.fa-sort-down {
    font-size: 22rem;
  }
}

/*============================== END HOMEPAGE RESPONSIVE ==============================*/
#iform {
  font-size: 1.2rem;
  margin-top: 6rem;
}

#iform h3 {
  padding: 45px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 2.5rem;
}

#iform h3 strong {
  color: #00a7db;
  font-weight: 600;
}

#iform p {
  font-size: 1.7rem;
  font-weight: 300;
  letter-spacing: 1px;
  margin-bottom: 3rem;
}

#iform p strong {
  border-bottom: 5px solid #f37877;
  font: 600 2.2rem/4px "averta";
}

#iform .first_input {
  margin-right: 1%;
}

#iform input {
  padding: 20px 15px;
  width: 49.2%;
  background: #f37877;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 400;
  border: unset;
  border-radius: 0.2rem;
}

#iform input::-webkit-input-placeholder {
  color: #fff;
}

#iform input:-ms-input-placeholder {
  color: #fff;
}

#iform input::-ms-input-placeholder {
  color: #fff;
}

#iform input::placeholder {
  color: #fff;
}

#iform textarea {
  width: 100%;
  padding: 15px;
  background: #f5f5f5;
  border: unset;
}

#iform .form_btn_wrapper {
  text-align: center;
}

#iform button {
  background: #00a7db;
  border: 1px solid transparent;
  border-bottom: 7px solid #da6b6a;
  padding: 15px 50px;
  color: #fff;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 3px;
  border-radius: 5px;
}

#iform .services_mini_info.services_mini_info_msg {
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

#iform .services_mini_info.services_mini_info_msg strong {
  border-bottom: 3px solid #f37877;
  font: 600 0.9rem/0.7px "averta";
}

#iform .form-check.form-check-inline .form-group {
  margin-bottom: 1rem;
  padding: 1rem;
  text-align: center;
}

#iform .custom-file-label::after {
  color: #fff !important;
  content: "Αναζήτηση" !important;
  background-color: #f37877 !important;
}

#iform .form_multi {
  padding: 1.5rem 0;
}

#iform .form_multi .form-check.form-check-inline .form-group {
  padding-right: 15px;
}

#iform .form_multi input {
  width: 15px;
  height: 15px;
}

#iform .form_multi .form-check-inline {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

#iform .form-control {
  height: calc(3.5em + .75rem + 2px) !important;
}

#iform .form_link input {
  width: 100%;
}

/*============================== OFFERS CONTACT ==============================*/
@media (max-width: 1199px) {
  #iform p {
    font-size: 1.4rem;
  }
  #iform p strong {
    font: 600 1.5rem/4px "averta";
    border-bottom: 4px solid #f37877;
  }
  #iform input {
    padding: 20px 15px;
    width: 49.1%;
  }
  #iform h3 {
    padding: 30px 0;
    font-size: 2rem;
  }
}

@media (max-width: 991px) {
  #iform button {
    border-bottom: 5px solid #da6b6a;
    padding: 10px 50px;
    font-size: 1rem;
  }
  #offers.offersx6 .partners_images {
    height: 170px;
    margin-bottom: 1rem;
  }
}

@media (max-width: 767px) {
  #iform p {
    font-size: 1.3rem;
  }
  #iform h3 {
    padding: 15px 0;
    font-size: 1.7rem;
  }
  #iform input {
    padding: 15px 15px;
    width: 48.8%;
    font-size: 1rem;
  }
  #iform .form-control {
    height: calc(2em + .75rem + 2px) !important;
  }
  #iform button {
    padding: 10px 50px;
    font-size: 1rem;
  }
  #iform {
    margin-top: 7rem;
    margin-bottom: 0rem;
  }
  #offers.offersx6 .partners_images {
    height: 180px;
  }
}

@media (max-width: 575px) {
  #iform {
    text-align: center;
  }
  .custom-file {
    text-align: left;
    font-size: 1rem;
  }
  .form_multi .form-check-label {
    font-size: 1rem;
  }
  #iform h3 {
    font-size: 1.5rem;
  }
  #iform p {
    font-size: 1rem;
  }
  #iform p strong {
    font: 600 1.3rem/4px "averta";
    border-bottom: 3px solid #f37877;
  }
  #whoweare.single_text h2 {
    font-size: 1.3rem;
    line-height: 1.5;
  }
  #whoweare.single_text h2 strong {
    font-size: 1.2rem;
  }
}

@media (max-width: 420px) {
  #iform input {
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }
  #iform input {
    padding: 15px;
    width: 100%;
    font-size: 1rem;
  }
  #iform .form-group {
    margin-bottom: unset;
  }
  .form_multi .form-check-label {
    font-size: 0.8rem;
  }
  .form_multi .form-check.form-check-inline .form-group {
    padding: 0.5rem !important;
  }
  #offers.offersx6 .partners_images {
    height: 120px;
  }
  #whoweare.single_text h2 {
    font-size: 1.7rem;
  }
  #whoweare.single_text h2 strong {
    font-size: 1.6rem;
  }
}

/*============================== END CONTACT RESPONSIVE ==============================*/
/*============================== WHOWEARE ======================================*/
#whoweare .profile_img {
  background-image: url("../img/profile/profile.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  height: 100%;
  border-radius: 30rem;
}

#whoweare .single_text_description.single_text_full_description h3 {
  background: #555;
  padding: 30px 40px;
  color: #fff;
  line-height: 1.3;
  font-size: 2rem;
  letter-spacing: 1px;
  margin: 30px 0;
}

#whoweare.profilepage {
  padding: 6rem 0 0 !important;
}

#whoweare.single_text.owner_must {
  padding: 6rem 0;
}

/*============================== END WHOWEARE ======================================*/
/*============================== WHOWEARE RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #whoweare .single_text_description.single_text_full_description h3 {
    padding: 20px 20px;
    font-size: 1.7rem;
    margin: 20px 0;
  }
  #whoweare .profile_img {
    background-size: contain;
    border-radius: unset;
  }
}

@media (max-width: 991px) {
  #whoweare .profile_img {
    display: none;
  }
}

@media (max-width: 767px) {
  #whoweare .single_text_description.single_text_full_description h3 {
    padding: 15px;
    font-size: 1.1rem;
  }
}

@media (max-width: 420px) {
  #whoweare .single_text_description.single_text_full_description h3 {
    font-size: 1rem;
    margin: 10px 0;
  }
}

/*============================== END WHOWEARE RESPONSIVE ==============================*/
/*============================== SERVICES ======================================*/
#bold_services {
  position: relative;
  bottom: -3rem;
  padding: 0px 3rem;
}

#bold_services strong {
  font-size: 5rem;
}

#bold_services p {
  font-size: 1.2rem;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 2px;
  background: #00a7db;
  padding: 20px 15px;
  font-weight: 600;
  text-align: center;
}

.preview_services .single_text_wrapper .single_text_description p strong {
  color: #00a7db;
  font-weight: 600;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}

.preview_services .single_text_wrapper .single_text_description .services_mini_info {
  font-size: 1rem !important;
  margin-top: 1rem;
  color: #494949;
}

.preview_services .single_text_wrapper .single_text_description .services_mini_info strong {
  letter-spacing: unset;
  margin-bottom: unset;
  text-transform: initial;
}

#whoweare.single_text.services_text {
  padding: 6rem 0 !important;
  padding-bottom: 3.5rem !important;
}

#extra_services {
  padding: 5rem 0;
  text-align: center;
}

#extra_services .open_text {
  margin: 1.5rem 0;
  padding: 1rem 0;
}

#extra_services .close_text {
  padding: 1rem 0;
}

#extra_services .open_text:hover, #extra_services .close_text:hover {
  padding: 1rem;
}

#extra_services .extra_service_list p {
  font-size: 1.2rem;
  text-align: center;
}

#extra_services .extra_service_list i {
  display: block;
  font-size: 3rem;
  margin-bottom: 10px;
}

#extra_services ul {
  padding-left: unset;
  list-style: none;
  margin-bottom: unset;
  margin-bottom: unset;
  display: -webkit-flex;
  display: flex;
  font-size: 1.6rem;
  text-align: center;
}

#extra_services ul li {
  padding: 10px;
}

#extra_services ul li i {
  display: block;
  font-size: 3rem;
  margin-bottom: 10px;
}

#extra_services .single_text_description {
  margin: 25px 0;
}

#extra_services h2 {
  font-size: 3rem;
  font-weight: 300;
  text-transform: uppercase;
}

#extra_services h2 strong {
  color: #00a7db;
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 3px;
}

#extra_services span {
  display: block;
  color: #737373;
  font-weight: 300;
  margin-bottom: 3px;
}

#extra_services span sup {
  color: #00a7db;
}

#extra_services span b {
  font-weight: 600;
}

#house_equipment {
  background: #f8f8f8;
  padding: 5rem 0 0;
  margin: 5rem 0px;
}

#house_equipment h2 {
  text-align: center;
  letter-spacing: 1.2px;
  font-size: 3rem;
  font-weight: 300;
  margin-bottom: 1rem;
}

#house_equipment h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#house_equipment p {
  font-size: 1.3rem;
}

#house_equipment .home_equipment_box {
  padding: 2.5rem 0rem;
}

#house_equipment .home_equipment_box h3 {
  font-weight: 400;
  margin-bottom: 1.5rem;
}

#house_equipment .home_equipment_box h3 strong {
  color: #00a7db;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 1px;
}

#house_equipment_swiper.swiper-container {
  width: 100%;
  height: 120px;
}

#house_equipment_swiper.swiper-container .swiper-slide {
  text-align: center;
  font-size: 18px;
  background: transparent !important;
  /* Center slide text vertically */
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 0;
}

#house_equipment_swiper.swiper-container .swiper_image {
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: cover !important;
  height: 115px;
  width: 100%;
}

#house_equipment_swiper.swiper-container .swiper_text {
  padding: 0 3rem;
}

#house_equipment_swiper.swiper-container .swiper_text strong {
  color: #00a7db;
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 2px;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  display: block;
}

#house_equipment_swiper.swiper-container .swiper_text p {
  margin-bottom: unset;
  font-weight: 200;
  font-size: 1rem;
  text-align: left;
}

#house_equipment_swiper.swiper-container .swiper_text p strong {
  display: inline-block;
  color: #000;
  font-weight: 600;
  text-transform: inherit;
  letter-spacing: unset;
  font-size: unset;
  margin-bottom: unset;
}

#house_equipment_swiper.swiper-container .swiper-button-next, #house_equipment_swiper.swiper-container .swiper-button-prev {
  border-radius: 3rem;
  width: 50px;
  height: 49px;
  border: 1px solid #fff;
  background-size: 15px;
  -webkit-filter: saturate(0) brightness(100);
  filter: saturate(0) brightness(100);
}

.list_color {
  color: #c6c6c6;
}

.open_text, .close_text {
  text-align: center;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 500;
  padding: 0.3rem 0;
  background: #f37877;
  margin: .5rem 0;
  transition: all 0.4s ease-out;
}

.open_text:hover, .close_text:hover {
  text-decoration: none;
  color: #f37877 !important;
  background: #000;
  transition: all 0.4s ease-out;
}

.readmore_container {
  padding-left: 15px !important;
  padding-right: 15px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.service_box_title {
  font-size: 2rem !important;
  color: #000 !important;
  text-transform: unset !important;
  letter-spacing: 2px !important;
  background: transparent !important;
  font-weight: 500 !important;
  text-align: center;
  padding: unset !important;
}

.full_services_wrapper {
  padding: 3rem 2.5rem;
}

.bold_services_box {
  display: inline-block;
}

.service_box_title {
  float: left;
}

.service_box_subtitle {
  margin-top: 1.6rem;
  position: absolute;
  right: 3rem;
}

.service_invert_box {
  background: #fff;
  padding: 0 1rem !important;
}

/*============================== END SERVICES ======================================*/
/*============================== SERVICES RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #extra_services h2 {
    font-size: 2.4rem;
  }
  #extra_services span {
    font-size: .9rem;
  }
  #extra_services .extra_service_list p {
    font-size: 1rem;
  }
  #extra_services .extra_service_list i {
    font-size: 2rem;
  }
  #house_equipment h2 {
    font-size: 2.4rem;
  }
  #house_equipment p {
    font-size: 1.2rem;
  }
  .service_box_subtitle {
    margin-top: 1.6rem;
    font-size: 1rem !important;
  }
}

@media (max-width: 991px) {
  #extra_services h2 {
    font-size: 2rem;
  }
  #house_equipment {
    padding: 4rem 0 0;
    margin: 0 0px 5rem;
  }
  #house_equipment h2 {
    font-size: 2rem;
  }
  #house_equipment .home_equipment_box {
    padding: 2.5rem 0rem 0;
  }
  #house_equipment .home_equipment_box h3 {
    font-size: 1.3rem;
  }
  #house_equipment_swiper.swiper-container .swiper-button-next, #house_equipment_swiper.swiper-container .swiper-button-prev {
    width: 40px;
    height: 40px;
    margin-top: -18px;
  }
  .service_box_title {
    float: unset;
  }
  .service_box_subtitle {
    margin-top: 0;
    position: relative;
    right: unset;
  }
  #bold_services {
    text-align: center;
  }
  #extra_services .extra_service_list p {
    font-size: 1.5rem;
  }
}

@media (max-width: 575px) {
  #whoweare.single_text.services_text {
    padding: 3rem 0 !important;
    padding-bottom: 0rem !important;
  }
  #extra_services {
    padding: 3rem 0;
    text-align: center;
  }
  #extra_services h2 {
    font-size: 1.5rem;
  }
  #house_equipment h2 {
    font-size: 1.5rem;
  }
  #house_equipment .home_equipment_box h3 {
    font-size: 1rem;
    margin-bottom: .5rem;
  }
  #house_equipment p {
    font-size: 1rem;
    text-align: center;
  }
  #house_equipment_swiper.swiper-container .swiper-button-next, #house_equipment_swiper.swiper-container .swiper-button-prev {
    width: 30px;
    height: 30px;
    margin-top: -15px;
    background-size: 30px 15px;
  }
  #house_equipment {
    margin: 0rem;
  }
  #house_equipment .home_equipment_box h3 {
    text-align: center;
  }
  #bold_services strong {
    font-size: 4rem;
  }
  #bold_services {
    padding: 0px 1rem;
  }
  .full_services_wrapper {
    padding: 3rem 1rem;
  }
  #extra_services .extra_service_list p {
    font-size: 1.2rem;
  }
}

@media (max-width: 420px) {
  #whoweare.single_text.services_text {
    padding: 3rem 0 0 !important;
  }
  #extra_services h2 {
    font-size: 1.6rem;
  }
  #offers.offersx6 .partners_images {
    height: 120px;
  }
}

/*============================== END SERVICES RESPONSIVE ==============================*/
/*============================== OFFERS ======================================*/
#offers {
  padding: 5rem 0;
}

#offers .partners_images {
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: cover !important;
  height: 250px;
}

#offers.offersx6 .partners_images {
  height: 200px;
}

#offers.offersx6 .partners_images {
  height: 165px;
}

/*============================== END OFFERS ======================================*/
/*============================== OFFERS RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #offers {
    padding: 3rem 0;
  }
  #partners.single_text h2 {
    font-size: 2.7rem;
  }
  #offers .partners_images {
    height: 215px;
  }
  #partners.single_text p {
    font-size: 1.5rem;
  }
  #partners.single_text p strong {
    font: 600 1.7rem/6px "averta";
  }
  #offers.offersx6 .partners_images {
    height: 135px;
  }
}

@media (max-width: 991px) {
  #offers .partners_images {
    height: 130px;
  }
  #partners .partners_images img {
    width: 170px;
  }
  #partners .partners_images img {
    width: 160px;
  }
  #partners.single_text h2 {
    font-size: 2.2rem;
  }
}

@media (max-width: 767px) {
  #partners .partners_images img {
    width: 120px;
  }
  #partners.single_text h2 {
    font-size: 1.8rem;
  }
  #partners.single_text h2 {
    font-size: 1.7rem;
  }
  #partners .partners_images {
    padding: 1rem 0;
  }
  #partners.single_text p strong {
    border-bottom: 4px solid #f37877;
  }
}

@media (max-width: 575px) {
  #offers .partners_images {
    height: 180px;
    margin-bottom: 15px;
  }
  #partners.single_text p {
    font-size: 1.3rem;
  }
  #partners.single_text p strong {
    font: 600 1.5rem/5px "averta";
  }
  #partners .partners_images img {
    width: 80px;
  }
  #partners .partners_images a {
    padding: 0.5rem;
  }
  #partners.single_text p strong {
    border-bottom: 3px solid #f37877;
  }
  #partners {
    padding: 1rem 0;
  }
  #offers {
    padding: 3rem 0 1rem;
  }
  #partners {
    padding: 1rem 0;
    margin: 0;
  }
}

@media (max-width: 420px) {
  #partners.single_text p {
    font-size: 1rem;
  }
  #partners.single_text p strong {
    font: 600 1.1rem/5px "averta";
  }
  #partners.single_text h2 {
    font-size: 1.5rem;
  }
}

/*============================== END OFFERS RESPONSIVE ==============================*/
/*============================== WHOWEARE ======================================*/
#testimonials {
  margin: 1rem;
}

#testimonials .testimonials_wrapper {
  background: #f8f8f8;
  padding: 2rem;
}

#testimonials h2 {
  text-align: center;
  letter-spacing: 1.2px;
  font-size: 2rem;
  font-weight: 300;
  margin-bottom: 1rem;
}

#testimonials h2 strong {
  color: #00a7db;
  text-transform: capitalize;
  font-weight: 600;
}

#home_testimonials.swiper-container {
  width: 100%;
  height: 150px;
}

#home_testimonials.swiper-container .swiper-slide {
  text-align: center;
  font-size: 18px;
  background: transparent !important;
  /* Center slide text vertically */
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 5rem;
}

#home_testimonials.swiper-container .swiper_image {
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: cover !important;
  height: 250px;
  width: 100%;
}

#home_testimonials.swiper-container .swiper_text {
  padding: 0 3rem;
}

#home_testimonials.swiper-container .swiper_text strong {
  color: #00a7db;
  text-align: left;
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 2px;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  display: block;
}

#home_testimonials.swiper-container .swiper_text p {
  margin-bottom: unset;
  font-weight: 200;
  font-size: 1rem;
  text-align: left;
}

#home_testimonials.swiper-container .swiper_text p strong {
  display: inline-block;
  color: #000;
  font-weight: 600;
  text-transform: inherit;
  letter-spacing: unset;
  font-size: unset;
  margin-bottom: unset;
}

#home_testimonials.swiper-container .swiper-button-next, #home_testimonials.swiper-container .swiper-button-prev {
  border-radius: 3rem;
  width: 50px;
  height: 49px;
  border: 1px solid rgba(0, 0, 0, 0.5);
  background-size: 15px;
  -webkit-filter: saturate(0) brightness(0);
  filter: saturate(0) brightness(0);
}

/*============================== END WHOWEARE ======================================*/
/*============================== WHOWEARE RESPONSIVE ==============================*/
@media (max-width: 1199px) {
  #home_testimonials.swiper-container .swiper_image {
    height: 200px;
  }
  #testimonials {
    padding: 3rem 0 1rem;
  }
}

@media (max-width: 991px) {
  #home_testimonials.swiper-container .swiper_image {
    display: none;
  }
  #home_testimonials.swiper-container .swiper_text {
    padding: 0rem;
  }
  #home_testimonials.swiper-container {
    height: 200px;
  }
}

@media (max-width: 767px) {
  #testimonials h2 {
    font-size: 2rem;
    margin-bottom: unset;
  }
  #home_testimonials.swiper-container .swiper_text strong {
    font-size: 1.4rem;
  }
  #home_testimonials.swiper-container .swiper-slide {
    padding: 0 4rem;
  }
  #home_testimonials.swiper-container .swiper-button-next, #home_testimonials.swiper-container .swiper-button-prev {
    width: 40px;
    height: 40px;
  }
  #home_testimonials .swiper-button-next, #home_testimonials .swiper-button-prev {
    margin-top: 0px;
  }
}

@media (max-width: 575px) {
  #testimonials h2 {
    font-size: 1.7rem;
  }
  #home_testimonials.swiper-container {
    height: 300px;
  }
}

@media (max-width: 420px) {
  #testimonials h2 {
    font-size: 1.2rem;
  }
  #home_testimonials.swiper-container .swiper-slide {
    padding: 0 3rem;
  }
  #home_testimonials.swiper-container .swiper-button-next, #home_testimonials.swiper-container .swiper-button-prev {
    width: 25px;
    height: 25px;
    background-size: 10px 10px;
  }
  #home_testimonials.swiper-container .swiper_text p {
    font-size: 0.8rem;
  }
  #home_testimonials.swiper-container {
    height: 250px;
  }
}

/*============================== END WHOWEARE RESPONSIVE ==============================*/
/*============================== OWNER MUST ======================================*/
#whoweare.single_text.owner_must .single_text_description.single_text_full_description h4 {
  letter-spacing: 1px;
  font-weight: 300;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description h4 strong {
  color: #6f6f6f;
  font-weight: 600;
  text-transform: uppercase;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description h5 {
  letter-spacing: 1px;
  font-weight: 300;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description h5 strong {
  color: #00a7db;
  font-weight: 600;
  text-transform: inherit;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description h5 a {
  text-decoration: none;
  color: #00a7db;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.4s ease-out;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description h5 a:hover {
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description ul {
  margin-top: 1.5rem;
  padding-left: unset;
  list-style: none;
  margin-bottom: unset;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description ul li {
  border-bottom: 1px solid #eee;
  padding: 1rem 0;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description ul li a {
  text-decoration: none;
  color: #00a7db;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.4s ease-out;
}

#whoweare.single_text.owner_must .single_text_description.single_text_full_description ul li a:hover {
  text-decoration: none;
  color: #000;
  transition: all 0.4s ease-out;
}

#announcement_elections.single_text {
  background: #1c75bc;
  margin: 20px;
  color: #ffffff;
  border-radius: 1rem;
}

#announcement_elections.single_text p {
  font-size: 26px;
  font-weight: 300;
}

#announcement_elections.single_text i.fa-bullhorn {
  font-size: 63px;
  margin-bottom: 23px;
}

#announcement_elections .single_text_description {
  text-align: center;
}

#announcement_elections.single_text.services_tips .single_text_wrapper ul li strong {
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 1.5rem;
}


#announcement_elections .pages_button {
  margin-top: 10px;
  display: inline-block;
  background: #efefef;
  box-shadow: inset 0px 0px 0px 0px #1c75bc;
  transition: all 0.6s cubic-bezier(0.9, 0.24, 0.4, 1);
  color: #1c75bc;
  text-transform: uppercase;
  font-size: 1.3rem;
  padding: 0.8rem 0.5rem;
  border-radius: 3rem;
}

#announcement_elections .pages_button:hover {
  box-shadow: inset 0px 100px 0px 0px #000000 !important;
  color: #ffffff;
  text-decoration: unset;
}

#announcement.single_text {
    background: #376e37;
    margin: 20px;
    color: #ffffff;
    border-radius: 1rem;
}

#announcement.single_text p {
    font-size: 46px;
    font-weight: 300;
}

#announcement.single_text i.fa-bullhorn {
    font-size: 63px;
    margin-bottom: 23px;
}

#announcement .single_text_description {
  text-align: center;
}

#announcement.single_text.services_tips .single_text_wrapper ul li strong {
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 1.5rem;
}


#announcement .pages_button {
    margin-top: 10px;
    display: inline-block;
    background: #efefef;
    box-shadow: inset 0px 0px 0px 0px #376e37;
    transition: all 0.6s cubic-bezier(0.9, 0.24, 0.4, 1);
    color: #376e37;
    text-transform: uppercase;
    font-size: 1.3rem;
    padding: 0.8rem 0.5rem;
    border-radius: 3rem;
}

#announcement .pages_button:hover {
    box-shadow: inset 0px 100px 0px 0px #000000 !important;
    color: #ffffff;
    text-decoration: unset;
}

.spacer {
    width: 100%;
    height: 5px;
    background: #1b75bc;
    margin: 60px 0;
}

#services.single_text.services_tips {
  background: #464646;
  margin: 20px;
}

#services.single_text.services_tips .single_text_wrapper {
  padding: 4rem 0rem;
}

#services.single_text.services_tips .single_text_wrapper ul {
  color: #fff;
}

#services.single_text.services_tips .single_text_wrapper ul li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  padding: 1rem 0;
}

#services.single_text.services_tips .single_text_wrapper ul li strong {
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 1.5rem;
}

#services.single_text.services_tips .single_text_wrapper ul li strong sup {
  font-size: 0.8rem;
}

#services.single_text.services_tips .single_text_wrapper ul li p {
  margin-bottom: unset;
}

#services.single_text.services_tips .single_text_wrapper ul li:last-child {
  border-bottom: unset;
}

/*============================== END OWNER MUST ======================================*/
/*============================== OWNER MUST RESPONSIVE ==============================*/
@media (max-width: 991px) {
  #services.single_text.services_tips .single_text_wrapper {
    padding: 0.5rem;
  }
  #services.single_text p {
    font-size: 18px;
  }
  #services.single_text.services_tips .single_text_wrapper ul li strong {
    font-size: 1.3rem;
  }
}

@media (max-width: 767px) {
  #services.single_text.services_tips .single_text_wrapper ul li strong {
    font-size: 1.2rem;
  }
}

@media (max-width: 575px) {
  #services.single_text p {
    font-size: 18px;
  }
  #services.single_text.services_tips {
    background: #00a7db;
  }
  #services.single_text.services_tips .single_text_wrapper {
    padding: 2rem;
  }
  #services.single_text.services_tips .single_text_wrapper {
    padding: 1rem;
  }
  #services.single_text.services_tips .single_text_wrapper ul li strong {
    font-size: 1rem;
  }
}

@media (max-width: 420px) {
  #services.single_text.services_tips .single_text_wrapper {
    padding: 0.5rem;
  }
}

/*============================== END OWNER MUST RESPONSIVE ==============================*/
/*============================== RESIDENCE MUST ======================================*/
#residence_facilities .residence_facilities_attension {
  background: #00a7db;
  color: #fff;
  padding: 2.5rem 0;
}

#residence_facilities .residence_facilities_attension h2 {
  font-weight: 600;
  letter-spacing: 6px;
  margin-bottom: 1rem;
  display: inline-block;
  background: #000;
  padding: 1.5rem 2rem 4rem;
  font-size: 1.5rem;
  border-radius: 1rem;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  position: absolute;
  top: -7rem;
  z-index: -1;
  box-shadow: -2px 1px 7px 0px #a9a9a9;
}

#residence_facilities .residence_facilities_attension p {
  font-weight: 300;
  font-size: 1.2rem;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  padding: 1.5rem 0;
}

#residence_facilities .residence_facilities_attension p strong {
  color: #fff;
  text-transform: inherit;
  border-radius: 3rem;
  letter-spacing: 2px;
  font-weight: 600;
}

#residence_facilities .residence_facilities_attension p:last-child {
  border-bottom: unset;
}

#residence_facilities_accordion {
  padding: 5rem 0;
}

/*============================== END RESIDENCE MUST ======================================*/
/*============================== RESIDENCE MUST RESPONSIVE ==============================*/
@media (max-width: 991px) {
  #residence_facilities .residence_facilities_attension p {
    font-size: 1rem;
    padding: 1rem 0;
  }
  #residence_facilities .residence_facilities_attension {
    padding: 1.5rem 0;
  }
  #residence_facilities .residence_facilities_attension h2 {
    top: -4.5rem;
    padding: 1rem 1rem 3rem;
    font-size: 1rem;
  }
}

@media (max-width: 767px) {
  #residence_facilities .residence_facilities_attension h2 {
    font-size: 1.1rem;
    top: -6.2rem;
  }
}

@media (max-width: 575px) {
  #residence_facilities .residence_facilities_attension h2 {
    font-size: 0.7rem;
    top: -5rem;
    padding: 1rem 1rem 2rem;
    border-radius: 0.4rem;
  }
  #residence_facilities .residence_facilities_attension p {
    font-size: 1rem;
    padding: 1rem 0;
  }
}

/*============================== END RESIDENCE MUST RESPONSIVE ==============================*/
.residence_facilities_accordion {
  padding: 0rem 0;
}

.accordion li i {
  padding-right: 10px;
}

.accordion .accordion-item {
  margin-bottom: 0.7rem;
}

.accordion .accordion-item__header {
  position: relative;
  height: auto;
  cursor: pointer;
  background-color: #000000;
  padding: 1.5rem 1rem;
  transition: .3s ease-in-out background-color;
}

.accordion .accordion-item__header h5 {
  color: #FFFFFF;
  margin-bottom: 0;
  text-transform: uppercase;
  font-size: 1rem;
}

.accordion .accordion-item__header .open-close-icon {
  right: 30px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.accordion .accordion-item__header .open-close-icon.open {
  -webkit-transform: rotateX(180deg);
  transform: rotateX(180deg);
}

.accordion .accordion-item__header .open-close-icon__line-1 {
  width: 16px;
  height: 2px;
  background-color: #FFFFFF;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.accordion .accordion-item__header .open-close-icon__line-2 {
  position: absolute;
  right: -10px;
  bottom: 0px;
  width: 16px;
  height: 2px;
  background-color: #FFFFFF;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}

.accordion .accordion-item__text-block {
  font-family: sans-serif;
  background-color: #f9f8f8;
  transition: max-height 0.3s ease-out;
  max-height: 0;
  overflow: hidden;
}

.accordion .accordion-item__text-block ul {
  list-style: none;
}

.accordion .accordion-item__text-block p {
  color: #000000;
  padding-left: unset;
  /* padding-top: 1rem; */
  padding: 0rem 1rem;
}

.accordion .accordion-item__text-block p:first-child {
  padding: 1rem 1rem 0;
}

/*============================== RESIDENCE MUST RESPONSIVE ==============================*/
@media (max-width: 991px) {
  .accordion .accordion-item__header h5 {
    font-size: 0.8rem;
  }
  .residence_facilities_accordion {
    padding: 2rem 0;
  }
}

@media (max-width: 767px) {
  #residence_facilities .residence_facilities_attension h2 {
    font-size: 1.1rem;
    top: -4.8rem;
  }
  .accordion .accordion-item__text-block p {
    font-size: 0.9rem;
  }
  .accordion-item__text-block ul li {
    font-size: 0.9rem;
  }
  .accordion .accordion-item__header h5 {
    font-size: 0.8rem;
    padding-right: 3rem;
  }
  .accordion .accordion-item__text-block ul {
    padding: 1rem;
  }
}

@media (max-width: 575px) {
  #residence_facilities .residence_facilities_attension h2 {
    font-size: 0.9rem;
    top: -3.7rem;
    padding: 0.6rem 0.5rem 1rem;
  }
}

/*============================== END RESIDENCE MUST RESPONSIVE ==============================*/

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAic3R5bGUuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSJzdHlsZS5zY3NzIiwKCQkiX3Nhc3NfYmFzaWNzL192YXJpYWJsZXMuc2NzcyIsCgkJIl9zYXNzX2Jhc2ljcy9fbWl4aW5zLnNjc3MiLAoJCSJfc2Fzc19iYXNpY3MvX3Jlc2V0LnNjc3MiLAoJCSJfc2Fzc19sYXlvdXQvX2ZvbnRzLnNjc3MiLAoJCSJfc2Fzc19sYXlvdXQvX2Jhc2ljcy5zY3NzIiwKCQkiX3Nhc3NfbGF5b3V0L19uYXZpZ2F0aW9uLnNjc3MiLAoJCSIuLi92ZW5kb3JzL21lbnUvX21lbnUuc2NzcyIsCgkJIl9zYXNzX2xheW91dC9fZm9vdGVyLnNjc3MiLAoJCSJfc2Fzc19sYXlvdXQvX3BhZ2VzX2hlYWRlci5zY3NzIiwKCQkiX3Nhc3NfZGVzaWduL19iYW5uZXIuc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9fY29udGFjdC5zY3NzIiwKCQkiX3Nhc3NfZGVzaWduL19zd2lwZXIuc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9faG9tZXBhZ2Uuc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9faWZvcm0uc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9fd2hvd2VhcmUuc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9fc2VydmljZXMuc2NzcyIsCgkJIl9zYXNzX2Rlc2lnbi9fb2ZmZXJzLnNjc3MiLAoJCSJfc2Fzc19kZXNpZ24vX3Rlc3RpbW9uaWFscy5zY3NzIiwKCQkiX3Nhc3NfZGVzaWduL19vd25lcl9tdXN0LnNjc3MiLAoJCSJfc2Fzc19kZXNpZ24vX3Jlc2lkZW5jZV9tdXN0LnNjc3MiLAoJCSIuLi92ZW5kb3JzL2FjY29yZGlvbi9fbmV3X2FjY29yZGlvbi5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTEFZT1VUICsgUkVTUE9OU0lWRVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPSkVDVDogS09JU1BFIFRISUFNSVNcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTEFZT1VUIElOQ0xVREVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4xLiBCQVNJQ1NcclxuMi4gUkVTRVRcclxuMy4gRk9OVFNcclxuNC4gRk9PVEVSXHJcbjUuIE5BVklHQVRJT05cclxuNi4gQ09OVEFDVFxyXG5cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU0FTUyBCQVNJQ1MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vXHJcblxyXG5AaW1wb3J0IFwiX3Nhc3NfYmFzaWNzL192YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIl9zYXNzX2Jhc2ljcy9fbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19iYXNpY3MvX3Jlc2V0XCI7XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTQVNTIExBWU9VVCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly9cclxuXHJcbkBpbXBvcnQgXCJfc2Fzc19sYXlvdXQvX2ZvbnRzXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19sYXlvdXQvX2Jhc2ljc1wiO1xyXG5AaW1wb3J0IFwiX3Nhc3NfbGF5b3V0L19uYXZpZ2F0aW9uXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19sYXlvdXQvX2Zvb3RlclwiO1xyXG5AaW1wb3J0IFwiX3Nhc3NfbGF5b3V0L19wYWdlc19oZWFkZXJcIjtcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNBU1MgREVTSUdOID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xyXG5cclxuQGltcG9ydCBcIl9zYXNzX2Rlc2lnbi9fYmFubmVyXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX2NvbnRhY3RcIjtcclxuQGltcG9ydCBcIl9zYXNzX2Rlc2lnbi9fc3dpcGVyXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX2hvbWVwYWdlXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX2lmb3JtXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX3dob3dlYXJlXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX3NlcnZpY2VzXCI7XHJcbkBpbXBvcnQgXCJfc2Fzc19kZXNpZ24vX29mZmVyc1wiO1xyXG5AaW1wb3J0IFwiX3Nhc3NfZGVzaWduL190ZXN0aW1vbmlhbHNcIjtcclxuQGltcG9ydCBcIl9zYXNzX2Rlc2lnbi9fb3duZXJfbXVzdFwiO1xyXG5AaW1wb3J0IFwiX3Nhc3NfZGVzaWduL19yZXNpZGVuY2VfbXVzdFwiO1xyXG5AaW1wb3J0IFwiLi4vdmVuZG9ycy9hY2NvcmRpb24vX25ld19hY2NvcmRpb25cIjtcclxuIiwKCQkiXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBWQVJJQUJMRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xuXG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMwMDA7XG4kZ3JheTogIzc1NzQ3NDtcbiRkYXJrYmx1ZTojMUMzMTVFO1xuXG4kbGlnaHRibHVlOiMwMGE3ZGI7XG4kbWlkZGxlYmx1ZTojMWI3NWJjO1xuXG4kZ3JlZW46ICM3ZmViODY7XG4kcmVkOiAjZmYzMTMxO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgVkFSSUFCTEVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly9cbiIsCgkJIlxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNSVhJTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb250eXBlLCRzZWNvbmRzLCRlYXNpbmcpIHtcclxuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbnR5cGUgJHNlY29uZHMgJGVhc2luZztcclxufVxyXG5cclxuLy9AaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9udHlwZSwkc2Vjb25kcywkZWFzaW5nKTtcclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kX2ltYWdlKCR1cmwsJHJlcGVhdCwkcG9zaXRpb24sJHNpemUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9waWMvI3skdXJsfS5qcGcnKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogJHJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb247XHJcbiAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcclxufVxyXG5cclxuLy9AaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlKCR1cmwsJHJlcGVhdCwkcG9zaXRpb24sJHNpemUpO1xyXG5cclxuQG1peGluIGJhY2tncm91bmRfaW1hZ2VfanBnKCR1cmwsJHJlcGVhdCwkcG9zaXRpb24sJHNpemUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy8jeyR1cmx9LmpwZycpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiAkcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjtcclxuICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xyXG59XHJcblxyXG4vL0BpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2VfanBnKCR1cmwsJHJlcGVhdCwkcG9zaXRpb24sJHNpemUpO1xyXG5cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kX2ltYWdlX3dpdGhvdXRfdXJsKCRyZXBlYXQsJHBvc2l0aW9uLCRzaXplLCRoZWlnaHQpIHtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogJHJlcGVhdCAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbiAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogJHNpemUgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbn1cclxuXHJcbi8vQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV93aXRob3V0X3VybCgkcmVwZWF0LCRwb3NpdGlvbiwkc2l6ZSwkaGVpZ2h0KTtcclxuXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZF9pbWFnZV9vbmx5X3VybF9qcGcoJHVybCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nLyN7JHVybH0uanBnJyk7XHJcbn1cclxuXHJcbi8vQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9vbmx5X3VybF9qcGcoJHVybCk7XHJcblxyXG5cclxuQG1peGluIGJhY2tncm91bmRfaW1hZ2Vfc3ZnKCR1cmwsJHJlcGVhdCwkcG9zaXRpb24sJHNpemUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy8jeyR1cmx9LnN2ZycpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6ICRyZXBlYXQgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb24gIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8vQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9zdmcoJHVybCwkcmVwZWF0LCRwb3NpdGlvbiwkc2l6ZSk7XHJcblxyXG5cclxuQG1peGluIHdoaXRlX2ZpbHRlcigpIHtcclxuICAtd2Via2l0LWZpbHRlcjogc2F0dXJhdGUoMCkgYnJpZ2h0bmVzcygxMDApO1xyXG4gICAgICAgICAgZmlsdGVyOiBzYXR1cmF0ZSgwKSBicmlnaHRuZXNzKDEwMCk7XHJcbn1cclxuXHJcbi8vQGluY2x1ZGUgd2hpdGVfZmlsdGVyKCk7XHJcblxyXG5AbWl4aW4gYmxhY2tfZmlsdGVyKCkge1xyXG4gIC13ZWJraXQtZmlsdGVyOiBzYXR1cmF0ZSgwKSBicmlnaHRuZXNzKDApO1xyXG4gICAgICAgICAgZmlsdGVyOiBzYXR1cmF0ZSgwKSBicmlnaHRuZXNzKDApO1xyXG59XHJcblxyXG4vL0BpbmNsdWRlIGJsYWNrX2ZpbHRlcigpO1xyXG5cclxuXHJcbkBtaXhpbiBhX2RlY29yYXRpb24oJGRlY29yYXRpb25fY29sb3IpIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgY29sb3I6ICRkZWNvcmF0aW9uX2NvbG9yO1xyXG59XHJcblxyXG4vL0BpbmNsdWRlIGFfZGVjb3JhdGlvbigkZGVjb3JhdGlvbl9jb2xvcik7XHJcblxyXG5cclxuQG1peGluIHJlc2V0X2xpc3QoKSB7XHJcbiAgcGFkZGluZy1sZWZ0OiB1bnNldDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG59XHJcblxyXG4vL0BpbmNsdWRlIHJlc2V0X2xpc3QoKTtcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBNSVhJTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuIiwKCQkiXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJFU0VUID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly9cclxuKjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG59XHJcbnRleHRhcmVhOmZvY3VzLCBpbnB1dDpmb2N1c3tcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFJFU0VUID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly9cclxuIiwKCQkiXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZPTlRTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vLyBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUZpcmErU2FuczoxMDAsMjAwLDMwMCwzMDBpLDQwMCw0MDBpLDUwMCw2MDAsNjAwaSw3MDAsOTAwJmRpc3BsYXk9c3dhcCZzdWJzZXQ9Z3JlZWsnKTtcclxuXHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTpcImF2ZXJ0YVwiO1xyXG4gIGZvbnQtd2VpZ2h0OjMwMDtcclxuICBzcmM6dXJsKFwiLi4vZm9udHMvYXZlcnRhL2F2ZXJ0YS1saWdodC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSB9O1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6XCJhdmVydGFcIjtcclxuICBmb250LXdlaWdodDo0MDA7XHJcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2F2ZXJ0YS9hdmVydGEtcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSB9O1xyXG5cclxuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OlwiYXZlcnRhXCI7XHJcbiAgZm9udC13ZWlnaHQ6NzAwO1xyXG4gIHNyYzp1cmwoXCIuLi9mb250cy9hdmVydGEvYXZlcnRhLWJvbGQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIikgfTtcclxuXHJcbioge1xyXG4gIC8vIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJywgc2Fucy1zZXJpZjtcclxuICBmb250LWZhbWlseTogYXZlcnRhLHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBGT05UUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQkFTSUNTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7IC5jb250YWluZXIgeyBtYXgtd2lkdGg6IDE0NDBweDsgcGFkZGluZy1yaWdodDogMzBweDsgcGFkZGluZy1sZWZ0OiAzMHB4OyB9IH1cclxuLypAbWVkaWEobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOjApIHt9Ki9cclxuXHJcbmh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfVxyXG5cclxuLmRyb3Bkb3duIHtcclxuICBtYXJnaW46IDIwcHggMHB4O1xyXG59XHJcblxyXG4uZHJvcGRvd24tdG9nZ2xlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI3NWJjO1xyXG4gIGJvcmRlci1jb2xvcjogIzFiNzViYztcclxuICB3aWR0aDogMTAwJTtcclxuICBmb250LXNpemU6IDIxcHg7XHJcbiAgcGFkZGluZzogMTVweCAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFDMzE1RTtcclxuICBib3JkZXItY29sb3I6ICMxQzMxNUU7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51LnNob3cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgYm9yZGVyLWNvbG9yOiAjYmFkNmVhO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1pdGVtIHtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNywgMTE4LCAxODcsIDAuMyk7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC40cyBlYXNlLW91dDtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIGkge1xyXG4gIGNvbG9yOiAjMWI3NWJjO1xyXG4gIGZvbnQtc2l6ZTogMjFweDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC40cyBlYXNlLW91dDtcclxufVxyXG5cclxuLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLFxyXG4uZHJvcGRvd24taXRlbTphY3RpdmUsXHJcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmFjdGl2ZSBpLFxyXG4uZHJvcGRvd24taXRlbS5ob3ZlcixcclxuLmRyb3Bkb3duLWl0ZW06aG92ZXIsXHJcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmhvdmVyIGlcclxue1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjc1YmM7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC40cyBlYXNlLW91dDtcclxufVxyXG5cclxuLnVwZGF0ZWRfZGF0ZSB7XHJcbiAgbWFyZ2luLXRvcDogMzBweDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZ3JlY2FwdGNoYS1iYWRnZSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4uYWxlcnQuYWxlcnQtc3VjY2VzcyB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBtYXJnaW4tdG9wOiAyNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGVydC5hbGVydC1zdWNjZXNzIHAge1xyXG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxlcnQuYWxlcnQtc3VjY2Vzcy5hbGVydC1zdWNjZXNzLXZpZXcge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi10b3A6IDI1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MuYWxlcnQtc3VjY2Vzcy12aWV3IHAge1xyXG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxlcnQuYWxlcnQtZXJyb3Ige1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgbWFyZ2luLXRvcDogMjVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxlcnQuYWxlcnQtZXJyb3IgcCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGVydC5hbGVydC1lcnJvci5hbGVydC1lcnJvci12aWV3IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tdG9wOiAyNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGVydC5hbGVydC1lcnJvci5hbGVydC1lcnJvci12aWV3IHAge1xyXG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgQkFTSUNTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAuZHJvcGRvd24tdG9nZ2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICB9XHJcbiAgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo1NzVweCkge1xyXG4gIC5kcm9wZG93bi1pdGVtIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcblxyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0gTkFWSUdBVElPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQGltcG9ydCBcIi4uLy4uL3ZlbmRvcnMvbWVudS9fbWVudVwiO1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0gVE9QIEhFQURFUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLnRvcF9oZWFkZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB6LWluZGV4OiA5OTk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDI1cHggMDtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMTE5LCAxMTksIDExOSwgMC43KTtcclxuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkbGlnaHRibHVlO1xyXG5cclxuICAubG9nbyB7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEzNXB4O1xyXG4gICAgfVxyXG5cclxuICB9ICAvLyBsb2dvXHJcblxyXG4gIC50b3BfaGVhZGVyX3dyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgLmxvZ28ge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLm1lbnUge1xyXG5cclxuICAgICAgLmFjdGl2ZV9tZW51X2xpIHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIC40cywgZWFzZS1vdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdWwge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG5cclxuICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMTMxMzEzO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLW91dDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAuNHMsIGVhc2Utb3V0KTtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIC40cywgZWFzZS1vdXQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gLy8gdWxcclxuXHJcblxyXG4gICAgICAjY2FsbG5vdyB7XHJcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBwYWRkaW5nOiA0M3B4IDE1cHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMzc4Nzc7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIC40cywgZWFzZS1vdXQpO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAuNHMsIGVhc2Utb3V0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9IC8vIG1lbnVcclxuXHJcbiAgfSAvLyB0b3BfaGVhZGVyX3dyYXBwZXJcclxuXHJcbn1cclxuXHJcbiNjYWxsbm93Lm1vYmlsZWNhbGwgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4jbmF2LXRvZ2dsZSB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbW9iaWxlX25hdiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgLnN1Ym1lbnUge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IHVuc2V0O1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIC5uYXZpIHtcclxuLy8gICBkaXNwbGF5OiBub25lO1xyXG4vLyB9XHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBUT1AgSEVBREVSID09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0gTU9CSUxFIE5BVklHQVRJT04gPT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XHJcbiAgICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyBoMSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBib2R5PmhlYWRlcj5uYXYgLmNvbnRhaW5lci1mbHVpZD4ucm93IC5jb2x1bW4ge1xyXG4gICAgICB3aWR0aDogMjAwcHg7XHJcbiAgICAgIHBhZGRpbmc6IHVuc2V0O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiA5OTFweCkge1xyXG5cclxuICAjbW9iaWxlX25hdiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICNuYXYtdG9nZ2xlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgI2NhbGxub3cubW9iaWxlY2FsbCB7XHJcblxyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogNHJlbTtcclxuICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHBhZGRpbmc6IDM3cHggNXB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2Utb3V0O1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIC40cywgZWFzZS1vdXQpO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICM3Nzc7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAuNHMsIGVhc2Utb3V0KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgIH1cclxuXHJcbiAgICNuYXZpLm5hdmlfZml4ZWQgezZcclxuICAgICAubmF2IHtcclxuICAgICAgIHNwYW4ge1xyXG4gICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYm9keSA+IGhlYWRlciA+IG5hdiAubmF2LWxpbmtzIGgxIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuXHJcbiAgYm9keSA+IGhlYWRlciA+IG5hdiAuY29udGFpbmVyLWZsdWlkID4gLnJvdyAuY29sdW1uIHtcclxuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgaGVpZ2h0OiAxMjBweDtcclxuICB9XHJcblxyXG4gIGJvZHkgPiBoZWFkZXIgPiBuYXYgLmNvbnRhaW5lci1mbHVpZCA+IC5yb3cgLmNvbHVtbi5sYXN0IHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBib2R5ID4gaGVhZGVyIC5uYXYgc3BhbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIH1cclxuXHJcbiAgI21vYmlsZV9uYXYgLnN1Ym1lbnUgbGkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59IC8vIDk5MVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo3NjdweCkge1xyXG5cclxuICAgICNtb2JpbGVfbmF2OmJlZm9yZSB7XHJcbiAgICAgIHdpZHRoOiAyMTUlO1xyXG4gICAgfVxyXG5cclxuICAgIGJvZHkgPiBoZWFkZXIgPiBuYXYgLm5hdi1saW5rcyBoMSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzJweCAhaW1wb3J0YW50O1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbHVtbi50aGlyZCBhIGkge1xyXG4gICAgICBmb250LXNpemU6IC44cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbHVtbi50aGlyZCBwIHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2x1bW4ge1xyXG4gICAgICBwYWRkaW5nOiAwIDE1cHggMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGJvZHkgPiBoZWFkZXIgPiBuYXYgLmNvbnRhaW5lci1mbHVpZCA+IC5yb3cgLmNvbHVtbiB7XHJcbiAgICAvLyAgIHdpZHRoOiAxMTVweCAhaW1wb3J0YW50O1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcblxyXG4gIG5hdiB7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBsaXN0LXN0eWxlLWltYWdlOiBub25lXHJcbiAgICB9XHJcbiAgICBvbCB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmVcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBib2R5IHtcclxuICAgICYuaXMtZml4ZWQge1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnRcclxuICAgIH1cclxuICAgICYubmF2LWlzLW9wZW4ge1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAudG9wX2hlYWRlciB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYWU4ZTg7XHJcbiAgICAgIH0gLy8gdG9wX2hlYWRlclxyXG4gICAgICAubmF2aSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWlkZGxlYmx1ZTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1vdXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICNuYXZpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRtaWRkbGVibHVlO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLW91dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgI2NhbGxub3cubW9iaWxlY2FsbCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgJiA+IGhlYWRlciB7XHJcbiAgICAgIC5sb2dvIHtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC43O1xyXG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNHMgZWFzZS1vdXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmID4gaGVhZGVyIC5uYXYge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgei1pbmRleDogOTk5O1xyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgLm5hdjo6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGVcclxuICAgIH1cclxuXHJcbiAgICAmID4gaGVhZGVyIC5uYXYgc3BhbiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzIwMjUzMFxyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGUge1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC43LCAwLjMsIDAsIDEpO1xyXG4gICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICBtYXJnaW46IDEycHggYXV0byAwIDA7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlclxyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGU6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuN1xyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGUgI21lbnUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2tcclxuICAgIH1cclxuXHJcbiAgICAmID4gaGVhZGVyICNuYXYtdG9nZ2xlICNtZW51IHNwYW4ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBjdWJpYy1iZXppZXIoMC43LCAwLjMsIDAsIDEpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXJnaW46IDAgMCA0cHggMDtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIGhlaWdodDogM3B4XHJcbiAgICB9XHJcblxyXG4gICAgJiA+IGhlYWRlciAjbmF2LXRvZ2dsZSAjbWVudSBzcGFuOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMFxyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGUgI21lbnUgc3BhbjpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC41c1xyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGUgI21lbnUgc3BhbjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC42MjVzXHJcbiAgICB9XHJcblxyXG4gICAgJiA+IGhlYWRlciAjbmF2LXRvZ2dsZSAjbWVudSBzcGFuOm50aC1jaGlsZCgzKSB7XHJcbiAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjc1c1xyXG4gICAgfVxyXG5cclxuICAgICYgPiBoZWFkZXIgI25hdi10b2dnbGUgI2Nsb3NlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtN3B4O1xyXG4gICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGJvdHRvbTogYXV0bztcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCVcclxuICAgIH1cclxuXHJcbiAgICAmID4gaGVhZGVyICNuYXYtdG9nZ2xlICNjbG9zZSBzcGFuIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBjdWJpYy1iZXppZXIoMC43LCAwLjMsIDAsIDEpO1xyXG4gICAgICAgIG9wYWNpdHk6IDBcclxuICAgIH1cclxuXHJcbiAgICAmID4gaGVhZGVyICNuYXYtdG9nZ2xlICNjbG9zZSBzcGFuOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMCU7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgIGxlZnQ6IDE0cHg7XHJcbiAgICAgICAgd2lkdGg6IDNweDtcclxuICAgICAgICBoZWlnaHQ6IDAlO1xyXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzXHJcbiAgICB9XHJcblxyXG4gICAgJiA+IGhlYWRlciAjbmF2LXRvZ2dsZSAjY2xvc2Ugc3BhbjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDE0cHg7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgIGxlZnQ6IDAlO1xyXG4gICAgICAgIHdpZHRoOiAwJTtcclxuICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMjVzXHJcbiAgICB9XHJcblxyXG4gICAgJiA+IGhlYWRlciAjbmF2LXRvZ2dsZS5pcy1vcGVuICNtZW51IHNwYW4ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XHJcbiAgICAgICAgb3BhY2l0eTogMFxyXG4gICAgfVxyXG5cclxuXHJcbiAgfSAvL2JvZHlcclxuXHJcbiAgYm9keT5oZWFkZXIgI25hdi10b2dnbGUuaXMtb3BlbiAjbWVudSBzcGFuOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzXHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlciAjbmF2LXRvZ2dsZS5pcy1vcGVuICNtZW51IHNwYW46bnRoLWNoaWxkKDIpIHtcclxuICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjEyNXNcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyICNuYXYtdG9nZ2xlLmlzLW9wZW4gI21lbnUgc3BhbjpudGgtY2hpbGQoMykge1xyXG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMjVzXHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlciAjbmF2LXRvZ2dsZS5pcy1vcGVuICNjbG9zZSBzcGFuIHtcclxuICAgICAgb3BhY2l0eTogMVxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXIgI25hdi10b2dnbGUuaXMtb3BlbiAjY2xvc2Ugc3BhbjpudGgtY2hpbGQoMSkge1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC42MjVzXHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlciAjbmF2LXRvZ2dsZS5pcy1vcGVuICNjbG9zZSBzcGFuOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMzc1c1xyXG4gIH1cclxuXHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBwYWRkaW5nOiA5NXB4IDAgMCAwO1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgIHotaW5kZXg6IDk5O1xyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5jb250YWluZXIge1xyXG4gICAgICBwYWRkaW5nOiAwIDAgMjBweCAwXHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlcj5uYXYgLmNvbnRhaW5lcj4ucm93IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAuY29udGFpbmVyPi5yb3cgLmNvbHVtbjpsYXN0LWNoaWxkIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogMFxyXG4gIH1cclxuXHJcbiAgYm9keSBuYXYge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcclxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNDVzLCB0cmFuc2Zvcm0gLjQ1cywgdmlzaWJpbGl0eSAuMzVzO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgIHotaW5kZXg6IDIxXHJcbiAgfVxyXG5cclxuICBib2R5IG5hdiAuY29sdW1uIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjQ1cywgdHJhbnNmb3JtIC40NXNcclxuICB9XHJcblxyXG4gIGJvZHkubmF2LWlzLW9wZW4gbmF2IHtcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKVxyXG4gIH1cclxuXHJcbiAgYm9keS5uYXYtaXMtb3BlbiBuYXYgLmNvbHVtbiB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3NcclxuICB9XHJcblxyXG4gIGJvZHkubmF2LWlzLW9wZW4gbmF2IC5jb2x1bW46bnRoLWNoaWxkKDIpIHtcclxuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC40c1xyXG4gIH1cclxuXHJcbiAgYm9keS5uYXYtaXMtb3BlbiBuYXYgLmNvbHVtbjpudGgtY2hpbGQoMykge1xyXG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzXHJcbiAgfVxyXG5cclxuICBib2R5Lm5hdi1pcy1vcGVuIG1haW4ge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMHB4LCAwKVxyXG4gIH1cclxuXHJcbiAgYm9keS5uYXYtaXMtb3BlbiBtYWluOmFmdGVyIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZVxyXG4gIH1cclxuXHJcbiAgYm9keS5uYXYtaXMtb3BlbiBoZWFkZXIgLmxvZ28ge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMClcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rczo6YWZ0ZXIge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgZGlzcGxheTogdGFibGVcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIGgxIHtcclxuICAgICAgZm9udC1zaXplOiA2MnB4XHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyBzcGFuIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgfVxyXG5cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgbGkge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmVcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIGxpOjphZnRlciB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZVxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLmJ0bixcclxuICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyAuYnRuLXRyYW5zcGFyZW50LFxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5idG4td2hpdGUsXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLmJ0bi1vbnl4IHtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweFxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLmJ0bi10cmFuc3BhcmVudCB7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMFxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLmJ0bi10cmFuc3BhcmVudDpob3ZlciBpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHhcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5idG4tdHJhbnNwYXJlbnQgaSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHhcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5tYWlsIHtcclxuICAgICAgLy8gbWFyZ2luOiA1MHB4IDAgMCAwO1xyXG4gICAgICBmb250LXNpemU6IDEycHhcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5tYWlsIGEge1xyXG4gICAgICBjb2xvcjogI2Y3NDE1ZjtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMFxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLmxvY2F0aW9uIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHBhZGRpbmctbGVmdDogdW5zZXQ7XHJcblxyXG4gICAgYSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJGJsYWNrKTtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkbGlnaHRibHVlKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLnBob25lIHtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweFxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLnNvY2lhbCB7XHJcbiAgICAgIG1hcmdpbjogMzBweCAwIDAgMDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5zb2NpYWw6OmFmdGVyIHtcclxuICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlXHJcbiAgfVxyXG5cclxuICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyAuc29jaWFsIGxpIHtcclxuICAgICAgbWFyZ2luOiAwIDAgMCAyNXB4O1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcclxuICB9XHJcblxyXG4gIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5zb2NpYWwgbGk6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMFxyXG4gIH1cclxuXHJcbiAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgLnNvY2lhbCBsaSBhIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweFxyXG4gIH1cclxuXHJcbiAgLmNvbHVtbi5zaW5nbGUge1xyXG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2hvbWVsaW5rIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgICBwYWRkaW5nOiAwIDZweDtcclxuICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuXHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkYmxhY2spO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiA0NXB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA3cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5jb2x1bW4udGhpcmQge1xyXG4gICAgYSB7XHJcblxyXG4gICAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCRibGFjayk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAgIGkge1xyXG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLC40cyxlYXNlLW91dCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIgaDEge1xyXG4gICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJGxpZ2h0Ymx1ZSk7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLC40cyxlYXNlLW91dCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMCAzNXB4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XHJcbiAgICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyBoMSB7XHJcbiAgICAgICAgZm9udC1zaXplOiA1MnB4XHJcbiAgICB9XHJcbiAgICBib2R5PmhlYWRlcj5uYXYgLm5hdi1saW5rcyAuYnRuLXRyYW5zcGFyZW50IHtcclxuICAgICAgICBmb250LXNpemU6IDExcHhcclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5idG4tdHJhbnNwYXJlbnQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxyXG4gICAgfVxyXG5cclxuICAgIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIC5tYWlsIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4XHJcbiAgICB9XHJcblxyXG4gICAgYm9keT5oZWFkZXI+bmF2IC5uYXYtbGlua3MgbGkge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxyXG4gICAgfVxyXG5cclxuICAgIGJvZHk+aGVhZGVyPm5hdiAuY29udGFpbmVyPi5yb3cgLmNvbHVtbiB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB3aWR0aDogMTAwJVxyXG4gICAgfVxyXG5cclxuICAgIGJvZHk+aGVhZGVyPm5hdiAubmF2LWxpbmtzIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcclxuICAgIH1cclxuXHJcbiAgICBib2R5PmhlYWRlciAubG9nbyB7XHJcbiAgICAgICAgd2lkdGg6IDUwcHhcclxuICAgIH1cclxuXHJcbiAgICAuY29sdW1uLnRoaXJkIHAge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBNT0JJTEUgTkFWSUdBVElPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCAgTkFWSUdBVElPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVNQT05TSVZFIE5BVklHQVRJT04gPT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5uYXYtcmlnaHQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gIC50b3BfaGVhZGVyIC50b3BfaGVhZGVyX3dyYXBwZXIgLm1lbnUgdWwgbGkgYSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gIH1cclxuXHJcbiAgLnRvcF9oZWFkZXIgLnRvcF9oZWFkZXJfd3JhcHBlciAubWVudSB1bCBsaSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDVweDtcclxuICB9XHJcblxyXG4gIC50b3BfaGVhZGVyIC50b3BfaGVhZGVyX3dyYXBwZXIgLm1lbnUgI2NhbGxub3cge1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgcGFkZGluZzogMzlweCA3cHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIGJhY2tncm91bmQ6ICNmMzc4Nzc7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLW91dDtcclxufVxyXG5cclxuLnRvcF9oZWFkZXIgLnRvcF9oZWFkZXJfd3JhcHBlciAubWVudSAjY2FsbG5vdyBpIHtcclxuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG59XHJcblxyXG4udG9wX2hlYWRlciAudG9wX2hlYWRlcl93cmFwcGVyIC5tZW51ICNjYWxsbm93IHN0cm9uZyB7XHJcbiAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XHJcbn1cclxuXHJcbi50b3BfaGVhZGVyIC50b3BfaGVhZGVyX3dyYXBwZXIgLm1lbnUgLmFjdGl2ZV9tZW51X2xpIGEge1xyXG4gICAgY29sb3I6ICNmMzc4Nzc7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi50b3BfaGVhZGVyIC5sb2dvIGltZyB7XHJcbiAgICB3aWR0aDogMTE1cHg7XHJcbn1cclxuXHJcblxyXG59XHJcbkBtZWRpYShtYXgtd2lkdGg6IDk5MXB4KSB7XHJcbiAgLm5hdi1yaWdodCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgMnJlbTtcclxuICB9XHJcblxyXG4gICNjYWxsbm93Lm1vYmlsZWNhbGwge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogNnJlbTtcclxuICB9XHJcbiAgLm1lbnUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICNtb2JpbGVfbmF2IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI3LCAxMTcsIDE4OCwgMC45KTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgLy8gJjpiZWZvcmUge1xyXG4gICAgLy8gICBjb250ZW50OiBcIlwiO1xyXG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAvLyAgIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2Vfc3ZnKGxvZ28vbG9nb19vbmx5X3doaXRlX3NwYWNlLG5vLXJlcGVhdCx1bnNldCxjb3Zlcik7XHJcbiAgICAvLyAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3ItZG9kZ2U7XHJcbiAgICAvLyAgIHdpZHRoOiAxODAlO1xyXG4gICAgLy8gICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAvLyAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcclxuICAgIC8vICAgei1pbmRleDogMDtcclxuICAgIC8vICAgb3BhY2l0eTogMC4yO1xyXG4gICAgLy8gICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcblxyXG4gICNuYXYtdG9nZ2xlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBib2R5ID4gaGVhZGVyICNuYXYtdG9nZ2xlIHtcclxuICAgICAgbWFyZ2luOiAxNXB4IDAgMCAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDU3NXB4KSB7XHJcbiAgYm9keSA+IGhlYWRlciA+IG5hdiAuY29udGFpbmVyLWZsdWlkID4gLnJvdyAuY29sdW1uIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDBweDtcclxuICAgIG1hcmdpbjogMHJlbTtcclxufVxyXG5cclxuLmNvbHVtbi50aGlyZCBwIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udG9wX2hlYWRlciB7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgfVxyXG5cclxuICBib2R5ID4gaGVhZGVyID4gbmF2IC5uYXYtbGlua3MgaDEge1xyXG4gICAgZm9udC1zaXplOiAxN3B4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgfVxyXG5cclxuICAjbW9iaWxlX25hdiAuc3VibWVudSBsaSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgfVxyXG4gICNtb2JpbGVfbmF2IC5zdWJtZW51X3RpdGxlICB7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcbiAgfVxyXG5cclxuICAjbW9iaWxlX25hdiAuc3VibWVudSBsaSBhIHtcclxuICAgIGZvbnQtc2l6ZTogMTdweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI21vYmlsZV9uYXYge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4IWltcG9ydGFudDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGJvZHkgPiBoZWFkZXIgPiBuYXYgLmNvbnRhaW5lci1mbHVpZCA+IC5yb3cgLmNvbHVtbiB7XHJcbiAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBib2R5ID4gaGVhZGVyID4gbmF2IC5jb250YWluZXItZmx1aWQgPiAucm93IC5jb2x1bW4ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMCk7XHJcbiAgfVxyXG5cclxuICBib2R5ID4gaGVhZGVyID4gbmF2IC5jb250YWluZXItZmx1aWQgPiAucm93IC5jb2x1bW46bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiB1bnNldDtcclxuICB9XHJcblxyXG4gICNjYWxsbm93Lm1vYmlsZWNhbGwge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgYm9keSA+IGhlYWRlciA+IG5hdiAuY29udGFpbmVyLWZsdWlkID4gLnJvdyAuY29sdW1uIHtcclxuICAgIGhlaWdodDogdW5zZXQ7XHJcbn1cclxuXHJcbiNtb2JpbGVfbmF2IC5zdWJtZW51IHtcclxuICBtYXJnaW4tYm90dG9tOiB1bnNldCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDQyMHB4KSB7XHJcbiAgYm9keSA+IGhlYWRlciA+IG5hdiAubmF2LWxpbmtzIGgxIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gIH1cclxuXHJcbiAgI2NhbGxub3cubW9iaWxlY2FsbCB7IGRpc3BsYXk6IG5vbmU7IH1cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFJFU1BPTlNJVkUgTkFWSUdBVElPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSIkbmF2aGVpZ2h0OiAxMDBweDtcclxuXHJcbiNuYXZpIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiA5OTk7XHJcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcclxuICAvLyBib3JkZXItdG9wOiAycHggc29saWQgJGRhcmtibHVlO1xyXG4gIC8vIGJvcmRlci10b3A6IDEwcHggc29saWQgIzFiNzViYztcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgcmdiYSgwLCAxNjcsIDIxOSwgMC41MCk7XHJcbiAgICB6LWluZGV4OiA1O1xyXG4gICAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLW91dDtcclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIC8vIGJvcmRlci1ib3R0b206IDE0cHggc29saWQgcmdiYSgyMzQsIDE1LCAxNSwgMC43NSk7XHJcbiAgICB6LWluZGV4OiA1O1xyXG4gICAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLW91dDtcclxufVxyXG5cclxufVxyXG5cclxuLm5hdmkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiAxMDBweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAvLyAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAvLyAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIC8vICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAvLyAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAvLyAgIGJvdHRvbTogLThweDtcclxuICAgICAgICAgIC8vICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCAjZmY2YTZhO1xyXG4gICAgICAgICAgLy8gICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG4gICAgICAgICAgLy8gfVxyXG59XHJcblxyXG4ubmF2aSAubG9nbzpob3ZlciB7XHJcbiAgLy8gYmFja2dyb3VuZDogJGxpZ2h0Ymx1ZTtcclxufVxyXG4ubmF2aSAubG9nbyBpbWcge1xyXG4gIHdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLm5hdmkgdWwge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4ubmF2aSB1bCBsaSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6ICRuYXZoZWlnaHQ7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi5uYXZpIHVsIGxpOmZpcnN0LWNoaWxkIHtcclxuICBib3JkZXItbGVmdDogMDtcclxufVxyXG5cclxuLy8gLm5hdmkgdWwgbGk6bGFzdC1jaGlsZCB7XHJcbi8vICAgYm9yZGVyLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuLy8gfVxyXG5cclxuLm5hdmkgdWwgbGk6bnRoLWNoaWxkKDIpIGE6YmVmb3JlLFxyXG4ubmF2aSB1bCBsaTpudGgtbGFzdC1jaGlsZCgyKSBhOmJlZm9yZSxcclxuLm5hdmkgdWwgbGk6bnRoLWNoaWxkKDIpIGE6YWZ0ZXIsXHJcbi5uYXZpIHVsIGxpOm50aC1sYXN0LWNoaWxkKDIpIGE6YWZ0ZXIge1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhciAwcztcclxufVxyXG5cclxuLy8gLm5hdmkgdWwgbGk6bnRoLWNoaWxkKDIpID4gYTpiZWZvcmUge1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgIHRvcDogMDtcclxuLy8gICBsZWZ0OiAtMTVweDtcclxuLy8gICBjb250ZW50OiAnJztcclxuLy8gICB3aWR0aDogMDtcclxuLy8gICBoZWlnaHQ6IDA7XHJcbi8vICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkICNGRkZGRkY7XHJcbi8vICAgYm9yZGVyLXRvcDogOThweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuLy8gfVxyXG4vLyAubmF2aSB1bCBsaTpudGgtbGFzdC1jaGlsZCgyKSBhOmFmdGVyIHtcclxuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgei1pbmRleDogMTtcclxuLy8gICB0b3A6IDA7XHJcbi8vICAgcmlnaHQ6IC0xNXB4O1xyXG4vLyAgIGNvbnRlbnQ6ICcnO1xyXG4vLyAgIHdpZHRoOiAwO1xyXG4vLyAgIGhlaWdodDogMDtcclxuLy8gICBkaXNwbGF5OiBibG9jaztcclxuLy8gICBib3JkZXItbGVmdDogMTVweCBzb2xpZCAjRkZGRkZGO1xyXG4vLyAgIGJvcmRlci1ib3R0b206IDYwcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbi8vIH1cclxuLy8gLm5hdmkgdWwgbGk6bGFzdC1jaGlsZCBhIHtcclxuLy8gICBiYWNrZ3JvdW5kOiAkZGFya2JsdWU7XHJcbi8vICAgcGFkZGluZzogMCA0MHB4IDAgNDBweDtcclxuLy8gICBjb2xvcjogI0ZGRkZGRjtcclxuLy8gICBtYXJnaW4tbGVmdDogMHB4O1xyXG4vLyAgIG1hcmdpbi1yaWdodDogLTFweDtcclxuLy8gfVxyXG5cclxuLy8gLm5hdmkgdWwgbGk6bGFzdC1jaGlsZCBhOmhvdmVyIHtcclxuLy8gICBiYWNrZ3JvdW5kOiAkbGlnaHRibHVlO1xyXG4vLyB9XHJcblxyXG4ubmF2aV9maXhlZCB7XHJcbiAgI2NhbGxub3dfbWVudSB7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICMxODYyOWM7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLC40cyxlYXNlLW91dCk7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbiNjYWxsbm93X21lbnUge1xyXG4gIC8vIGJhY2tncm91bmQ6ICRkYXJrYmx1ZTtcclxuICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICRsaWdodGJsdWU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcclxuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XHJcbiAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCRibGFjayk7XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuXHJcbiAgaSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRtaWRkbGVibHVlO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLC40cyxlYXNlLW91dCk7XHJcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4ubmF2aSB1bCBsaSBhIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgY29sb3I6ICRkYXJrYmx1ZTtcclxuICBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhciAwcztcclxuICBoZWlnaHQ6IDEwMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG4ubmF2aSB1bCBsaSBhOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xyXG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyIDBzO1xyXG5cclxufVxyXG4ubmF2aSB1bCBsaSBhOmhvdmVyOmJlZm9yZSB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkICNmMmYyZjI7XHJcbn1cclxuLm5hdmkgdWwgbGkgYTpob3ZlcjphZnRlciB7XHJcbiAgYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgI2YyZjJmMjtcclxufVxyXG4ubmF2aSB1bCBsaSBhLmxvZ28ge1xyXG4gIGJhY2tncm91bmQ6ICNmZmNlNTQ7XHJcbiAgLy8gd2lkdGg6IDMwcHg7XHJcbiAgLy8gaGVpZ2h0OiAzMHB4O1xyXG4gIHBhZGRpbmc6IDE1cHggMzBweCAxNXB4IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG4ubmF2aSB1bCBsaSBhLmxvZ286aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmZmNlNTQ7XHJcbn1cclxuLm5hdmkgdWwgbGkgYS5sb2dvIGltZyB7XHJcbiAgd2lkdGg6IDcwcHg7XHJcbn1cclxuLm5hdmkgdWwgbGkgYSBpIHtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLm5hdmkgdWwgbGkgLm1lbnUgYSBpIHtcclxuICBtYXJnaW4tcmlnaHQ6IHVuc2V0O1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5uYXZpIHVsIGxpIC5tZW51IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIHdpZHRoOiAyNTBweDtcclxuICBoZWlnaHQ6IHVuc2V0O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkbGlnaHRibHVlO1xyXG4gIC8vIGJvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIGxpIHtcclxuICAgIGEge1xyXG4gICAgICAtd2Via2l0LWNsaXAtcGF0aDogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgY2xpcC1wYXRoOiB1bnNldDtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4ubmF2aSB1bCBsaSAubWVudSBsaSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiB1bnNldDtcclxuICBtYXJnaW46IDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7XHJcbn1cclxuLm5hdmkgdWwgbGkgLm1lbnUgbGk6bnRoLWNoaWxkKDIpLFxyXG4ubmF2aSB1bCBsaSAubWVudSBsaTpudGgtbGFzdC1jaGlsZCgyKSB7XHJcblxyXG59XHJcbi5uYXZpIHVsIGxpIC5tZW51IGxpOm50aC1jaGlsZCgyKSBhOmJlZm9yZSxcclxuLm5hdmkgdWwgbGkgLm1lbnUgbGk6bnRoLWxhc3QtY2hpbGQoMikgYTpiZWZvcmUsXHJcbi5uYXZpIHVsIGxpIC5tZW51IGxpOm50aC1jaGlsZCgyKSBhOmFmdGVyLFxyXG4ubmF2aSB1bCBsaSAubWVudSBsaTpudGgtbGFzdC1jaGlsZCgyKSBhOmFmdGVyIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbi5uYXZpIHVsIGxpIC5tZW51IGxpIGEge1xyXG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgcGFkZGluZzogMXJlbTtcclxuICBjb2xvcjogIzY2NjY2NjtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5uYXZpIHVsIGxpIC5tZW51IGxpIGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmMmYyZjI7XHJcbn1cclxuXHJcbi5qcy1sb2FkZWQubmF2LWlzLW9wZW4ge1xyXG4gICNuYXZpIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcclxuICAgICYubmF2aV9maXhlZCB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodGJsdWU7XHJcblxyXG4gICAgICAubmF2aSAubG9nbyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2xvZ28vbG9nby5zdmcpO1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiB1bnNldDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuLm5hdi1pcy1vcGVuIHtcclxuICAjbmF2aSB7XHJcblxyXG4gICAgLmxvZ28ge1xyXG4gICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX3N2Zyhsb2dvL2xvZ29faW52ZXJ0ZWRfLG5vLXJlcGVhdCxjZW50ZXIsY29udGFpbik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbiNuYXZpIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAubG9nbyB7XHJcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX3N2Zyhsb2dvL2xvZ28sbm8tcmVwZWF0LGNlbnRlciwyMDVweCk7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcclxuICAgIHdpZHRoOiAyMDVweDtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCwuNHMsZWFzZS1vdXQpO1xyXG4gIH1cclxuXHJcbiAgJi5uYXZpX2ZpeGVkIHtcclxuICAgIGJhY2tncm91bmQ6ICRtaWRkbGVibHVlO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgIGJveC1zaGFkb3c6IDBweCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XHJcblxyXG5cclxuICAgICNjYWxsbm93X21lbnUge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNmZmY7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZpIHtcclxuICAgICAgYm9yZGVyLXRvcDogdW5zZXQ7XHJcbiAgICAgIHVsIGxpIHtcclxuICAgICAgICAmOmxhc3QtY2hpbGQgYSB7XHJcbiAgICAgICAgICAtd2Via2l0LWNsaXAtcGF0aDogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgICAgIGNsaXAtcGF0aDogdW5zZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWVudSB7XHJcbiAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcclxuICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDIyLDIyLDIyLC4yKTtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZpIC5sb2dvOmhvdmVyIHtcclxuICAgICAgLy8gYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgLy8gQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9zdmcobG9nby9sb2dvLG5vLXJlcGVhdCxjZW50ZXIsY292ZXIpO1xyXG4gICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IDEzMHB4O1xyXG4gICAgICAvLyBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQsLjRzLGVhc2Utb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2aSAubG9nbyB7XHJcbiAgICAgIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2Vfc3ZnKGxvZ28vbG9nb19pbnZlcnRlZF8sbm8tcmVwZWF0LGNlbnRlcixjb250YWluKTtcclxuICAgICAgYm9yZGVyLWxlZnQ6IHVuc2V0O1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQsLjRzLGVhc2Utb3V0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTUVOVSBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6MTQ0MHB4KSB7XHJcbiAgICAubmF2aSB1bCBsaSBhIHtcclxuICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG4gICAgLy8gI25hdmkgLmxvZ28ge1xyXG4gICAgLy8gICB3aWR0aDogMjUwcHg7XHJcbiAgICAvLyAgIGJhY2tncm91bmQtc2l6ZTogMjUwcHggIWltcG9ydGFudDtcclxuICAgIC8vIH1cclxuXHJcbiAgICAjY2FsbG5vd19tZW51IHtcclxuICAgICAgcGFkZGluZzogMHB4IDAuN3JlbTtcclxuICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAubmF2aSB1bCBsaSBhIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgICBmb250LXNpemU6IDAuNjVyZW07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG5cclxuICAgIC5uYXZpIHVsIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2aSB7XHJcbiAgICAgICAgaGVpZ2h0OiA3MHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjY2FsbG5vd19tZW51IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjbmF2aS5uYXZpX2ZpeGVkIC5uYXZpIHtcclxuICAgICAgICAjY2FsbG5vdy5tb2JpbGVjYWxsIHtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgICNuYXZpLm5hdmlfZml4ZWQgLm5hdmkge1xyXG4gICAgICBib3JkZXItdG9wOiB1bnNldDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgI25hdmkubmF2aV9maXhlZCB7XHJcbiAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xyXG4gICAgfVxyXG5cclxuICAgICNuYXZpIC5sb2dvIHtcclxuICAgICAgd2lkdGg6IDIzMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDIzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAuY29sdW1uLnRoaXJkIGEge1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxuXHJcbiAgICAuY29sdW1uLnRoaXJkLmhvbWVfbGluayB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDo3NjdweCkge1xyXG5cclxuICB9XHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIE1FTlUgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRk9PVEVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbmZvb3RlciB7XHJcbiAgYmFja2dyb3VuZDogJG1pZGRsZWJsdWU7XHJcbiAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcbiAgcGFkZGluZzogNTBweDtcclxuXHJcblxyXG4gIC8vICY6YmVmb3JlIHtcclxuICAvLyAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgLy8gICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX3N2Zyhsb2dvL2xvZ29fb25seV93aGl0ZV9zcGFjZSxuby1yZXBlYXQsdW5zZXQsMTQ1JSk7XHJcbiAgLy8gICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlO1xyXG4gIC8vICAgd2lkdGg6IDk1JTtcclxuICAvLyAgIGhlaWdodDogNTElO1xyXG4gIC8vICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5O1xyXG4gIC8vICAgei1pbmRleDogMDtcclxuICAvLyAgIG9wYWNpdHk6IDAuMjtcclxuICAvLyB9XHJcblxyXG4gIC5mb290ZXJfdGl0bGUge1xyXG5cclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcclxuICAgIHBhZGRpbmc6IDQwcHggMDtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIH0gLy9zcGFuXHJcblxyXG4gICAgcCB7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcblxyXG4gICAgICBpIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgfVxyXG4gICAgfSAvL3BcclxuXHJcbiAgfSAvL2Zvb3Rlcl90aXRsZVxyXG5cclxuICAuZm9vdGVyX2JveCB7XHJcblxyXG4gICAgcGFkZGluZzogNDBweCAwO1xyXG5cclxuICAgIHN0cm9uZyB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgIC8vIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyX2kge1xyXG4gICAgICBhIHtcclxuICAgICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJHdoaXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgQGluY2x1ZGUgcmVzZXRfbGlzdCgpO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgICBmb250LXNpemU6IDAuOTVyZW07XHJcblxyXG4gICAgICBsaSB7XHJcblxyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkd2hpdGUpO1xyXG4gICAgICAgIH0gLy8gc3BhblxyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwgLjRzLCBlYXNlLW91dCk7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCRkYXJrYmx1ZSk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAuNHMsIGVhc2Utb3V0KTtcclxuICAgICAgICAgIH0gLy8gaG92ZXJcclxuXHJcbiAgICAgICAgfSAvLyBhXHJcblxyXG4gICAgICB9IC8vIGxpXHJcblxyXG4gICAgfSAvLyB1bFxyXG5cclxuICAgIC5mb290ZXJfaSB7XHJcblxyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkYmxhY2spO1xyXG4gICAgICB9IC8vIHNwYW5cclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuICAgICAgaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICAgIH1cclxuICAgIH0gLy9mb290ZXJfaVxyXG5cclxuICAgICYuZm9vdGVyX21lbnUge1xyXG5cclxuICAgICAgdWwge1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICB9IC8vdWxcclxuXHJcbiAgICB9IC8vZm9vdGVyX21lbnVcclxuXHJcbiAgfSAvL2Zvb3Rlcl9ib3hcclxuXHJcbiAgI2NvbnRhY3RfZm9vdGVyIHtcclxuICAgIGxpIHtcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgLy8gZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvcHlyaWdodHNfdGV4dCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICB9XHJcblxyXG5cclxufSAvL2Zvb3RlclxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIEZPT1RFUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGT09URVIgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuICBmb290ZXIge1xyXG4gICAgICBwYWRkaW5nOiAxNXB4IDE1cHggMDtcclxuICB9XHJcblxyXG4gIGZvb3RlciAuZm9vdGVyX3RpdGxlIHtcclxuICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICB9XHJcblxyXG4gIGZvb3RlciAuZm9vdGVyX2JveCB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggc3Ryb25nIHtcclxuICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggc3Ryb25nIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICB9XHJcblxyXG4gIGZvb3RlciAuZm9vdGVyX2JveCAuZm9vdGVyX2kge1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggdWwgbGkgYSB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gIGZvb3RlciAuZm9vdGVyX2JveCB1bCBsaSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICB9XHJcbiAgZm9vdGVyIC5mb290ZXJfYm94IHVsIGxpIGEge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxuXHJcbiAgLmZvb3Rlcl9pLmZvb3Rlcl9sYXN0IHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl90aXRsZSBwIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICBmb290ZXIge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggdWwge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDIxcHg7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl9ib3ggdWwgbGkgYSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICBmb290ZXIgLmZvb3Rlcl90aXRsZSB7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIH1cclxuXHJcbiAgZm9vdGVyIC5mb290ZXJfdGl0bGUgcCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcbiAgZm9vdGVyIHtcclxuICAgICAgbWFyZ2luOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGZvb3RlciAuZm9vdGVyX3RpdGxlIHNwYW4ge1xyXG4gICAgICBmb250LXNpemU6IDAuN3JlbTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvcHlyaWdodHNfdGV4dCB7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgIH1cclxuXHJcbiAgICBmb290ZXIgLmZvb3Rlcl9ib3ggc3BhbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG4gIGZvb3RlciAuZm9vdGVyX3RpdGxlIHAge1xyXG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBGT09URVIgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUEFHRVMgSEVBREVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5wYWdlc19oZWFkZXIge1xyXG4gIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2Vfd2l0aG91dF91cmwobm8tcmVwZWF0LGNlbnRlcixjb3Zlciw2MDBweCk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAucGFnZXNfaGVhZGVyX3RleHQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICBoMSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlc19icmVhZGNydW1iIHtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcclxuICAgICAgYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCR3aGl0ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJGxpZ2h0Ymx1ZSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgaSB7XHJcbiAgICAgICAgLy8gY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4jd2hvd2VhcmVfYmcucGFnZXNfaGVhZGVyIHtcclxuICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX2pwZyhzd2lwZXIvMSxuby1yZXBlYXQsY2VudGVyLGNvdmVyKTtcclxufVxyXG5cclxuI2NvbnRhY3RwYWdlX2JnLnBhZ2VzX2hlYWRlciB7XHJcbiAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcoc3dpcGVyLzMsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbn1cclxuXHJcbiNpZm9ybXBhZ2VfYmcucGFnZXNfaGVhZGVyIHtcclxuICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX2pwZyhwaG90b3NfbWluLzE1LG5vLXJlcGVhdCxjZW50ZXIsY292ZXIpO1xyXG59XHJcblxyXG4jc2VydmljZXNwYWdlX2JnLnBhZ2VzX2hlYWRlciB7XHJcbiAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcoc3dpcGVyLzIsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbn1cclxuXHJcbiN3b3Jrc19iZy5wYWdlc19oZWFkZXIge1xyXG4gIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2VfanBnKHN3aXBlci80LG5vLXJlcGVhdCxjZW50ZXIsY292ZXIpO1xyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgUEFHRVMgSEVBREVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBQQUdFUyBIRUFERVIgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gIC5wYWdlc19oZWFkZXIge1xyXG4gICAgaGVpZ2h0OiA0NTBweDtcclxuICB9XHJcbiAgLnBhZ2VzX2hlYWRlciAucGFnZXNfaGVhZGVyX3RleHQgaDEge1xyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgfVxyXG5cclxuICAucGFnZXNfaGVhZGVyIC5wYWdlc19oZWFkZXJfdGV4dCB7XHJcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuICAucGFnZXNfaGVhZGVyIHtcclxuICAgICAgaGVpZ2h0OiAzNTBweDtcclxuICB9XHJcbiAgLnBhZ2VzX2hlYWRlciAucGFnZXNfaGVhZGVyX3RleHQgaDEge1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gIH1cclxuXHJcbiAgLnBhZ2VzX2hlYWRlciAucGFnZXNfaGVhZGVyX3RleHQgLnBhZ2VzX2JyZWFkY3J1bWIge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxuXHJcbiAgLnBhZ2VzX2hlYWRlciAucGFnZXNfaGVhZGVyX3RleHQgaDEge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgfVxyXG5cclxuICAucGFnZXNfaGVhZGVyIC5wYWdlc19oZWFkZXJfdGV4dCAucGFnZXNfYnJlYWRjcnVtYiB7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG5cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFBBR0VTIEhFQURFUiBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuIiwKCQkiXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEJBTk5FUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgQkFOTkVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBCQU5ORVIgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NDIwcHgpIHtcclxuXHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBCQU5ORVIgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ09OVEFDVCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbi5mb3JtX2J0bl93cmFwcGVyIHtcclxuICAjc2VuZC1tZXNzYWdlIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICB9XHJcbn1cclxuXHJcbiNjb250YWN0X2Zvcm0ge1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOHJlbTtcclxuXHJcbiAgICBoMyB7XHJcbiAgICAgIHBhZGRpbmc6IDQ1cHggMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgICAgZm9udC1zaXplOiAyLjVyZW07XHJcblxyXG4gICAgICBzdHJvbmcge1xyXG4gICAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlyc3RfaW5wdXQge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDElO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWdyb3VwLnRleHRhcmVhIHtcclxuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZy1yZWNhcHRjaGEge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuICAgICAgd2lkdGg6IDQ5LjElO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjMUMzMTVFO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGJvcmRlcjogdW5zZXQ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcclxuXHJcblxyXG4gICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcclxuICAgIGJvcmRlcjogdW5zZXQ7XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIC5mb3JtX2J0bl93cmFwcGVyIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQ6ICMxYzMxNWU7XHJcbiAgICBib3JkZXI6IHVuc2V0O1xyXG4gICAgYm9yZGVyLXJhZGl1czogdW5zZXQgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xyXG4gIH1cclxuXHJcbn0vLyAjY29udGFjdF9mb3JtLnBhZ2VzX2NvbnRlY3RcclxuXHJcbiNjb250YWN0X2luZm8ge1xyXG5cclxuICBtYXJnaW46IDVyZW0gMDtcclxuXHJcbiAgI2NpYl9sZWZ0LmNvbnRhY3RfaW5mb19ib3gge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDtcclxuICB9XHJcblxyXG4gIC5jb250YWN0X2luZm9fYm94IHtcclxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XHJcbiAgICBwYWRkaW5nOiA1NXB4IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgaSB7XHJcbiAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0cm9uZyB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCRibGFjayk7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICNob3d0b2NvbWUge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZGFya2JsdWU7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBwYWRkaW5nOiA3cHggMTVweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNHJlbTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHRvcDogMTJweDtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuXHJcbiAgICAgIGkge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgQGluY2x1ZGUgcmVzZXRfbGlzdCgpO1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYV9kZWNvcmF0aW9uKCRibGFjayk7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIENPTlRBQ1QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gT0ZGRVJTIENPTlRBQ1QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6MTE5OXB4KSB7XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjk5MXB4KSB7XHJcbiAgI2NvbnRhY3RfaW5mbyAuY29udGFjdF9pbmZvX2JveCB7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfaW5mbyAuY29udGFjdF9pbmZvX2JveCBzdHJvbmcge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9pbmZvIC5jb250YWN0X2luZm9fYm94IHAge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9pbmZvIC5jb250YWN0X2luZm9fYm94IHVsIGxpIGEge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9pbmZvIC5jb250YWN0X2luZm9fYm94IGEge1xyXG4gICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIGgzIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgI2NvbnRhY3RfaW5mbyAjY2liX2xlZnQuY29udGFjdF9pbmZvX2JveCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogdW5zZXQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfZm9ybSBpbnB1dCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICB9XHJcblxyXG4gICNjb250YWN0X2Zvcm0gdGV4dGFyZWEge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcblxyXG4gICNjb250YWN0X2Zvcm0gYnV0dG9uIHtcclxuICAgIHBhZGRpbmc6IDhweCA1MHB4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIGlucHV0IHtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgfVxyXG5cclxuICAuZm9ybV9idG5fd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfZm9ybSAuZy1yZWNhcHRjaGEge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcblxyXG4gICNjb250YWN0X2Zvcm0gLmctcmVjYXB0Y2hhID4gZGl2IHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIC5maXJzdF9pbnB1dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHVuc2V0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuICAjY29udGFjdF9pbmZvIC5jb250YWN0X2luZm9fYm94IHAge1xyXG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICB9XHJcbiAgI2NvbnRhY3RfaW5mbyAuY29udGFjdF9pbmZvX2JveCB1bCBsaSBhIHtcclxuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfaW5mbyAuY29udGFjdF9pbmZvX2JveCAjaG93dG9jb21lIHtcclxuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfaW5mbyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAjY29udGFjdF9mb3JtIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAuZm9ybV9idG5fd3JhcHBlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NDIwcHgpIHtcclxuICAjY29udGFjdF9mb3JtIGlucHV0IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfZm9ybSAuZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcmVtO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfZm9ybSAuZm9ybS1ncm91cC50ZXh0YXJlYSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhY3RfZm9ybSB0ZXh0YXJlYSB7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIENPTlRBQ1QgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU1dJUEVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiAgICAuc3dpcGVyLWNvbnRhaW5lciB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnN3aXBlci1zbGlkZSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAvKiBDZW50ZXIgc2xpZGUgdGV4dCB2ZXJ0aWNhbGx5ICovXHJcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiNob21lX3N3aXBlciB7XHJcbiAgICAgIC8vICY6YmVmb3JlIHtcclxuICAgICAgLy8gICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgLy8gICB3aWR0aDogMTAwJTtcclxuICAgICAgLy8gICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgICAvLyAgIGJhY2tncm91bmQ6ICMwMjAwMjQ7XHJcbiAgICAgIC8vICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIsIDAsIDM2LCAwKSA1JSwgcmdiYSgwLCAwLCAwLCAwLjg4KSA2MiUsIHJnYmEoMCwgMCwgMCwgMC42MSkgODYlLCByZ2JhKDAsIDIxMiwgMjU1LCAwKSAxMDAlKTtcclxuICAgICAgLy8gICB6LWluZGV4OiAyO1xyXG4gICAgICAvLyAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgaGVpZ2h0OiAxMDB2aDtcclxuXHJcbiAgICAgIHAge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYigyNDMsIDEyMCwgMTE5KTtcclxuICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAyLjVweDtcclxuICAgICAgICBib3JkZXItbGVmdDogMXJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTApO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogNjYwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNsaWRlX2ltYWdlMSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcoc3dpcGVyLzEsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcblxyXG4gICAgICAgfVxyXG4gICAgICAuc2xpZGVfaW1hZ2UyIHtcclxuICAgICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX2pwZyhzd2lwZXIvMixuby1yZXBlYXQsY2VudGVyLGNvdmVyKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgLnNsaWRlX2ltYWdlMyB7XHJcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcoc3dpcGVyLzMsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zd2lwZXJfdGV4dCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAvLyBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgICAgIC8vIHdpZHRoOiA1MDBweDtcclxuICAgICAgICB6LWluZGV4OiA5O1xyXG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG5cclxuICAgICAgICAuc3dpcGVyX3RleHRfd3JhcHBlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFya2JsdWU7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XHJcbiAgICAgICAgICBib3gtc2hhZG93OiA3cHggLTZweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMSB7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA1cHggcmdiYSg4MCwgNzMsIDczLCAwLjI1KTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zd2lwZXItYnV0dG9uLW5leHQsIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICBAaW5jbHVkZSB3aGl0ZV9maWx0ZXIoKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggMzBweDtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zd2lwZXItYnV0dG9uLW5leHQsIC5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcclxuICAgICAgICByaWdodDogLTQwcHggIWltcG9ydGFudFxyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3dpcGVyLWJ1dHRvbi1wcmV2LCAuc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dCB7XHJcbiAgICAgICAgbGVmdDogLTQ1cHggIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cywgLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSwgLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uIHtcclxuICAgICAgICBib3R0b206IC0yMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnN3aXBlcl91aV9jb250cm9scyB7XHJcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIC41cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzcGFuLnN3aXBlci1wYWdpbmF0aW9uLWN1cnJlbnQge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3Bhbi5zd2lwZXItcGFnaW5hdGlvbi10b3RhbCB7XHJcbiAgICAgICAgY29sb3I6ICNkY2RjZGM7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgfVxyXG5cclxufSAvLyNob21lX3N3aXBlclxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUExBWSBCVVRUT04gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgfVxyXG59XHJcbi5zdHJva2UtZG90dGVkIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHN0cm9rZS1kYXNoYXJyYXk6IDQsNTtcclxuICBzdHJva2Utd2lkdGg6IDFweDtcclxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XHJcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDRzIGluZmluaXRlIGxpbmVhcjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiA0cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLCAgc3Ryb2tlLXdpZHRoIDFzIGVhc2U7XHJcbn1cclxuXHJcbi5zdHJva2Utc29saWQge1xyXG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG4gIHN0cm9rZS1kYXNoQXJyYXk6IDMwMDtcclxuICBzdHJva2Utd2lkdGg6IDRweDtcclxuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAxcyBlYXNlLCAgb3BhY2l0eSAxcyBlYXNlO1xyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcclxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXQ7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0LCAtd2Via2l0LXRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcclxuICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxufVxyXG5cclxuI3BsYXk6aG92ZXIgLnN0cm9rZS1kb3R0ZWQge1xyXG4gIHN0cm9rZS13aWR0aDogNHB4O1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuI3BsYXk6aG92ZXIgLnN0cm9rZS1zb2xpZCB7XHJcbiAgb3BhY2l0eTogMDtcclxuICBzdHJva2UtZGFzaG9mZnNldDogMzAwO1xyXG59XHJcbiNwbGF5OmhvdmVyIC5pY29uIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG59XHJcblxyXG4jcGxheSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFBMQVkgQlVUVE9OIEVORCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4jd2VsY29tZV92aWRlbyB7XHJcblxyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi10b3A6IDhyZW07XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxuXHJcbiAgc3Ryb25nIHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBtYXJnaW4tdG9wOiAtNS41cmVtO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICB9XHJcblxyXG4gIC53dl9kZXNjcmlwdGlvbiB7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgU1dJUEVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNXSVBFUiBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG5cclxuICAjaG9tZV9zd2lwZXIgcCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB3aWR0aDogNDUwcHg7XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV92aWRlbyBzdHJvbmcge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgfVxyXG5cclxuICAjaG9tZV9zd2lwZXIgLnN3aXBlcl90ZXh0IGgxIHtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjk5MXB4KSB7XHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCBoMSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICB9XHJcbiAgI2hvbWVfc3dpcGVyIHAge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdWlfY29udHJvbHMge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcblxyXG4gICNob21lX3N3aXBlciB7XHJcbiAgICBoZWlnaHQ6IDUzMHB4O1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCB7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIC02MHB4KTtcclxuICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAjaG9tZV9zd2lwZXIgLnN3aXBlci1idXR0b24tbmV4dCwgI2hvbWVfc3dpcGVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4IDI1cHg7XHJcbiAgfVxyXG4gICNob21lX3N3aXBlciAuc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsICNob21lX3N3aXBlciAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLCAjaG9tZV9zd2lwZXIgLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uIHtcclxuICAgIGJvdHRvbTogLTM0cHggIWltcG9ydGFudDtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCAuc3dpcGVyX3RleHRfd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuXHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCBoMSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgcGFkZGluZy1yaWdodDogMHJlbTtcclxuICB9XHJcblxyXG4gICNob21lX3N3aXBlciBwIHtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAjaG9tZV9zd2lwZXIge1xyXG4gICAgaGVpZ2h0OiA1MzBweDtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcblxyXG4gICNob21lX3N3aXBlciBwIHtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCB7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIC03MHB4KTtcclxuICB9XHJcblxyXG4gICNob21lX3N3aXBlciAuc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsICNob21lX3N3aXBlciAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLCAjaG9tZV9zd2lwZXIgLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uIHtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfc3dpcGVyIC5zd2lwZXJfdGV4dCBoMSB7XHJcbiAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG4gICNob21lX3N3aXBlciBwIHtcclxuICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgfVxyXG4gICNob21lX3N3aXBlciAuc3dpcGVyX3RleHQgaDEge1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfc3dpcGVyIHtcclxuICAgIGhlaWdodDogNDI1cHg7XHJcbiAgfVxyXG5cclxuICAjbmF2aSAubG9nbyB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE5NXB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFNXSVBFUiBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiIsCgkJIlxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBIT01FUEFHRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBXRUxDT01FIFBST01PID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4jd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCB7XHJcbiAgYmFja2dyb3VuZDogI2Y5ZjhmODtcclxuICBwYWRkaW5nOiAzcmVtIDA7XHJcbiAgbWFyZ2luOiAzMHB4O1xyXG5cclxuICAmLmhvbWVwYWdlIHtcclxuICAgIHBhZGRpbmc6IDhyZW0gMDtcclxuICAgIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XHJcbiAgICBmb250LXNpemU6IDIuNnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG5cclxuICAgIHN0cm9uZyB7XHJcbiAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mYXMuZmEtc29ydC1kb3duIHtcclxuICAgIGZvbnQtc2l6ZTogMzhyZW07XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xOHJlbTtcclxuICAgIGNvbG9yOiAjZjM3ODc3O1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFdFTENPTUUgUFJPTU8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFdFTENPTUUgUFJPTU8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiNzZXJ2aWNlcy5zaW5nbGVfdGV4dCB7XHJcbiAgYmFja2dyb3VuZDogI2Y5ZjhmODtcclxuXHJcbiAgaDIge1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XHJcbiAgICBmb250LXNpemU6IDIuMnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG5cclxuICAgIHN0cm9uZyB7XHJcbiAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mYXMuZmEtc29ydC1kb3duIHtcclxuICAgIGZvbnQtc2l6ZTogMzhyZW07XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC04cmVtO1xyXG4gICAgY29sb3I6ICNmMzc4Nzc7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICB9XHJcblxyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgV0VMQ09NRSBQUk9NTyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFBBR0VTIEJVVFRPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnBhZ2VzX2J1dHRvbiB7XHJcbiAgLy8gZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIC8vIGNvbG9yOiAkYmxhY2s7XHJcbiAgLy8gZm9udC13ZWlnaHQ6IDUwMDtcclxuICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgLy8gcGFkZGluZzogMTJweCAxNXB4O1xyXG4gIC8vIGxpbmUtaGVpZ2h0OiAzN3B4O1xyXG4gIC8vIHotaW5kZXg6IDE7XHJcbiAgLy8gbWFyZ2luLXRvcDogMjVweDtcclxuICAvLyBmb250LXNpemU6IDIwcHg7XHJcbiAgLy8gZm9udC13ZWlnaHQ6IDMwMDtcclxuICAvLyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDBweCAjMWMzMTVlO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjksIDAuMjQsIDAuNCwgMSk7XHJcbiAgY29sb3I6ICRtaWRkbGVibHVlO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG4gIHBhZGRpbmc6IDAuOHJlbSAuNXJlbTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE2NywgMjE5LCAwLjA1KTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDAlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IC40cyBjdWJpYy1iZXppZXIoMC45LCAxLCAwLjMyLCAxKSwgb3BhY2l0eSAuMXMgZWFzZTtcclxuICB9XHJcblxyXG4gICY6aG92ZXI6OmJlZm9yZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMTAwcHggMHB4IDBweCAkbWlkZGxlYmx1ZTtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bnNldDtcclxuICAgIC8vIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuLy8gLnBhZ2VzX2J1dHRvbjpob3Zlcjo6YmVmb3JlIHtcclxuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vICAgICB3aWR0aDogMTAwJTtcclxuLy8gICAgIGNvbG9yOiAkd2hpdGU7XHJcbi8vIH1cclxuXHJcbi8vIC5wYWdlc19idXR0b246OmJlZm9yZSB7XHJcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICBjb250ZW50OiBcIlwiO1xyXG4vLyAgICAgYmFja2dyb3VuZDogJGxpZ2h0Ymx1ZTtcclxuLy8gICAgIGxlZnQ6IDA7XHJcbi8vICAgICB0b3A6IDA7XHJcbi8vICAgICB3aWR0aDogNTAlO1xyXG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xyXG4vLyAgICAgei1pbmRleDogLTE7XHJcbi8vICAgICB0cmFuc2l0aW9uOiB3aWR0aCAxcyBjdWJpYy1iZXppZXIoMC42MywgMC4wNSwgMC40MywgMS43KTtcclxuLy8gfVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFBBR0VTIEJVVFRPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gV0hPIFdFIEFSRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuI3dob3dlYXJlIHtcclxuICBwYWRkaW5nOiAxMHJlbSAwO1xyXG5cclxuICAucGFyYWdfbGluayB7XHJcbiAgICBjb2xvcjogI2YzNzg3NyAhaW1wb3J0YW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc2luZ2xlX3RleHQge1xyXG4gICAgaDIge1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gLy8gc2luZ2xlX3RleHRcclxuXHJcbiAgLnNpbmdsZV90ZXh0X2Rlc2NyaXB0aW9uIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMTQwcHg7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAgIC5wYXJhZ3JhcGhfc3R5bGUge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzFiNzViYztcclxuICAgICAgcGFkZGluZzogMjBweCAwO1xyXG4gICAgICAmLnBhcmFncmFwaF9zdHlsZV9sYXN0IHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcm9tb19saXN0IHAge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgd2lkdGg6IDMyLjMlO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjMzMzO1xyXG4gICAgICBtYXJnaW46IDAuNSU7XHJcbiAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgV0hPIFdFIEFSRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUEFSVE5FUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuI3BhcnRuZXJzIHtcclxuXHJcbiAgcGFkZGluZzogM3JlbSAwO1xyXG4gIGJhY2tncm91bmQ6ICNmOWY4Zjg7XHJcbiAgbWFyZ2luOiAzMHB4O1xyXG5cclxuICAmLnNpbmdsZV90ZXh0IHtcclxuICAgIGgyIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuXHJcbiAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS41O1xyXG5cclxuICAgICAgc3Ryb25nIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGxpZ2h0Ymx1ZTtcclxuICAgICAgICBmb250OiA2MDAgMi4ycmVtLzZweCBcImF2ZXJ0YVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSAvLyBzaW5nbGVfdGV4dFxyXG5cclxuICAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiAycmVtIDA7XHJcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGEge1xyXG4gICAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSgxKTtcclxuICAgICAgICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSk7XHJcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLC40cyxlYXNlLW91dCk7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSgwLjUpO1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMwMDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxOTBweDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBQQVJUTkVSUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnNlcnZpY2VzX2ltZyB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4jc2lfMDEge1xyXG4gIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2VfanBnKHBob3Rvc19taW4vMTUsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbn1cclxuXHJcbiNzaV8wMiB7XHJcbiAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcoc3dpcGVyLzIsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbn1cclxuXHJcbiNzaV8wMyB7XHJcbiAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV9qcGcocGhvdG9zX21pbi81LG5vLXJlcGVhdCxjZW50ZXIsY292ZXIpO1xyXG59XHJcblxyXG4jc2lfMDQge1xyXG4gIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2VfanBnKHBob3Rvc19taW4vMTcsbm8tcmVwZWF0LGNlbnRlcixjb3Zlcik7XHJcbn1cclxuXHJcbi5zaW5nbGVfdGV4dF93cmFwcGVyIHtcclxuICBwYWRkaW5nOiA2cmVtIDIuNXJlbTtcclxufVxyXG5cclxuLmJ1dHRvbl93cmFwcGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDJyZW0gMDtcclxufVxyXG5cclxuI3NlcnZpY2VzIHtcclxuICAmLnNpbmdsZV90ZXh0IHtcclxuXHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgQGluY2x1ZGUgcmVzZXRfbGlzdCgpO1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIGxpIHtcclxuICAgICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgICAgaSB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5jb3VudGVyLWl0ZW0td3JhcHBlciB7XHJcbiAgcGFkZGluZzogMnJlbSAwIDA7XHJcbn1cclxuXHJcbi5jb3VudGVyLWl0ZW0ge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgJi5jb3VudC1pdGVtLWNlbnRlciB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICAuY291bnRlciB7XHJcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgJi5pY29uIHtcclxuICAgICAgaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaDQge1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB9XHJcbn1cclxuXHJcbi5tYXAge1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgaWZyYW1lIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA1MDBweDtcclxuICB9XHJcbn1cclxuXHJcbi50ZXh0X2Rlc2Mge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5leHRyYV9zZXJ2aWNlc19zZWMge1xyXG4gIHBhZGRpbmc6IDRyZW0gMCAwO1xyXG59XHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIEhPTUVQQUdFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBIT01FUEFHRSBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0LmhvbWVwYWdlIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAxLjlyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dC5ob21lcGFnZSB7XHJcbiAgICBwYWRkaW5nOiAzcmVtIDA7XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCAuZmFzLmZhLXNvcnQtZG93biB7XHJcbiAgICB0b3A6IC0xNnJlbTtcclxuICB9XHJcblxyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gIH1cclxuXHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQgLmZhcy5mYS1zb3J0LWRvd24ge1xyXG4gICAgdG9wOiAtMTZyZW07XHJcbiAgICBmb250LXNpemU6IDM2cmVtO1xyXG4gIH1cclxuXHJcbiAgLmNvdW50ZXItaXRlbSBoNCB7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICB9XHJcblxyXG4gIC5jb3VudGVyLWl0ZW0gcCAuY291bnRlciB7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUgLnNpbmdsZV90ZXh0X2Rlc2NyaXB0aW9uIHtcclxuICAgIHBhZGRpbmc6IDIwcHggNDVweDtcclxuICAgIGZvbnQtc2l6ZTogMjFweDtcclxufVxyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0LmhvbWVwYWdlIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCAuZmFzLmZhLXNvcnQtZG93biB7XHJcbiAgICB0b3A6IC0xN3JlbTtcclxuICB9XHJcblxyXG4gICN3aG93ZWFyZSAuc2luZ2xlX3RleHRfZGVzY3JpcHRpb24ge1xyXG4gICAgcGFkZGluZzogMjBweCAwcHg7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAuc2luZ2xlX3RleHRfd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG4gIH1cclxuXHJcbiAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICB9XHJcblxyXG4gICNzZXJ2aWNlcy5zaW5nbGVfdGV4dCB1bCBsaSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUge1xyXG4gICAgcGFkZGluZzogNnJlbSAwO1xyXG4gIH1cclxuXHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQgaDIge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCAuZmFzLmZhLXNvcnQtZG93biB7XHJcbiAgICB0b3A6IC0xNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMzJyZW07XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUgLnByb2ZpbGVfaW1nIHtcclxuICAgIGhlaWdodDogMzUwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxuICB9XHJcblxyXG4gICN3aG93ZWFyZS5zaW5nbGVfdGV4dCBoMiB7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo3NjdweCkge1xyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0LmhvbWVwYWdlIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgfVxyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0LmhvbWVwYWdlIHtcclxuICAgIHBhZGRpbmc6IDJyZW0gMDtcclxuICB9XHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQgLmZhcy5mYS1zb3J0LWRvd24ge1xyXG4gICAgdG9wOiAtMThyZW07XHJcbiAgfVxyXG4gICN3aG93ZWFyZS5zaW5nbGVfdGV4dCBoMiB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgfVxyXG4gICN3aG93ZWFyZS5zaW5nbGVfdGV4dCBoMiBzdHJvbmcge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgfVxyXG4gIC5zZXJ2aWNlc19pbWcge1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICB9XHJcblxyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIH1cclxuXHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQge1xyXG4gICAgcGFkZGluZzogMnJlbSAwO1xyXG4gIH1cclxuXHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQgLmZhcy5mYS1zb3J0LWRvd24ge1xyXG4gICAgdG9wOiAtMTVyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCB7XHJcbiAgICBtYXJnaW46IDE1cHg7XHJcbiAgfVxyXG5cclxuICAuY291bnRlci1pdGVtIGg0IHtcclxuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xyXG4gIH1cclxuXHJcbiAgLmNvdW50ZXItaXRlbSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgJi5jb3VudC1pdGVtLWNlbnRlciB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiB1bnNldDtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiB1bnNldDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tYXAgaWZyYW1lIHtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUgLnNpbmdsZV90ZXh0X2Rlc2NyaXB0aW9uIC5wYXJhZ3JhcGhfc3R5bGUge1xyXG4gICAgcGFkZGluZzogMTBweCAwIDIwcHg7IFxyXG4gIH1cclxuXHJcbn0gLy83NjdweFxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo1NzVweCkge1xyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0LmhvbWVwYWdlIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCAuZmFzLmZhLXNvcnQtZG93biB7XHJcbiAgICB0b3A6IC03cmVtO1xyXG4gICAgZm9udC1zaXplOiAyNnJlbTtcclxuICB9XHJcblxyXG4gICN3aG93ZWFyZSB7XHJcbiAgICBwYWRkaW5nOiA1cmVtIDAgMnJlbTtcclxuICB9XHJcblxyXG4gICN3aG93ZWFyZS5zaW5nbGVfdGV4dCBoMiB7XHJcbiAgICBmb250LXNpemU6IDIuMnJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAwLjU7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUgLnNpbmdsZV90ZXh0X2Rlc2NyaXB0aW9uIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcblxyXG4gIC5wYWdlc19idXR0b24ge1xyXG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICB9XHJcblxyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICB9XHJcblxyXG4gICN3ZWxjb21lX3Byb21vLnNpbmdsZV90ZXh0IC5mYXMuZmEtc29ydC1kb3duIHtcclxuICAgIHRvcDogLTdyZW07XHJcbiAgICBmb250LXNpemU6IDE4cmVtO1xyXG4gIH1cclxuXHJcbiAgLmNvdW50ZXItaXRlbS5jb3VudGVyLWl0ZW0tbGFzdCB7XHJcbiAgICBib3JkZXItYm90dG9tOiB1bnNldDtcclxuICB9XHJcblxyXG4gIC5jb3VudGVyLWl0ZW0ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNmQ2ZDY7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgfVxyXG5cclxuICAuY291bnRlci1pdGVtIGg0IHtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIH1cclxuXHJcbiAgLm1hcCBpZnJhbWUge1xyXG4gICAgaGVpZ2h0OiAyNTBweDtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQuaG9tZXBhZ2Uge1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gICAgbWFyZ2luOiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgI3dlbGNvbWVfcHJvbW8uc2luZ2xlX3RleHQgLmZhcy5mYS1zb3J0LWRvd24ge1xyXG4gICAgdG9wOiAtOXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMjZyZW07XHJcbiAgfVxyXG5cclxuICAuc2luZ2xlX3RleHRfd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAjc2VydmljZXMuc2luZ2xlX3RleHQgaDIge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCB7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgfVxyXG5cclxuICAjd2VsY29tZV9wcm9tby5zaW5nbGVfdGV4dCAuZmFzLmZhLXNvcnQtZG93biB7XHJcbiAgICBmb250LXNpemU6IDIycmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBIT01FUEFHRSBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiIsCgkJIiNpZm9ybSB7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIG1hcmdpbi10b3A6IDZyZW07XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBwYWRkaW5nOiA0NXB4IDA7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG5cclxuICAgICAgc3Ryb25nIHtcclxuICAgICAgICBjb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICB9IC8vc3Ryb25nXHJcbiAgICB9IC8vaDNcclxuXHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAxLjdyZW07XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNmMzc4Nzc7XHJcbiAgICAgIGZvbnQ6IDYwMCAyLjJyZW0vNHB4IFwiYXZlcnRhXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IC8vcFxyXG5cclxuICAgIC5maXJzdF9pbnB1dCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tZ3JvdXAudGV4dGFyZWEge1xyXG4gICAgICAvLyBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0IHtcclxuICAgICAgcGFkZGluZzogMjBweCAxNXB4O1xyXG4gICAgICB3aWR0aDogNDkuMiU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmMzc4Nzc7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgYm9yZGVyOiB1bnNldDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xyXG5cclxuICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHRleHRhcmVhIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XHJcbiAgICBib3JkZXI6IHVuc2V0O1xyXG4gIH1cclxuXHJcbiAgLmZvcm1fYnRuX3dyYXBwZXIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodGJsdWU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjZGE2YjZhO1xyXG4gICAgcGFkZGluZzogMTVweCA1MHB4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG5cclxuXHJcbiAgICAuc2VydmljZXNfbWluaV9pbmZvLnNlcnZpY2VzX21pbmlfaW5mb19tc2cge1xyXG4gICAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xyXG5cclxuICAgICAgc3Ryb25nIHtcclxuICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZjM3ODc3O1xyXG4gICAgICAgZm9udDogNjAwIDAuOXJlbS8wLjdweCBcImF2ZXJ0YVwiO1xyXG4gICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1jaGVjay5mb3JtLWNoZWNrLWlubGluZSB7XHJcbiAgICAgIC5mb3JtLWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XHJcbiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICAgICAgICBjb250ZW50OiBcIs6Rzr3Osc62zq7PhM63z4POt1wiICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzNzg3NyAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX211bHRpIHtcclxuICAgICAgcGFkZGluZzogMS41cmVtIDA7XHJcbiAgICAgIC5mb3JtLWNoZWNrLmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWdyb3VwIHtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbiAgICAgIH1cclxuICAgICAgIGlucHV0IHtcclxuICAgICAgICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZm9ybS1jaGVjay1pbmxpbmUge1xyXG4gICAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNvbnRyb2wge1xyXG4gICAgICBoZWlnaHQ6IGNhbGMoMy41ZW0gKyAuNzVyZW0gKyAycHgpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fbGluayB7XHJcbiAgICAgIGlucHV0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxufS8vICNjb250YWN0X2Zvcm0ucGFnZXNfY29udGVjdFxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gT0ZGRVJTIENPTlRBQ1QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6MTE5OXB4KSB7XHJcbiAgI2lmb3JtIHAge1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICB9XHJcblxyXG4gICNpZm9ybSBwIHN0cm9uZyB7XHJcbiAgICBmb250OiA2MDAgMS41cmVtLzRweCBcImF2ZXJ0YVwiO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNmMzc4Nzc7XHJcbiAgfVxyXG5cclxuICAjaWZvcm0gaW5wdXQge1xyXG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xyXG4gICAgd2lkdGg6IDQ5LjElO1xyXG4gIH1cclxuXHJcbiAgI2lmb3JtIGgzIHtcclxuICAgIHBhZGRpbmc6IDMwcHggMDtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpIHtcclxuICAjaWZvcm0gYnV0dG9uIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNkYTZiNmE7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggNTBweDtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgI29mZmVycy5vZmZlcnN4NiAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgIGhlaWdodDogMTcwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAjaWZvcm0gcCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIH1cclxuXHJcbiAgI2lmb3JtIGgzIHtcclxuICAgIHBhZGRpbmc6IDE1cHggMDtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIH1cclxuXHJcbiAgI2lmb3JtIGlucHV0IHtcclxuICAgICAgcGFkZGluZzogMTVweCAxNXB4O1xyXG4gICAgICB3aWR0aDogNDguOCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICB9XHJcblxyXG4gICNpZm9ybSAuZm9ybS1jb250cm9sIHtcclxuICAgIGhlaWdodDogY2FsYygyZW0gKyAuNzVyZW0gKyAycHgpICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAjaWZvcm0gYnV0dG9uIHtcclxuICAgIHBhZGRpbmc6IDEwcHggNTBweDtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICB9XHJcblxyXG4gICNpZm9ybSB7XHJcbiAgICBtYXJnaW4tdG9wOiA3cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHJlbTtcclxuICB9XHJcblxyXG4gICNvZmZlcnMub2ZmZXJzeDYgLnBhcnRuZXJzX2ltYWdlcyB7XHJcbiAgICBoZWlnaHQ6IDE4MHB4O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuICAjaWZvcm0ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLmN1c3RvbS1maWxlIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgfVxyXG5cclxuICAuZm9ybV9tdWx0aSB7XHJcbiAgICAuZm9ybS1jaGVjay1sYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNpZm9ybSBoMyB7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICB9XHJcblxyXG4gICNpZm9ybSBwIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICB9XHJcblxyXG4gICNpZm9ybSBwIHN0cm9uZyB7XHJcbiAgICBmb250OiA2MDAgMS4zcmVtLzRweCBcImF2ZXJ0YVwiO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICNmMzc4Nzc7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUuc2luZ2xlX3RleHQgaDIge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gIH1cclxuXHJcbiAgI3dob3dlYXJlLnNpbmdsZV90ZXh0IGgyIHN0cm9uZyB7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcbiAgI2lmb3JtIGlucHV0IHtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiAgfVxyXG5cclxuICAjaWZvcm0gaW5wdXQge1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgI2lmb3JtIC5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gIH1cclxuXHJcblxyXG4gIC5mb3JtX211bHRpIHtcclxuICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcclxuICAgICAgZm9udC1zaXplOiAwLjhyZW07O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNoZWNrLmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWdyb3VwIHtcclxuICAgICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgI29mZmVycy5vZmZlcnN4NiAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgIGhlaWdodDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUuc2luZ2xlX3RleHQgaDIge1xyXG4gICAgZm9udC1zaXplOiAxLjdyZW07XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUuc2luZ2xlX3RleHQgaDIgc3Ryb25nIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBDT05UQUNUIFJFU1BPTlNJVkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuIiwKCQkiXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFdIT1dFQVJFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiN3aG93ZWFyZSB7XHJcblxyXG4gIC5wcm9maWxlX2ltZyB7XHJcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX2pwZygncHJvZmlsZS9wcm9maWxlJyxuby1yZXBlYXQsY2VudGVyLGNvdmVyKTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMwcmVtO1xyXG4gIH1cclxuICAgIC5zaW5nbGVfdGV4dF9kZXNjcmlwdGlvbi5zaW5nbGVfdGV4dF9mdWxsX2Rlc2NyaXB0aW9uIHtcclxuICAgICAgaDMge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM1NTU7XHJcbiAgICAgICAgcGFkZGluZzogMzBweCA0MHB4O1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgI3dob3dlYXJlLnByb2ZpbGVwYWdlIHtcclxuICAgIHBhZGRpbmc6IDZyZW0gMCAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAjd2hvd2VhcmUuc2luZ2xlX3RleHQub3duZXJfbXVzdCB7XHJcbiAgICBwYWRkaW5nOiA2cmVtIDA7XHJcbiAgfVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFdIT1dFQVJFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFdIT1dFQVJFIFJFU1BPTlNJVkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6MTE5OXB4KSB7XHJcbiAgI3dob3dlYXJlIC5zaW5nbGVfdGV4dF9kZXNjcmlwdGlvbi5zaW5nbGVfdGV4dF9mdWxsX2Rlc2NyaXB0aW9uIGgzIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMjBweDtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgbWFyZ2luOiAyMHB4IDA7XHJcbiAgfVxyXG4gICN3aG93ZWFyZSAucHJvZmlsZV9pbWcge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjk5MXB4KSB7XHJcbiAgI3dob3dlYXJlIC5wcm9maWxlX2ltZyB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgI3dob3dlYXJlIC5zaW5nbGVfdGV4dF9kZXNjcmlwdGlvbi5zaW5nbGVfdGV4dF9mdWxsX2Rlc2NyaXB0aW9uIGgzIHtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NDIwcHgpIHtcclxuICAjd2hvd2VhcmUgLnNpbmdsZV90ZXh0X2Rlc2NyaXB0aW9uLnNpbmdsZV90ZXh0X2Z1bGxfZGVzY3JpcHRpb24gaDMge1xyXG4gICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIFdIT1dFQVJFIFJFU1BPTlNJVkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuIiwKCQkiXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNFUlZJQ0VTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiNib2xkX3NlcnZpY2VzIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvdHRvbTogLTNyZW07XHJcbiAgICBwYWRkaW5nOiAwcHggM3JlbTtcclxuXHJcbiAgICBzdHJvbmcge1xyXG4gICAgIGZvbnQtc2l6ZTogNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodGJsdWU7XHJcbiAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLnByZXZpZXdfc2VydmljZXMge1xyXG4gIC5zaW5nbGVfdGV4dF93cmFwcGVyIHtcclxuICAgIC5zaW5nbGVfdGV4dF9kZXNjcmlwdGlvbiB7XHJcbiAgICAgIHAge1xyXG4gICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5zZXJ2aWNlc19taW5pX2luZm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgICAgY29sb3I6ICM0OTQ5NDk7XHJcblxyXG4gICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogdW5zZXQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiN3aG93ZWFyZS5zaW5nbGVfdGV4dC5zZXJ2aWNlc190ZXh0IHtcclxuICAgIHBhZGRpbmc6IDZyZW0gMCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDMuNXJlbSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2V4dHJhX3NlcnZpY2VzIHtcclxuXHJcbiAgICBwYWRkaW5nOiA1cmVtIDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLm9wZW5fdGV4dCB7XHJcbiAgICAgIG1hcmdpbjogMS41cmVtIDA7XHJcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICAuY2xvc2VfdGV4dCB7XHJcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICAub3Blbl90ZXh0OmhvdmVyLCAuY2xvc2VfdGV4dDpob3ZlciB7XHJcbiAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmV4dHJhX3NlcnZpY2VfbGlzdCB7XHJcbiAgICAgIHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgICBpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgQGluY2x1ZGUgcmVzZXRfbGlzdCgpO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxuICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICBpIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2luZ2xlX3RleHRfZGVzY3JpcHRpb24ge1xyXG4gICAgICBtYXJnaW46IDI1cHggMDtcclxuICAgIH1cclxuXHJcbiAgICBoMiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgY29sb3I6ICM3MzczNzM7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcclxuXHJcbiAgICAgIHN1cCB7XHJcbiAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgIH1cclxuICAgICAgYiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICAgICNob3VzZV9lcXVpcG1lbnQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XHJcbiAgICAgICAgcGFkZGluZzogNXJlbSAwIDA7XHJcbiAgICAgICAgbWFyZ2luOiA1cmVtIDBweDtcclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMnB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaG9tZV9lcXVpcG1lbnRfYm94IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbSAwcmVtO1xyXG5cclxuICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG5cclxuICAgICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgICBjb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAjaG91c2VfZXF1aXBtZW50X3N3aXBlciB7XHJcblxyXG4gICAgICAgICYuc3dpcGVyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGhlaWdodDogMTIwcHg7XHJcblxyXG4gICAgICAgICAgLnN3aXBlci1zbGlkZSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAvKiBDZW50ZXIgc2xpZGUgdGV4dCB2ZXJ0aWNhbGx5ICovXHJcbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwO1xyXG4gICAgICAgICAgfSAvL3N3aXBlci1zbGlkZVxyXG5cclxuICAgICAgICAgIC5zd2lwZXJfaW1hZ2Uge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kX2ltYWdlX3dpdGhvdXRfdXJsKG5vLXJlcGVhdCxjZW50ZXIsY292ZXIsMTE1cHgpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgIC5zd2lwZXJfdGV4dCB7XHJcblxyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbTtcclxuXHJcbiAgICAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICAgICBjb2xvcjogJGxpZ2h0Ymx1ZTtcclxuICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbiAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB1bnNldDtcclxuICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxuICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgfSAvL3N3aXBlcl90ZXh0XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgLnN3aXBlci1idXR0b24tbmV4dCwgLnN3aXBlci1idXR0b24tcHJldiB7XHJcbiAgICAgICAgICAgICAvLyBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgIC8vIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3JlbTtcclxuICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICAgICAgICAgaGVpZ2h0OiA0OXB4O1xyXG4gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcclxuICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcclxuICAgICAgICAgICAgIEBpbmNsdWRlIHdoaXRlX2ZpbHRlcigpO1xyXG4gICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSAvL3N3aXBlci1jb250YWluZXJcclxuXHJcbiAgICAgIH0gLy8jaG9tZV9zd2lwZXJcclxuXHJcbiAgICAubGlzdF9jb2xvciB7XHJcbiAgICAgICBjb2xvcjogI2M2YzZjNjtcclxuICAgIH1cclxuXHJcbiAgICAub3Blbl90ZXh0LCAuY2xvc2VfdGV4dCB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgcGFkZGluZzogMC4zcmVtIDA7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmMzc4Nzc7XHJcbiAgICAgIG1hcmdpbjogLjVyZW0gMDtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICAub3Blbl90ZXh0OmhvdmVyLCAuY2xvc2VfdGV4dDpob3ZlciB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgY29sb3I6ICNmMzc4NzcgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZDogIzAwMDtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICAucmVhZG1vcmVfY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZV9ib3hfdGl0bGUge1xyXG4gICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcclxuICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHggIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmZ1bGxfc2VydmljZXNfd3JhcHBlciB7XHJcbiAgICAgIHBhZGRpbmc6IDNyZW0gMi41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5ib2xkX3NlcnZpY2VzX2JveCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZV9ib3hfdGl0bGUge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZV9ib3hfc3VidGl0bGUge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxLjZyZW07XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgcmlnaHQ6IDNyZW07XHJcbiAgICB9XHJcbiAgICAuc2VydmljZV9pbnZlcnRfYm94IHtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgcGFkZGluZzogMCAxcmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBTRVJWSUNFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4gIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNFUlZJQ0VTIFJFU1BPTlNJVkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuICAgICNleHRyYV9zZXJ2aWNlcyB7XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICB9XHJcblxyXG4gICAgIHNwYW4ge1xyXG4gICAgICAgZm9udC1zaXplOiAuOXJlbTtcclxuICAgICB9XHJcblxyXG4gICAgIC5leHRyYV9zZXJ2aWNlX2xpc3QgcCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZXh0cmFfc2VydmljZV9saXN0IGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgfVxyXG5cclxuICAgI2hvdXNlX2VxdWlwbWVudCB7XHJcbiAgICAgaDIge1xyXG4gICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgfVxyXG4gICAgIHAge1xyXG4gICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgfVxyXG5cclxuICAgfVxyXG5cclxuICAgLnNlcnZpY2VfYm94X3N1YnRpdGxlIHtcclxuICAgIG1hcmdpbi10b3A6IDEuNnJlbTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiB9XHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6OTkxcHgpIHtcclxuXHJcbiAgICAjZXh0cmFfc2VydmljZXMge1xyXG4gICAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgICNob3VzZV9lcXVpcG1lbnQge1xyXG4gICAgICBwYWRkaW5nOiA0cmVtIDAgMDtcclxuICAgICAgbWFyZ2luOiAwIDBweCA1cmVtO1xyXG5cclxuICAgICAgaDIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgfVxyXG4gICAgICAmIC5ob21lX2VxdWlwbWVudF9ib3ggIHtcclxuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMHJlbSAwO1xyXG4gICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI2hvdXNlX2VxdWlwbWVudF9zd2lwZXIuc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1uZXh0LCAjaG91c2VfZXF1aXBtZW50X3N3aXBlci5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgICB3aWR0aDogNDBweDtcclxuICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMThweDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZV9ib3hfdGl0bGUge1xyXG4gICAgICAgIGZsb2F0OiB1bnNldDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZV9ib3hfc3VidGl0bGUge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHJpZ2h0OiB1bnNldDtcclxuICAgIH1cclxuXHJcbiAgICAjYm9sZF9zZXJ2aWNlcyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICNleHRyYV9zZXJ2aWNlcyAuZXh0cmFfc2VydmljZV9saXN0IHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcbiAgICAjd2hvd2VhcmUuc2luZ2xlX3RleHQuc2VydmljZXNfdGV4dCB7XHJcbiAgICAgICAgcGFkZGluZzogM3JlbSAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDByZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAjZXh0cmFfc2VydmljZXMge1xyXG4gICAgICBwYWRkaW5nOiAzcmVtIDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgIGgyIHtcclxuICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAjaG91c2VfZXF1aXBtZW50IHtcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgfVxyXG4gICAgICAgLmhvbWVfZXF1aXBtZW50X2JveCBoMyB7XHJcbiAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgICAgICB9XHJcbiAgICAgICBwIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICNob3VzZV9lcXVpcG1lbnRfc3dpcGVyLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1idXR0b24tbmV4dCwgI2hvdXNlX2VxdWlwbWVudF9zd2lwZXIuc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcclxuICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTE1cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMHB4IDE1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICNob3VzZV9lcXVpcG1lbnQge1xyXG4gICAgICAgICAgbWFyZ2luOiAwcmVtO1xyXG4gICAgICAgICAgLmhvbWVfZXF1aXBtZW50X2JveCBoMyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgI2JvbGRfc2VydmljZXMgc3Ryb25nIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgI2JvbGRfc2VydmljZXMge1xyXG4gICAgICAgIHBhZGRpbmc6IDBweCAxcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZnVsbF9zZXJ2aWNlc193cmFwcGVyIHtcclxuICAgICAgICBwYWRkaW5nOiAzcmVtIDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICNleHRyYV9zZXJ2aWNlcyAuZXh0cmFfc2VydmljZV9saXN0IHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG4gICAgI3dob3dlYXJlLnNpbmdsZV90ZXh0LnNlcnZpY2VzX3RleHQge1xyXG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMCAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAjZXh0cmFfc2VydmljZXMgaDIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgfVxyXG4gICAgI29mZmVycy5vZmZlcnN4NiAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgICAgaGVpZ2h0OiAxMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBTRVJWSUNFUyBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiIsCgkJIlxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBPRkZFUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuI29mZmVycyB7XHJcbiAgcGFkZGluZzogNXJlbSAwO1xyXG5cclxuICAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmRfaW1hZ2Vfd2l0aG91dF91cmwobm8tcmVwZWF0LGNlbnRlcixjb3ZlciwyNTBweCk7XHJcbiAgfVxyXG5cclxuICAmLm9mZmVyc3g2IHtcclxuICAgIC5wYXJ0bmVyc19pbWFnZXMge1xyXG4gICAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYXJ0bmVyc19pbWFnZXMge1xyXG4gICAgICBoZWlnaHQ6IDE2NXB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgT0ZGRVJTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE9GRkVSUyBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG5cclxuICAjb2ZmZXJzIHtcclxuICAgICAgcGFkZGluZzogM3JlbSAwO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMi43cmVtO1xyXG4gIH1cclxuXHJcbiAgI29mZmVycyAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgICAgaGVpZ2h0OiAyMTVweDtcclxuICB9XHJcblxyXG4gICNwYXJ0bmVycy5zaW5nbGVfdGV4dCBwIHtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IHAgc3Ryb25nIHtcclxuICAgIGZvbnQ6IDYwMCAxLjdyZW0vNnB4IFwiYXZlcnRhXCI7XHJcbiAgfVxyXG5cclxuICAjb2ZmZXJzIHtcclxuXHJcbiAgICAmLm9mZmVyc3g2IHtcclxuICAgICAgLnBhcnRuZXJzX2ltYWdlcyB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMzVweDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjk5MXB4KSB7XHJcbiAgI29mZmVycyAucGFydG5lcnNfaW1hZ2VzIHtcclxuICAgICAgaGVpZ2h0OiAxMzBweDtcclxuICB9XHJcblxyXG4gICNwYXJ0bmVycyAucGFydG5lcnNfaW1hZ2VzIGltZyB7XHJcbiAgICB3aWR0aDogMTcwcHg7XHJcbiAgfVxyXG4gICNwYXJ0bmVycyAucGFydG5lcnNfaW1hZ2VzIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxNjBweDtcclxuICB9XHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuXHJcbiAgI3BhcnRuZXJzIC5wYXJ0bmVyc19pbWFnZXMgaW1nIHtcclxuICAgICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzIC5wYXJ0bmVyc19pbWFnZXMge1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IHAgc3Ryb25nIHtcclxuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjZjM3ODc3O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuICAjb2ZmZXJzIC5wYXJ0bmVyc19pbWFnZXMge1xyXG4gICAgICBoZWlnaHQ6IDE4MHB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IHAge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgfVxyXG5cclxuICAjcGFydG5lcnMuc2luZ2xlX3RleHQgcCBzdHJvbmcge1xyXG4gICAgZm9udDogNjAwIDEuNXJlbS81cHggXCJhdmVydGFcIjtcclxuICB9XHJcblxyXG4gICNwYXJ0bmVycyAucGFydG5lcnNfaW1hZ2VzIGltZyB7XHJcbiAgICB3aWR0aDogODBweDtcclxuICB9XHJcblxyXG4gICNwYXJ0bmVycyAucGFydG5lcnNfaW1hZ2VzIGEge1xyXG4gICAgcGFkZGluZzogMC41cmVtO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IHAgc3Ryb25nIHtcclxuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZjM3ODc3O1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzIHtcclxuICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICB9XHJcblxyXG4gICNvZmZlcnMge1xyXG4gICAgcGFkZGluZzogM3JlbSAwIDFyZW07XHJcbiAgfVxyXG5cclxuICAjcGFydG5lcnMge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IHAge1xyXG4gICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgfVxyXG4gICNwYXJ0bmVycy5zaW5nbGVfdGV4dCBwIHN0cm9uZyB7XHJcbiAgICBmb250OiA2MDAgMS4xcmVtLzVweCBcImF2ZXJ0YVwiO1xyXG4gIH1cclxuXHJcbiAgI3BhcnRuZXJzLnNpbmdsZV90ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVORCBPRkZFUlMgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gV0hPV0VBUkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuI3Rlc3RpbW9uaWFscyB7XHJcbiAgbWFyZ2luOiAxcmVtO1xyXG4gIC50ZXN0aW1vbmlhbHNfd3JhcHBlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuMnB4O1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4jaG9tZV90ZXN0aW1vbmlhbHMge1xyXG5cclxuICAmLnN3aXBlci1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDE1MHB4O1xyXG5cclxuICAgIC5zd2lwZXItc2xpZGUge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgLyogQ2VudGVyIHNsaWRlIHRleHQgdmVydGljYWxseSAqL1xyXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgNXJlbTtcclxuICAgIH0gLy9zd2lwZXItc2xpZGVcclxuXHJcbiAgICAuc3dpcGVyX2ltYWdlIHtcclxuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZF9pbWFnZV93aXRob3V0X3VybChuby1yZXBlYXQsY2VudGVyLGNvdmVyLDI1MHB4KTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgfVxyXG5cclxuICAgICAuc3dpcGVyX3RleHQge1xyXG5cclxuICAgICAgICBwYWRkaW5nOiAwIDNyZW07XHJcblxyXG4gICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgY29sb3I6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICB9XHJcblxyXG4gICAgICAgcCB7XHJcbiAgICAgICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xyXG4gICAgICAgICBmb250LXdlaWdodDogMjAwO1xyXG4gICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XHJcbiAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHVuc2V0O1xyXG4gICAgICAgICAgIGZvbnQtc2l6ZTogdW5zZXQ7XHJcbiAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICB9XHJcblxyXG4gICAgIH0gLy9zd2lwZXJfdGV4dFxyXG5cclxuXHJcblxyXG4gICAgIC5zd2lwZXItYnV0dG9uLW5leHQsIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgICAgLy8gbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgIGJvcmRlci1yYWRpdXM6IDNyZW07XHJcbiAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgIGhlaWdodDogNDlweDtcclxuICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTtcclxuICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcclxuICAgICAgIEBpbmNsdWRlIGJsYWNrX2ZpbHRlcigpO1xyXG4gICAgIH1cclxuXHJcbiAgfSAvL3N3aXBlci1jb250YWluZXJcclxuXHJcbn0gLy8jaG9tZV9zd2lwZXJcclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgV0hPV0VBUkUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gV0hPV0VBUkUgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuICAjaG9tZV90ZXN0aW1vbmlhbHMuc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyX2ltYWdlIHtcclxuICAgICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgI3Rlc3RpbW9uaWFscyB7XHJcbiAgICBwYWRkaW5nOiAzcmVtIDAgMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpIHtcclxuICAjaG9tZV90ZXN0aW1vbmlhbHMuc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyX2ltYWdlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIC5zd2lwZXJfdGV4dCB7XHJcbiAgICAgIHBhZGRpbmc6IDByZW07XHJcbiAgfVxyXG5cclxuICAjaG9tZV90ZXN0aW1vbmlhbHMuc3dpcGVyLWNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAjdGVzdGltb25pYWxzIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiB1bnNldDtcclxuICB9XHJcblxyXG4gICNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIC5zd2lwZXJfdGV4dCBzdHJvbmcge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgfVxyXG5cclxuICAjaG9tZV90ZXN0aW1vbmlhbHMuc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLXNsaWRlIHtcclxuICAgIHBhZGRpbmc6IDAgNHJlbTtcclxuICB9XHJcblxyXG4gICNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItYnV0dG9uLW5leHQsICNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgfVxyXG4gICNob21lX3Rlc3RpbW9uaWFscyAuc3dpcGVyLWJ1dHRvbi1uZXh0LCAjaG9tZV90ZXN0aW1vbmlhbHMgLnN3aXBlci1idXR0b24tcHJldiB7XHJcbiAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcbiAgI3Rlc3RpbW9uaWFscyBoMiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIH1cclxuICAjaG9tZV90ZXN0aW1vbmlhbHMuc3dpcGVyLWNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDMwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG4gICN0ZXN0aW1vbmlhbHMgaDIge1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcblxyXG4gICNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItc2xpZGUge1xyXG4gICAgcGFkZGluZzogMCAzcmVtO1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfdGVzdGltb25pYWxzLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1idXR0b24tbmV4dCwgI2hvbWVfdGVzdGltb25pYWxzLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1idXR0b24tcHJldiB7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIGhlaWdodDogMjVweDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4O1xyXG4gIH1cclxuXHJcbiAgI2hvbWVfdGVzdGltb25pYWxzLnN3aXBlci1jb250YWluZXIgLnN3aXBlcl90ZXh0IHAge1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbn1cclxuXHJcbiNob21lX3Rlc3RpbW9uaWFscy5zd2lwZXItY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDI1MHB4O1xyXG59XHJcblxyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgV0hPV0VBUkUgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gT1dORVIgTVVTVCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiN3aG93ZWFyZSB7XHJcbiAgJi5zaW5nbGVfdGV4dCB7XHJcbiAgICAmLm93bmVyX211c3Qge1xyXG4gICAgICAuc2luZ2xlX3RleHRfZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICYuc2luZ2xlX3RleHRfZnVsbF9kZXNjcmlwdGlvbiB7XHJcblxyXG4gICAgICAgICAgaDQge1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAgICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgICBjb2xvcjogIzZmNmY2ZjtcclxuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBoNSB7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG4gICAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRibHVlO1xyXG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkbGlnaHRibHVlKTtcclxuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFfZGVjb3JhdGlvbigkYmxhY2spO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9IC8vaDVcclxuXHJcbiAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXRfbGlzdCgpO1xyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuXHJcbiAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJGxpZ2h0Ymx1ZSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwuNHMsZWFzZS1vdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhX2RlY29yYXRpb24oJGJsYWNrKTtcclxuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsLjRzLGVhc2Utb3V0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9IC8vbGlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH0gLy8gc2luZ2xlX3RleHRcclxufSAvL3dob3dlYXJlXHJcblxyXG4jc2VydmljZXMge1xyXG4gICYuc2luZ2xlX3RleHQge1xyXG4gICAgJi5zZXJ2aWNlc190aXBzIHtcclxuXHJcbiAgICAgIGJhY2tncm91bmQ6ICM0NjQ2NDY7XHJcbiAgICAgIG1hcmdpbjogMjBweDtcclxuXHJcbiAgICAgIC5zaW5nbGVfdGV4dF93cmFwcGVyIHtcclxuICAgICAgICBwYWRkaW5nOiA0cmVtIDByZW07XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICAgICAgc3VwIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSAvL3N0cm9uZ1xyXG5cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdW5zZXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9IC8vbGlcclxuICAgICAgICB9IC8vdWxcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgT1dORVIgTVVTVCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE9XTkVSIE1VU1QgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjExOTlweCkge1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gICAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0LnNlcnZpY2VzX3RpcHMgLnNpbmdsZV90ZXh0X3dyYXBwZXIge1xyXG4gICAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0IHAge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0LnNlcnZpY2VzX3RpcHMgLnNpbmdsZV90ZXh0X3dyYXBwZXIgdWwgbGkgc3Ryb25nIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgICAjc2VydmljZXMuc2luZ2xlX3RleHQuc2VydmljZXNfdGlwcyAuc2luZ2xlX3RleHRfd3JhcHBlciB1bCBsaSBzdHJvbmcge1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6NTc1cHgpIHtcclxuXHJcbiAgICAjc2VydmljZXMge1xyXG4gICAgICAmLnNpbmdsZV90ZXh0IHtcclxuICAgICAgICBwIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zZXJ2aWNlc190aXBzIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgICAuc2luZ2xlX3RleHRfd3JhcHBlciB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0LnNlcnZpY2VzX3RpcHMgLnNpbmdsZV90ZXh0X3dyYXBwZXIge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgICNzZXJ2aWNlcy5zaW5nbGVfdGV4dC5zZXJ2aWNlc190aXBzIC5zaW5nbGVfdGV4dF93cmFwcGVyIHVsIGxpIHN0cm9uZyB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjQyMHB4KSB7XHJcblxyXG4gICAgI3NlcnZpY2VzLnNpbmdsZV90ZXh0LnNlcnZpY2VzX3RpcHMgLnNpbmdsZV90ZXh0X3dyYXBwZXIge1xyXG4gICAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRU5EIE9XTkVSIE1VU1QgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVNJREVOQ0UgTVVTVCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4gICAgI3Jlc2lkZW5jZV9mYWNpbGl0aWVzIHtcclxuXHJcbiAgICAgIC5yZXNpZGVuY2VfZmFjaWxpdGllc19hdHRlbnNpb24ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodGJsdWU7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMi41cmVtIDA7XHJcblxyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNnB4O1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbSA0cmVtO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAtN3JlbTtcclxuICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogLTJweCAxcHggN3B4IDBweCAjYTlhOWE5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcclxuXHJcbiAgICAgICAgICAvLyBzdXAge1xyXG4gICAgICAgICAgLy8gICBjb2xvcjogIzAwMDtcclxuICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNyZW07XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH0gLy9yZXNpZGVuY2VfZmFjaWxpdGllc1xyXG5cclxuICAgICNyZXNpZGVuY2VfZmFjaWxpdGllc19hY2NvcmRpb24ge1xyXG4gICAgICBwYWRkaW5nOiA1cmVtIDA7XHJcblxyXG4gICAgfSAvL3Jlc2lkZW5jZV9mYWNpbGl0aWVzX2FjY29yZGlvblxyXG5cclxuXHJcblxyXG5cclxuICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgUkVTSURFTkNFIE1VU1QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVNJREVOQ0UgTVVTVCBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6MTE5OXB4KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gICAgI3Jlc2lkZW5jZV9mYWNpbGl0aWVzIC5yZXNpZGVuY2VfZmFjaWxpdGllc19hdHRlbnNpb24gcCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICAjcmVzaWRlbmNlX2ZhY2lsaXRpZXMgLnJlc2lkZW5jZV9mYWNpbGl0aWVzX2F0dGVuc2lvbiB7XHJcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG4gICAgfVxyXG5cclxuICAgICNyZXNpZGVuY2VfZmFjaWxpdGllcyAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYXR0ZW5zaW9uIGgyIHtcclxuICAgICAgdG9wOiAtNC41cmVtO1xyXG4gICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gM3JlbTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAgICNyZXNpZGVuY2VfZmFjaWxpdGllcyAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYXR0ZW5zaW9uIGgyIHtcclxuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICAgICAgICB0b3A6IC02LjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcbiAgICAjcmVzaWRlbmNlX2ZhY2lsaXRpZXMgLnJlc2lkZW5jZV9mYWNpbGl0aWVzX2F0dGVuc2lvbiBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgICAgICAgdG9wOiAtNXJlbTtcclxuICAgICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07XHJcbiAgICB9XHJcblxyXG4gICAgI3Jlc2lkZW5jZV9mYWNpbGl0aWVzIC5yZXNpZGVuY2VfZmFjaWxpdGllc19hdHRlbnNpb24gcCB7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgfVxyXG5cclxuICB9XHJcblxyXG4gIEBtZWRpYShtYXgtd2lkdGg6NDIwcHgpIHtcclxuXHJcbiAgfVxyXG5cclxuICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgUkVTSURFTkNFIE1VU1QgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iLAoJCSJcclxuICAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYWNjb3JkaW9uIHtcclxuICAgICAgcGFkZGluZzogMHJlbSAwO1xyXG4gIH1cclxuXHJcbiAgLmFjY29yZGlvbiB7XHJcblxyXG4gICAgICBsaSBpIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICAgIC5hY2NvcmRpb24taXRlbSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xyXG5cclxuICAgICAgICAmX19oZWFkZXIge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogLjNzIGVhc2UtaW4tb3V0IGJhY2tncm91bmQtY29sb3I7XHJcblxyXG4gICAgICAgICAgaDUge1xyXG4gICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5vcGVuLWNsb3NlLWljb24ge1xyXG4gICAgICAgICAgICByaWdodDogMzBweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuICAgICAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICZfX2xpbmUtMSB7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9fbGluZS0yIHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6IC0xMHB4O1xyXG4gICAgICAgICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fdGV4dC1ibG9jayB7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY4Zjg7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZS1vdXQ7XHJcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHVuc2V0O1xyXG4gICAgICAgICAgICAvKiBwYWRkaW5nLXRvcDogMXJlbTsgKi9cclxuICAgICAgICAgICAgcGFkZGluZzogMHJlbSAxcmVtO1xyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAxcmVtIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVNJREVOQ0UgTVVTVCBSRVNQT05TSVZFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4gICAgQG1lZGlhKG1heC13aWR0aDoxMTk5cHgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhKG1heC13aWR0aDo5OTFweCkge1xyXG4gICAgICAuYWNjb3JkaW9uIC5hY2NvcmRpb24taXRlbV9faGVhZGVyIGg1IHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYWNjb3JkaW9uIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgICAgICNyZXNpZGVuY2VfZmFjaWxpdGllcyAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYXR0ZW5zaW9uIGgyIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICAgICAgdG9wOiAtNC44cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYWNjb3JkaW9uIC5hY2NvcmRpb24taXRlbV9fdGV4dC1ibG9jayBwIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgICB9XHJcbiAgICAgIC5hY2NvcmRpb24taXRlbV9fdGV4dC1ibG9jayB1bCBsaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICAgIH1cclxuICAgICAgLmFjY29yZGlvbiAuYWNjb3JkaW9uLWl0ZW1fX2hlYWRlciBoNSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hY2NvcmRpb24gLmFjY29yZGlvbi1pdGVtX190ZXh0LWJsb2NrIHVsIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOjU3NXB4KSB7XHJcbiAgICAgICNyZXNpZGVuY2VfZmFjaWxpdGllcyAucmVzaWRlbmNlX2ZhY2lsaXRpZXNfYXR0ZW5zaW9uIGgyIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgICAgICAgdG9wOiAtMy43cmVtO1xyXG4gICAgICAgICAgcGFkZGluZzogMC42cmVtIDAuNXJlbSAxcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhKG1heC13aWR0aDo0MjBweCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFTkQgUkVTSURFTkNFIE1VU1QgUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4iCgldLAoJIm5hbWVzIjogW10sCgkibWFwcGluZ3MiOiAiO0FBQUE7OzsrRUFHK0U7QUFFL0U7Ozs7Ozs7OzsrRUFTK0U7QUdaL0UsQUFBQSxDQUFDLEFBQUEsTUFBTSxDQUFDO0VBQ0osT0FBTyxFQUFFLElBQUk7Q0FDaEI7O0FBQ0QsQUFBQSxRQUFRLEFBQUEsTUFBTSxFQUFFLEtBQUssQUFBQSxNQUFNLENBQUE7RUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDaEI7O0FDTkQsdUVBQXVFO0FBS3ZFLFVBQVU7RUFDUixXQUFXLEVBQUMsUUFBUTtFQUNwQixXQUFXLEVBQUMsR0FBRztFQUNmLEdBQUcsRUFBQyxnREFBZ0QsQ0FBQyxjQUFjOzs7QUFFckUsVUFBVTtFQUNSLFdBQVcsRUFBQyxRQUFRO0VBQ3BCLFdBQVcsRUFBQyxHQUFHO0VBQ2YsR0FBRyxFQUFDLGtEQUFrRCxDQUFDLGNBQWM7OztBQUV2RSxVQUFVO0VBQUcsV0FBVyxFQUFDLFFBQVE7RUFDL0IsV0FBVyxFQUFDLEdBQUc7RUFDZixHQUFHLEVBQUMsK0NBQStDLENBQUMsY0FBYzs7O0FBRXBFLEFBQUEsQ0FBQyxDQUFDO0VBRUEsV0FBVyxFQUFFLGlCQUFpQjtDQUMvQjs7QUFFRCwyRUFBMkU7QUN4QjNFLHdFQUF3RTtBQUV4RSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RUFBSSxBQUFBLFVBQVUs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 */