@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
  v2.0 | 20110126
  License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
button,
video {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  color: #091741;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
  font-family: "Inria";
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  text-decoration: none;
}

button {
  background-color: transparent;
  border: none;
  line-height: 1.6em;
  margin: 0;
  padding: 0;
}

@font-face {
  font-family: 'Inria';
  src: url(/build/fonts/InriaSans-Light.8f8fd3ee.ttf);
}

@font-face {
  font-family: 'Inria Bold';
  src: url(/build/fonts/InriaSans-Regular.44e1f50e.ttf);
}

@font-face {
  font-family: 'Inria Italic';
  src: url(/build/fonts/InriaSans-LightItalic.e19a7d3b.ttf);
}

@font-face {
  font-family: 'Inria BoldItalic';
  src: url(/build/fonts/InriaSans-Italic.bc785e85.ttf);
}

@font-face {
  font-family: 'Walbaum';
  src: url(/build/fonts/Walbaum.71e7aab5.ttf);
}

.bg-blue {
  background-color: #091741;
}

.color-blue {
  color: #091741;
}

.bg-grey {
  background-color: #9fb0a7;
}

.color-grey {
  color: #9fb0a7;
}

.bg-gold {
  background-color: #8c6b00;
}

.color-gold {
  color: #8c6b00;
}

.bg-white {
  background-color: #fdf7e9;
}

.color-white {
  color: #fdf7e9;
}

.row {
  align-items: center;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  justify-content: space-between;
  max-width: 100vw;
  padding: 75px 0;
}

.row.no-padding-top {
  padding-top: 0 !important;
}

.row.fluid {
  align-items: flex-start;
  min-height: 0;
  height: auto;
  padding: 75px 0;
}

.row.fluid.gallery {
  align-items: center;
}

.row.small {
  min-height: auto;
}

.row .col {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
  width: 100%;
}

.row .col.center {
  justify-content: center;
}

.row .col.bottom {
  justify-content: flex-end;
}

.row .col.small {
  width: 40%;
}

.row .col.right {
  align-items: flex-end;
}

.row .col.top {
  justify-content: flex-start;
}

.row .col.around {
  justify-content: space-around;
}

.row .col p {
  text-align: center;
  width: 85%;
}

.row .col p.right {
  align-self: flex-end;
}

.row .col p.center {
  align-self: center;
}

.row .col p.small {
  width: 60%;
}

.row.gallery {
  flex-wrap: wrap;
}

.row.gallery .col {
  width: 80%;
}

.row .order-1 {
  order: 1;
}

.row .order-2 {
  order: 2;
}

.container {
  margin-left: auto;
  margin-right: auto;
  max-width: 540px;
  width: 100%;
}

.m-none {
  margin: 0 !important;
}

.mt-none {
  margin-top: 0 !important;
}

.mb-none {
  margin-bottom: 0 !important;
}

.ml-none {
  margin-left: 0 !important;
}

.mr-none {
  margin-right: 0 !important;
}

.p-none {
  padding: 0 !important;
}

.pt-none {
  padding-top: 0 !important;
}

.pb-none {
  padding-bottom: 0 !important;
}

.pl-none {
  padding-left: 0 !important;
}

.pr-none {
  padding-right: 0 !important;
}

.m-xxs {
  margin: 15px !important;
}

.mt-xxs {
  margin-top: 15px !important;
}

.mb-xxs {
  margin-bottom: 15px !important;
}

.ml-xxs {
  margin-left: 15px !important;
}

.mr-xxs {
  margin-right: 15px !important;
}

.p-xxs {
  padding: 15px !important;
}

.pt-xxs {
  padding-top: 15px !important;
}

.pb-xxs {
  padding-bottom: 15px !important;
}

.pl-xxs {
  padding-left: 15px !important;
}

.pr-xxs {
  padding-right: 15px !important;
}

.m-xs {
  margin: 25px !important;
}

.mt-xs {
  margin-top: 25px !important;
}

.mb-xs {
  margin-bottom: 25px !important;
}

.ml-xs {
  margin-left: 25px !important;
}

.mr-xs {
  margin-right: 25px !important;
}

.p-xs {
  padding: 25px !important;
}

.pt-xs {
  padding-top: 25px !important;
}

.pb-xs {
  padding-bottom: 25px !important;
}

.pl-xs {
  padding-left: 25px !important;
}

.pr-xs {
  padding-right: 25px !important;
}

.m-s {
  margin: 50px !important;
}

.mt-s {
  margin-top: 50px !important;
}

.mb-s {
  margin-bottom: 50px !important;
}

.ml-s {
  margin-left: 50px !important;
}

.mr-s {
  margin-right: 50px !important;
}

.p-s {
  padding: 50px !important;
}

.pt-s {
  padding-top: 50px !important;
}

.pb-s {
  padding-bottom: 50px !important;
}

.pl-s {
  padding-left: 50px !important;
}

.pr-s {
  padding-right: 50px !important;
}

.m-m {
  margin: 75px !important;
}

.mt-m {
  margin-top: 75px !important;
}

.mb-m {
  margin-bottom: 75px !important;
}

.ml-m {
  margin-left: 75px !important;
}

.mr-m {
  margin-right: 75px !important;
}

.p-m {
  padding: 75px !important;
}

.pt-m {
  padding-top: 75px !important;
}

.pb-m {
  padding-bottom: 75px !important;
}

.pl-m {
  padding-left: 75px !important;
}

.pr-m {
  padding-right: 75px !important;
}

.m-l {
  margin: 100px !important;
}

.mt-l {
  margin-top: 100px !important;
}

.mb-l {
  margin-bottom: 100px !important;
}

.ml-l {
  margin-left: 100px !important;
}

.mr-l {
  margin-right: 100px !important;
}

.p-l {
  padding: 100px !important;
}

.pt-l {
  padding-top: 100px !important;
}

.pb-l {
  padding-bottom: 100px !important;
}

.pl-l {
  padding-left: 100px !important;
}

.pr-l {
  padding-right: 100px !important;
}

.m-xl {
  margin: 150px !important;
}

.mt-xl {
  margin-top: 150px !important;
}

.mb-xl {
  margin-bottom: 150px !important;
}

.ml-xl {
  margin-left: 150px !important;
}

.mr-xl {
  margin-right: 150px !important;
}

.p-xl {
  padding: 150px !important;
}

.pt-xl {
  padding-top: 150px !important;
}

.pb-xl {
  padding-bottom: 150px !important;
}

.pl-xl {
  padding-left: 150px !important;
}

.pr-xl {
  padding-right: 150px !important;
}

.m-xxl {
  margin: 200px !important;
}

.mt-xxl {
  margin-top: 200px !important;
}

.mb-xxl {
  margin-bottom: 200px !important;
}

.ml-xxl {
  margin-left: 200px !important;
}

.mr-xxl {
  margin-right: 200px !important;
}

.p-xxl {
  padding: 200px !important;
}

.pt-xxl {
  padding-top: 200px !important;
}

.pb-xxl {
  padding-bottom: 200px !important;
}

.pl-xxl {
  padding-left: 200px !important;
}

.pr-xxl {
  padding-right: 200px !important;
}

.row.home-logo {
  align-items: center;
  justify-content: center;
}

.row.home-logo > div {
  max-width: 550px;
  width: 80%;
}

.row.home-logo > div > img {
  width: 100%;
}

nav {
  display: none;
  position: fixed;
  top: 0;
  z-index: 100;
}

nav.desktop {
  align-items: center;
  box-shadow: 5px 0 15px #091741;
  font-size: 0.8rem;
  height: 50px;
  justify-content: flex-end;
  padding: 0 20px;
  transition: background-color 0.3s;
  width: 100vw;
  box-shadow: 5px 0 15px rgba(9, 23, 65, 0.2);
}

nav.desktop > * {
  margin: 0 0 0 40px;
}

nav.desktop > a::after {
  display: block;
  content: "";
  height: 1px;
  background-color: #091741;
  margin-top: 2px;
  transition: all 0.3s;
  transform: scaleX(1);
}

nav.desktop > a:hover::after, nav.desktop > a.active::after {
  transform: scaleX(0);
}

nav.desktop > a.logout {
  border: solid 1px #091741;
  border-radius: 10px;
  padding: 4px 8px;
}

nav.desktop > a.logout::after {
  display: none;
}

nav.responsive {
  align-items: center;
  flex-direction: column;
  justify-content: space-around;
  height: 100vh;
  width: 100vw;
  background-color: rgba(253, 247, 233, 0.9);
  opacity: 0;
}

nav.responsive > a {
  border-bottom: solid 1px #091741;
  padding: 3px;
  font-size: 1.2rem;
}

nav.responsive > div {
  max-width: 130px;
  width: 30%;
  height: auto;
}

nav.responsive > div a {
  margin: 0 15px;
  width: 100%;
}

nav.responsive > div a > img {
  height: auto;
  width: 100%;
}

nav * {
  font-family: "Walbaum";
}

nav > div {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
}

nav > div a {
  height: 40%;
}

nav > div a > img {
  height: 100%;
}

.nav-btn {
  position: fixed;
  z-index: 101;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  height: 50px;
  cursor: pointer;
  padding: 10px;
  transition: all .5s ease-in-out;
}

.nav-btn-burger {
  width: 40px;
  height: 4px;
  background: #091741;
  transition: all .5s ease-in-out;
}

.nav-btn-burger::before, .nav-btn-burger::after {
  content: "";
  position: absolute;
  width: 40px;
  height: 4px;
  background: #091741;
  transition: all 0.5s ease-in-out;
}

.nav-btn-burger::before {
  transform: translateY(-12px);
}

.nav-btn-burger::after {
  transform: translateY(12px);
}

.nav-btn.open .nav-btn-burger {
  transform: translateX(-40px);
  background: transparent;
  box-shadow: none;
}

