/*============================================================================================= 
    Document   : Stylesheet
    Author     : Muhammad Ramdhani
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* global
----------------------------------------------------------------------------------------------*/
.after_clear:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

.before_clear:before {
  clear: both;
  display: block;
  content: " ";
}

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

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

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

.italic {
  font-style: italic;
}

.bold {
  font-weight: bold;
}

.regular {
  font-weight: lighter;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

.clear {
  clear: both;
}

.absolute-center {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

.border-radius17 {
  border-radius: 17px;
  -moz-border-radius: 17px;
  -webkit-border-radius: 17px;
  -o-border-radius: 17px;
}

.font-title-small {
  font-family: 'robotocondensed';
  font-size: 13px;
}

.font-text-small {
  font-family: 'robotoreguler';
  font-size: 12px;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -50px;
  margin-left: -50px;
}

.centered-bottom {
  position: absolute;
  bottom: 0%;
  left: 50%;
  margin-top: -50px;
  margin-left: -50px;
}

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

/* color global
----------------------------------------------------------------------------------------------*/
/* font global
----------------------------------------------------------------------------------------------*/
html {
  font-size: 16px;
}

body {
  line-height: 1.6;
  font-size: 16px;
  font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  overflow-x: hidden !important;
  color: #333;
}

@media (min-width: 768px) {
  .boxForm {
    margin: 0 auto;
    width: 600px !important;
  }
}

.boxForm {
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
}

.boxForm .input-group .input-group-addon {
  background-color: #fff;
  color: #d35400;
  border-color: #d35400;
  border-right: 0px !important;
  position: relative;
}

.boxForm .input-group .input-group-addon:after {
  content: '';
  position: absolute;
  right: 0;
  top: 10px;
  width: 1px;
  background-color: #d35400;
  height: 18px;
}

.boxForm .input-group.textarea {
  position: relative;
}

.boxForm .input-group.textarea .input-group-addon {
  position: relative;
  height: 24px;
  top: 0;
  position: relative;
  padding-right: 25px;
}

.boxForm .input-group.textarea .input-group-addon i {
  position: absolute;
  top: 10px;
  font-size: .9rem;
}

.boxForm .input-group .form-control {
  border-left: 0px solid #fff;
}

.boxForm .input-group .form-control::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: #d35400;
}

.boxForm .input-group .form-control::-moz-placeholder {
  /* Firefox 19+ */
  color: #d35400;
}

.boxForm .input-group .form-control:-ms-input-placeholder {
  /* IE 10+ */
  color: #d35400;
}

.boxForm .input-group .form-control:-moz-placeholder {
  /* Firefox 18- */
  color: #d35400;
}

.boxForm textarea.form-control {
  height: 120px !important;
  line-height: 24px;
}

.boxForm .form-control {
  border: 1px solid #d35400;
  box-shadow: none;
  font-size: 1rem;
  height: 40px;
  line-height: 40px;
  width: 100%;
  box-sizing: border-box;
}

.boxForm .form-control:focus {
  box-shadow: none;
}

.boxForm .radio-inline {
  padding: 0px;
}

.boxForm .radio-inline p {
  display: inline-block;
  padding-right: 20px;
}

.boxForm .radio-inline label {
  font-weight: normal;
  font-size: 1rem;
  font-weight: bold;
}

[type="radio"]:checked,
[type="radio"]:not(:checked) {
  position: absolute;
  left: -9999px;
}

[type="radio"]:checked + label,
[type="radio"]:not(:checked) + label {
  position: relative;
  padding-left: 28px;
  cursor: pointer;
  line-height: 20px;
  display: inline-block;
  color: #666;
}

[type="radio"]:checked + label:before,
[type="radio"]:not(:checked) + label:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 18px;
  height: 18px;
  border: 1px solid #ddd;
  border-radius: 100%;
  background: #fff;
}

[type="radio"]:checked + label:after,
[type="radio"]:not(:checked) + label:after {
  content: '';
  width: 12px;
  height: 12px;
  background: #d35400;
  position: absolute;
  top: 3px;
  left: 3px;
  border-radius: 100%;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

[type="radio"]:not(:checked) + label:after {
  opacity: 0;
  -webkit-transform: scale(0);
  transform: scale(0);
}

[type="radio"]:checked + label:after {
  opacity: 1;
  -webkit-transform: scale(1);
  transform: scale(1);
}

.btn {
  padding: .7rem 1rem;
}

.btn.btn-primary {
  background-color: #d35400;
  border-color: #d35400;
}

.btn.btn-primary.next {
  position: relative;
  padding-right: 1.5rem;
}

.btn.btn-primary.next:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: bold;
  font-size: .9rem;
  content: "\f054";
  position: absolute;
  right: .5rem;
  top: 50%;
  height: 24px;
  margin-top: -10px;
  color: #fff;
  transition: color 0.2s ease-in-out;
}

.btn.btn-primary:focus, .btn.btn-primary:active, .btn.btn-primary:hover {
  background-color: #b34800;
  border-color: #b34800;
}

select,
textarea,
input[type="email"]
input[type="number"],
input[type="password"],
input[type="text"] {
  border: 1px solid #ccc;
  border-radius: 3px;
}

select:active, select.active, select:focus,
textarea:active,
textarea.active,
textarea:focus,
input[type="email"]
input[type="number"]:active,
input[type="email"]
input[type="number"].active,
input[type="email"]
input[type="number"]:focus,
input[type="password"]:active,
input[type="password"].active,
input[type="password"]:focus,
input[type="text"]:active,
input[type="text"].active,
input[type="text"]:focus {
  outline: none;
  border-color: #d35400 !important;
}

input::focus {
  border-color: #d35400;
}

.section-main {
  position: relative;
  padding: 3rem 0;
}

.section-main .heading-with-link h1 {
  float: left;
}

.section-main .heading-with-link a {
  float: right;
  position: relative;
  top: 35px;
}

.section-main .heading-with-link a:nth-child(2) {
  margin-left: 10px;
}

.section-main .heading-with-link a.sort {
  padding-right: 20px;
}

.section-main .heading-with-link a.sort:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: bold;
  font-size: .9rem;
  content: "\f0dc";
  position: absolute;
  right: 0;
  top: 50%;
  height: 24px;
  margin-top: -10px;
  color: #d35400;
  transition: color 0.2s ease-in-out;
}

.section-main .heading-with-link a.next {
  padding-right: 20px;
}

.section-main .heading-with-link a.next:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: bold;
  font-size: .9rem;
  content: "\f054";
  position: absolute;
  right: 0;
  top: 50%;
  height: 24px;
  margin-top: -10px;
  color: #d35400;
  transition: color 0.2s ease-in-out;
}

.section-main .heading-with-link:after {
  content: '';
  clear: both;
  display: block;
}

.section-main h1 {
  text-align: center;
  margin-bottom: 4rem;
  position: relative;
  font-weight: 700;
}

.section-main h1:after {
  content: '';
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translate(-50%, 0%);
  width: 100px;
  height: 3px;
  background-color: #d35400;
}

.section-main h1.text-left:after {
  left: 0;
  display: none;
}

.section-main h1.text-left span {
  position: relative;
}

.section-main h1.text-left span:after {
  content: '';
  position: absolute;
  bottom: -15px;
  left: 0;
  width: 100px;
  height: 3px;
  background-color: #d35400;
}

.section-main.grey {
  background-color: #f3f3f3;
}

.box {
  border-radius: 8px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden;
  background: #fff;
  border: 1px solid #f3f3f3;
  display: block;
}

.box:hover {
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.1);
}

ul {
  margin: 0;
  padding: 0;
}

ul.inline li {
  display: inline-block;
  margin-right: 5px;
}

ul.inline li:last-child {
  margin-right: 0px;
}

ul.social li {
  margin-right: 15px;
}

ul.social li a {
  font-size: 1.5rem;
}

ul.social li a:hover {
  color: #fff;
}

ul li {
  list-style-type: none;
}

a {
  color: #d35400;
}

a.active, a:focus, a:active, a:hover {
  color: #d35400;
  font-weight: bold;
  text-decoration: none;
  outline: none;
}

a.btn.active, a.btn:focus, a.btn:active, a.btn:hover {
  font-weight: normal;
}

a.disabled {
  color: #ddd;
}

a.disabled:focus, a.disabled:active, a.disabled:hover {
  color: #ddd;
  font-weight: normal;
  text-decoration: none;
  outline: none;
}

a.disabled:before {
  color: #ddd !important;
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(6px);
    -ms-transform: translateY(6px);
    transform: translateY(6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(6px);
    transform: translateX(6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(6px);
    -ms-transform: translateX(6px);
    transform: translateX(6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-6px);
    -ms-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-6px);
    transform: translateX(-6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-6px);
    -ms-transform: translateX(-6px);
    transform: translateX(-6px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}

.delayp1 {
  animation-delay: 0.1s;
  -moz-animation-delay: 0.1s;
  -webkit-animation-delay: 0.1s;
  -o-animation-delay: 0.1s;
  transition-delay: 0.1s;
}

.delayp2 {
  animation-delay: 0.2s;
  -moz-animation-delay: 0.2s;
  -webkit-animation-delay: 0.2s;
  -o-animation-delay: 0.2s;
  transition-delay: 0.2s;
}

.delayp3 {
  animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  -webkit-animation-delay: 0.3s;
  -o-animation-delay: 0.3s;
  transition-delay: 0.3s;
}

.delayp4 {
  animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  -webkit-animation-delay: 0.4s;
  -o-animation-delay: 0.4s;
  transition-delay: 0.4s;
}

.delayp5 {
  animation-delay: 0.5s;
  -moz-animation-delay: 0.5s;
  -webkit-animation-delay: 0.5s;
  -o-animation-delay: 0.5s;
  transition-delay: 0.5s;
}

.delayp6 {
  animation-delay: 0.6s;
  -moz-animation-delay: 0.6s;
  -webkit-animation-delay: 0.6s;
  -o-animation-delay: 0.6s;
  transition-delay: 0.6s;
}

.delayp7 {
  animation-delay: 0.7s;
  -moz-animation-delay: 0.7s;
  -webkit-animation-delay: 0.7s;
  -o-animation-delay: 0.7s;
  transition-delay: 0.7s;
}

.delayp8 {
  animation-delay: 0.8s;
  -moz-animation-delay: 0.8s;
  -webkit-animation-delay: 0.8s;
  -o-animation-delay: 0.8s;
  transition-delay: 0.8s;
}

.delayp9 {
  animation-delay: 0.9s;
  -moz-animation-delay: 0.9s;
  -webkit-animation-delay: 0.9s;
  -o-animation-delay: 0.9s;
  transition-delay: 0.9s;
}

.delayp10 {
  animation-delay: 1s;
  -moz-animation-delay: 1s;
  -webkit-animation-delay: 1s;
  -o-animation-delay: 1s;
  transition-delay: 1s;
}

.delayp11 {
  animation-delay: 1.1s;
  -moz-animation-delay: 1.1s;
  -webkit-animation-delay: 1.1s;
  -o-animation-delay: 1.1s;
  transition-delay: 1.1s;
}

.delayp12 {
  animation-delay: 1.2s;
  -moz-animation-delay: 1.2s;
  -webkit-animation-delay: 1.2s;
  -o-animation-delay: 1.2s;
  transition-delay: 1.2s;
}

.delayp13 {
  animation-delay: 1.3s;
  -moz-animation-delay: 1.3s;
  -webkit-animation-delay: 1.3s;
  -o-animation-delay: 1.3s;
  transition-delay: 1.3s;
}

.delayp14 {
  animation-delay: 1.4s;
  -moz-animation-delay: 1.4s;
  -webkit-animation-delay: 1.4s;
  -o-animation-delay: 1.4s;
  transition-delay: 1.4s;
}

.delayp15 {
  animation-delay: 1.5s;
  -moz-animation-delay: 1.5s;
  -webkit-animation-delay: 1.5s;
  -o-animation-delay: 1.5s;
  transition-delay: 1.5s;
}

.delayp16 {
  animation-delay: 1.6s;
  -moz-animation-delay: 1.6s;
  -webkit-animation-delay: 1.6s;
  -o-animation-delay: 1.6s;
  transition-delay: 1.6s;
}

.delayp17 {
  animation-delay: 1.7s;
  -moz-animation-delay: 1.7s;
  -webkit-animation-delay: 1.7s;
  -o-animation-delay: 1.7s;
  transition-delay: 1.7s;
}

.delayp18 {
  animation-delay: 1.8s;
  -moz-animation-delay: 1.8s;
  -webkit-animation-delay: 1.8s;
  -o-animation-delay: 1.8s;
  transition-delay: 1.8s;
}

.delayp19 {
  animation-delay: 1.9s;
  -moz-animation-delay: 1.9s;
  -webkit-animation-delay: 1.9s;
  -o-animation-delay: 1.9s;
  transition-delay: 1.9s;
}

.delayp20 {
  animation-delay: 2s;
  -moz-animation-delay: 2s;
  -webkit-animation-delay: 2s;
  -o-animation-delay: 2s;
  transition-delay: 2s;
}

.vp-fadein, .vp-fadeinup, .vp-fadeinright, .vp-fadeindown, .vp-fadeinleft,
.vp-slideinup, .vp-slideinright, .vp-slideindown, .vp-slideinleft,
.vp-rotatein, .vp-rorateinupright, .vp-rotateinupleft, .vp-rotateindownright, .vp-rotateindownleft,
.vp-zoomin, .vp-zoominup, .vp-zoominright, .vp-zoomindown, .vp-zoominleft,
.vp-jackinthebox, .vp-rollin, .vp-rollout {
  opacity: 0;
}

.animated {
  opacity: 0;
}

.visible {
  opacity: 1;
}

header.boxHeader {
  height: 60px;
  width: 100%;
  position: fixed;
  padding-top: 20px;
  z-index: 3;
}

header.boxHeader.scroll {
  background-color: rgba(211, 84, 0, 0.5);
}

header.boxHeader .boxMenu {
  background: #fff;
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
  padding: 10px 10px;
  position: relative;
}

header.boxHeader .boxMenu:after {
  clear: both;
  content: '';
  display: block;
}

header.boxHeader .boxMenu .boxTopSearch {
  display: block;
  display: none;
  height: 60px;
  margin-top: 70px;
  position: relative;
  font-size: 1rem;
  padding: 1rem;
  width: 100%;
  background: #fff;
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
}

header.boxHeader .boxMenu .boxTopSearch input {
  width: 100%;
  background-color: transparent;
  color: #fff;
  background: rgba(211, 84, 0, 0.7);
  border-color: #d35400;
  padding: .3rem .8rem;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
}

header.boxHeader .boxMenu .boxTopSearch input::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: rgba(255, 255, 255, 0.9);
}

header.boxHeader .boxMenu .boxTopSearch input::-moz-placeholder {
  /* Firefox 19+ */
  color: rgba(255, 255, 255, 0.9);
}

header.boxHeader .boxMenu .boxTopSearch input:-ms-input-placeholder {
  /* IE 10+ */
  color: rgba(255, 255, 255, 0.9);
}

header.boxHeader .boxMenu .boxTopSearch input:-moz-placeholder {
  /* Firefox 18- */
  color: rgba(255, 255, 255, 0.9);
}

header.boxHeader .boxMenu .boxTopSearch:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
  font-size: 1rem;
  content: "\f002";
  position: absolute;
  right: 2.2rem;
  top: 50%;
  height: 24px;
  margin-top: -7px;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.2s ease-in-out;
}

header.boxHeader .boxMenu .top-bar {
  float: left;
}

header.boxHeader .boxMenu .top-bar .logo a {
  color: #333;
  position: relative;
}

header.boxHeader .boxMenu .top-bar .logo a:hover, header.boxHeader .boxMenu .top-bar .logo a:focus, header.boxHeader .boxMenu .top-bar .logo a:active {
  text-decoration: none;
  outline: none;
}

header.boxHeader .boxMenu .top-bar .logo a img {
  height: 60px;
  float: left;
}

header.boxHeader .boxMenu .top-bar .logo a .text {
  float: left;
  margin-left: 10px;
  margin-top: 3px;
  font-weight: 400;
}

header.boxHeader .boxMenu .top-bar .logo a .text div {
  font-size: 1.3rem;
  text-align: left;
}

header.boxHeader .boxMenu .top-bar .logo a .text div:last-child {
  font-size: .5rem;
}

header.boxHeader .boxMenu .boxNavbar {
  position: relative;
  float: right;
  width: 650px;
  text-align: center;
}

header.boxHeader .boxMenu .boxNavbar.boxNavbarMobile {
  display: none;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar {
  margin: 0px;
  padding: 0px;
  position: relative;
  top: 7px;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li {
  display: inline-block;
  padding: .5rem 1rem;
  border: 1px solid transparent;
  border-radius: 20px;
  position: relative;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.active, header.boxHeader .boxMenu .boxNavbar ul.navbar li:focus, header.boxHeader .boxMenu .boxNavbar ul.navbar li:active, header.boxHeader .boxMenu .boxNavbar ul.navbar li:hover {
  border-color: #d35400;
  background-color: #d35400;
  color: #fff;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.active a, header.boxHeader .boxMenu .boxNavbar ul.navbar li:focus a, header.boxHeader .boxMenu .boxNavbar ul.navbar li:active a, header.boxHeader .boxMenu .boxNavbar ul.navbar li:hover a {
  color: #fff;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li a {
  color: #333;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu {
  display: none;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu a:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: 600;
  font-size: 1.2rem;
  content: "\f0c9";
  position: absolute;
  right: 0;
  top: 50%;
  height: 24px;
  margin-top: -12px;
  color: #d35400;
  transition: color 0.2s ease-in-out;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu a.active:before {
  content: "\f00d";
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:active, header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:focus, header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:hover {
  border-color: transparent;
  background-color: transparent;
  color: #333;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:active a, header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:focus a, header.boxHeader .boxMenu .boxNavbar ul.navbar li.menu:hover a {
  color: #333;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.search a:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: 600;
  font-size: 1rem;
  content: "\f002";
  position: absolute;
  right: 0;
  top: 50%;
  height: 24px;
  margin-top: -12px;
  color: #333;
  transition: color 0.2s ease-in-out;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.search a.active:before {
  content: "\f00d";
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:active, header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:focus, header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:hover {
  border-color: transparent;
  background-color: transparent;
  color: #333;
}

header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:active a, header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:focus a, header.boxHeader .boxMenu .boxNavbar ul.navbar li.search:hover a {
  color: #333;
}

footer {
  padding: 2rem;
  background-color: #d35400;
  color: rgba(255, 255, 255, 0.9);
  font-size: .9rem;
}

footer .title {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

footer ul li a {
  color: #fff;
}

footer ul li a:hover {
  color: #fff;
}

footer .link {
  padding-left: 2rem;
}

footer .input-group input {
  border-color: #27ae60;
  box-shadow: none;
  height: 45px;
  padding: .7rem 12px;
}

footer .input-group input:focus {
  outline: none;
  border: 0px;
  box-shadow: 0 0 0 1px #d35400;
}

footer .input-group .input-group-btn button {
  background-color: #27ae60;
  color: #fff;
  border-color: #27ae60;
  padding: .7rem 1rem;
}

.boxSlider {
  height: 650px;
  position: relative;
}

.boxSlider.small {
  height: 450px;
}

.boxSlider.small .slider-item {
  height: 450px;
}

.boxSlider.xs-small {
  height: 350px;
}

.boxSlider.xs-small .slider-item {
  height: 350px;
}

.boxSlider.artikel .slick-dots {
  display: none !important;
}

.boxSlider.artikel .caption h1, .boxSlider.artikel .caption h3 {
  position: relative;
  color: rgba(255, 255, 255, 0.9);
}

.boxSlider.artikel .caption h1:after, .boxSlider.artikel .caption h3:after {
  content: '';
  position: absolute;
  bottom: -15px;
  left: 0;
  width: 100px;
  height: 5px;
  background-color: #d35400;
}

.boxSlider.artikel .caption .user {
  position: absolute;
  bottom: 0;
  vertical-align: middle;
  margin-bottom: 1rem;
}

.boxSlider.artikel .caption .user .img-user {
  display: inline-block;
  width: 40px;
  height: 40px;
  overflow: hidden;
  text-align: center;
  border-radius: 50%;
}

.boxSlider.artikel .caption .user .img-user img {
  width: 100%;
}

.boxSlider.artikel .caption .user .date,
.boxSlider.artikel .caption .user .name {
  display: inline-block;
  top: -15px;
  position: relative;
}

.boxSlider.artikel .caption .user .name {
  font-size: 1rem;
  left: 10px;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.boxSlider.artikel .caption .user .date {
  font-weight: 200;
  font-size: .7rem;
  color: rgba(255, 255, 255, 0.9);
  top: -17px;
  left: 20px;
}

.boxSlider .slider-item {
  height: 650px;
  background-size: cover;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 3;
  position: relative;
}

.boxSlider .slider-item .caption {
  position: absolute;
  z-index: 2;
  top: 0;
  height: 100%;
  width: 50%;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.boxSlider .slider-item .caption h1,
.boxSlider .slider-item .caption h3 {
  font-size: 2.5rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.4;
}

.boxSlider .slider-item:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.boxSlider .slick-dots {
  bottom: 40px;
  z-index: 2;
}

.boxSlider .slick-dots li {
  width: 30px;
}

.boxSlider .slick-dots li button {
  width: 30px;
}

.boxSlider .slick-dots li button:before {
  color: #d35400;
  content: '';
  height: 7px;
  width: 30px;
  border-radius: 3px;
  border: 1px solid #d35400;
  background-color: #d35400;
}

.slick-galery {
  position: relative;
}

.slick-galery.videos .slick-slide {
  height: 400px;
}

.slick-galery.videos .slick-slide a {
  width: 100%;
  height: 400px;
}

.slick-galery .slick-slide {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin: 0 10px;
}

.slick-galery .slick-slide a {
  display: block;
  position: relative;
  width: 100%;
}

.slick-galery .slick-slide a:hover .back-layer {
  opacity: 1;
  transition: .5s;
}

.slick-galery .slick-slide a .back-layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(211, 84, 0, 0.5);
  z-index: 2;
  color: #fff;
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding-left: 2rem;
  opacity: 0;
}

.slick-galery .slick-slide a .back-layer p {
  font-size: .9rem;
  line-height: 1.2;
}

.slick-galery .slick-slide a img {
  z-index: 1;
}

.boxSpotlight.profiles .boxSpotInner {
  background-color: #d35400;
  margin-bottom: 30px;
}

.boxSpotlight.profiles .boxSpotInner:focus, .boxSpotlight.profiles .boxSpotInner:hover {
  border-color: #d35400;
  cursor: pointer;
}

.boxSpotlight.profiles .boxSpotInner img {
  width: 100%;
}

.boxSpotlight.profiles .boxSpotInner .boxText {
  color: #fff;
}

.boxSpotlight.profiles .boxSpotInner .boxText .title {
  margin: 10px 10px 0px;
}

.boxSpotlight a {
  color: #333;
  transition: .5s;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden;
  background: #fff;
  border: 1px solid transparent;
  display: block;
}

.boxSpotlight a:hover {
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.05);
  border: 1px solid #f3f3f3;
  transition: .5s;
  font-weight: normal;
}

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

.boxSpotlight .boxSpotInner img {
  width: 150px;
}

.boxSpotlight .boxSpotInner .boxText {
  padding: 0 2rem;
}

.boxSpotlight .boxSpotInner .boxText .title {
  margin: 10px 10px;
  font-size: 1.5rem;
}

.boxSpotlight .boxSpotInner .boxText p {
  font-size: 1rem;
}

button.slick-prev.slick-arrow {
  left: 10px;
  z-index: 4;
  width: 60px;
  height: 60px;
}

button.slick-prev.slick-arrow:before {
  font-size: 1.7rem;
}

button.slick-next.slick-arrow {
  right: 10px;
  z-index: 4;
  width: 60px;
  height: 60px;
}

button.slick-next.slick-arrow:before {
  font-size: 1.7rem;
}

.boxKoleksi {
  position: relative;
}

.boxKoleksi .container {
  position: relative;
}

.boxKoleksi .box-search {
  padding: 1rem;
  position: relative;
}

.boxKoleksi .box-search input {
  width: 100%;
  position: relative;
  padding: .7rem 1.5rem;
  font-size: 1.1rem;
  -webkit-border-radius: 3rem;
  -moz-border-radius: 3rem;
  -ms-border-radius: 3rem;
  -o-border-radius: 3rem;
}

.boxKoleksi .box-search:active:before, .boxKoleksi .box-search:focus:active:before, .boxKoleksi .box-search:focus:before {
  color: #d35400 !important;
}

.boxKoleksi .box-search:before {
  z-index: 2;
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
  font-size: 1.2rem;
  content: "\f002";
  position: absolute;
  right: 2.2rem;
  top: 50%;
  height: 24px;
  margin-top: -12px;
  color: #b3b3b3;
  transition: color 0.2s ease-in-out;
}

.boxCalendar a {
  position: relative;
  cursor: pointer;
  display: block;
  color: #333;
  margin-bottom: 30px;
}

.boxCalendar a:focus, .boxCalendar a:hover {
  color: #333;
}

.boxCalendar a .agenda-item {
  display: block;
  position: relative;
}

.boxCalendar a .agenda-item:hover:after {
  right: 1rem;
  transition: .5s;
}

.boxCalendar a .agenda-item:after {
  font-family: "Font Awesome 5 Pro";
  font-weight: 200;
  font-size: 2rem;
  content: "\f054";
  position: absolute;
  right: 1.5rem;
  top: 30px;
  height: 24px;
  margin-top: -7px;
  color: #d35400;
  transition: .5s;
}

.boxCalendar a .agenda-item .ico_date {
  position: absolute;
  top: 15px;
  left: 10px;
  color: #d35400;
  opacity: .9;
}

.boxCalendar a .agenda-item .date {
  text-align: center;
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  padding: 0 2rem;
  position: relative;
  top: -20px;
  position: relative;
}

.boxCalendar a .agenda-item .date span:nth-child(1) {
  line-height: 35px;
  color: #d35400;
  font-weight: bold;
  font-size: 2rem;
  display: block;
}

.boxCalendar a .agenda-item .date span:nth-child(2) {
  color: #d35400;
  opacity: .9;
}

.boxCalendar a .agenda-item .date:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 2px;
  height: 100%;
  background: rgba(211, 84, 0, 0.7);
  opacity: .9;
}

.boxCalendar a .agenda-item .event-name {
  display: inline-block;
  padding-left: 1.2rem;
}

.boxCalendar a .agenda-item .event-name p {
  font-size: .9rem;
}

.boxGallery .gallery-box {
  margin: 0 auto;
}

.boxArticle .article-item {
  cursor: pointer;
  position: relative;
  margin-bottom: 30px;
}

.boxArticle .article-item:focus .img, .boxArticle .article-item.active .img, .boxArticle .article-item:hover .img {
  display: inherit;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 2;
  transition: 5s;
}

.boxArticle .article-item:focus .img:before, .boxArticle .article-item.active .img:before, .boxArticle .article-item:hover .img:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: rgba(211, 84, 0, 0.3);
}

.boxArticle .article-item:focus .boxText, .boxArticle .article-item.active .boxText, .boxArticle .article-item:hover .boxText {
  z-index: 2;
  color: rgba(255, 255, 255, 0.9);
}

.boxArticle .article-item:focus .boxText .user .img-user, .boxArticle .article-item.active .boxText .user .img-user, .boxArticle .article-item:hover .boxText .user .img-user {
  border: 2px solid #fff;
}

.boxArticle .article-item:focus .boxText .user .name, .boxArticle .article-item.active .boxText .user .name, .boxArticle .article-item:hover .boxText .user .name {
  color: rgba(255, 255, 255, 0.9);
}

.boxArticle .article-item:focus .boxText .user .date, .boxArticle .article-item.active .boxText .user .date, .boxArticle .article-item:hover .boxText .user .date {
  color: rgba(255, 255, 255, 0.9);
}

.boxArticle .article-item:focus .action .btn.btn-primary, .boxArticle .article-item.active .action .btn.btn-primary, .boxArticle .article-item:hover .action .btn.btn-primary {
  background-color: #fff;
  border-color: #fff;
  color: #d35400;
}

.boxArticle .article-item:focus .action .btn.btn-primary:before, .boxArticle .article-item.active .action .btn.btn-primary:before, .boxArticle .article-item:hover .action .btn.btn-primary:before {
  color: #d35400;
}

.boxArticle .article-item:focus .action .btn.btn-primary:hover, .boxArticle .article-item:focus .action .btn.btn-primary:focus, .boxArticle .article-item:focus .action .btn.btn-primary:active, .boxArticle .article-item.active .action .btn.btn-primary:hover, .boxArticle .article-item.active .action .btn.btn-primary:focus, .boxArticle .article-item.active .action .btn.btn-primary:active, .boxArticle .article-item:hover .action .btn.btn-primary:hover, .boxArticle .article-item:hover .action .btn.btn-primary:focus, .boxArticle .article-item:hover .action .btn.btn-primary:active {
  background-color: #d35400;
  border-color: #d35400;
  color: #fff;
}

.boxArticle .article-item:focus .action .btn.btn-primary:hover:before, .boxArticle .article-item:focus .action .btn.btn-primary:focus:before, .boxArticle .article-item:focus .action .btn.btn-primary:active:before, .boxArticle .article-item.active .action .btn.btn-primary:hover:before, .boxArticle .article-item.active .action .btn.btn-primary:focus:before, .boxArticle .article-item.active .action .btn.btn-primary:active:before, .boxArticle .article-item:hover .action .btn.btn-primary:hover:before, .boxArticle .article-item:hover .action .btn.btn-primary:focus:before, .boxArticle .article-item:hover .action .btn.btn-primary:active:before {
  color: #fff;
}

.boxArticle .article-item .img {
  display: none;
  transition: 5s;
}

.boxArticle .article-item .boxText {
  position: relative;
  padding: 1rem 1rem 2rem;
}

.boxArticle .article-item .boxText h3 {
  font-weight: bold;
  margin-bottom: 1.5rem;
}

.boxArticle .article-item .boxText .user {
  vertical-align: middle;
  margin-bottom: 1rem;
}

.boxArticle .article-item .boxText .user .img-user {
  display: inline-block;
  width: 40px;
  height: 40px;
  overflow: hidden;
  text-align: center;
  border-radius: 50%;
}

.boxArticle .article-item .boxText .user .img-user img {
  width: 100%;
}

.boxArticle .article-item .boxText .user .date,
.boxArticle .article-item .boxText .user .name {
  display: inline-block;
  top: -15px;
  position: relative;
}

.boxArticle .article-item .boxText .user .name {
  font-size: 1rem;
  left: 10px;
  text-transform: uppercase;
  font-weight: 600;
  color: #d35400;
}

.boxArticle .article-item .boxText .user .date {
  font-weight: 400;
  font-size: .7rem;
  color: #bdbdbd;
  top: -17px;
  left: 20px;
}

.boxArticle .article-item .boxText .desc {
  margin-bottom: 1.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.boxArticle.detail .article-item:focus .boxText, .boxArticle.detail .article-item.active .boxText, .boxArticle.detail .article-item:hover .boxText {
  color: #333;
}

.boxArticle.detail .article-item .boxText {
  padding: 1rem 1rem 1rem;
}

.boxArticle.detail .article-item .boxText .desc {
  padding-left: 30px;
  display: -webkit-box;
  -webkit-line-clamp: initial;
  -webkit-box-orient: vertical;
  overflow: auto;
  text-overflow: inherit;
}

.boxArticle.detail .article-item .boxText .desc p {
  margin-bottom: 1.5rem;
}

.boxArticle.detail .article-item .boxText .desc p:last-child {
  margin-bottom: 0px;
}

.boxArticle.detail .article-item .boxText .desc p:nth-child(1) {
  position: relative;
}

.boxArticle.detail .article-item .boxText .desc p:nth-child(1) .first-letter {
  position: absolute;
  top: -20px;
  left: -30px;
  font-weight: bold;
  text-transform: uppercase;
  color: #d35400;
  font-size: 3rem;
  line-height: 70px;
}

.boxArticle .boxShare {
  padding-left: 30px;
}

.boxArticle .boxShare ul li a {
  cursor: pointer;
  text-align: center;
  width: 40px;
  height: 40px;
  line-height: 40px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: 1px solid #d35400;
  display: block;
}

.boxArticle .boxShare ul li a:hover {
  background-color: #d35400;
  color: #fff;
}

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

.pagination > li > a, .pagination > li > span {
  color: #d35400;
}

.pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
  color: #d35400;
  background-color: #eee;
  border-color: #ddd;
}

.pagination > .active > a,
.pagination > .active > a:focus,
.pagination > .active > a:hover,
.pagination > .active > span,
.pagination > .active > span:focus,
.pagination > .active > span:hover {
  background-color: #d35400;
  border-color: #d35400;
}

@media (max-width: 767px) {
  header.boxHeader {
    padding-top: 0px;
  }
  header.boxHeader .container {
    padding: 0px;
  }
  header.boxHeader .container .boxMenu {
    border-radius: 0px;
    box-shadow: 0 2px 0px 0 rgba(0, 0, 0, 0.05);
  }
  header.boxHeader .container .boxMenu .boxTopSearch {
    margin-top: 40px;
  }
  header.boxHeader .container .boxMenu .top-bar .logo {
    padding-left: 0px;
  }
  header.boxHeader .container .boxMenu .top-bar .logo a img {
    height: 40px;
  }
  header.boxHeader .container .boxMenu .top-bar .logo a .text {
    display: none;
  }
  header.boxHeader .container .boxMenu .boxNavbar {
    display: none;
    position: fixed;
    top: 70px;
    right: 10px;
    background-color: #fff;
    width: 280px;
    border-radius: 6px;
    padding: 0rem 0 1rem;
    box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar {
    position: relative;
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar:before {
    content: ' ';
    position: absolute;
    top: -15px;
    right: 10px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid #fff;
    margin-left: 10px;
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar li {
    display: block;
    border-radius: 0px;
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar li.search {
    display: none;
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar li:hover, header.boxHeader .container .boxMenu .boxNavbar ul.navbar li:focus, header.boxHeader .container .boxMenu .boxNavbar ul.navbar li.active {
    border-color: #fff;
    background-color: #fff;
    color: #d35400;
  }
  header.boxHeader .container .boxMenu .boxNavbar ul.navbar li:hover a, header.boxHeader .container .boxMenu .boxNavbar ul.navbar li:focus a, header.boxHeader .container .boxMenu .boxNavbar ul.navbar li.active a {
    color: #d35400;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile {
    padding: 0rem 0 0rem;
    display: inherit;
    position: absolute;
    height: auto;
    top: 0;
    right: 0;
    width: 84px;
    box-shadow: none;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar {
    top: 0px;
    height: 60px;
    border: 0px;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar:before {
    display: none;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li {
    padding: .5rem 1.5rem;
    height: 100%;
    display: none;
    border-radius: 0px;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.search {
    padding: .5rem .5rem;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.search a:before {
    right: 0 !important;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.search, header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.menu {
    display: inline-block;
  }
  header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.search a:before, header.boxHeader .container .boxMenu .boxNavbarMobile ul.navbar li.menu a:before {
    right: 1.2rem;
    font-size: 1.1rem;
    margin-top: -15px;
  }
  .section-main {
    padding: 2rem 0;
  }
  .section-main h1 {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .boxSlider {
    height: 450px !important;
  }
  .boxSlider .slider-item {
    height: 450px !important;
  }
  .boxSlider .slider-item .caption {
    width: 90%;
  }
  .boxSlider .slider-item .caption h1, .boxSlider .slider-item .caption h3 {
    font-size: 1.7rem;
  }
  .boxSpotlight a {
    margin-bottom: 30px;
    border-radius: 8px;
    box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.05);
    overflow: hidden;
    background: #fff;
    border: 1px solid #f3f3f3;
    display: block;
  }
  .boxSpotlight a .boxSpotInner .boxText {
    padding: 0 0rem;
  }
  .boxCalendar .agenda-item .ico_date {
    top: 20px !important;
    left: 15px !important;
    font-size: 2rem !important;
  }
  .boxCalendar .agenda-item .date {
    display: block;
    width: 100%;
    top: 0px !important;
    padding: 1rem 2rem !important;
  }
  .boxCalendar .agenda-item .date:after {
    display: none;
  }
  .boxKoleksi h1 {
    margin-bottom: 1rem;
  }
  .boxKoleksi .box-search {
    padding-left: 0px;
    padding-right: 0px;
  }
  .boxKoleksi .box-search input {
    font-size: 1rem;
    padding: .2rem 1.5rem;
  }
  .boxKoleksi .box-search:before {
    font-size: 1rem;
    right: 1rem;
  }
  .boxArticle.detail .article-item .boxText {
    padding: 0rem 0rem 0rem;
  }
  footer {
    padding: 2rem 1rem;
    font-size: .8rem;
  }
  footer .col-sm-2.col-md-2,
  footer .col-sm-3.col-md-3,
  footer .col-sm-5.col-md-5 {
    padding-left: 0px;
  }
  footer .link {
    padding-left: 0px;
  }
  footer .col-sm-2.col-md-2,
  footer .col-sm-2.col-md-2.link,
  footer .col-sm-5.col-md-5 {
    border-bottom: 1px dashed rgba(255, 255, 255, 0.2);
    padding-bottom: 1rem;
  }
  footer .col-sm-3.col-md-3,
  footer .col-sm-2.col-md-2,
  footer .col-sm-2.col-md-2.link {
    padding-top: 1rem;
  }
  footer ul.social li a {
    font-size: 1rem;
  }
}

.boxTestimonial .slick-testimoni .testimoni-item {
  padding-top: 3rem;
  position: relative;
}

.boxTestimonial .slick-testimoni .testimoni-item.slick-slide.slick-center {
  opacity: 1;
}

.boxTestimonial .slick-testimoni .testimoni-item.slick-slide {
  opacity: .5;
}

.boxTestimonial .slick-testimoni .testimoni-item a {
  margin: 1rem;
  color: #333;
  position: relative;
}

.boxTestimonial .slick-testimoni .testimoni-item a:focus, .boxTestimonial .slick-testimoni .testimoni-item a:activem, .boxTestimonial .slick-testimoni .testimoni-item a:hover {
  font-weight: normal;
}

.boxTestimonial .slick-testimoni .testimoni-item a .boxText {
  padding: 2.5rem 1rem 1rem;
  text-align: center;
}

.boxTestimonial .slick-testimoni .testimoni-item a .boxText h3 {
  font-size: 1.2rem;
  color: #d35400;
}

.boxTestimonial .slick-testimoni .testimoni-item a .boxText p {
  font-size: 1rem;
  font-style: italic;
  font-size: 1rem;
  font-weight: 200;
}

.boxTestimonial .slick-testimoni .testimoni-item .img {
  width: 80px;
  height: 80px;
  line-height: 80px;
  background-size: cover;
  background-position: center center;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid #fff;
  position: absolute;
  z-index: 2;
  left: 50%;
  transform: translate(-50%, -50%);
  margin-top: 20px;
}

.boxTestimonial .slick-testimoni .testimoni-item .img img {
  width: 100%;
}

.boxTestimonial .slick-testimoni button.slick-prev.slick-arrow,
.boxTestimonial .slick-testimoni button.slick-next.slick-arrow {
  background-color: #d35400;
  border-radius: 50%;
  width: 40px;
  height: 40px;
}

.boxTestimonial .slick-testimoni button.slick-prev.slick-arrow:before,
.boxTestimonial .slick-testimoni button.slick-next.slick-arrow:before {
  font-family: "Font Awesome 5 Pro";
  font-weight: bold;
  font-size: .9rem;
  content: "\f061";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  transition: color 0.2s ease-in-out;
}

.boxTestimonial .slick-testimoni button.slick-prev.slick-arrow:before {
  content: '\f060';
}

.no-banner {
  padding: 8rem 0;
}

@media (max-width: 767px) {
  .no-banner {
    padding: 4rem 0;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsInNhc3MtbGliLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190aW50LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsImJvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsImJvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwiYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsImJvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsImJvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19zZWxlY3Rpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsImJvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsImJvdXJib24vYWRkb25zL19tYXJnaW4uc2NzcyIsImJvdXJib24vYWRkb25zL19wYWRkaW5nLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsImJvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsImJvdXJib24vYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcInNhc3MtbGliXCI7XHJcblxyXG5odG1se1xyXG5cdGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICBjb2xvcjogIzMzMztcclxufVxyXG5cclxuLy9HRU5FUkFMXHJcbkBtZWRpYShtaW4td2lkdGg6IDc2OHB4KXtcclxuXHQuYm94Rm9ybXtcclxuXHRcdG1hcmdpbjowIGF1dG87XHJcblx0XHR3aWR0aDogNjAwcHggIWltcG9ydGFudDtcclxuXHR9XHJcbn1cclxuLmJveEZvcm17XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xyXG5cdHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcblx0Ym94LXNpemluZzpib3JkZXItYm94O1xyXG4gICAgLmlucHV0LWdyb3Vwe1xyXG4gICAgICAgIC5pbnB1dC1ncm91cC1hZGRvbntcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgY29sb3I6ICNkMzU0MDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2QzNTQwMDtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO3Bvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMDtcclxuICAgICAgICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7YmFja2dyb3VuZC1jb2xvcjogI2QzNTQwMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnRleHRhcmVhe1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC5pbnB1dC1ncm91cC1hZGRvbntcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDt0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgaXtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMHB4O2ZvbnQtc2l6ZTogLjlyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmZvcm0tY29udHJvbHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDBweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cclxuICAgICAgICAgICAgICBjb2xvcjogI2QzNTQwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOSsgKi9cclxuICAgICAgICAgICAgICBjb2xvcjogI2QzNTQwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIElFIDEwKyAqL1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAjZDM1NDAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXHJcbiAgICAgICAgICAgICAgY29sb3I6ICNkMzU0MDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2x7XHJcbiAgICBcdGhlaWdodDogMTIwcHggIWltcG9ydGFudDtcclxuICAgIFx0bGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICB9XHJcbiAgICAuZm9ybS1jb250cm9se1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMzU0MDA7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07ICAgXHJcblx0ICAgIGhlaWdodDogNDBweDtsaW5lLWhlaWdodDogNDBweDtcclxuICAgIFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJhZGlvLWlubGluZXtcclxuXHQgICAgcGFkZGluZzogMHB4O1xyXG5cdCAgICBwe1xyXG5cdCAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdCAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuXHQgICAgfVxyXG5cdCAgICBsYWJlbHtcclxuXHQgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Zm9udC1zaXplOiAxcmVtO1xyXG5cdCAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0ICAgIH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuW3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkLFxyXG5bdHlwZT1cInJhZGlvXCJdOm5vdCg6Y2hlY2tlZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTk5OTlweDtcclxufVxyXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCxcclxuW3R5cGU9XCJyYWRpb1wiXTpub3QoOmNoZWNrZWQpICsgbGFiZWxcclxue1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb2xvcjogIzY2NjtcclxufVxyXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXHJcblt0eXBlPVwicmFkaW9cIl06bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMThweDtcclxuICAgIGhlaWdodDogMThweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxufVxyXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcclxuW3R5cGU9XCJyYWRpb1wiXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGJhY2tncm91bmQ6ICNkMzU0MDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDNweDtcclxuICAgIGxlZnQ6IDNweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG59XHJcblt0eXBlPVwicmFkaW9cIl06bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG59XHJcblt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG59XHJcbi5idG57XHJcbiAgICBwYWRkaW5nOiAuN3JlbSAxcmVtO1xyXG4gICAgJi5idG4tcHJpbWFyeXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDM1NDAwO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2QzNTQwMDtcclxuICAgICAgICAmLm5leHR7XHJcbiAgICAgICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQgIHotaW5kZXg6IDI7XHJcblx0XHQgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcclxuXHRcdCAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO2ZvbnQtc2l6ZTogLjlyZW07XHJcblx0XHQgICAgICBjb250ZW50OiBcIlxcZjA1NFwiO1xyXG5cdFx0ICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ICAgICAgcmlnaHQ6IC41cmVtO1xyXG5cdFx0ICAgICAgdG9wOiA1MCU7XHJcblx0XHQgICAgICBoZWlnaHQ6IDI0cHg7XHJcblx0XHQgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuXHRcdCAgICAgIGNvbG9yOiAjZmZmO1xyXG5cdFx0ICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluLW91dDtcclxuXHRcdCAgfVxyXG5cdFx0fVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUsXHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2IzNDgwMDtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYjM0ODAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5zZWxlY3QsXHJcbnRleHRhcmVhLFxyXG5pbnB1dFt0eXBlPVwiZW1haWxcIl1cclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG5pbnB1dFt0eXBlPVwidGV4dFwiXXtcclxuXHRib3JkZXI6MXB4IHNvbGlkICRjX2dyZXk7XHJcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xyXG5cclxuXHQmOmFjdGl2ZSxcclxuXHQmLmFjdGl2ZSxcclxuXHQmOmZvY3Vze291dGxpbmU6IG5vbmU7Ym9yZGVyLWNvbG9yOiAkY19wcmltYXJ5ICFpbXBvcnRhbnQ7XHJcblxyXG5cdH1cclxufVxyXG5pbnB1dDo6Zm9jdXN7XHJcblx0Ym9yZGVyLWNvbG9yOiAkY19wcmltYXJ5O1xyXG59XHJcbi5zZWN0aW9uLW1haW57XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO3BhZGRpbmc6IDNyZW0gMDtcclxuXHJcblx0LmhlYWRpbmctd2l0aC1saW5re1xyXG5cdFx0aDF7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0fVxyXG5cdFx0YXtcclxuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHRvcDogMzVweDtcclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDIpe1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCYuc29ydHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQgIHotaW5kZXg6IDI7XHJcblx0XHRcdCAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xyXG5cdFx0XHQgICAgICBmb250LXdlaWdodDogYm9sZDtmb250LXNpemU6IC45cmVtO1xyXG5cdFx0XHQgICAgICBjb250ZW50OiBcIlxcZjBkY1wiO1xyXG5cdFx0XHQgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdCAgICAgIHJpZ2h0OiAwO1xyXG5cdFx0XHQgICAgICB0b3A6IDUwJTtcclxuXHRcdFx0ICAgICAgaGVpZ2h0OiAyNHB4O1xyXG5cdFx0XHQgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuXHRcdFx0ICAgICAgY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHRcdCAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdCAgfVxyXG5cdFx0XHR9XHJcblx0XHRcdCYubmV4dHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQgIHotaW5kZXg6IDI7XHJcblx0XHRcdCAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xyXG5cdFx0XHQgICAgICBmb250LXdlaWdodDogYm9sZDtmb250LXNpemU6IC45cmVtO1xyXG5cdFx0XHQgICAgICBjb250ZW50OiBcIlxcZjA1NFwiO1xyXG5cdFx0XHQgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdCAgICAgIHJpZ2h0OiAwO1xyXG5cdFx0XHQgICAgICB0b3A6IDUwJTtcclxuXHRcdFx0ICAgICAgaGVpZ2h0OiAyNHB4O1xyXG5cdFx0XHQgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuXHRcdFx0ICAgICAgY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHRcdCAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdCAgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmOmFmdGVye1xyXG5cdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0Y2xlYXI6IGJvdGg7ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoMXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGJvdHRvbTogLTE1cHg7bGVmdDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDAlKTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O2hlaWdodDogM3B4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY19wcmltYXJ5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi50ZXh0LWxlZnR7XHJcbiAgICAgICAgXHQmOmFmdGVye2xlZnQ6IDA7ZGlzcGxheTogbm9uZTt9XHJcblxyXG4gICAgICAgIFx0c3BhbntcclxuICAgICAgICBcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIFx0XHQmOmFmdGVye1xyXG5cdFx0ICAgICAgICAgICAgY29udGVudDogJyc7cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ICAgICAgICAgICAgYm90dG9tOiAtMTVweDtsZWZ0OiAwO1xyXG5cdFx0ICAgICAgICAgICAgd2lkdGg6IDEwMHB4O2hlaWdodDogM3B4O1xyXG5cdFx0ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNfcHJpbWFyeTtcclxuXHRcdCAgICAgICAgfVxyXG4gICAgICAgIFx0fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHQmLmdyZXl7YmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzt9XHJcbn1cclxuLmJveCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDNweCA2cHggMCByZ2JhKDAsMCwwLDAuMDUpO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjNmM2YzO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgJjpob3ZlcntcclxuICAgIFx0Ym94LXNoYWRvdzogMCAzcHggNnB4IDAgcmdiYSgwLDAsMCwwLjEpO1xyXG4gICAgfVxyXG59XHJcbnVse1xyXG5cdG1hcmdpbjogMDtwYWRkaW5nOiAwO1xyXG5cclxuXHQmLmlubGluZXtcclxuXHRcdGxpe2Rpc3BsYXk6IGlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6IDVweDtcclxuXHJcblx0XHRcdCY6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6IDBweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuc29jaWFse1xyXG5cdFx0bGl7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuNXJlbTtcclxuXHRcdFx0XHQmOmhvdmVye2NvbG9yOiNmZmZ9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0bGl7bGlzdC1zdHlsZS10eXBlOiBub25lO31cclxufVxyXG5he1xyXG5cdGNvbG9yOiAkY19wcmltYXJ5O1xyXG5cclxuXHQmLmFjdGl2ZSxcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlLFxyXG5cdCY6aG92ZXJ7XHJcblx0XHRjb2xvcjogJGNfcHJpbWFyeTtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO291dGxpbmU6IG5vbmU7XHJcblx0fVxyXG5cclxuXHQmLmJ0bntcclxuXHRcdCYuYWN0aXZlLFxyXG5cdFx0Jjpmb2N1cyxcclxuXHRcdCY6YWN0aXZlLFxyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuZGlzYWJsZWR7XHJcblx0XHRjb2xvcjogI2RkZDtcclxuXHJcblx0XHQmOmZvY3VzLFxyXG5cdFx0JjphY3RpdmUsXHJcblx0XHQmOmhvdmVye1xyXG5cdFx0XHRjb2xvcjogI2RkZDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO291dGxpbmU6IG5vbmU7XHJcblx0XHR9XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0Y29sb3I6ICNkZGQgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLmltZy1mbHVpZHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxufVxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXAgezAlIHtvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsgfSAxMDAlIHtvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH0gQGtleWZyYW1lcyBmYWRlSW5VcCB7MCUge29wYWNpdHk6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7IH0gMTAwJSB7b3BhY2l0eTogMTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodCB7MCUge29wYWNpdHk6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDZweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2cHgpOyB9IDEwMCUge29wYWNpdHk6IDE7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfSBAa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHswJSB7b3BhY2l0eTogMDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfSAxMDAlIHtvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd24gezAlIHtvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpOyB9IDEwMCUge29wYWNpdHk6IDE7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfSBAa2V5ZnJhbWVzIGZhZGVJbkRvd24gezAlIHtvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpOyB9IDEwMCUge29wYWNpdHk6IDE7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdCB7MCUge29wYWNpdHk6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCk7IH0gMTAwJSB7b3BhY2l0eTogMTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9IEBrZXlmcmFtZXMgZmFkZUluTGVmdCB7MCUge29wYWNpdHk6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCk7IH0gMTAwJSB7b3BhY2l0eTogMTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XHJcblxyXG4vLyBEZWxheXNcclxuJGNsYXNzLWRlbGF5OiBkZWxheXA7XHJcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMjAgeyBcclxuICAuI3skY2xhc3MtZGVsYXl9I3skaX0ge1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwcyArICRpKjAuMTtcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwcyArICRpKjAuMTsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHMgKyAkaSowLjE7IFxyXG4gICAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwcyArICRpKjAuMTsgXHJcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcyArICRpKjAuMTsgXHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gVmlld3BvcnQgYW5pbWF0aW9uXHJcbi52cC1mYWRlaW4sIC52cC1mYWRlaW51cCwgLnZwLWZhZGVpbnJpZ2h0LCAudnAtZmFkZWluZG93biwgLnZwLWZhZGVpbmxlZnQsIFxyXG4udnAtc2xpZGVpbnVwLCAudnAtc2xpZGVpbnJpZ2h0LCAudnAtc2xpZGVpbmRvd24sIC52cC1zbGlkZWlubGVmdCxcclxuLnZwLXJvdGF0ZWluLCAudnAtcm9yYXRlaW51cHJpZ2h0LCAudnAtcm90YXRlaW51cGxlZnQsIC52cC1yb3RhdGVpbmRvd25yaWdodCwgLnZwLXJvdGF0ZWluZG93bmxlZnQsIFxyXG4udnAtem9vbWluLCAudnAtem9vbWludXAsIC52cC16b29taW5yaWdodCwgLnZwLXpvb21pbmRvd24sIC52cC16b29taW5sZWZ0LCBcclxuLnZwLWphY2tpbnRoZWJveCwgLnZwLXJvbGxpbiwgLnZwLXJvbGxvdXQge1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi8vIE1ha2Ugdmlld3BvcnQgYW5pbWF0aW9uIHdvcmtzXHJcbi5hbmltYXRlZCB7b3BhY2l0eTogMDt9XHJcblxyXG4vLyBBZGQgb3BhY2l0eSAxIG9uIHRvcCB1cCB2aXNpYmlsaXR5OiB2aXNpYmxlIGZvciBhbmltYXRpb25cclxuLnZpc2libGUge29wYWNpdHk6IDE7fVxyXG4vL0dFTkVSQUxcclxuXHJcbi8vIEhFQURFUlxyXG5oZWFkZXIuYm94SGVhZGVye1xyXG4gICAgaGVpZ2h0OiA2MHB4O3dpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO3BhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgei1pbmRleDogMztcclxuXHJcbiAgICAmLnNjcm9sbHtcclxuICAgIFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTEsIDg0LCAwLCAuNSk7XHJcbiAgICB9XHJcblxyXG5cdC5ib3hNZW51e1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cyw4cHgsIG1veiB3ZWJraXQgbXMgbyk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjA1KTtcclxuICAgIFx0cGFkZGluZzogMTBweCAxMHB4O1xyXG4gICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgXHQmOmFmdGVye1xyXG4gICAgXHRcdGNsZWFyOiBib3RoO2NvbnRlbnQ6ICcnO2Rpc3BsYXk6IGJsb2NrO1xyXG4gICAgXHR9XHJcblxyXG5cdFx0LmJveFRvcFNlYXJjaHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0aGVpZ2h0OiA2MHB4O21hcmdpbi10b3A6IDcwcHg7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtmb250LXNpemU6IDFyZW07XHJcblx0XHRcdHBhZGRpbmc6IDFyZW07XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLDhweCwgbW96IHdlYmtpdCBtcyBvKTtcclxuXHRcdFx0XHJcblx0XHRcdGlucHV0e1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdGNvbG9yOiAjZmZmO2JhY2tncm91bmQ6ICRjX3ByaW1hcnlfZ3JhZGllbnQ7XHJcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkY19wcmltYXJ5O1xyXG5cdFx0XHRcdHBhZGRpbmc6IC4zcmVtIC44cmVtO1xyXG5cdFx0XHRcdEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsMjBweCwgbW96IHdlYmtpdCBtcyBvKTtcclxuXHJcblx0XHRcdFx0Jjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cclxuXHRcdFx0XHQgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6Oi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE5KyAqL1xyXG5cdFx0XHRcdCAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJRSAxMCsgKi9cclxuXHRcdFx0XHQgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXHJcblx0XHRcdFx0ICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQgIHotaW5kZXg6IDI7XHJcblx0XHQgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcclxuXHRcdCAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7Zm9udC1zaXplOiAxcmVtO1xyXG5cdFx0ICAgICAgY29udGVudDogXCJcXGYwMDJcIjtcclxuXHRcdCAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdCAgICAgIHJpZ2h0OiAyLjJyZW07XHJcblx0XHQgICAgICB0b3A6IDUwJTtcclxuXHRcdCAgICAgIGhlaWdodDogMjRweDtcclxuXHRcdCAgICAgIG1hcmdpbi10b3A6IC03cHg7XHJcblx0XHQgICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjkpO1xyXG5cdFx0ICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluLW91dDtcclxuXHRcdCAgfVxyXG5cclxuXHRcdH1cclxuXHRcdC50b3AtYmFye1xyXG5cdCAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG5cdCAgICAgICAgLmxvZ297XHJcblx0ICAgICAgICAgICAgYXtcclxuXHQgICAgICAgICAgICBcdGNvbG9yOiAjMzMzO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdCAgICAgICAgICAgIFx0Jjpob3ZlcixcclxuXHQgICAgICAgICAgICBcdCY6Zm9jdXMsXHJcblx0ICAgICAgICAgICAgXHQmOmFjdGl2ZXtcclxuXHQgICAgICAgICAgICBcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdCAgICAgICAgICAgIFx0XHRvdXRsaW5lOiBub25lO1xyXG5cdCAgICAgICAgICAgIFx0fVxyXG5cdCAgICAgICAgICAgICAgICBpbWd7aGVpZ2h0OiA2MHB4O2Zsb2F0OiBsZWZ0O31cclxuXHQgICAgICAgICAgICAgICAgLnRleHR7XHJcblx0ICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDttYXJnaW4tbGVmdDogMTBweDtcclxuXHQgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcclxuXHQgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0ICAgICAgICAgICAgICAgICAgICBcclxuXHQgICAgICAgICAgICAgICAgICAgIGRpdntcclxuXHQgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZHtmb250LXNpemU6IC41cmVtO31cclxuXHJcblx0ICAgICAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0ICAgIH1cclxuXHQgICAgLmJveE5hdmJhcntcclxuXHRcdCAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQgICAgZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0ICAgIHdpZHRoOiA2NTBweDtcclxuXHRcdCAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHQgICAgICAgIFxyXG5cdFx0ICAgICYuYm94TmF2YmFyTW9iaWxle2Rpc3BsYXk6IG5vbmU7fVxyXG5cdFx0ICAgIHVsLm5hdmJhcntcclxuXHRcdCAgICAgICAgbWFyZ2luOiAwcHg7cGFkZGluZzogMHB4O1xyXG5cdFx0ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQgICAgICAgIHRvcDogN3B4O1xyXG5cdFx0ICAgICAgICBsaXsgICAgICAgICAgICBcclxuXHRcdCAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdCAgICAgICAgICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcblx0XHQgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdCAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcblx0XHQgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQgICAgICAgICAgICBcclxuXHRcdCAgICAgICAgICAgICYuYWN0aXZlLFxyXG5cdFx0ICAgICAgICAgICAgJjpmb2N1cyxcclxuXHRcdCAgICAgICAgICAgICY6YWN0aXZlLFxyXG5cdFx0ICAgICAgICAgICAgJjpob3ZlcntcclxuXHRcdCAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHQgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNfcHJpbWFyeTtcclxuXHRcdCAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuXHRcdCAgICAgICAgICAgICAgICBhe2NvbG9yOiAjZmZmO31cclxuXHRcdCAgICAgICAgICAgIH1cdFx0ICAgICAgICAgICAgXHJcblx0XHQgICAgICAgICAgICBhe1xyXG5cdFx0ICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xyXG5cdFx0ICAgICAgICAgICAgfVxyXG5cdFx0ICAgICAgICAgICAgJi5tZW51e1xyXG5cdFx0ICAgICAgICAgICAgXHRkaXNwbGF5OiBub25lO1xyXG5cdFx0ICAgICAgICAgICAgXHRhe1xyXG5cdFx0ICAgICAgICAgICAgXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHQgIHotaW5kZXg6IDI7XHJcblx0XHRcdFx0XHRcdCAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xyXG5cdFx0XHRcdFx0XHQgICAgICBmb250LXdlaWdodDogNjAwO1xyXG5cdFx0XHRcdFx0XHQgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuXHRcdFx0XHRcdFx0ICAgICAgY29udGVudDogXCJcXGYwYzlcIjtcclxuXHRcdFx0XHRcdFx0ICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHQgICAgICByaWdodDogMDtcclxuXHRcdFx0XHRcdFx0ICAgICAgdG9wOiA1MCU7XHJcblx0XHRcdFx0XHRcdCAgICAgIGhlaWdodDogMjRweDtcclxuXHRcdFx0XHRcdFx0ICAgICAgbWFyZ2luLXRvcDogLTEycHg7XHJcblx0XHRcdFx0XHRcdCAgICAgIGNvbG9yOiAkY19wcmltYXJ5O1xyXG5cdFx0XHRcdFx0XHQgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW4tb3V0O1x0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCAgfVxyXG5cdFx0XHRcdFx0XHQgICYuYWN0aXZle1xyXG5cdFx0XHRcdFx0XHRcdCY6YmVmb3Jle2NvbnRlbnQ6IFwiXFxmMDBkXCI7fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0ICAgICAgICAgICAgXHR9XHJcblxyXG5cclxuXHRcdCAgICAgICAgICAgIFx0JjphY3RpdmUsXHJcblx0XHRcdCAgICAgICAgICAgICY6Zm9jdXMsXHJcblx0XHRcdCAgICAgICAgICAgICY6aG92ZXJ7XHJcblx0XHRcdCAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHQgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdCAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcclxuXHRcdFx0ICAgICAgICAgICAgICAgIGF7XHJcblx0XHRcdCAgICAgICAgICAgICAgICBcdGNvbG9yOiAjMzMzO1xyXG5cdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0XHQgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgICAgICAmLnNlYXJjaHtcclxuXHRcdCAgICAgICAgICAgIFx0YXtcclxuXHRcdCAgICAgICAgICAgIFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0ICB6LWluZGV4OiAyO1xyXG5cdFx0XHRcdFx0XHQgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcclxuXHRcdFx0XHRcdFx0ICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHRcdFx0XHRcdFx0ICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG5cdFx0XHRcdFx0XHQgICAgICBjb250ZW50OiBcIlxcZjAwMlwiO1xyXG5cdFx0XHRcdFx0XHQgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdCAgICAgIHJpZ2h0OiAwO1xyXG5cdFx0XHRcdFx0XHQgICAgICB0b3A6IDUwJTtcclxuXHRcdFx0XHRcdFx0ICAgICAgaGVpZ2h0OiAyNHB4O1xyXG5cdFx0XHRcdFx0XHQgICAgICBtYXJnaW4tdG9wOiAtMTJweDtcclxuXHRcdFx0XHRcdFx0ICAgICAgY29sb3I6ICMzMzM7XHJcblx0XHRcdFx0XHRcdCAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0ICB9XHJcblx0XHRcdFx0XHRcdCAgJi5hY3RpdmV7XHJcblx0XHRcdFx0XHRcdFx0JjpiZWZvcmV7Y29udGVudDogXCJcXGYwMGRcIjt9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHQgICAgICAgICAgICBcdH1cclxuXHJcblxyXG5cdFx0ICAgICAgICAgICAgXHQmOmFjdGl2ZSxcclxuXHRcdFx0ICAgICAgICAgICAgJjpmb2N1cyxcclxuXHRcdFx0ICAgICAgICAgICAgJjpob3ZlcntcclxuXHRcdFx0ICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdCAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0ICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xyXG5cdFx0XHQgICAgICAgICAgICAgICAgYXtcclxuXHRcdFx0ICAgICAgICAgICAgICAgIFx0Y29sb3I6ICMzMzM7XHJcblx0XHRcdCAgICAgICAgICAgICAgICB9XHJcblx0XHRcdCAgICAgICAgICAgIH1cclxuXHRcdCAgICAgICAgICAgIH1cclxuXHRcdCAgICAgICAgfVxyXG5cdFx0ICAgIH1cclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuICAgIFxyXG59XHJcbi8vSEVBREVSXHJcblxyXG4vLyBGT09URVJcclxuZm9vdGVye1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjX3ByaW1hcnk7XHJcbiAgICBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOSk7XHJcbiAgICBmb250LXNpemU6IC45cmVtO1xyXG4gICAgLnRpdGxle2ZvbnQtc2l6ZTogMS4ycmVtO21hcmdpbi1ib3R0b206IDAuNXJlbTt9XHJcbiAgICB1bHtcclxuICAgICAgICBsaXtcclxuICAgICAgICAgICAgYXtjb2xvcjogI2ZmZjsgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVye2NvbG9yOiAjZmZmO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmxpbmt7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dC1ncm91cHtcclxuICAgICAgICBpbnB1dHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjdhZTYwO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IC43cmVtIDEycHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAmOmZvY3Vze1xyXG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMHB4O1xyXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRjX3ByaW1hcnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmlucHV0LWdyb3VwLWJ0bntcclxuICAgICAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojMjdhZTYwO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICMyN2FlNjA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuN3JlbSAxcmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8vIEZPT1RFUlxyXG5cclxuLy8gU0xJREVSXHJcbi5ib3hTbGlkZXJ7XHJcblx0aGVpZ2h0OiA2NTBweDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCYuc21hbGx7XHJcblx0XHRoZWlnaHQ6IDQ1MHB4O1xyXG5cdFx0LnNsaWRlci1pdGVte1xyXG5cdFx0XHRoZWlnaHQ6IDQ1MHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLnhzLXNtYWxse1xyXG5cdFx0aGVpZ2h0OiAzNTBweDtcclxuXHRcdC5zbGlkZXItaXRlbXtcclxuXHRcdFx0aGVpZ2h0OiAzNTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuYXJ0aWtlbHtcclxuXHRcdC5zbGljay1kb3Rze2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudDt9XHJcblx0XHQuY2FwdGlvbntcclxuXHRcdFx0aDEsaDN7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC45KTtcclxuXHJcblx0XHRcdFx0JjphZnRlcntcclxuXHRcdCAgICAgICAgICAgIGNvbnRlbnQ6ICcnO3Bvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdCAgICAgICAgICAgIGJvdHRvbTogLTE1cHg7bGVmdDogMDtcclxuXHRcdCAgICAgICAgICAgIHdpZHRoOiAxMDBweDtoZWlnaHQ6IDVweDtcclxuXHRcdCAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHQgICAgICAgIH1cclxuXHRcdFx0fVxyXG5cdFx0XHQudXNlcntcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0Ym90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgICAgICAgICAuaW1nLXVzZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O2hlaWdodDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1ne1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZGF0ZSxcclxuICAgICAgICAgICAgICAgIC5uYW1le2Rpc3BsYXk6IGlubGluZS1ibG9jazt0b3A6IC0xNXB4O3Bvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC5uYW1le2ZvbnQtc2l6ZTogMXJlbTtsZWZ0OiAxMHB4O3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuOSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZGF0ZXtmb250LXdlaWdodDogMjAwO2ZvbnQtc2l6ZTogLjdyZW07XHJcbiAgICAgICAgICAgICAgICBcdGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC45KTtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IC0xN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0XHJcblx0LnNsaWRlci1pdGVte1xyXG5cdFx0aGVpZ2h0OiA2NTBweDtcclxuXHQgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHQgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdCAgICAtbW96LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0ICAgIC1vLWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0ICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHQgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQgICAgei1pbmRleDogMztcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQgICAgXHJcblx0ICAgIC5jYXB0aW9ue1xyXG5cdCAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cdCAgICAgICAgei1pbmRleDogMjtcclxuXHQgICAgICAgIHRvcDogMDtcclxuXHQgICAgICAgIGhlaWdodDogMTAwJTtcclxuXHQgICAgICAgIHdpZHRoOiAzMCU7XHJcblx0ICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cdCAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0ICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdCAgICAgICAgXHJcblx0ICAgICAgICBoMSxcclxuXHQgICAgICAgIGgze2ZvbnQtc2l6ZTogMi41cmVtO2NvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC45KTtsaW5lLWhlaWdodDogMS40fVxyXG5cdCAgICB9XHJcblxyXG5cdCAgICAmOmJlZm9yZXtcclxuXHRcdFx0Y29udGVudDogJyc7cG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7dG9wOiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcclxuXHRcdFx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xyXG5cdFx0XHR6LWluZGV4OiAxO1xyXG5cdFx0fVxyXG5cdH1cdFxyXG5cdC5zbGljay1kb3Rze1xyXG4gICAgICAgIGJvdHRvbTogNDBweDsgICBcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG5cclxuXHJcbiAgICAgICAgbGl7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZXtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJ1dHRvbntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjX3ByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3cHg7d2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjX3ByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNfcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNsaWNrLWdhbGVyeXtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCYudmlkZW9ze1xyXG5cdFx0LnNsaWNrLXNsaWRle1xyXG5cdFx0XHQgICAgaGVpZ2h0OiA0MDBweDtcclxuXHRcdFx0XHQvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdC8vIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7O1xyXG5cdFx0XHRcdC8vIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tncm91bmQtc2l6ZSwgY292ZXIsIHdlYmtpdCBtb3MgbXMgbyk7XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7aGVpZ2h0OiA0MDBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHR9XHJcblx0LnNsaWNrLXNsaWRle1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcblx0XHRtYXJnaW46MCAxMHB4O1xyXG5cclxuXHRcdGF7XHRcdFx0XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHQuYmFjay1sYXllcntvcGFjaXR5OiAxO3RyYW5zaXRpb246LjVzO31cclxuXHRcdFx0fVxyXG5cdFx0XHQuYmFjay1sYXllcntcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0bGVmdDogMDt0b3A6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjExLCA4NCwgMCwgLjUpO1xyXG5cdFx0XHRcdHotaW5kZXg6IDI7Y29sb3I6ICNmZmY7XHJcblx0XHRcdFx0ZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLWxlZnQ6IDJyZW07XHJcblx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHJcblx0XHRcdFx0cHtmb250LXNpemU6IC45cmVtO2xpbmUtaGVpZ2h0OiAxLjI7fVxyXG5cdFx0XHR9XHJcblx0XHRcdGltZ3t6LWluZGV4OiAxO31cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLy8gU0xJREVSXHJcblxyXG4uYm94U3BvdGxpZ2h0e1xyXG4gICAgXHJcblxyXG4gICAgJi5wcm9maWxlc3tcclxuXHRcdC5ib3hTcG90SW5uZXJ7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG5cdFx0XHQmOmZvY3VzLFxyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJGNfcHJpbWFyeTtcclxuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdFx0aW1ne1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC5ib3hUZXh0e1x0XHRcdFx0XHJcblx0XHRcdFx0Y29sb3I6ICNmZmY7XHJcblxyXG5cdFx0XHRcdC50aXRsZXtcclxuXHRcdFx0XHRcdG1hcmdpbjoxMHB4IDEwcHggMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVx0XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGF7XHJcbiAgICBcdGNvbG9yOiAjMzMzO1xyXG5cdCAgICB0cmFuc2l0aW9uOi41cztcclxuICAgIFx0cGFkZGluZzogMXJlbTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDhweDtcclxuXHQgICAgYm94LXNoYWRvdzogMCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwLjA1KTtcclxuXHQgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuXHQgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0ICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgXHQmOmhvdmVye1xyXG5cdFx0ICAgIGJveC1zaGFkb3c6IDAgM3B4IDZweCAwIHJnYmEoMCwwLDAsMC4wNSk7XHJcblx0XHQgICAgYm9yZGVyOiAxcHggc29saWQgI2YzZjNmMztcclxuXHRcdCAgICB0cmFuc2l0aW9uOi41cztcclxuXHRcdCAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgXHR9XHJcbiAgICB9XHJcbiAgICAuYm94U3BvdElubmVye1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBpbWd7ICAgIFxyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3hUZXh0e1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07XHJcbiAgICAgICAgICAgIC50aXRsZXtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjoxMHB4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwe2ZvbnQtc2l6ZTogMXJlbTt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmJ1dHRvbi5zbGljay1wcmV2LnNsaWNrLWFycm93e1xyXG5cdGxlZnQ6IDEwcHg7XHJcbiAgICB6LWluZGV4OiA0O1xyXG4gICAgd2lkdGg6IDYwcHg7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAmOmJlZm9yZXtmb250LXNpemU6IDEuN3JlbTt9XHJcbn1cclxuYnV0dG9uLnNsaWNrLW5leHQuc2xpY2stYXJyb3d7XHJcblx0cmlnaHQ6IDEwcHg7XHJcbiAgICB6LWluZGV4OiA0O1xyXG4gICAgd2lkdGg6IDYwcHg7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAmOmJlZm9yZXtmb250LXNpemU6IDEuN3JlbTt9XHJcbn1cclxuXHJcbi5ib3hLb2xla3Npe1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQuY29udGFpbmVye1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHJcblx0XHJcblx0LmJveC1zZWFyY2h7XHJcblx0XHRwYWRkaW5nOiAxcmVtO3Bvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGlucHV0e1xyXG5cdFx0XHR3aWR0aDogMTAwJTtwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmc6IC43cmVtIDEuNXJlbTtmb250LXNpemU6IDEuMXJlbTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywzcmVtLHdlYmtpdCBtb3ogbXMgbyk7XHJcblx0XHR9XHJcblx0XHQmOmFjdGl2ZSxcclxuXHRcdCY6Zm9jdXM6YWN0aXZlLFxyXG5cdFx0Jjpmb2N1c3tcclxuXHRcdFx0JjpiZWZvcmV7Y29sb3I6ICRjX3ByaW1hcnkgIWltcG9ydGFudDt9XHJcblx0XHR9XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHQgIHotaW5kZXg6IDI7XHJcblx0ICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XHJcblx0ICAgICAgZm9udC13ZWlnaHQ6IDQwMDtmb250LXNpemU6IDEuMnJlbTtcclxuXHQgICAgICBjb250ZW50OiBcIlxcZjAwMlwiO1xyXG5cdCAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHQgICAgICByaWdodDogMi4ycmVtO1xyXG5cdCAgICAgIHRvcDogNTAlO1xyXG5cdCAgICAgIGhlaWdodDogMjRweDtcclxuXHQgICAgICBtYXJnaW4tdG9wOiAtMTJweDtcclxuXHQgICAgICBjb2xvcjogI2IzYjNiMztcclxuXHQgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xyXG5cdCAgfVxyXG5cdH1cclxufVxyXG5cclxuLy8gQUdFTkRBXHJcbi5ib3hDYWxlbmRhcntcclxuICAgIGF7XHJcbiAgICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIFx0Y3Vyc29yOiBwb2ludGVyO2Rpc3BsYXk6IGJsb2NrO1xyXG4gICAgXHRjb2xvcjogIzMzMzttYXJnaW4tYm90dG9tOiAzMHB4O1xyXG5cclxuXHRcdFxyXG5cdFx0Jjpmb2N1cyxcclxuICAgIFx0Jjpob3ZlcntcclxuXHRcdFx0Y29sb3I6ICMzMzM7XHJcbiAgICBcdH1cclxuICAgIFx0LmFnZW5kYS1pdGVte1xyXG5cdCAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblx0ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cclxuXHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHQmOmFmdGVye3JpZ2h0OiAxcmVtOyB0cmFuc2l0aW9uOiAuNXN9XHJcblx0XHRcdH1cclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHQgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcclxuXHRcdCAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7Zm9udC1zaXplOiAycmVtO1xyXG5cdFx0ICAgICAgY29udGVudDogXCJcXGYwNTRcIjtcclxuXHRcdCAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdCAgICAgIHJpZ2h0OiAxLjVyZW07XHJcblx0XHQgICAgICB0b3A6IDMwcHg7XHJcblx0XHQgICAgICBoZWlnaHQ6IDI0cHg7XHJcblx0XHQgICAgICBtYXJnaW4tdG9wOiAtN3B4O1xyXG5cdFx0ICAgICAgY29sb3I6ICRjX3ByaW1hcnk7XHJcblx0XHQgICAgICAgdHJhbnNpdGlvbjogLjVzXHJcblxyXG5cdFx0ICB9XHJcblx0ICAgICAgICAuaWNvX2RhdGV7XHJcblx0ICAgICAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHQgICAgICAgIFx0dG9wOiAxNXB4O2xlZnQ6IDEwcHg7XHJcblx0ICAgICAgICBcdGNvbG9yOiAkY19wcmltYXJ5O1xyXG4gICAgICAgICAgICBcdG9wYWNpdHk6IC45O1xyXG5cdCAgICAgICAgfVxyXG5cdCAgICAgICAgLmRhdGV7ICAgICAgICAgICAgXHJcblx0ICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdCAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHQgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdCAgICAgICAgICAgIGhlaWdodDogMTAwJTtwYWRkaW5nOiAwIDJyZW07XHJcblx0ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO3RvcDogLTIwcHg7XHJcblx0ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdCAgICAgICAgICAgIHNwYW57XHJcblx0ICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpe1xyXG5cdCAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7Y29sb3I6ICRjX3ByaW1hcnk7XHJcblx0ICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuXHQgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToycmVtO2Rpc3BsYXk6IGJsb2NrO1xyXG5cdCAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpe1xyXG5cdCAgICAgICAgICAgICAgICBcdGNvbG9yOiAkY19wcmltYXJ5O1xyXG5cdCAgICAgICAgICAgICAgICBcdG9wYWNpdHk6IC45O1xyXG5cdCAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHQgICAgICAgICAgICAmOmFmdGVye1xyXG5cdCAgICAgICAgICAgIFx0Y29udGVudDogJyc7cG9zaXRpb246IGFic29sdXRlO1xyXG5cdCAgICAgICAgICAgIFx0dG9wOjA7cmlnaHQ6IDA7XHJcblx0ICAgICAgICAgICAgXHR3aWR0aDogMnB4O2hlaWdodDogMTAwJTtcclxuXHQgICAgICAgICAgICBcdGJhY2tncm91bmQ6ICRjX3ByaW1hcnlfZ3JhZGllbnQ7XHJcblx0ICAgICAgICAgICAgXHRvcGFjaXR5OiAuOTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0ICAgICAgICAuZXZlbnQtbmFtZXtcclxuXHQgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0ICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjJyZW07XHJcblx0ICAgICAgICAgICAgXHJcblx0ICAgICAgICAgICAgcHtmb250LXNpemU6IC45cmVtO31cclxuXHQgICAgICAgIH1cclxuXHQgICAgfVxyXG5cdCAgICBcclxuICAgIH1cclxufVxyXG4vLyBBR0VOREFcclxuXHJcblxyXG4vLyBHQUxFUlkgSU1BR0VcclxuLmJveEdhbGxlcnl7XHJcblx0LmdhbGxlcnktYm94e1xyXG5cdFx0bWFyZ2luOjAgYXV0bztcclxuXHR9XHJcbn1cclxuLy8gR0FMTEVSWSBJTUFHRVxyXG5cclxuLy9BUlRJQ0xFXHJcbi5ib3hBcnRpY2xle1xyXG4gICAgLmFydGljbGUtaXRlbXtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJi5hY3RpdmUsXHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgLmltZ3tcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7bGVmdDogMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTt3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiA1cztcclxuXHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJzt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7dG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjExLCA4NCwgMCwgLjMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5ib3hUZXh0e1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOSk7XHJcbiAgICAgICAgICAgICAgICAudXNlcntcclxuICAgICAgICAgICAgICAgIFx0LmltZy11c2Vye1xyXG4gICAgICAgICAgICAgICAgXHRcdCBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICAgICAgXHR9XHJcbiAgICAgICAgICAgICAgICAgICAgLm5hbWV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjkpO31cclxuICAgICAgICAgICAgICAgICAgICAuZGF0ZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOSk7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5hY3Rpb257XHJcbiAgICAgICAgICAgIFx0LmJ0bi5idG4tcHJpbWFyeXtcclxuICAgICAgICAgICAgXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIFx0XHRib3JkZXItY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIFx0XHRjb2xvcjogJGNfcHJpbWFyeTtcclxuICAgICAgICAgICAgXHRcdCY6YmVmb3Jle2NvbG9yOiAkY19wcmltYXJ5O31cclxuXHJcbiAgICAgICAgICAgIFx0XHQmOmhvdmVyLFxyXG4gICAgICAgICAgICBcdFx0Jjpmb2N1cyxcclxuICAgICAgICAgICAgXHRcdCY6YWN0aXZle1xyXG4gICAgICAgICAgICBcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZDM1NDAwO1xyXG5cdFx0XHRcdCAgICAgICAgYm9yZGVyLWNvbG9yOiAjZDM1NDAwO1xyXG5cdFx0XHRcdCAgICAgICAgY29sb3I6ICNmZmY7XHJcblx0ICAgICAgICAgICAgXHRcdCY6YmVmb3Jle2NvbG9yOiAjZmZmO31cclxuXHQgICAgICAgIFx0XHR9XHJcbiAgICAgICAgICAgIFx0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pbWd7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYm94VGV4dHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcclxuICAgICAgICAgICAgaDN7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudXNlcntcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgLmltZy11c2Vye1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjt0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmRhdGUsXHJcbiAgICAgICAgICAgICAgICAubmFtZXtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7dG9wOiAtMTVweDtwb3NpdGlvbjogcmVsYXRpdmU7fVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAubmFtZXtmb250LXNpemU6IDFyZW07bGVmdDogMTBweDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7Y29sb3I6ICNkMzU0MDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZGF0ZXtmb250LXdlaWdodDogNDAwO2ZvbnQtc2l6ZTogLjdyZW07Y29sb3I6ICNiZGJkYmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTdweDtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmRlc2N7XHJcbiAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDQ7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmRldGFpbHtcclxuXHJcbiAgICBcdC5hcnRpY2xlLWl0ZW17XHJcbiAgICBcdFx0Jjpmb2N1cyxcclxuXHQgICAgICAgICYuYWN0aXZlLFxyXG5cdCAgICAgICAgJjpob3ZlcntcclxuXHQgICAgICAgICAgICAuYm94VGV4dHtcclxuXHQgICAgICAgICAgICAgICAgY29sb3I6IzMzMztcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0ICAgICAgICAuYm94VGV4dHtcclxuXHQgICAgICAgIFx0cGFkZGluZzogMXJlbSAxcmVtIDFyZW07XHJcblx0ICAgICAgICBcdC5kZXNje1xyXG5cdFx0ICAgICAgICBcdHBhZGRpbmctbGVmdDogMzBweDtcclxuXHRcdCAgICAgICAgXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuXHRcdFx0XHQgICAgLXdlYmtpdC1saW5lLWNsYW1wOiBpbml0aWFsO1xyXG5cdFx0XHRcdCAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG5cdFx0XHRcdCAgICBvdmVyZmxvdzogYXV0bztcclxuXHRcdFx0XHQgICAgdGV4dC1vdmVyZmxvdzogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgIFx0cHtcclxuICAgICAgICAgICAgICAgIFx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgXHRcdCY6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOiAwcHg7fVxyXG4gICAgICAgICAgICAgICAgXHRcdCY6bnRoLWNoaWxkKDEpe1xyXG4gICAgICAgICAgICAgICAgXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgIFx0XHRcdC5maXJzdC1sZXR0ZXJ7XHJcbiAgICAgICAgICAgICAgICBcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IC0yMHB4O1xyXG4gICAgICAgICAgICAgICAgXHRcdFx0XHRsZWZ0OiAtMzBweDtmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIFx0XHRcdFx0Y29sb3I6ICRjX3ByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICBcdFx0XHRcdGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICAgICAgICAgIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDcwcHg7XHJcbiAgICAgICAgICAgICAgICBcdFx0XHR9XHJcbiAgICAgICAgICAgICAgICBcdFx0fVxyXG4gICAgICAgICAgICAgICAgXHR9XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcbiAgICBcdH1cclxuICAgIH1cclxuICAgIC5ib3hTaGFyZXtcclxuICAgIFx0cGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgXHR1bHtcclxuICAgIFx0XHRsaXtcclxuICAgIFx0XHRcdGF7XHJcbiAgICBcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuICAgIFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgXHRcdFx0XHR3aWR0aDogNDBweDtoZWlnaHQ6IDQwcHg7bGluZS1oZWlnaHQ6IDQwcHg7XHJcblx0ICAgIFx0XHRcdEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsNTAlLCB3ZWJraXQgbW96IG1zIG8pO1xyXG4gICAgXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkY19wcmltYXJ5O1xyXG4gICAgXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICBcdFx0XHRcdCY6aG92ZXJ7XHJcbiAgICBcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNfcHJpbWFyeTtcclxuICAgIFx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcclxuICAgIFx0XHRcdFx0fVxyXG4gICAgXHRcdFx0fVxyXG4gICAgXHRcdH1cclxuICAgIFx0fVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy9BUlRJQ0xFXHJcblxyXG4vLyBQQUdJTkFUSU9OXHJcbi5ib3hOYXZpZ2F0aW9ue1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRwYWRkaW5nOiAycmVtIDAgMDtcclxufVxyXG4ucGFnaW5hdGlvbj5saT5hLCAucGFnaW5hdGlvbj5saT5zcGFue1xyXG5cdGNvbG9yOiAkY19wcmltYXJ5O1xyXG59XHJcbi5wYWdpbmF0aW9uPmxpPmE6Zm9jdXMsIC5wYWdpbmF0aW9uPmxpPmE6aG92ZXIsIC5wYWdpbmF0aW9uPmxpPnNwYW46Zm9jdXMsIC5wYWdpbmF0aW9uPmxpPnNwYW46aG92ZXIge1xyXG4gICAgY29sb3I6ICRjX3ByaW1hcnk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xyXG59XHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+YSwgXHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+YTpmb2N1cywgXHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+YTpob3ZlciwgXHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+c3BhbiwgXHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+c3Bhbjpmb2N1cywgXHJcbi5wYWdpbmF0aW9uPi5hY3RpdmU+c3Bhbjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY19wcmltYXJ5O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkY19wcmltYXJ5O1xyXG59XHJcbi8vUEFHSU5BVElPTlxyXG5cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpe1xyXG4gICAgaGVhZGVyLmJveEhlYWRlcnsgICBcclxuICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgICAgIC5jb250YWluZXJ7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICAgICAgLmJveE1lbnV7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAwcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG5cclxuICAgICAgICAgICAgICAgIC5ib3hUb3BTZWFyY2h7bWFyZ2luLXRvcDogNDBweDt9XHJcbiAgICAgICAgICAgICAgICAudG9wLWJhcntcclxuICAgICAgICAgICAgICAgICAgICAubG9nb3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHR7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYm94TmF2YmFye1xyXG4gICAgICAgICAgICAgICAgXHRkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDcwcHg7cmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjgwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6MHJlbSAwIDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNnB4IDAgcmdiYSgwLDAsMCwwLjIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVsLm5hdmJhcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnICc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5zZWFyY2h7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNkMzU0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNkMzU0MDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYm94TmF2YmFyTW9iaWxle1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6MHJlbSAwIDByZW07XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODRweDtcclxuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIHVsLm5hdmJhcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IC41cmVtIDEuNXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnNlYXJjaHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAuNXJlbSAuNXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnNlYXJjaCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYubWVudXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNlY3Rpb24tbWFpbntcclxuICAgIFx0cGFkZGluZzogMnJlbSAwO1xyXG4gICAgXHRoMXtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjVyZW07XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICBcdH1cclxuICAgIH1cclxuICAgIC5ib3hTbGlkZXJ7XHJcbiAgICAgICAgaGVpZ2h0OiA0NTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIC5zbGlkZXItaXRlbXtcclxuXHQgICAgICAgIGhlaWdodDogNDUwcHggIWltcG9ydGFudDtcclxuXHJcblx0ICAgICAgICAuY2FwdGlvbntcclxuXHQgICAgICAgIFx0d2lkdGg6IDkwJTtcclxuXHQgICAgICAgIFx0aDEsaDN7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDEuN3JlbTtcclxuXHQgICAgICAgIFx0fVxyXG5cdCAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYm94U3BvdGxpZ2h0e1xyXG4gICAgXHRhe1xyXG4gICAgXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBcdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xyXG5cdFx0ICAgIGJveC1zaGFkb3c6IDAgM3B4IDZweCAwIHJnYmEoMCwwLDAsMC4wNSk7XHJcblx0XHQgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdCAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdFx0ICAgIGJvcmRlcjogMXB4IHNvbGlkICNmM2YzZjM7XHJcblx0XHQgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0ICAgIC5ib3hTcG90SW5uZXIgLmJveFRleHR7XHJcblx0XHQgICAgXHRwYWRkaW5nOiAwIDByZW07XHJcblx0XHQgICAgfVxyXG4gICAgXHR9XHJcbiAgICB9IFxyXG4gICAgLmJveENhbGVuZGFye1xyXG4gICAgICAgIC5hZ2VuZGEtaXRlbXtcclxuICAgICAgICAgICAgLmljb19kYXRle1xyXG4gICAgICAgICAgICAgICAgdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZGF0ZXtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVye2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJveEtvbGVrc2l7XHJcbiAgICBcdGgxe1xyXG4gICAgXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBcdH1cclxuICAgIFx0LmJveC1zZWFyY2h7XHJcbiAgICBcdFx0cGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICBcdFx0cGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgXHRcdGlucHV0e1xyXG4gICAgXHRcdFx0Zm9udC1zaXplOiAxcmVtO1xyXG4gICAgXHRcdFx0cGFkZGluZzogLjJyZW0gMS41cmVtO1xyXG4gICAgXHRcdH1cclxuICAgIFx0XHQmOmJlZm9yZXtcclxuICAgIFx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIFx0XHRcdHJpZ2h0OiAxcmVtO1xyXG4gICAgXHRcdH1cclxuICAgIFx0fVxyXG4gICAgfVxyXG4gICAgLmJveEFydGljbGUuZGV0YWlse1xyXG4gICAgICAgIC5hcnRpY2xlLWl0ZW0ge1xyXG4gICAgICAgICAgICAuYm94VGV4dHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDByZW0gMHJlbSAwcmVtO1xyXG4gICAgICAgICAgICAgICAgLmRlc2N7XHJcbiAgICAgICAgICAgICAgICAgICAgcHtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9IFxyXG4gICAgZm9vdGVye1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIC5jb2wtc20tMi5jb2wtbWQtMixcclxuICAgICAgICAuY29sLXNtLTMuY29sLW1kLTMsXHJcbiAgICAgICAgLmNvbC1zbS01LmNvbC1tZC01e1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpbmt7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sLXNtLTIuY29sLW1kLTIsXHJcbiAgICAgICAgLmNvbC1zbS0yLmNvbC1tZC0yLmxpbmssXHJcbiAgICAgICAgLmNvbC1zbS01LmNvbC1tZC01e1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2wtc20tMy5jb2wtbWQtMyxcclxuICAgICAgICAuY29sLXNtLTIuY29sLW1kLTIsXHJcbiAgICAgICAgLmNvbC1zbS0yLmNvbC1tZC0yLmxpbmt7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICB1bC5zb2NpYWwgbGkgYXtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vIFRFU1RJTU9OSVxyXG4uYm94VGVzdGltb25pYWx7XHJcbiAgICAuc2xpY2stdGVzdGltb25pe1xyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIC50ZXN0aW1vbmktaXRlbXtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcclxuXHRcdFx0Ji5zbGljay1zbGlkZS5zbGljay1jZW50ZXIge1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5zbGljay1zbGlkZXtcclxuXHRcdFx0XHRvcGFjaXR5OiAuNTtcclxuXHRcdFx0fVxyXG4gICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpmb2N1cyxcclxuICAgICAgICAgICAgICAgICY6YWN0aXZlbSxcclxuICAgICAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLmJveFRleHR7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMi41cmVtIDFyZW0gMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgaDN7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO2NvbG9yOiAjZDM1NDAwOyAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBwe2ZvbnQtc2l6ZTogMXJlbTtmb250LXN0eWxlOiBpdGFsaWM7Zm9udC1zaXplOiAxcmVtO2ZvbnQtd2VpZ2h0OiAyMDA7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5pbWd7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogODBweDtoZWlnaHQ6IDgwcHg7bGluZS1oZWlnaHQ6IDgwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJ1dHRvbi5zbGljay1wcmV2LnNsaWNrLWFycm93LFxyXG4gICAgICAgIGJ1dHRvbi5zbGljay1uZXh0LnNsaWNrLWFycm93e1xyXG4gICAgICAgIFx0YmFja2dyb3VuZC1jb2xvcjogJGNfcHJpbWFyeTtcclxuICAgICAgICBcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBcdHdpZHRoOiA0MHB4O2hlaWdodDogNDBweDtcclxuXHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdCAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xyXG5cdFx0ICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Zm9udC1zaXplOiAuOXJlbTtcclxuXHRcdCAgICAgIGNvbnRlbnQ6IFwiXFxmMDYxXCI7XHJcblx0XHQgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQgICAgICBsZWZ0OiA1MCU7XHJcblx0XHQgICAgICB0b3A6IDUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7XHJcblx0XHQgICAgICBjb2xvcjogI2ZmZjtcclxuXHRcdCAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XHJcblx0XHQgIH0gICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBidXR0b24uc2xpY2stcHJldi5zbGljay1hcnJvd3tcclxuICAgICAgICBcdCY6YmVmb3Jle1xyXG4gICAgICAgIFx0XHRjb250ZW50OiAnXFxmMDYwJztcclxuICAgICAgICBcdH1cclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuLy8gVEVTVElNT05JXHJcblxyXG5cclxuLy8gQlVLVSBUQU1VXHJcbi5uby1iYW5uZXJ7XHJcblx0cGFkZGluZzo4cmVtIDA7XHJcbn1cclxuLmJveFRhbXV7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDc2N3B4KXtcclxuXHQubm8tYmFubmVye1xyXG5cdFx0cGFkZGluZzo0cmVtIDA7XHJcblx0fVxyXG59XHJcbi8vQlVLVSBUQU1VIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gXHJcbiAgICBEb2N1bWVudCAgIDogU3R5bGVzaGVldFxyXG4gICAgQXV0aG9yICAgICA6IE11aGFtbWFkIFJhbWRoYW5pXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyogaW1wb3J0IGJvdXJib24gLSBodHRwOi8vYm91cmJvbi5pby9kb2NzICovXHJcbkBpbXBvcnQgXCJib3VyYm9uL2JvdXJib25cIjtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhdHRyKXtcclxuICAgIHRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtby10cmFuc2l0aW9uOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gdHJhbnNmb3JtKCRhdHRyKXtcclxuICAgIHRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zZm9ybTogJGF0dHI7XHJcbn1cclxuQG1peGluIGJvcmRlclJhZGl1cygkYXR0cil7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1zLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW8tYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbn1cclxuQG1peGluIGJveFNoYWRvdygkYXR0cil7XHJcbiAgICBib3gtc2hhZG93OiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1vLWJveC1zaGFkb3c6ICRhdHRyXHJcbn1cclxuQG1peGluIGJveFNpemluZygkYXR0cil7XHJcbiAgICBib3gtc2l6aW5nOiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1vLWJveC1zaXppbmc6ICRhdHRyXHJcbn1cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XHJcbiAgICA6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgYm94LXNpemluZzogJGF0dHI7XHJcbn1cclxuLyogZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4uYWZ0ZXJfY2xlYXI6YWZ0ZXIsLndyYXBwZXI6YWZ0ZXIsc2VjdGlvbjphZnRlcntjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO2NvbnRlbnQ6XCIgXCJ9XHJcbi5iZWZvcmVfY2xlYXI6YmVmb3Jle2NsZWFyOmJvdGg7ZGlzcGxheTogYmxvY2s7Y29udGVudDpcIiBcIn1cclxuLmEtbGVmdHt0ZXh0LWFsaWduOiBsZWZ0fVxyXG4uYS1yaWdodHt0ZXh0LWFsaWduOiByaWdodH1cclxuLmEtY2VudGVye3RleHQtYWxpZ246IGNlbnRlcn1cclxuLml0YWxpYyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxyXG4uYm9sZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcbi5yZWd1bGFyIHsgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7IH1cclxuLmZsIHsgZmxvYXQ6IGxlZnQ7IH1cclxuLmZyIHsgZmxvYXQ6IHJpZ2h0OyB9XHJcbi5jbGVhciB7IGNsZWFyOiBib3RoOyB9XHJcbi5hYnNvbHV0ZS1jZW50ZXJ7cG9zaXRpb246IGFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6IDA7cmlnaHQ6IDA7bWFyZ2luOmF1dG87fVxyXG4uYm9yZGVyLXJhZGl1czE3e1xyXG4gICAgYm9yZGVyLXJhZGl1czoxN3B4O1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOjE3cHg7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MTdweDtcclxuICAgIC1vLWJvcmRlci1yYWRpdXM6MTdweDtcclxufVxyXG5cclxuLmZvbnQtdGl0bGUtc21hbGx7XHJcbiAgICBmb250LWZhbWlseTogJ3JvYm90b2NvbmRlbnNlZCc7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuLmZvbnQtdGV4dC1zbWFsbHtcclxuICAgIGZvbnQtZmFtaWx5OiAncm9ib3RvcmVndWxlcic7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuLmNlbnRlcmVkIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC01MHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAtNTBweDtcclxufVxyXG4uY2VudGVyZWQtYm90dG9tIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwJTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTUwcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IC01MHB4O1xyXG59XHJcblxyXG4udGV4dC1sZWZ0e3RleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDt9XHJcblxyXG5cclxuLyogY29sb3IgZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4kY19wcmltYXJ5OiAjZDM1NDAwO1xyXG4kY19wcmltYXJ5X2dyYWRpZW50OiByZ2JhKDIxMSwgODQsIDAsIC43KTtcclxuJGNfZ3JleTogI2NjYztcclxuXHJcbi8qIGZvbnQgZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4kZm9udF9yZWd1bGVyOiBcInJvYm90b3JlZ3VsZXJcIjtcclxuJGZvbnRfbWVkaXVtOiBcInJvYm90b21lZGl1bVwiO1xyXG4kZm9udF9ibGFjazogXCJyb2JvdG9ibGFja1wiO1xyXG4kZm9udF9pdGFsaWM6IFwicm9ib3RvaXRhbGljXCI7XHJcbiRmb250X2JvbGQ6IFwicm9ib3RvYm9sZFwiO1xyXG4kZm9udF9saWdodDogXCJyb2JvdG9saWdodFwiO1xyXG4kZm9udF9jOiBcInJvYm90b2NvbmRlbnNlZFwiO1xyXG4kZm9udF9jcmVndWxlcjogXCJyb2JvdG9jb25kZW5zZWRyZWd1bGVyXCI7XHJcbiRmb250X2Nib2xkOiBcInJvYm90b2JvbGRjb25kZW5zZWRcIjtcclxuJGZvbnRfY2xpZ2h0OiBcInJvYm90b2NvbmRlbnNlZGxpZ2h0XCI7XHJcbiRmb250X2Nib2xkaXRhbGljOiBcInJvYm90b2JvbGRjb25kZW5zZWRpdGFsaWNcIjtcclxuXHJcblxyXG4iLCIvLyBCb3VyYm9uIDQuMi43XHJcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXHJcbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxyXG4vLyBNSVQgTGljZW5zZVxyXG5cclxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcclxuXHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xyXG5cclxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XHJcblxyXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvY2FsY1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcclxuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcclxuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcclxuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcclxuXHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcclxuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcclxuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcclxuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xyXG5cclxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcclxuXHJcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xyXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xcclxuXHJcbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XHJcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcclxuICAkbGlzdDogKCk7XHJcblxyXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcclxuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xyXG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XHJcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXHJcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICBAaWYgbm90ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxyXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxyXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xyXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcclxuXHJcbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG5cclxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcclxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuXHJcbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcclxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxyXG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXHJcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cclxuXHJcbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcblxyXG4gICRiYXNlOiAkZW0tYmFzZTtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAkZGltZW5zaW9uOiAxMDtcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cclxuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcclxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXHJcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkbmV3LXByb3BzOiAoKTtcclxuXHJcbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcclxuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRuZXctcHJvcHM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXHJcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XHJcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkcHJvcDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xyXG4vLy8gICB9XHJcblxyXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcclxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xyXG4gIH1cclxufVxyXG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xyXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XHJcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcclxuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xyXG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xyXG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcclxuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xyXG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XHJcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XHJcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XHJcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcclxuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xyXG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XHJcbiRvY3RhdmU6ICAgICAgICAgICAyO1xyXG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xyXG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XHJcbiRtYWpvci10d2VsZnRoOiAgICAzO1xyXG4kZG91YmxlLW9jdGF2ZTogICAgNDtcclxuXHJcbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XHJcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xyXG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XHJcbiAgJHZhbHVlOiAkdjE7XHJcblxyXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxyXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xyXG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxyXG4gIH1cclxuICBAd2hpbGUgJHYyIDwgJHYxIHtcclxuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxyXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcclxuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcclxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcclxuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgIH1cclxuXHJcbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xyXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcclxuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XHJcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xyXG5cclxuICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xyXG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fVxyXG5cclxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xyXG4gICRvdXRwdXQ6IG51bGw7XHJcblxyXG4gICRhOiBudGgoJHZhbHMsIDEpO1xyXG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xyXG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xyXG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XHJcblxyXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cclxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XHJcbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxyXG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cclxuXHJcbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxyXG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cclxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XHJcbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxyXG5cclxuICBAcmV0dXJuICRvdXRwdXQ7XHJcbn1cclxuXHJcbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXHJcbi8vLyAgIFByZWZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXHJcbi8vLyAgIFN1ZmZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG5cclxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XHJcbiAgLy8gUHJvcGVydHkgTmFtZXNcclxuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG5cclxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcclxuXHJcbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XHJcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgI3skYWxsfTogJHZhbHM7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXHJcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcclxuXHJcbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgQHJldHVybiBmb250LXVybDtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gdXJsO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzLFxyXG4gICRmb250LXVybCkge1xyXG5cclxuICAkc3JjOiAoKTtcclxuXHJcbiAgJGZvcm1hdHMtbWFwOiAoXHJcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcclxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcclxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXHJcbiAgKTtcclxuXHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xyXG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcclxuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xyXG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRzcmM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XHJcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XHJcbiAgJG9mZnNldDogbnVsbDtcclxuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXHJcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb2Zmc2V0IHtcclxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xyXG5cclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcclxuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xyXG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xyXG5cclxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xyXG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xyXG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XHJcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkc3BlYzogbnVsbDtcclxuICAkZGVncmVlOiBudWxsO1xyXG4gICRzaWRlOiBudWxsO1xyXG4gICRjb3JuZXI6IG51bGw7XHJcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xyXG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcclxuICBAaWYgKCRsZW5ndGggPiAxKSB7XHJcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxyXG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xyXG5cclxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcclxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XHJcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcclxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XHJcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xyXG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xyXG4gICAgICAkZGVncmVlOiAkcG9zO1xyXG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXHJcbiAgICAgICRzcGVjOiAkcG9zO1xyXG4gICAgfVxyXG4gIH1cclxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XHJcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcclxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XHJcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xyXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xyXG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR2YWwtMzogbnVsbDtcclxuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XHJcblxyXG4gIEBpZiAkaGFzLXZhbC0zIHtcclxuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XHJcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcclxuICB9XHJcblxyXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xyXG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xyXG5cclxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxyXG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcclxuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xyXG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcclxuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XHJcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcclxuICAgIH1cclxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XHJcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAkZzE6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmXHJcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xyXG5cclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XHJcbiAgICAgICAgICAgICRnMjogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcclxuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxyXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xyXG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG5cclxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xyXG5cclxuICAvLyBBZGQgY29tbWFcclxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xyXG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xyXG5cclxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcclxuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcclxuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXHJcblxyXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJHByZS1zcGVjOiBudWxsO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xyXG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xyXG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xyXG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XHJcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2ZW5kb3Ige1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xyXG4gIH1cclxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcclxuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xyXG4gICAgICAkdmFsdWU6IG51bGw7XHJcbiAgICB9XHJcbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcclxuICAvLyBNYXRyaWNlc1xyXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcclxuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XHJcblxyXG4gIC8vIFJlc3VsdFxyXG4gICRyZXN1bHQ6IDA7XHJcbiAgJGRpdmlkZXI6IDA7XHJcbiAgJG1pbnVzOiBmYWxzZTtcclxuXHJcbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xyXG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xyXG4gICAgICAkbWludXM6IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XHJcbiAgICAgICRkaXZpZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XHJcblxyXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XHJcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcclxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcclxuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxufVxyXG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cclxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xyXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xyXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xyXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XHJcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXHJcbi8vIG5vdGF0aW9uLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcclxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcclxuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XHJcblxyXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XHJcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcclxuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcclxuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XHJcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxyXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XHJcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xyXG4gICRzcGVjLWltYWdlczogKCk7XHJcblxyXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcclxuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xyXG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xyXG5cclxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XHJcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XHJcbn1cclxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xyXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XHJcbiAgJHNwZWMtYm9yZGVyczogKCk7XHJcblxyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xyXG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcclxuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcclxuXHJcbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcclxuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcclxuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG59XHJcblxyXG4vL0V4YW1wbGVzOlxyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xyXG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XHJcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XHJcbn1cclxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xyXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcclxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xyXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcclxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8fCBhbGxcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcclxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcblxyXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XHJcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XHJcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XHJcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcclxuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XHJcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNwbGF5LWJveCB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXHJcbiAgZGlzcGxheTogYm94O1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xyXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcclxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XHJcbi8vIHNpbmdsZXxtdWx0aXBsZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cclxuXHJcbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxyXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxyXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxyXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcclxuLy8gZmxleCB8IGlubGluZS1mbGV4XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XHJcbiAgICAvLyAyMDA5XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gICAgZGlzcGxheTogYm94O1xyXG5cclxuICAgIC8vIDIwMTJcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XHJcblxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICB9IEBlbHNlIHtcclxuICAgIGRpc3BsYXk6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxyXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxyXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcclxuXHJcbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxyXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXHJcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxyXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gICRkaXJlY3Rpb246IG5vcm1hbDtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSByb3cge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXHJcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcclxuICAvLyBBbHQgdmFsdWVzXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXHJcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXHJcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcclxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcclxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcclxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcclxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXHJcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmFjZShcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkd2VpZ2h0OiBub3JtYWwsXHJcbiAgJHN0eWxlOiBub3JtYWwsXHJcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xyXG5cclxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xyXG5cclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcclxuXHJcbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICAgICAkZm9udC1mYW1pbHksXHJcbiAgICAgICRmaWxlLXBhdGgsXHJcbiAgICAgICRhc3NldC1waXBlbGluZSxcclxuICAgICAgJGZpbGUtZm9ybWF0cyxcclxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcclxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcclxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcclxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XHJcblxyXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcclxuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcclxuICB9XHJcbn1cclxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XHJcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcclxuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkcG9zLXNwZWM6IG51bGw7XHJcbiAgJHBvcy1kZWdyZWU6IG51bGw7XHJcblxyXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxyXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcclxuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XHJcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xyXG4gICAgJHBvczogbnVsbDtcclxuICB9XHJcblxyXG4gIEBpZiAkcG9zIHtcclxuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcclxuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XHJcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xyXG5cclxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xyXG59XHJcbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPGxlbmd0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xyXG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcclxuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xyXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG5cclxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XHJcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcclxuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xyXG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcclxuXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xyXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xyXG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcclxuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xyXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xyXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xyXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XHJcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XHJcbn1cclxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XHJcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcclxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXHJcbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcclxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XHJcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcclxuICAkd2Via2l0OiAoKTtcclxuICAkbW96OiAoKTtcclxuICAkc3BlYzogKCk7XHJcblxyXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxyXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcclxuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XHJcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MzogKCk7XHJcblxyXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcclxuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcclxuXHJcbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcclxuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XHJcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xyXG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xyXG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5YztcclxuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcclxuXHJcbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxyXG5cclxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcclxuXHJcbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGJ1dHRvbixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcclxuLy8vICAgYnV0dG9uOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxyXG5cclxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcclxuXHJcbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XHJcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xyXG5cclxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XHJcbi8vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxyXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XHJcblxyXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XHJcblxyXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcclxuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXHJcblxyXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAxMDElO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gIEBpZiAkaGVpZ2h0IHtcclxuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYG1hcmdpbmBcclxuXHJcbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xyXG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXHJcblxyXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cclxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cclxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBsZWZ0OiAxMGVtO1xyXG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8vICAgICB0b3A6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcclxuXHJcbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xyXG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XHJcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcclxuXHJcbiAgJG9mZnNldHM6IChcclxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXHJcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxyXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcclxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcclxuICApO1xyXG5cclxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG5cclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcclxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcclxuLy8vICAgVmFsdWUgdG8gdXNlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcclxuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXHJcblxyXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcclxuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XHJcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XHJcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlICB7XHJcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcclxufVxyXG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGhpZHBpIHtcclxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcclxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cclxuLy8vXHJcbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiAyZW07XHJcbi8vLyAgICAgaGVpZ2h0OiAyZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IGF1dG87XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XHJcblxyXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcclxuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xyXG4gICRoZWlnaHQ6ICR3aWR0aDtcclxuXHJcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XHJcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuLy8vICAgdGV4dGFyZWEge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxyXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXHJcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxyXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxyXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcclxuXHJcbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcclxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcclxuLy8vXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXHJcbi8vL1xyXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXHJcblxyXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xyXG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xyXG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xyXG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xyXG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xyXG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xyXG5cclxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuXHJcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XHJcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XHJcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XHJcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XHJcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XHJcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xyXG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xyXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuXHJcbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xyXG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xyXG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxyXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xyXG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xyXG4gIHdvcmQtd3JhcDogJHdyYXA7XHJcblxyXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9IEBlbHNlIHtcclxuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXHJcblxyXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XHJcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICB9XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XHJcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sb3JlZCBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaW1wbGUgQnV0dG9uXHJcbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2hpbnkgQnV0dG9uXHJcbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xyXG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcclxuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xyXG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcclxuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcclxuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcclxuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xyXG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUGlsbCBCdXR0b25cclxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcclxuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xyXG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxhdCBCdXR0b25cclxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3JkZXI6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGdyaWRcclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcclxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGd1dHRlclxyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XHJcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xyXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcclxufVxyXG4iXSwibWFwcGluZ3MiOiJBQ0FBOzs7Z0dBR2dHO0FBRWhHLDZDQUE2QztBQWlEN0M7Z0dBQ2dHO0FBQ2hHLEFBQVksWUFBQSxBQUFBLE1BQU0sRUFBQyxBQUFRLFFBQUEsQUFBQSxNQUFNLEVBQUMsQUFB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W119 */