.nav-btn.open .nav-btn-burger::before {
  transform: rotate(45deg) translate(30px, -30px);
  background: #091741;
}

.nav-btn.open .nav-btn-burger::after {
  transform: rotate(-45deg) translate(30px, 30px);
  background: #091741;
}

footer {
  font-size: 0.8rem;
}

footer > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

footer > div > div {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}

footer > div > div {
  margin: 15px 0;
}

footer > div > div > a {
  margin-bottom: 25px;
}

footer .footer__social a {
  border: none;
}

footer .footer__social img {
  width: 25px;
}

footer p,
footer a,
footer span {
  color: #fdf7e9;
}

footer a {
  font-family: "Walbaum";
}

footer .mention {
  padding: 10px;
}

footer .mention > span {
  font-family: "Inria Italic";
  font-size: 0.75em;
  text-align: center;
}

.bookshelf {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 300px;
  width: 90%;
}

.bookshelf.large {
  max-width: 400px;
}

.bookshelf.small {
  max-width: 200px;
}

.bookshelf__top {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  width: 100%;
}

.bookshelf__top.between {
  justify-content: space-between;
}

.bookshelf__top.around {
  justify-content: space-around;
}

.bookshelf__top.right {
  justify-content: flex-end;
}

.bookshelf__top h2 {
  margin: 0 25px;
  z-index: 2;
}

.bookshelf__bottom {
  height: 7px;
  width: 100%;
  margin-top: 7px;
}

.bookshelf.manuscrits-responsive {
  align-self: flex-end;
  display: block;
}

.bookshelf.manuscrits-desktop {
  display: none;
}

.books {
  height: 100%;
  display: flex;
  align-items: flex-end;
}

.books .book {
  width: 7px;
  height: 55px;
  margin: 0 8px 0 0;
}

.books .book.small {
  height: 45px;
}

.books .book.fall.left {
  transform: rotate(-8deg) translateX(4px);
}

.books .book.fall.right {
  transform: rotate(8deg) translateX(-4px);
}

.books.horizontal {
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
}

.books.horizontal .book {
  width: 55px;
  height: 7px;
  margin: 8px 0 0 0;
}

.books.horizontal .book.small {
  width: 45px;
}

.form {
  margin: 0 auto;
  max-width: 850px;
  width: 100%;
}

.form h3 {
  border-bottom: solid 1px #091741;
  display: inline;
  font-family: "Walbaum";
}

.form form {
  margin: 0 auto;
  width: 90%;
}

.form-group {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  width: 100%;
}

.form-group > div {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  padding: 15px;
}

.form-group > div label {
  padding-right: 25px;
  text-align: right;
  text-transform: uppercase;
  font-size: 0.8rem;
}

.form-group > div input,
.form-group > div textarea,
.form-group > div > div {
  flex-grow: 1;
}

.form-group > div input,
.form-group > div textarea {
  background-color: transparent;
  border: none;
}

.form-group > div input {
  border: 0;
  border-bottom: solid 1px #091741;
}

.form-group > div textarea {
  border: solid 1px #091741;
}

.form-group > div .cke_editable {
  color: #091741;
  font-family: "Inria";
}

.form-group.biography > div, .form-group.message > div {
  align-items: flex-start;
}

.form-group.message textarea {
  height: 180px;
}

.form-group.message > div {
  flex-direction: column;
  align-items: flex-start;
}

.form-group.message > div label {
  margin-bottom: 25px;
}

.form-group.message > div textarea {
  width: 100%;
}

.form-group.imagefile {
  justify-content: flex-end;
  margin: 15px 15px 0 auto;
}

.form-group.imagefile > div {
  padding: 0;
}

.form-group.imagefile label {
  background-color: #091741;
  color: #fdf7e9;
  cursor: pointer;
  margin-right: 15px;
  min-width: initial;
  order: 2;
  padding: 15px;
}

.form-group.imagefile input {
  border-bottom: none;
  width: 0.1px;
  order: 1;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  z-index: -1;
}

.form-group.select > div {
  align-items: center;
}

.form-group.select select {
  background-color: #fdf7e9;
  color: #091741;
  padding: 5px;
  text-transform: uppercase;
  font-size: 0.8rem;
}

.form-submit {
  display: flex;
  justify-content: center;
  padding: 15px;
}

.form-submit button {
  background-color: #091741;
  color: #fdf7e9;
  border: solid 1px #091741;
  border-radius: 10px;
  cursor: pointer;
  padding: 6px 12px;
  text-transform: uppercase;
  transition: background-color 0.3s linear, color 0.3s linear;
  font-size: 1rem;
}

.form-submit button:hover {
  background-color: #091741;
  color: #fdf7e9;
}

.form-message {
  background-color: #8c6b00;
  border-radius: 15px;
  margin-left: auto;
  margin-right: auto;
  max-width: 500px;
  padding: 6px 12px;
  width: 60%;
  text-align: center;
  font-size: 0.9rem;
}

.form-message span {
  color: #fdf7e9;
  line-height: 1.6em;
}

.form.contact {
  margin-top: 75px;
}

.form.contact label {
  font-size: 1rem;
}

.form.login {
  height: 100%;
}

.form.login h2 {
  border-bottom: solid 1px #091741;
  font-family: "Walbaum";
  padding-bottom: 5px;
}

.form.login form {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 80%;
  justify-content: space-around;
}

.form .captcha > div {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: flex-end;
}

.form .captcha input {
  border: 0;
  border-bottom: solid 1px #091741;
  background-color: transparent;
}

.form .captcha #ExampleCaptchaUserRegistration_CaptchaDiv {
  margin: 25px !important;
}

.bio_img {
  width: 80%;
  max-width: 350px;
  overflow: hidden;
  margin: 0 auto;
  line-height: 0;
}

.bio_img img {
  max-width: 100%;
  max-height: 100%;
  mix-blend-mode: multiply;
}

.row .gallery-filter {
  background-color: #091741;
  height: 100%;
  left: 0;
  mix-blend-mode: screen;
  position: absolute;
  top: 0;
  width: 100%;
}

.row .gallery-link {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  position: relative;
  width: 100%;
}

.row .gallery-link > a {
  height: 450px;
  overflow: hidden;
  position: relative;
  transition: box-shadow 0.4s ease-in-out, background-size 0.4s ease-in-out;
  width: 100%;
  box-shadow: -2px 2px 15px rgba(9, 23, 65, 0.35);
}

.row .gallery-link > a > div {
  background-size: cover;
  background-position: center;
  height: 100%;
  transition: transform 0.3s ease-in-out;
  width: 100%;
}

.row .gallery-link.admin {
  border-radius: 30px;
  cursor: auto;
  overflow: hidden;
  position: relative;
}

.row .gallery-link.admin .admin-button {
  align-items: center;
  background-color: #fdf7e9;
  border-bottom: solid 1px #091741;
  border-radius: 30px 30px 0 0;
  display: flex;
  height: 50px;
  justify-content: space-between;
  position: absolute;
  top: 0;
  width: 100%;
}

.row .gallery-link.admin .admin-button * {
  cursor: pointer;
}

.row .gallery-link.admin .admin-button > * {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  flex-grow: 1;
  transition: box-shadow 0.3s ease-in-out;
}

.row .gallery-link.admin .admin-button > *:hover {
  box-shadow: inset -5px -5px 30px rgba(9, 23, 65, 0.2);
}

.row .gallery-link.admin .admin-button > form {
  border-left: solid 1px #091741;
}

.row .gallery-link.admin .admin-button > form:hover {
  box-shadow: inset 5px -5px 30px rgba(9, 23, 65, 0.2);
}

.row .gallery-link.admin > a {
  box-shadow: none;
}

.row .gallery-link.admin:hover > a {
  box-shadow: none;
}

.row .gallery-link:hover > a {
  box-shadow: -2px 2px 20px rgba(9, 23, 65, 0.55);
}

.row .gallery-link:hover > a > div {
  transform: scale(1.1);
}

.row .gallery-element {
  align-items: center;
  display: flex;
  flex-direction: column;
  padding: 15px;
  margin-bottom: 25px;
}

.row .gallery-element > h3 {
  margin-top: 25px;
}

.row .gallery-element > h3::after {
  background-color: #091741;
  content: "";
  display: block;
  text-align: center;
  height: 1px;
  margin: 15px auto 0 auto;
  width: 25px;
}

.row .gallery-element.book .gallery-link.admin {
  height: 250px;
  border-radius: 30px;
}

.row .gallery-element.book .gallery-link.admin > a {
  align-items: center;
  background-color: #091741;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 50px 25px 0;
  text-align: center;
}

.row .gallery-element.book .gallery-link.admin > a > * {
  color: #fdf7e9;
}

.row .gallery-element.book .gallery-link.admin > a > h3 {
  font-family: "Inria Bold";
  line-height: 1.6em;
  text-transform: uppercase;
}

.row .gallery-element.book .gallery-link.admin > a > h3::after {
  content: "";
  display: block;
  background-color: #fdf7e9;
  margin: 15px auto 0;
  width: 40px;
  height: 1px;
}

.row .gallery-element.admin-new {
  align-self: center;
}

.row .gallery-bookshelf {
  display: none;
}

.row .gallery-bookshelf > div {
  background-image: url(/build/images/bookshelf.49476ed5.jpg);
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 400px;
}

.row .gallery-admin-new {
  align-items: center;
  background-color: #091741;
  border-radius: 60px;
  display: flex;
  height: 60px;
  justify-content: center;
  transition: box-shadow 0.4s ease-in-out;
  width: 60px;
}

.row .gallery-admin-new:hover {
  box-shadow: -2px 2px 10px rgba(9, 23, 65, 0.35);
}

.row .gallery-admin-new > span {
  color: #fdf7e9;
  transform: translateY(-4px) translateX(1px);
  font-size: calc(1.5302rem + 3.3624vw);
}

@media (min-width: 1200px) {
  .row .gallery-admin-new > span {
    font-size: 4.052rem;
  }
}

#gallery {
  position: relative;
}

#gallery-detail {
  background-color: #fdf7e9;
  height: 100vh;
  overflow: scroll;
  padding: 75px 25px 50px;
  position: fixed;
  top: 0;
  right: 0;
  transition: right 0.4s linear;
  width: 100vw;
  z-index: 102;
}

#gallery-detail.closed {
  right: -100vw;
}

#gallery-detail .gallery-infos {
  display: none;
  min-height: 100%;
}

#gallery-detail .gallery-infos h4 {
  text-align: center;
}

#gallery-detail .gallery-infos hr {
  margin: 25px 0;
  width: 100%;
}

#gallery-detail .gallery-infos.visible {
  align-items: center;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

#gallery-detail p {
  text-align: center;
  font-size: 0.9rem;
}

#gallery-detail .author-books,
#gallery-detail .collaborator-link {
  align-self: flex-start;
}

#gallery-detail .author-books li,
#gallery-detail .collaborator-link li {
  margin-bottom: 5px;
  text-align: left;
}

#gallery-detail .author-books li::before,
#gallery-detail .collaborator-link li::before {
  margin-right: 15px;
  font-size: 0.6em;
}

#gallery-detail .author-books li::before {
  content: "✺";
}

#gallery-detail .collaborator-link li::before {
  content: "✺";
}

#gallery-detail-mask {
  background-color: #091741;
  cursor: pointer;
  display: none;
  height: 100vh;
  left: 0;
  opacity: 0.3;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 101;
}

#gallery-close {
  padding: 15px;
  position: absolute;
  right: 0;
  top: 0;
}

#gallery-close img {
  cursor: pointer;
  height: 20px;
}

.photo-credits {
  text-align: left;
  margin-top: 25px;
  align-self: flex-start;
  font-size: 0.8rem;
}

.photo-credits::before {
  content: "© ";
  color: #8c6b00;
}

.h5 {
  display: block;
  font-family: "Inria Bold";
  text-transform: uppercase;
}

.error-page {
  min-height: 100vh;
}

.error-page-message {
  margin: 0 auto;
  padding: 0 !important;
  max-width: 500px;
  text-align: center;
  width: 50%;
}

.error-page-message h2 {
  margin-bottom: 25px;
}

.error-page .row.right {
  justify-content: flex-end;
}

@media screen and (min-width: 576px) {
  .row.home-logo > div {
    width: 40%;
  }
  .container {
    max-width: 540px;
  }
}

@media screen and (min-width: 768px) {
  .container {
    max-width: 720px;
  }
  .row.gallery {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .row.gallery .col {
    width: 50%;
  }
  .row .author > a {
    height: 400px;
  }
}

@media screen and (min-width: 992px) {
  main {
    padding-top: 50px;
  }
  nav.desktop {
    display: flex;
  }
  nav.responsive {
    display: none;
  }
  .nav-btn {
    display: none;
  }
  footer > div {
    flex-direction: row;
  }
  footer > div > * {
    margin: 0;
  }
  footer > div > * > a {
    margin-bottom: 0;
  }
  footer .mention {
    display: flex;
    justify-content: flex-end;
  }
  p {
    font-size: 1rem;
  }
  .row {
    align-items: center;
    flex-direction: row;
    justify-content: flex-start;
    height: auto;
    min-height: calc(100vh - 50px);
  }
  .row.gallery {
    align-items: flex-start;
  }
  .row.small {
    height: auto;
    min-height: calc(70vh - 50px);
  }
  .row.fluid {
    align-items: center;
    height: auto;
  }
  .row.fluid.gallery {
    align-items: flex-start;
  }
  .row .col {
    justify-content: center;
    width: 50%;
  }
  .row .col p {
    width: 80%;
    text-align: left;
  }
  .row.gallery {
    flex-wrap: wrap;
  }
  .row.gallery .col {
    width: 33.333333333%;
  }
  .row .gallery-link > a {
    height: 400px;
  }
  .row .gallery-bookshelf {
    display: block;
  }
  .row .order-1 {
    order: initial;
  }
  .row .order-2 {
    order: initial;
  }
  .row .order-3 {
    order: initial;
  }
  .container {
    max-width: 960px;
  }
  .bookshelf {
    max-width: 350px;
    width: 90%;
  }
  .bookshelf.large {
    max-width: 550px;
  }
  .bookshelf.small {
    max-width: 250px;
  }
  .bookshelf__top h2 {
    margin: 0 25px;
    font-size: 2.8rem;
    line-height: 2rem;
  }
  .bookshelf__bottom {
    height: 8.5px;
    margin-top: 8.5px;
  }
  .bookshelf.manuscrits-responsive {
    display: none;
  }
  .bookshelf.manuscrits-desktop {
    display: block;
  }
  .books .book {
    width: 8.5px;
    height: 70px;
    margin: 0 9.5px 0 0;
  }
  .books .book.small {
    height: 52.5px;
  }
  .books.horizontal .book {
    width: 70px;
    height: 8.5px;
    margin: 9.5px 0 0 0;
  }
  .books.horizontal .book.small {
    width: 52.5px;
  }
  #gallery-detail {
    padding: 75px;
    max-width: 800px;
    width: 55vw;
    box-shadow: -5px 0 25px rgba(9, 23, 65, 0.25);
  }
  #gallery-detail.closed {
    right: -55vw;
  }
  #gallery-detail p {
    font-size: 1rem;
  }
  .form form {
    width: 80%;
  }
  .form-group > div {
    align-items: flex-end;
  }
  .form-group > div label {
    min-width: 150px;
  }
  .form-group.message > div {
    flex-direction: row;
  }
  .form-group.message > div label {
    margin-bottom: 0;
  }
  .form-submit {
    justify-content: flex-end;
  }
  .form-submit button {
    background-color: #fdf7e9;
    color: #091741;
    font-size: 0.8rem;
  }
  .form-submit button:hover {
    background-color: #091741;
    color: #fdf7e9;
  }
  .form.contact {
    margin-top: 0;
  }
  .form .captcha > div {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
  }
}

@media screen and (min-width: 1200px) {
  .row {
    flex-direction: row;
  }
  .row .col p {
    width: 70%;
  }
  .row.gallery {
    flex-wrap: wrap;
  }
  .row.gallery .col {
    width: 25%;
  }
  .container {
    max-width: 1180px;
  }
  #gallery-detail {
    max-width: 650px;
    width: 50vw;
  }
  #gallery-detail.closed {
    right: -50vw;
  }
  .bookshelf {
    max-width: 400px;
  }
  .bookshelf.large {
    max-width: 550px;
  }
  .bookshelf.small {
    max-width: 250px;
  }
  p {
    font-size: 1.15rem;
  }
}

*,
html,
body {
  font-family: "Inria", sans-serif;
}

h2 {
  font-family: "Walbaum", serif;
  line-height: 1.65rem;
  font-size: 2rem;
}

h3 {
  font-size: 1.1rem;
}

h4 {
  font-family: "Walbaum", serif;
  font-size: calc(1.305rem + 0.66vw);
}

@media (min-width: 1200px) {
  h4 {
    font-size: 1.8rem;
  }
}

p,
li {
  line-height: 1.6em;
}

p strong,
p b,
li strong,
li b {
  font-family: "Inria Bold", sans-serif;
}

p em,
p i,
li em,
li i {
  font-family: "Inria Italic", sans-serif;
}

p u,
li u {
  text-decoration: none;
  border-bottom: solid 1px #091741;
}

p a,
li a {
  border-bottom: solid 1px #8c6b00;
  color: #8c6b00;
}

p em > strong,
p strong > em,
li em > strong,
li strong > em {
  font-family: "Inria BoldItalic", sans-serif;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAuc2NzcyIsIndlYnBhY2s6Ly8vLi9iYXNlL19yZXNldC5zY3NzIiwid2VicGFjazovLy8uL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly8vLi9oZWxwZXJzL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9oZWxwZXJzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvX2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL2xheW91dC9fbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaGVscGVycy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Jmcy9zY3NzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L19mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL19ib29rc2hlbGYuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL19mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvX2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvX2dhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly8vLi9wYWdlcy9fbWVudGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9wYWdlcy9fZXJyb3Iuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNwb25zaXZlL181NzYuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNwb25zaXZlL183Njguc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNwb25zaXZlL185OTIuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNwb25zaXZlL18xMjAwLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzs7Q0RJQztBQ0NEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0ZFLHNCQUFzQjtFQUN0QixTQUFTO0VBQ1QsVUFBVTtFQUNWLFNBQVM7RUFDVCxlQUFlO0VBQ2YsYUFBYTtFQUNiLHdCQUF3QjtFQUN4QixjQUFjO0FEQ2hCOztBQ0VBO0FBQ0E7O0VBRUUsY0FBYztBRENoQjs7QUNFQTtFQUNFLGNBQWM7RUFDZCxvQkFBb0I7QURDdEI7O0FDRUE7RUFDRSxnQkFBZ0I7QURDbEI7O0FDRUE7RUFDRSxZQUFZO0FEQ2Q7O0FDRUE7O0VBRUUsV0FBVztFQUNYLGFBQWE7QURDZjs7QUNFQTtFQUNFLHlCQUF5QjtFQUN6QixpQkFBaUI7QURDbkI7O0FDRUE7RUFDRSxxQkFBcUI7QURDdkI7O0FDRUE7RUFDRSw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtBRENaOztBRXpJQTtFQUNJLG9CQUFvQjtFQUNwQiw0Q0FBMkQ7QUY0SS9EOztBRXpJQTtFQUNJLHlCQUF5QjtFQUN6Qiw0Q0FBNkQ7QUY0SWpFOztBRXpJQTtFQUNJLDJCQUEyQjtFQUMzQiw0Q0FBaUU7QUY0SXJFOztBRXpJQTtFQUNJLCtCQUErQjtFQUMvQiw0Q0FBNEQ7QUY0SWhFOztBRXpJQTtFQUNJLHNCQUFzQjtFQUN0Qiw0Q0FBbUQ7QUY0SXZEOztBR2pLSTtFQUNJLHlCQ0FjO0FKb0t0Qjs7QUdqS0k7RUFDSSxjQ0pjO0FKd0t0Qjs7QUd6S0k7RUFDSSx5QkNDYztBSjJLdEI7O0FHektJO0VBQ0ksY0NIYztBSitLdEI7O0FHakxJO0VBQ0kseUJDRWM7QUprTHRCOztBR2pMSTtFQUNJLGNDRmM7QUpzTHRCOztBR3pMSTtFQUNJLHlCQ0djO0FKeUx0Qjs7QUd6TEk7RUFDSSxjQ0RjO0FKNkx0Qjs7QUtsTUE7RUFDSSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLGdCQUFnQjtFQUNoQixlQUFvQjtBTHFNeEI7O0FLNU1BO0VBU3VCLHlCQUF5QjtBTHVNaEQ7O0FLaE5BO0VBWVEsdUJBQXVCO0VBQ3ZCLGFBQWE7RUFDYixZQUFZO0VBQ1osZUFBb0I7QUx3TTVCOztBS3ZOQTtFQWlCb0IsbUJBQW1CO0FMME12Qzs7QUszTkE7RUFxQlEsZ0JBQWdCO0FMME14Qjs7QUsvTkE7RUF5QlEsdUJBQXVCO0VBQ3ZCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLFlBQVk7RUFDWixXQUFXO0FMME1uQjs7QUt4T0E7RUFnQ21CLHVCQUF1QjtBTDRNMUM7O0FLNU9BO0VBaUNtQix5QkFBeUI7QUwrTTVDOztBS2hQQTtFQWtDa0IsVUFBVTtBTGtONUI7O0FLcFBBO0VBbUNrQixxQkFBcUI7QUxxTnZDOztBS3hQQTtFQW9DZ0IsMkJBQTJCO0FMd04zQzs7QUs1UEE7RUFxQ21CLDZCQUE2QjtBTDJOaEQ7O0FLaFFBO0VBd0NZLGtCQUFrQjtFQUNsQixVQUFVO0FMNE50Qjs7QUtyUUE7RUEyQ3NCLG9CQUFvQjtBTDhOMUM7O0FLelFBO0VBNEN1QixrQkFBa0I7QUxpT3pDOztBSzdRQTtFQTZDc0IsVUFBVTtBTG9PaEM7O0FLalJBO0VBa0RRLGVBQWU7QUxtT3ZCOztBS3JSQTtFQW9EZSxVQUFVO0FMcU96Qjs7QUt6UkE7RUF1RGUsUUFBUTtBTHNPdkI7O0FLN1JBO0VBd0RlLFFBQVE7QUx5T3ZCOztBS3RPQTtFQUNJLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFdBQVc7QUx5T2Y7O0FLck9JO0VBQWlCLG9CQUF3QjtBTHlPN0M7O0FLeE9JO0VBQWtCLHdCQUE0QjtBTDRPbEQ7O0FLM09JO0VBQWtCLDJCQUErQjtBTCtPckQ7O0FLOU9JO0VBQWtCLHlCQUE2QjtBTGtQbkQ7O0FLalBJO0VBQWtCLDBCQUE4QjtBTHFQcEQ7O0FLcFBJO0VBQWlCLHFCQUF5QjtBTHdQOUM7O0FLdlBJO0VBQWtCLHlCQUE2QjtBTDJQbkQ7O0FLMVBJO0VBQWtCLDRCQUFnQztBTDhQdEQ7O0FLN1BJO0VBQWtCLDBCQUE4QjtBTGlRcEQ7O0FLaFFJO0VBQWtCLDJCQUErQjtBTG9RckQ7O0FLN1FJO0VBQWlCLHVCQUF3QjtBTGlSN0M7O0FLaFJJO0VBQWtCLDJCQUE0QjtBTG9SbEQ7O0FLblJJO0VBQWtCLDhCQUErQjtBTHVSckQ7O0FLdFJJO0VBQWtCLDRCQUE2QjtBTDBSbkQ7O0FLelJJO0VBQWtCLDZCQUE4QjtBTDZScEQ7O0FLNVJJO0VBQWlCLHdCQUF5QjtBTGdTOUM7O0FLL1JJO0VBQWtCLDRCQUE2QjtBTG1TbkQ7O0FLbFNJO0VBQWtCLCtCQUFnQztBTHNTdEQ7O0FLclNJO0VBQWtCLDZCQUE4QjtBTHlTcEQ7O0FLeFNJO0VBQWtCLDhCQUErQjtBTDRTckQ7O0FLclRJO0VBQWlCLHVCQUF3QjtBTHlUN0M7O0FLeFRJO0VBQWtCLDJCQUE0QjtBTDRUbEQ7O0FLM1RJO0VBQWtCLDhCQUErQjtBTCtUckQ7O0FLOVRJO0VBQWtCLDRCQUE2QjtBTGtVbkQ7O0FLalVJO0VBQWtCLDZCQUE4QjtBTHFVcEQ7O0FLcFVJO0VBQWlCLHdCQUF5QjtBTHdVOUM7O0FLdlVJO0VBQWtCLDRCQUE2QjtBTDJVbkQ7O0FLMVVJO0VBQWtCLCtCQUFnQztBTDhVdEQ7O0FLN1VJO0VBQWtCLDZCQUE4QjtBTGlWcEQ7O0FLaFZJO0VBQWtCLDhCQUErQjtBTG9WckQ7O0FLN1ZJO0VBQWlCLHVCQUF3QjtBTGlXN0M7O0FLaFdJO0VBQWtCLDJCQUE0QjtBTG9XbEQ7O0FLbldJO0VBQWtCLDhCQUErQjtBTHVXckQ7O0FLdFdJO0VBQWtCLDRCQUE2QjtBTDBXbkQ7O0FLeldJO0VBQWtCLDZCQUE4QjtBTDZXcEQ7O0FLNVdJO0VBQWlCLHdCQUF5QjtBTGdYOUM7O0FLL1dJO0VBQWtCLDRCQUE2QjtBTG1YbkQ7O0FLbFhJO0VBQWtCLCtCQUFnQztBTHNYdEQ7O0FLclhJO0VBQWtCLDZCQUE4QjtBTHlYcEQ7O0FLeFhJO0VBQWtCLDhCQUErQjtBTDRYckQ7O0FLcllJO0VBQWlCLHVCQUF3QjtBTHlZN0M7O0FLeFlJO0VBQWtCLDJCQUE0QjtBTDRZbEQ7O0FLM1lJO0VBQWtCLDhCQUErQjtBTCtZckQ7O0FLOVlJO0VBQWtCLDRCQUE2QjtBTGtabkQ7O0FLalpJO0VBQWtCLDZCQUE4QjtBTHFacEQ7O0FLcFpJO0VBQWlCLHdCQUF5QjtBTHdaOUM7O0FLdlpJO0VBQWtCLDRCQUE2QjtBTDJabkQ7O0FLMVpJO0VBQWtCLCtCQUFnQztBTDhadEQ7O0FLN1pJO0VBQWtCLDZCQUE4QjtBTGlhcEQ7O0FLaGFJO0VBQWtCLDhCQUErQjtBTG9hckQ7O0FLN2FJO0VBQWlCLHdCQUF3QjtBTGliN0M7O0FLaGJJO0VBQWtCLDRCQUE0QjtBTG9ibEQ7O0FLbmJJO0VBQWtCLCtCQUErQjtBTHVickQ7O0FLdGJJO0VBQWtCLDZCQUE2QjtBTDBibkQ7O0FLemJJO0VBQWtCLDhCQUE4QjtBTDZicEQ7O0FLNWJJO0VBQWlCLHlCQUF5QjtBTGdjOUM7O0FLL2JJO0VBQWtCLDZCQUE2QjtBTG1jbkQ7O0FLbGNJO0VBQWtCLGdDQUFnQztBTHNjdEQ7O0FLcmNJO0VBQWtCLDhCQUE4QjtBTHljcEQ7O0FLeGNJO0VBQWtCLCtCQUErQjtBTDRjckQ7O0FLcmRJO0VBQWlCLHdCQUF3QjtBTHlkN0M7O0FLeGRJO0VBQWtCLDRCQUE0QjtBTDRkbEQ7O0FLM2RJO0VBQWtCLCtCQUErQjtBTCtkckQ7O0FLOWRJO0VBQWtCLDZCQUE2QjtBTGtlbkQ7O0FLamVJO0VBQWtCLDhCQUE4QjtBTHFlcEQ7O0FLcGVJO0VBQWlCLHlCQUF5QjtBTHdlOUM7O0FLdmVJO0VBQWtCLDZCQUE2QjtBTDJlbkQ7O0FLMWVJO0VBQWtCLGdDQUFnQztBTDhldEQ7O0FLN2VJO0VBQWtCLDhCQUE4QjtBTGlmcEQ7O0FLaGZJO0VBQWtCLCtCQUErQjtBTG9mckQ7O0FLN2ZJO0VBQWlCLHdCQUF3QjtBTGlnQjdDOztBS2hnQkk7RUFBa0IsNEJBQTRCO0FMb2dCbEQ7O0FLbmdCSTtFQUFrQiwrQkFBK0I7QUx1Z0JyRDs7QUt0Z0JJO0VBQWtCLDZCQUE2QjtBTDBnQm5EOztBS3pnQkk7RUFBa0IsOEJBQThCO0FMNmdCcEQ7O0FLNWdCSTtFQUFpQix5QkFBeUI7QUxnaEI5Qzs7QUsvZ0JJO0VBQWtC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OztFQU1RLHFDQUE4QjtBQTJxRHRDOztBQWpyREE7Ozs7RUFXUSx1Q0FBZ0M7QUE2cUR4Qzs7QUF4ckRBOztFQWVRLHFCQUFxQjtFQUNyQixnQ0lwRGE7QUprdURyQjs7QUE5ckRBOztFQW9CUSxnQ0l0RGM7RUp1RGQsY0l2RGM7QUpzdUR0Qjs7QUFwc0RBOzs7O0VBMEJRLDJDQUFrQztBQWlyRDFDIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vbm9kZV9tb2R1bGVzL3Jmcy9zY3NzLnNjc3NcIjtcbkBpbXBvcnQgXCJiYXNlL3Jlc2V0XCI7XG5AaW1wb3J0IFwiYmFzZS90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwiaGVscGVycy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbG9yc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvbWl4aW5zXCI7XG5AaW1wb3J0IFwibGF5b3V0L2dyaWRcIjtcbkBpbXBvcnQgXCJsYXlvdXQvaGVhZGVyXCI7XG5AaW1wb3J0IFwibGF5b3V0L25hdlwiO1xuQGltcG9ydCBcImxheW91dC9mb290ZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2FsZXJ0XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9ib29rc2hlbGZcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1cIjtcbkBpbXBvcnQgXCJwYWdlcy9pbmRleFwiO1xuQGltcG9ydCBcInBhZ2VzL2dhbGxlcnlcIjtcbkBpbXBvcnQgXCJwYWdlcy9tZW50aW9uc1wiO1xuQGltcG9ydCBcInBhZ2VzL2Vycm9yXCI7XG5AaW1wb3J0IFwicmVzcG9uc2l2ZS81NzZcIjtcbkBpbXBvcnQgXCJyZXNwb25zaXZlLzc2OFwiO1xuQGltcG9ydCBcInJlc3BvbnNpdmUvOTkyXCI7XG5AaW1wb3J0IFwicmVzcG9uc2l2ZS8xMjAwXCI7XG5cbiosXG5odG1sLFxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6ICRyZWd1bGFyLCBzYW5zLXNlcmlmO1xufVxuXG5oMiB7XG4gICAgZm9udC1mYW1pbHk6ICR3YWxiYXVtLCBzZXJpZjtcbiAgICBsaW5lLWhlaWdodDogMS42NXJlbTtcbiAgICBmb250LXNpemU6IDJyZW07XG59XG5cbmgzIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMS4xcmVtKTtcbn1cblxuaDQge1xuICAgIGZvbnQtZmFtaWx5OiAkd2FsYmF1bSwgc2VyaWY7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEuOHJlbSk7XG59XG5cbnAsXG5saSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgICBmb250LWZhbWlseTogJGJvbGQsIHNhbnMtc2VyaWY7XG4gICAgfVxuXG4gICAgZW0sXG4gICAgaSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaXRhbGljLCBzYW5zLXNlcmlmO1xuICAgIH1cblxuICAgIHUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkYmx1ZTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRnb2xkO1xuICAgICAgICBjb2xvcjogJGdvbGQ7XG4gICAgfVxuXG4gICAgZW0gPiBzdHJvbmcsXG4gICAgc3Ryb25nID4gZW0ge1xuICAgICAgICBmb250LWZhbWlseTogJGJvbGRpdGFsLCBzYW5zLXNlcmlmO1xuICAgIH1cbn1cbiIsIi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvIFxuICB2Mi4wIHwgMjAxMTAxMjZcbiAgTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbiovXG5cbmh0bWwsXG5ib2R5LFxuZGl2LFxuc3BhbixcbmFwcGxldCxcbm9iamVjdCxcbmlmcmFtZSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG5ibG9ja3F1b3RlLFxucHJlLFxuYSxcbmFiYnIsXG5hY3JvbnltLFxuYWRkcmVzcyxcbmJpZyxcbmNpdGUsXG5jb2RlLFxuZGVsLFxuZGZuLFxuZW0sXG5pbWcsXG5pbnMsXG5rYmQsXG5xLFxucyxcbnNhbXAsXG5zbWFsbCxcbnN0cmlrZSxcbnN0cm9uZyxcbnN1YixcbnN1cCxcbnR0LFxudmFyLFxuYixcbnUsXG5pLFxuY2VudGVyLFxuZGwsXG5kdCxcbmRkLFxub2wsXG51bCxcbmxpLFxuZmllbGRzZXQsXG5mb3JtLFxubGFiZWwsXG5sZWdlbmQsXG50YWJsZSxcbmNhcHRpb24sXG50Ym9keSxcbnRmb290LFxudGhlYWQsXG50cixcbnRoLFxudGQsXG5hcnRpY2xlLFxuYXNpZGUsXG5jYW52YXMsXG5kZXRhaWxzLFxuZW1iZWQsXG5maWd1cmUsXG5maWdjYXB0aW9uLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbm91dHB1dCxcbnJ1YnksXG5zZWN0aW9uLFxuc3VtbWFyeSxcbnRpbWUsXG5tYXJrLFxuYXVkaW8sXG5idXR0b24sXG52aWRlbyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgY29sb3I6ICMwOTE3NDE7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXktcm9sZSByZXNldCBmb3Igb2xkZXIgYnJvd3NlcnMgKi9cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IFwiSW5yaWFcIjtcbn1cblxub2wsIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb250ZW50OiBub25lO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogMS42ZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnSW5yaWEnO1xuICAgIHNyYzogdXJsKCcuLi8uLi8uLi9wdWJsaWMvbWVkaWEvZm9udHMvSW5yaWFTYW5zLUxpZ2h0LnR0ZicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0lucmlhIEJvbGQnO1xuICAgIHNyYzogdXJsKCcuLi8uLi8uLi9wdWJsaWMvbWVkaWEvZm9udHMvSW5yaWFTYW5zLVJlZ3VsYXIudHRmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnSW5yaWEgSXRhbGljJztcbiAgICBzcmM6IHVybCgnLi4vLi4vLi4vcHVibGljL21lZGlhL2ZvbnRzL0lucmlhU2Fucy1MaWdodEl0YWxpYy50dGYnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdJbnJpYSBCb2xkSXRhbGljJztcbiAgICBzcmM6IHVybCgnLi4vLi4vLi4vcHVibGljL21lZGlhL2ZvbnRzL0lucmlhU2Fucy1JdGFsaWMudHRmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnV2FsYmF1bSc7XG4gICAgc3JjOiB1cmwoJy4uLy4uLy4uL3B1YmxpYy9tZWRpYS9mb250cy9XYWxiYXVtLnR0ZicpO1xufVxuIiwiQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkY29sb3JzIHtcbiAgICAuYmctI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgLmNvbG9yLSN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG59XG4iLCIvLyBDT0xPUlNcbiRjb2xvcnM6IChcbiAgICBcImJsdWVcIiAgOiAgIzA5MTc0MSxcbiAgICBcImdyZXlcIiAgOiAgIzlmYjBhNyxcbiAgICBcImdvbGRcIiAgOiAgIzhjNmIwMCxcbiAgICBcIndoaXRlXCIgOiAgI2ZkZjdlOVxuKTtcblxuJGJsdWUgICAgICAgOiAjMDkxNzQxO1xuJHdoaXRlICAgICAgOiAjZmRmN2U5O1xuJGdvbGQgICAgICAgOiAgIzhjNmIwMDtcbiRncmV5ICAgICAgIDogICM5ZmIwYTc7XG5cbi8vIE1BUkdJTi9QQURESU5HXG4kc3BhY2luZ3M6IChcbiAgICBcIm5vbmVcIiAgOiAwLFxuICAgIFwieHhzXCIgICA6IDE1cHgsXG4gICAgXCJ4c1wiICAgIDogMjVweCxcbiAgICBcInNcIiAgICAgOiA1MHB4LFxuICAgIFwibVwiICAgICA6IDc1cHgsXG4gICAgXCJsXCIgICAgIDogMTAwcHgsXG4gICAgXCJ4bFwiICAgIDogMTUwcHgsXG4gICAgXCJ4eGxcIiAgIDogMjAwcHhcbik7XG5cbiRtYXJnaW4teHhzICAgOiAxNXB4O1xuJG1hcmdpbi14cyAgICA6IDI1cHg7XG4kbWFyZ2luLXMgICAgIDogNTBweDtcbiRtYXJnaW4tbSAgICAgOiA3NXB4O1xuJG1hcmdpbi1sICAgICA6IDEwMHB4O1xuJG1hcmdpbi14bCAgICA6IDE1MHB4O1xuXG4vLyBCT09LU0hFTEZcbiRib29rLW1hcmdpbjogODtcbiRib29rLXdpZHRoIDogNztcbiRib29rLWhlaWdodDogNTU7XG4kYm9vay1zbWFsbCA6IDQ1O1xuXG4kbW9kdWxvIDogMTU7XG4kYm9vay1tYXJnaW4tZGVzazogJGJvb2stbWFyZ2luICsgKCRtb2R1bG8gLyAxMCk7XG4kYm9vay13aWR0aC1kZXNrIDogJGJvb2std2lkdGggKyAoJG1vZHVsbyAvIDEwKTtcbiRib29rLWhlaWdodC1kZXNrOiA1NSArICgkbW9kdWxvKTtcbiRib29rLXNtYWxsLWRlc2sgOiA0NSArICgkbW9kdWxvIC8gMik7XG5cbi8vIE5BViBIRUlHSFRcbiRuYXYtaGVpZ2h0IDogNTBweDtcblxuLy8gRk9OVCBGQU1JTFlcbiRyZWd1bGFyICAgIDogXCJJbnJpYVwiO1xuJGJvbGQgICAgICAgOiBcIklucmlhIEJvbGRcIjtcbiRpdGFsaWMgICAgIDogXCJJbnJpYSBJdGFsaWNcIjtcbiRib2xkaXRhbCAgIDogXCJJbnJpYSBCb2xkSXRhbGljXCI7XG4kd2FsYmF1bSAgICA6IFwiV2FsYmF1bVwiO1xuIiwiLnJvdyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgcGFkZGluZzogJG1hcmdpbi1tIDA7XG5cbiAgICAmLm5vLXBhZGRpbmctdG9wIHsgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4gICAgJi5mbHVpZCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbSAwO1xuXG4gICAgICAgICYuZ2FsbGVyeSB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAuY29sIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLmNlbnRlciB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAgICYuYm90dG9tIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgICAgICAmLnNtYWxsIHsgd2lkdGg6IDQwJTsgfVxuICAgICAgICAmLnJpZ2h0IHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gICAgICAgICYudG9wIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAgICYuYXJvdW5kIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XG5cbiAgICAgICAgICAgICYucmlnaHQgeyBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuICAgICAgICAgICAgJi5jZW50ZXIgeyBhbGlnbi1zZWxmOiBjZW50ZXI7fVxuICAgICAgICAgICAgJi5zbWFsbCB7IHdpZHRoOiA2MCU7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZ2FsbGVyeSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAuY29sIHsgd2lkdGg6IDgwJTsgfVxuICAgIH1cblxuICAgIC5vcmRlci0xIHsgb3JkZXI6IDE7IH1cbiAgICAub3JkZXItMiB7IG9yZGVyOiAyOyB9XG59XG5cbi5jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDU0MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AZWFjaCAkc3BhY2luZywgJHNpemUgaW4gJHNwYWNpbmdzIHtcbiAgICAubS0jeyRzcGFjaW5nfSB7IG1hcmdpbjogJHNpemUgIWltcG9ydGFudDsgfVxuICAgIC5tdC0jeyRzcGFjaW5nfSB7IG1hcmdpbi10b3A6ICRzaXplICFpbXBvcnRhbnQ7IH1cbiAgICAubWItI3skc3BhY2luZ30geyBtYXJnaW4tYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50OyB9XG4gICAgLm1sLSN7JHNwYWNpbmd9IHsgbWFyZ2luLWxlZnQ6ICRzaXplICFpbXBvcnRhbnQ7IH1cbiAgICAubXItI3skc3BhY2luZ30geyBtYXJnaW4tcmlnaHQ6ICRzaXplICFpbXBvcnRhbnQ7IH1cbiAgICAucC0jeyRzcGFjaW5nfSB7IHBhZGRpbmc6ICRzaXplICFpbXBvcnRhbnQ7IH1cbiAgICAucHQtI3skc3BhY2luZ30geyBwYWRkaW5nLXRvcDogJHNpemUgIWltcG9ydGFudDsgfVxuICAgIC5wYi0jeyRzcGFjaW5nfSB7IHBhZGRpbmctYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50OyB9XG4gICAgLnBsLSN7JHNwYWNpbmd9IHsgcGFkZGluZy1sZWZ0OiAkc2l6ZSAhaW1wb3J0YW50OyB9XG4gICAgLnByLSN7JHNwYWNpbmd9IHsgcGFkZGluZy1yaWdodDogJHNpemUgIWltcG9ydGFudDsgfVxufVxuIiwiLnJvdy5ob21lLWxvZ28ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIG1heC13aWR0aDogNTUwcHg7XG4gICAgICAgIHdpZHRoOiA4MCU7XG5cbiAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJuYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAmLmRlc2t0b3Age1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3gtc2hhZG93OiA1cHggMCAxNXB4ICRibHVlO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LWhlaWdodDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcblxuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KDVweCwgJGJsdWUsIDIwKTtcblxuICAgICAgICA+ICogeyBtYXJnaW46IDAgMCAwIDQwcHg7IH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyOjphZnRlcixcbiAgICAgICAgICAgICYuYWN0aXZlOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubG9nb3V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkYmx1ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVzcG9uc2l2ZSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHdoaXRlLCAwLjkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJGJsdWU7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMS4ycmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTMwcHg7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgID4gaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAqIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR3YWxiYXVtO1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGhlaWdodDogNDAlO1xuXG4gICAgICAgICAgICA+IGltZyB7IGhlaWdodDogMTAwJTsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LWJ0biB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDEwMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLWluLW91dDtcblxuICAgICYtYnVyZ2VyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoOSwgMjMsIDY1KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLWluLW91dDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiKDksIDIzLCA2NSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCk7IH1cbiAgICAgICAgJjo6YWZ0ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7IH1cbiAgICB9XG5cbiAgICAmLm9wZW4ge1xuICAgICAgICAubmF2LWJ0bi1idXJnZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoMzBweCwgLTMwcHgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYig5LCAyMywgNjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMzBweCwgMzBweCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiKDksIDIzLCA2NSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gYm94LXNoYWRvdygkc2l6ZVksICRjb2xvciwgJGFscGhhLCAkc2l6ZVggOiAwLCAkYmx1ciA6IDE1cHgsKSB7XG4gICAgJHJnYmE6IHJnYmEoJGNvbG9yLCAkYWxwaGEvMTAwKTtcbiAgICBib3gtc2hhZG93OiAkc2l6ZVkgJHNpemVYICRibHVyICRyZ2JhO1xufSIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdCwgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuXG4vLyBTQ1NTIFJGUyBtaXhpblxuLy9cbi8vIEF1dG9tYXRlZCByZXNwb25zaXZlIHZhbHVlcyBmb3IgZm9udCBzaXplcywgcGFkZGluZ3MsIG1hcmdpbnMgYW5kIG11Y2ggbW9yZVxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSB2YWx1ZVxuJHJmcy1iYXNlLXZhbHVlOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJmcy11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLXVuaXQgIT0gcmVtIGFuZCAkcmZzLXVuaXQgIT0gcHgge1xuICBAZXJyb3IgXCJgI3skcmZzLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIHZhbHVlcyBzdGFydCBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuQGlmICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHB4IGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBlbSBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcmVtIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIFJlc2l6ZSB2YWx1ZXMgYmFzZWQgb24gc2NyZWVuIGhlaWdodCBhbmQgd2lkdGhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFjdG9yIG9mIGRlY3JlYXNlXG4kcmZzLWZhY3RvcjogMTAgIWRlZmF1bHQ7XG5cbkBpZiB0eXBlLW9mKCRyZnMtZmFjdG9yKSAhPSBudW1iZXIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBNb2RlLiBQb3NzaWJpbGl0aWVzOiBcIm1pbi1tZWRpYS1xdWVyeVwiLCBcIm1heC1tZWRpYS1xdWVyeVwiXG4kcmZzLW1vZGU6IG1pbi1tZWRpYS1xdWVyeSAhZGVmYXVsdDtcblxuLy8gR2VuZXJhdGUgZW5hYmxlIG9yIGRpc2FibGUgY2xhc3Nlcy4gUG9zc2liaWxpdGllczogZmFsc2UsIFwiZW5hYmxlXCIgb3IgXCJkaXNhYmxlXCJcbiRyZnMtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAxIHJlbSA9ICRyZnMtcmVtLXZhbHVlIHB4XG4kcmZzLXJlbS12YWx1ZTogMTYgIWRlZmF1bHQ7XG5cbi8vIFNhZmFyaSBpZnJhbWUgcmVzaXplIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2lzc3Vlcy8xNFxuJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZSBSRlMgYnkgc2V0dGluZyAkZW5hYmxlLXJmcyB0byBmYWxzZVxuJGVuYWJsZS1yZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIENhY2hlICRyZnMtYmFzZS12YWx1ZSB1bml0XG4kcmZzLWJhc2UtdmFsdWUtdW5pdDogdW5pdCgkcmZzLWJhc2UtdmFsdWUpO1xuXG4vLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRyZnMtYmFzZS12YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcHgge1xuICAkcmZzLWJhc2UtdmFsdWU6ICRyZnMtYmFzZS12YWx1ZSAvICgkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSByZW0ge1xuICAkcmZzLWJhc2UtdmFsdWU6ICRyZnMtYmFzZS12YWx1ZSAvICgkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSAvICRyZnMtcmVtLXZhbHVlKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHB4IHtcbiAgJHJmcy1icmVha3BvaW50OiAkcmZzLWJyZWFrcG9pbnQgLyAoJHJmcy1icmVha3BvaW50ICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcmVtIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBDYWxjdWxhdGUgdGhlIG1lZGlhIHF1ZXJ5IHZhbHVlXG4kcmZzLW1xLXZhbHVlOiBpZigkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCwgI3skcmZzLWJyZWFrcG9pbnR9cHgsICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuJHJmcy1tcS1wcm9wZXJ0eS13aWR0aDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LXdpZHRoLCBtaW4td2lkdGgpO1xuJHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHQ6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC1oZWlnaHQsIG1pbi1oZWlnaHQpO1xuXG4vLyBJbnRlcm5hbCBtaXhpbiB1c2VkIHRvIGRldGVybWluZSB3aGljaCBtZWRpYSBxdWVyeSBuZWVkcyB0byBiZSB1c2VkXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeSB7XG4gIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSwgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIGFuZCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZGlzYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1ydWxlIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSwgd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBwcm9wZXJ0eVxuICAgICYsXG4gICAgLmRpc2FibGUtcmZzICYsXG4gICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgIC5lbmFibGUtcmZzICYsXG4gICAgJi5lbmFibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGVuYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcblxuICBAaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkge1xuICAgICAgLmVuYWJsZS1yZnMgJixcbiAgICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgZm9ybWF0dGVkIG5vbi1yZXNwb25zaXZlIHZhbHVlXG5AZnVuY3Rpb24gcmZzLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogJyc7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyAnIDAnO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAjeyR2YWx1ZSAvICgkdmFsdWUgKiAwICsgJHJmcy1yZW0tdmFsdWUpfXJlbSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICR1bml0ID09IHJlbSB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcHggaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7JHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSAqICRyZnMtcmVtLXZhbHVlfXB4LCAkdmFsdWUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgICAgJHZhbDogJHZhbCArICcgJyArICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHJlc3BvbnNpdmUgdmFsdWUgY2FsY3VsYXRlZCBieSBSRlNcbkBmdW5jdGlvbiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiAnJztcblxuICAvLyBMb29wIG92ZXIgZWFjaCB2YWx1ZSBhbmQgY2FsY3VsYXRlIHZhbHVlXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgJHZhbHVlID09IDAge1xuICAgICAgJHZhbDogJHZhbCArICcgMCc7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgQGlmIG5vdCAkdW5pdCBvciAkdW5pdCAhPSBweCBhbmQgJHVuaXQgIT0gcmVtIHtcbiAgICAgICAgJHZhbDogJHZhbCArICcgJyArICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmUgdW5pdCBmcm9tICR2YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG4gICAgICAgICR2YWx1ZTogJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyBpZigkdW5pdCA9PSBweCwgMSwgMSAvICRyZnMtcmVtLXZhbHVlKSk7XG5cbiAgICAgICAgLy8gT25seSBhZGQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgQGlmIGFicygkdmFsdWUpIDw9ICRyZnMtYmFzZS12YWx1ZSBvciBub3QgJGVuYWJsZS1yZnMge1xuICAgICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyAgaWYoJHJmcy11bml0ID09IHJlbSwgI3skdmFsdWUgLyAkcmZzLXJlbS12YWx1ZX1yZW0sICN7JHZhbHVlfXB4KTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLW1pbjogJHJmcy1iYXNlLXZhbHVlICsgKGFicygkdmFsdWUpIC0gJHJmcy1iYXNlLXZhbHVlKSAvICRyZnMtZmFjdG9yO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkdmFsdWUgYW5kIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLWRpZmY6IGFicygkdmFsdWUpIC0gJHZhbHVlLW1pbjtcblxuICAgICAgICAgIC8vIEJhc2UgdmFsdWUgZm9ybWF0dGluZ1xuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtdW5pdCA9PSByZW0sICN7JHZhbHVlLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skdmFsdWUtbWlufXB4KTtcblxuICAgICAgICAgIC8vIFVzZSBuZWdhdGl2ZSB2YWx1ZSBpZiBuZWVkZWRcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkdmFsdWUgPCAwLCAtJG1pbi13aWR0aCwgJG1pbi13aWR0aCk7XG5cbiAgICAgICAgICAvLyBVc2UgYHZtaW5gIGlmIHR3by1kaW1lbnNpb25hbCBpcyBlbmFibGVkXG4gICAgICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAgICAgJHZhcmlhYmxlLXdpZHRoOiAjeyR2YWx1ZS1kaWZmICogMTAwIC8gJHJmcy1icmVha3BvaW50fSN7JHZhcmlhYmxlLXVuaXR9O1xuXG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSBjYWxjdWxhdGVkIHZhbHVlXG4gICAgICAgICAgJHZhbDogJHZhbCArICcgY2FsYygnICsgJG1pbi13aWR0aCArIGlmKCR2YWx1ZSA8IDAsICcgLSAnLCAnICsgJykgKyAkdmFyaWFibGUtd2lkdGggKyAnKSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIFJGUyBtaXhpblxuQG1peGluIHJmcygkdmFsdWVzLCAkcHJvcGVydHk6IGZvbnQtc2l6ZSkge1xuICBAaWYgJHZhbHVlcyAhPSBudWxsIHtcbiAgICAkdmFsOiByZnMtdmFsdWUoJHZhbHVlcyk7XG4gICAgJGZsdWlkVmFsOiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcyk7XG5cbiAgICAvLyBEbyBub3QgcHJpbnQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHJlc3BvbnNpdmUgJiBub24tcmVzcG9uc2l2ZSB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgQGlmICR2YWwgPT0gJGZsdWlkVmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWRWYWwpO1xuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkZmx1aWRWYWwsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTaG9ydGhhbmQgaGVscGVyIG1peGluc1xuQG1peGluIGZvbnQtc2l6ZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nKTtcbn1cblxuQG1peGluIHBhZGRpbmctdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXRvcCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXJpZ2h0KTtcbn1cblxuQG1peGluIHBhZGRpbmctYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctbGVmdCk7XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbik7XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tdG9wKTtcbn1cblxuQG1peGluIG1hcmdpbi1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXJpZ2h0KTtcbn1cblxuQG1peGluIG1hcmdpbi1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1ib3R0b20pO1xufVxuXG5AbWl4aW4gbWFyZ2luLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1sZWZ0KTtcbn1cbiIsImZvb3RlciB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOHJlbSk7XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbjogMTVweCAwO1xuXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyX19zb2NpYWwge1xuICAgICAgICBhIHsgYm9yZGVyOiBub25lOyB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCxcbiAgICBhLFxuICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZkZjdlOTtcbiAgICB9XG5cbiAgICBhIHsgZm9udC1mYW1pbHk6ICR3YWxiYXVtOyB9XG5cbiAgICAubWVudGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaXRhbGljO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuYm9va3NoZWxmIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICB3aWR0aDogOTAlO1xuXG4gICAgJi5sYXJnZSB7IG1heC13aWR0aDogNDAwcHg7IH1cbiAgICAmLnNtYWxsIHsgbWF4LXdpZHRoOiAyMDBweDsgfVxuXG4gICAgJl9fdG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYuYmV0d2VlbiB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgICAmLmFyb3VuZCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gICAgICAgICYucmlnaHQgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDI1cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgaGVpZ2h0OiAkYm9vay13aWR0aCArIHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJvb2std2lkdGggKyBweDtcbiAgICB9XG5cbiAgICAmLm1hbnVzY3JpdHMtcmVzcG9uc2l2ZSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLm1hbnVzY3JpdHMtZGVza3RvcCB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLmJvb2tzIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAuYm9vayB7XG4gICAgICAgIHdpZHRoOiAkYm9vay13aWR0aCArIHB4O1xuICAgICAgICBoZWlnaHQ6ICRib29rLWhlaWdodCArIHB4O1xuICAgICAgICBtYXJnaW46IDAgKCRib29rLW1hcmdpbiArIHB4KSAwIDA7XG5cbiAgICAgICAgJi5zbWFsbCB7IGhlaWdodDogJGJvb2stc21hbGwgKyBweDsgfVxuXG4gICAgICAgICYuZmFsbC5sZWZ0IHsgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpIHRyYW5zbGF0ZVgoNHB4KTsgfVxuICAgICAgICAmLmZhbGwucmlnaHQgeyB0cmFuc2Zvcm06IHJvdGF0ZSg4ZGVnKSB0cmFuc2xhdGVYKC00cHgpOyB9XG4gICAgfVxuXG4gICAgJi5ob3Jpem9udGFsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5ib29rIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYm9vay1oZWlnaHQgKyBweDtcbiAgICAgICAgICAgIGhlaWdodDogJGJvb2std2lkdGggKyBweDtcbiAgICAgICAgICAgIG1hcmdpbjogKCRib29rLW1hcmdpbiArIHB4KSAwIDAgMDtcblxuICAgICAgICAgICAgJi5zbWFsbCB7IHdpZHRoOiAkYm9vay1zbWFsbCArIHB4OyB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZm9ybSB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA4NTBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGgzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRibHVlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkd2FsYmF1bTtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgfVxuXG4gICAgJi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOHJlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgICA+IGRpdiB7IGZsZXgtZ3JvdzogMTsgfVxuXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHsgYm9yZGVyOiAwOyBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJGJsdWU7IH1cbiAgICAgICAgICAgIHRleHRhcmVhIHsgYm9yZGVyOiBzb2xpZCAxcHggJGJsdWU7IH1cblxuICAgICAgICAgICAgLmNrZV9lZGl0YWJsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmVndWxhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYmlvZ3JhcGh5LFxuICAgICAgICAmLm1lc3NhZ2Uge1xuICAgICAgICAgICAgPiBkaXYgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tZXNzYWdlIHtcbiAgICAgICAgICAgIHRleHRhcmVhIHsgaGVpZ2h0OiAxODBweDsgfVxuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgICAgIGxhYmVsIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14czsgfVxuICAgICAgICAgICAgICAgIHRleHRhcmVhIHsgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaW1hZ2VmaWxlIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBtYXJnaW46IDE1cHggMTVweCAwIGF1dG87XG5cbiAgICAgICAgICAgID4gZGl2IHsgcGFkZGluZzogMDsgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC4xcHg7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFweDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlbGVjdCB7XG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgwLjhyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1zdWJtaXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTVweDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJGJsdWU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGxpbmVhciwgY29sb3IgMC4zcyBsaW5lYXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMXJlbSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLW1lc3NhZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOXJlbSk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jb250YWN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1tO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxcmVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubG9naW4ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRibHVlO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR3YWxiYXVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgaGVpZ2h0OiA4MCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXB0Y2hhIHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkYmx1ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgI0V4YW1wbGVDYXB0Y2hhVXNlclJlZ2lzdHJhdGlvbl9DYXB0Y2hhRGl2IHtcbiAgICAgICAgICAgIG1hcmdpbjogMjVweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmJpb19pbWcge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gICAgfVxufVxuIiwiLnJvdyB7XG4gICAgLmdhbGxlcnkge1xuICAgICAgICAmLWZpbHRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0NTBweDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC40cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1zaXplIDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygtMnB4LCAkYmx1ZSwgMzUsIDJweCwgMTVweCk7XG5cbiAgICAgICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFkbWluIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIC5hZG1pbi1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweCAzMHB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAtNXB4IC01cHggMzBweCByZ2JhKCRibHVlLCAwLjIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPiBmb3JtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGJsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDVweCAtNXB4IDMwcHggcmdiYSgkYmx1ZSwgMC4yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgID4gYSB7IGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgID4gZGl2IHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coLTJweCwgJGJsdWUsIDU1LCAycHgsIDIwcHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtZWxlbWVudCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXh4cztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4teHM7XG5cbiAgICAgICAgICAgID4gaDMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teHM7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxNXB4IGF1dG8gMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYm9vayB7XG4gICAgICAgICAgICAgICAgLmdhbGxlcnktbGluay5hZG1pbiB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjUwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDI1cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgPiAqIHsgY29sb3I6ICR3aGl0ZTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IGgzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTVweCBhdXRvIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWRtaW4tbmV3IHtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWJvb2tzaGVsZiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9wdWJsaWMvaW1hZ2VzL2ljb24vYm9va3NoZWxmLmpwZycpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWFkbWluLW5ldyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjRzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgd2lkdGg6IDYwcHg7XG5cbiAgICAgICAgICAgICY6aG92ZXIgeyBAaW5jbHVkZSBib3gtc2hhZG93KC0ycHgsICRibHVlLCAzNSwgMnB4LCAxMHB4KTsgfVxuXG4gICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpIHRyYW5zbGF0ZVgoMXB4KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoNC4wNTJyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jZ2FsbGVyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi1kZXRhaWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbSAkbWFyZ2luLXhzICRtYXJnaW4tcztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjRzIGxpbmVhcjtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICB6LWluZGV4OiAxMDI7XG5cbiAgICAgICAgJi5jbG9zZWQgeyByaWdodDogLTEwMHZ3OyB9XG5cbiAgICAgICAgLmdhbGxlcnktaW5mb3Mge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRtYXJnaW4teHMgMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi52aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYXV0aG9yLWJvb2tzLFxuICAgICAgICAuY29sbGFib3JhdG9yLWxpbmsge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuNmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hdXRob3ItYm9va3MgeyBsaTo6YmVmb3JlIHsgY29udGVudDogXCLinLpcIjsgfSB9XG4gICAgICAgIC5jb2xsYWJvcmF0b3ItbGluayB7IGxpOjpiZWZvcmUgeyBjb250ZW50OiBcIuKculwiOyB9IH1cbiAgICB9XG5cbiAgICAmLWRldGFpbC1tYXNrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDksIDIzLCA2NSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgfVxuXG4gICAgJi1jbG9zZSB7XG4gICAgICAgIHBhZGRpbmc6ICRtYXJnaW4teHhzO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBob3RvLWNyZWRpdHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi14cztcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOHJlbSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIsKpIFwiO1xuICAgICAgICBjb2xvcjogJGdvbGQ7XG4gICAgfVxufVxuIiwiLmg1IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiIsIi5lcnJvci1wYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBcbiAgICAmLW1lc3NhZ2Uge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cucmlnaHQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbn1cbiIsIi8vIFJFU1BPTlNJVkUgRlJPTlQtRU5EIEZPUiBQSE9ORSBMQU5EU0NBUEUgKD4gNTc2cHgpXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAgIC8vIEhPTUUgTE9HT1xuICAgIC5yb3cuaG9tZS1sb2dvIHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDU0MHB4O1xuICAgIH1cbn1cbiIsIi8vIFJFU1BPTlNJVkUgRlJPTlQtRU5EIEZPUiBUQUJMRVQgUE9SVFJBSVQgKD4gNzY4cHgpXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgICAmLmdhbGxlcnkge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgICAgLmNvbCB7IHdpZHRoOiA1MCU7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hdXRob3Ige1xuICAgICAgICAgICAgPiBhIHsgaGVpZ2h0OiA0MDBweDsgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gUkVTUE9OU0lWRSBGUk9OVC1FTkQgRk9SIFRBQkxFVCBMQU5EU0NBUEUgKD4gOTkycHgpXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC8vIE1BSU5cbiAgICBtYWluIHsgcGFkZGluZy10b3A6ICRuYXYtaGVpZ2h0OyB9XG5cbiAgICAvLyBNRU5VXG4gICAgbmF2LmRlc2t0b3AgeyBkaXNwbGF5OiBmbGV4OyB9XG4gICAgbmF2LnJlc3BvbnNpdmUgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgLm5hdi1idG4geyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAvLyBGT09URVJcbiAgICBmb290ZXIge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQXG4gICAgcCB7IGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4gICAgLy8gR1JJRFxuICAgIC5yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtICN7JG5hdi1oZWlnaHR9KTtcblxuICAgICAgICAmLmdhbGxlcnkgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4gICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWluLWhlaWdodDogY2FsYyg3MHZoIC0gI3skbmF2LWhlaWdodH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mbHVpZCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICAmLmdhbGxlcnkgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuZ2FsbGVyeSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC5jb2wgeyB3aWR0aDogMzMuMzMzMzMzMzMzJTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmdhbGxlcnktbGluayB7XG4gICAgICAgICAgICA+IGEgeyBoZWlnaHQ6IDQwMHB4OyB9XG4gICAgICAgIH1cblxuICAgICAgICAuZ2FsbGVyeS1ib29rc2hlbGYgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAub3JkZXItMSB7IG9yZGVyOiBpbml0aWFsOyB9XG4gICAgICAgIC5vcmRlci0yIHsgb3JkZXI6IGluaXRpYWw7IH1cbiAgICAgICAgLm9yZGVyLTMgeyBvcmRlcjogaW5pdGlhbDsgfVxuICAgIH1cblxuICAgIC5jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICAgIH1cblxuICAgIC8vIEJPT0tTSEVMRlxuICAgIC5ib29rc2hlbGYge1xuICAgICAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgICAgICB3aWR0aDogOTAlO1xuXG4gICAgICAgICYubGFyZ2UgeyBtYXgtd2lkdGg6IDU1MHB4OyB9XG4gICAgICAgICYuc21hbGwgeyBtYXgtd2lkdGg6IDI1MHB4OyB9XG5cbiAgICAgICAgJl9fdG9wIHsgICAgXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDI1cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3R0b20ge1xuICAgICAgICAgICAgaGVpZ2h0OiAkYm9vay13aWR0aC1kZXNrICsgcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkYm9vay13aWR0aC1kZXNrICsgcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hbnVzY3JpdHMtcmVzcG9uc2l2ZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgJi5tYW51c2NyaXRzLWRlc2t0b3AgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgIH1cblxuICAgIC5ib29rcyB7XG4gICAgICAgIC5ib29rIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYm9vay13aWR0aC1kZXNrICsgcHg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRib29rLWhlaWdodC1kZXNrICsgcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgKCRib29rLW1hcmdpbi1kZXNrICsgcHgpIDAgMDtcblxuICAgICAgICAgICAgJi5zbWFsbCB7IGhlaWdodDogJGJvb2stc21hbGwtZGVzayArIHB4OyB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmhvcml6b250YWwge1xuICAgICAgICAgICAgLmJvb2sge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkYm9vay1oZWlnaHQtZGVzayArIHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGJvb2std2lkdGgtZGVzayArIHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogKCRib29rLW1hcmdpbi1kZXNrICsgcHgpIDAgMCAwO1xuXG4gICAgICAgICAgICAgICAgJi5zbWFsbCB7IHdpZHRoOiAkYm9vay1zbWFsbC1kZXNrICsgcHg7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNnYWxsZXJ5IHtcbiAgICAgICAgJi1kZXRhaWwge1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgICAgICAgIHdpZHRoOiA1NXZ3O1xuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygtNXB4LCAkYmx1ZSwgMjUsIDAsIDI1cHgpO1xuXG4gICAgICAgICAgICAmLmNsb3NlZCB7IHJpZ2h0OiAtNTV2dzsgfVxuXG4gICAgICAgICAgICBwIHsgZm9udC1zaXplOiAxcmVtOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybSB7XG4gICAgICAgIGZvcm0geyB3aWR0aDogODAlOyB9XG4gICAgICAgICYtZ3JvdXAge1xuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgICAgIGxhYmVsIHsgbWluLXdpZHRoOiAxNTBweDsgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm1lc3NhZ2Uge1xuICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXN1Ym1pdCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDAuOHJlbSk7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jb250YWN0IHsgbWFyZ2luLXRvcDogMDsgfVxuXG4gICAgICAgIC5jYXB0Y2hhIHtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFJFU1BPTlNJVkUgRlJPTlQtRU5EIEZPUiBERVNLVE9QICg+IDEyMDBweClcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5yb3cge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgIC5jb2wge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuZ2FsbGVyeSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC5jb2wgeyB3aWR0aDogMjUlOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMTgwcHg7XG4gICAgfVxuXG4gICAgI2dhbGxlcnkge1xuICAgICAgICAmLWRldGFpbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDY1MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDUwdnc7XG5cbiAgICAgICAgICAgICYuY2xvc2VkIHsgcmlnaHQ6IC01MHZ3OyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm9va3NoZWxmIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgXG4gICAgICAgICYubGFyZ2UgeyBtYXgtd2lkdGg6IDU1MHB4OyB9XG4gICAgICAgICYuc21hbGwgeyBtYXgtd2lkdGg6IDI1MHB4OyB9XG4gICAgfVxuXG4gICAgcCB7IGZvbnQtc2l6ZTogMS4xNXJlbTsgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/