/* SASS VARIABLES */
/* WAS: 20201205 NALEX

@import url(https://fonts.googleapis.com/css?family=Poppins:400,300,500,600);
@import url(https://fonts.googleapis.com/css?family=Montserrat);
@import url(https://fonts.googleapis.com/css?family=Lato);

 */
@import url(https://fonts.googleapis.com/css?family=Poppins:400,300,500,600|Montserrat:300,400,500,600|Lato:300,400,500,600);
/* 20190422 NALEX STROLLER TRAFFIC */
.z-depth-1, .btn.btn-raised,
.btn-group.btn-raised, .btn.btn-floating,
.btn-group.btn-floating {
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }

.z-depth-1-half, .btn.btn-raised:hover,
.btn-group.btn-raised:hover, .btn.btn-floating:hover,
.btn-group.btn-floating:hover, .pricing-table.featured, .pricing-table:hover {
  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); }

.z-depth-2 {
  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); }

.z-depth-3 {
  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); }

.z-depth-4 {
  box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); }

.z-depth-5 {
  box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); }

body {
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important; }

body p,
html p {
  line-height: 1.42857; }

::selection {
  background: #E11383;
  color: #ffffff; }

::-moz-selection {
  background: #E11383;
  color: #ffffff; }

:focus {
  outline: none; }

a {
  text-decoration: none; }
  a:active, a:focus {
    text-decoration: none;
    outline: none; }

span.block {
  display: block; }

.no-margin {
  margin: 0; }

.no-margin-bottom {
  margin-bottom: 0; }

.no-border {
  border: 0; }

.no-border-radius {
  border-radius: 0; }

.no-padding {
  padding: 0; }

.no-shadow {
  box-shadow: 0; }

.full-width {
  width: 100%; }

.ui-section {
  margin-bottom: 60px; }

.section-header {
  font-weight: normal;
  font-size: 34px;
  line-height: 40px;
  color: #E11383;
  margin: 30px 0; }

a.bg-primary {
  background-color: #E11383;
  color: #ffffff; }
  a.bg-primary:hover {
    background-color: #E11383;
    color: #ffffff; }

a.bg-success {
  background-color: #8BC34A;
  color: #ffffff; }
  a.bg-success:hover {
    background-color: #8BC34A;
    color: #ffffff; }

a.bg-info {
  background-color: #00BCD4;
  color: #ffffff; }
  a.bg-info:hover {
    background-color: #00BCD4;
    color: #ffffff; }

a.bg-warning {
  background-color: #FFCA28;
  color: #ffffff; }
  a.bg-warning:hover {
    background-color: #FFCA28;
    color: #ffffff; }

a.bg-danger {
  background-color: #F44336;
  color: #ffffff; }
  a.bg-danger:hover {
    background-color: #F44336;
    color: #ffffff; }

.bg-white {
  background-color: #fff;
  color: #3D4051; }
  .bg-white a {
    color: #3D4051; }
    .bg-white a:hover {
      color: #3D4051; }

.bg-body {
  background-color: #f3f3f3;
  color: #3D4051; }
  .bg-body a {
    color: #3D4051; }
    .bg-body a:hover {
      color: #3D4051; }

.bg-dark {
  background-color: #262B33;
  color: #ffffff; }
  .bg-dark a {
    color: #ffffff; }
    .bg-dark a:hover {
      color: #ffffff; }

.bg-dark-light {
  background-color: #3D4051;
  color: #ffffff; }
  .bg-dark-light a {
    color: #ffffff; }
    .bg-dark-light a:hover {
      color: #ffffff; }

.bg-black {
  background-color: #000;
  color: #ffffff; }
  .bg-black a {
    color: #ffffff; }
    .bg-black a:hover {
      color: #ffffff; }

.bg-primary {
  background-color: #E11383;
  color: #ffffff; }
  .bg-primary a {
    color: #ffffff; }
    .bg-primary a:hover {
      color: #ffffff; }

.bg-primary-light {
  background-color: #5C6BC0;
  color: #ffffff; }
  .bg-primary-light a {
    color: #ffffff; }
    .bg-primary-light a:hover {
      color: #ffffff; }

.bg-success {
  background-color: #8BC34A;
  color: #ffffff; }
  .bg-success a {
    color: #ffffff; }
    .bg-success a:hover {
      color: #ffffff; }

.bg-info {
  background-color: #00BCD4;
  color: #ffffff; }
  .bg-info a {
    color: #ffffff; }
    .bg-info a:hover {
      color: #ffffff; }

.bg-info-alt {
  background-color: #7E57C2;
  color: #ffffff; }
  .bg-info-alt a {
    color: #ffffff; }
    .bg-info-alt a:hover {
      color: #ffffff; }

.bg-warning {
  background-color: #FFCA28;
  color: #ffffff; }
  .bg-warning a {
    color: #ffffff; }
    .bg-warning a:hover {
      color: #ffffff; }

.bg-danger {
  background-color: #F44336;
  color: #ffffff; }
  .bg-danger a {
    color: #ffffff; }
    .bg-danger a:hover {
      color: #ffffff; }

.bg-dark {
  background-color: #262B33;
  color: #ffffff; }
  .bg-dark a {
    color: #ffffff; }
    .bg-dark a:hover {
      color: #ffffff; }

.bg-bright {
  background-color: #fafafa;
  color: #3D4051; }
  .bg-bright a {
    color: #3D4051; }
    .bg-bright a:hover {
      color: #3D4051; }

.bg-white {
  background-color: #ffffff;
  color: #3D4051; }
  .bg-white a {
    color: #3D4051; }
    .bg-white a:hover {
      color: #3D4051; }

.bg-facebook {
  background-color: #335397;
  color: #ffffff; }
  .bg-facebook a {
    color: #ffffff; }
    .bg-facebook a:hover {
      color: #ffffff; }

.bg-twitter {
  background-color: #00c7f7;
  color: #ffffff; }
  .bg-twitter a {
    color: #ffffff; }
    .bg-twitter a:hover {
      color: #ffffff; }

.bg-google-plus {
  background-color: #df4a32;
  color: #ffffff; }
  .bg-google-plus a {
    color: #ffffff; }
    .bg-google-plus a:hover {
      color: #ffffff; }

.page-container {
  max-width: 1170px;
  margin: auto; }

.blockquote-colored {
  border-left: 5px solid #E11383; }
  .blockquote-colored.pull-right {
    border-right: 5px solid #E11383;
    border-left: 0; }

.gradient-text {
  font-size: 150px;
  font-weight: 300;
  color: #E11383;
  background: -webkit-linear-gradient(92deg, #fb83fa, #00aced);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; }

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

.text-normal {
  font-size: 14px; }

.text-huge {
  font-size: 72px; }

.text-large {
  font-size: 50px; }

.size-h1 {
  font-size: 36px; }

.size-h2 {
  font-size: 30px; }

.size-h3 {
  font-size: 24px; }

.size-h4 {
  font-size: 20px; }

.text-thin {
  font-weight: 300; }

.text-ultralight {
  font-weight: 100; }

.color-primary,
a.color-primary {
  color: #E11383; }
  .color-primary:hover,
  a.color-primary:hover {
    color: #E11383; }

.color-success,
a.color-success {
  color: #8BC34A; }
  .color-success:hover,
  a.color-success:hover {
    color: #8BC34A; }

.color-info,
a.color-info {
  color: #00BCD4; }
  .color-info:hover,
  a.color-info:hover {
    color: #00BCD4; }

.color-info-alt,
a.color-info-alt {
  color: #7E57C2; }
  .color-info-alt:hover,
  a.color-info-alt:hover {
    color: #7E57C2; }

.color-warning,
a.color-warning {
  color: #FFCA28; }
  .color-warning:hover,
  a.color-warning:hover {
    color: #FFCA28; }

.color-danger,
a.color-danger {
  color: #F44336; }
  .color-danger:hover,
  a.color-danger:hover {
    color: #F44336; }

.color-dark,
a.color-dark {
  color: #262B33; }
  .color-dark:hover,
  a.color-dark:hover {
    color: #262B33; }

.color-reverse,
a.color-dark {
  color: #ffffff; }
  .color-reverse:hover,
  a.color-dark:hover {
    color: #ffffff; }

.color-gray-darker,
a.color-gray-darker {
  color: #6f6f6f; }
  .color-gray-darker:hover,
  a.color-gray-darker:hover {
    color: #6f6f6f; }

.color-gray-dark,
a.color-gray-dark {
  color: gray; }
  .color-gray-dark:hover,
  a.color-gray-dark:hover {
    color: gray; }

.color-gray,
a.color-gray {
  color: #a2a2a2; }
  .color-gray:hover,
  a.color-gray:hover {
    color: #a2a2a2; }

.color-gray-light,
a.color-gray-light {
  color: #c4c4c4; }
  .color-gray-light:hover,
  a.color-gray-light:hover {
    color: #c4c4c4; }

.color-gray-lighter,
a.color-gray-lighter {
  color: white; }
  .color-gray-lighter:hover,
  a.color-gray-lighter:hover {
    color: white; }

.dropcap,
.dropcap-square,
.dropcap-circle {
  display: block;
  float: left;
  font-weight: normal;
  line-height: 36px;
  margin-right: 6px;
  text-shadow: none; }

.dropcap {
  font-size: 3.1em; }

.dropcap-square,
.dropcap-circle {
  background-color: white;
  color: #3D4051;
  width: 36px;
  text-align: center; }

.dropcap-square {
  border-radius: 2px;
  font-size: 2.3em; }

.dropcap-circle {
  border-radius: 50%;
  font-size: 1.78em; }

.dropcap.colored {
  color: #E11383; }

.dropcap-square.colored,
.dropcap-circle.colored {
  background-color: #E11383;
  color: #ffffff; }

.ui-highlight {
  background-color: #262B33;
  color: #ffffff;
  border-radius: 2px;
  padding: 2px 5px; }
  .ui-highlight.colored {
    background-color: #E11383; }

.pull-in {
  margin: 0 -15px; }

.divider {
  display: block;
  margin-top: 15px;
  margin-bottom: 15px; }
  .divider.divider-dashed {
    border: 1px dashed #e2edeb; }
  .divider.divider-dotted {
    border: 1px dotted #e2edeb; }

.divider-sm {
  margin-top: 10px;
  margin-bottom: 10px; }

.divider-md {
  margin-top: 20px;
  margin-bottom: 20px; }

.divider-lg {
  margin-top: 30px;
  margin-bottom: 30px; }

.divider-xl {
  margin-top: 50px;
  margin-bottom: 50px; }

.space {
  display: inline;
  padding: 6px; }

.space-md {
  padding: 15px; }

.space-lg {
  padding: 25px; }

.hr-colored {
  border-color: #E11383; }

.table-dynamic .table-filters {
  margin: 10px 0;
  padding: 8px; }
  .table-dynamic .table-filters .flex-row {
    display: flex;
    align-items: center; }
    @media (max-width: 767px) {
      .table-dynamic .table-filters .flex-row {
        display: block; }
        .table-dynamic .table-filters .flex-row .category-block {
          margin-top: 8px; } }

.table-dynamic .filter-result-info {
  padding: 7px; }

.table-dynamic .table-bordered {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd; }
  .table-dynamic .table-bordered thead th {
    position: relative;
    padding: 0; }
    .table-dynamic .table-bordered thead th > .th {
      position: relative;
      padding: 8px 20px 8px 8px; }
    .table-dynamic .table-bordered thead th .glyphicon-chevron-up,
    .table-dynamic .table-bordered thead th .glyphicon-chevron-down {
      position: absolute;
      color: #999; }
      .table-dynamic .table-bordered thead th .glyphicon-chevron-up:hover,
      .table-dynamic .table-bordered thead th .glyphicon-chevron-down:hover {
        color: #E11383;
        cursor: pointer; }
      .table-dynamic .table-bordered thead th .glyphicon-chevron-up.active,
      .table-dynamic .table-bordered thead th .glyphicon-chevron-down.active {
        color: #E11383; }
    .table-dynamic .table-bordered thead th .fa-angle-up,
    .table-dynamic .table-bordered thead th .fa-angle-down {
      position: absolute;
      color: #999;
      font-size: 16px;
      font-weight: bold; }
      .table-dynamic .table-bordered thead th .fa-angle-up:hover,
      .table-dynamic .table-bordered thead th .fa-angle-down:hover {
        color: #E11383;
        cursor: pointer; }
      .table-dynamic .table-bordered thead th .fa-angle-up.active,
      .table-dynamic .table-bordered thead th .fa-angle-down.active {
        color: #E11383; }
    .table-dynamic .table-bordered thead th .glyphicon-chevron-up,
    .table-dynamic .table-bordered thead th .fa-angle-up {
      top: 4px;
      right: 5px; }
    .table-dynamic .table-bordered thead th .fa-angle-down {
      top: 18px;
      right: 5px; }
    .table-dynamic .table-bordered thead th .glyphicon-chevron-down {
      top: 18px;
      right: 6px; }

.table-dynamic .table-footer {
  margin: 10px 0;
  padding: 8px; }

.table-dynamic .page-num-info span {
  padding: 6px; }

.table-dynamic .pagination-container ul {
  margin: 0; }
  .table-dynamic .pagination-container ul li:hover {
    cursor: pointer; }

@media only screen and (max-width: 800px) {
  .table-flip-scroll {
    /* sort out borders */ }
    .table-flip-scroll .cf:after {
      visibility: hidden;
      display: block;
      font-size: 0;
      content: " ";
      clear: both;
      height: 0; }
    .table-flip-scroll * html .cf {
      zoom: 1; }
    .table-flip-scroll *:first-child + html .cf {
      zoom: 1; }
    .table-flip-scroll table {
      width: 100%;
      border-collapse: collapse;
      border-spacing: 0; }
    .table-flip-scroll th,
    .table-flip-scroll td {
      margin: 0;
      vertical-align: top; }
    .table-flip-scroll th {
      text-align: left; }
    .table-flip-scroll table {
      display: block;
      position: relative;
      width: 100%; }
    .table-flip-scroll thead {
      display: block;
      float: left; }
    .table-flip-scroll tbody {
      display: block;
      width: auto;
      position: relative;
      overflow-x: auto;
      white-space: nowrap; }
    .table-flip-scroll thead tr {
      display: block; }
    .table-flip-scroll .table > thead > tr > th:first-child {
      border-top: 1px solid #ddd; }
    .table-flip-scroll th {
      display: block;
      text-align: right; }
    .table-flip-scroll tbody tr {
      display: inline-block;
      vertical-align: top; }
    .table-flip-scroll td {
      display: block;
      min-height: 1.25em;
      text-align: left; }
    .table-flip-scroll th {
      border-bottom: 0;
      border-left: 0; }
    .table-flip-scroll td {
      border-left: 0;
      border-right: 0;
      border-bottom: 0; }
    .table-flip-scroll tbody tr {
      border-left: 1px solid #babcbf; }
    .table-flip-scroll th:last-child,
    .table-flip-scroll td:last-child {
      border-bottom: 1px solid #babcbf; } }

.ui-radio {
  position: relative;
  margin: 0 20px 10px 20px;
  font-size: 14px;
  line-height: 20px;
  height: 20px; }
  .ui-radio input[type="radio"] + span:hover {
    cursor: pointer; }
    .ui-radio input[type="radio"] + span:hover:before {
      border-color: #E11383; }
  .ui-radio input[type="radio"]:disabled + span:hover {
    cursor: not-allowed; }
    .ui-radio input[type="radio"]:disabled + span:hover:before {
      border-color: #ccc; }
  .ui-radio input[type="radio"] {
    display: none; }
  .ui-radio input[type="radio"] + span {
    padding-left: 10px;
    font-weight: normal; }
  .ui-radio input[type="radio"] + span:before {
    content: "";
    width: 20px;
    height: 20px;
    display: inline-block;
    vertical-align: middle;
    position: absolute;
    left: -20px;
    top: 0;
    background: white;
    border-radius: 50%;
    border: 2px solid #ccc;
    -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-radio input[type="radio"] + span:after {
    visibility: hidden;
    content: "";
    width: 10px;
    height: 10px;
    position: absolute;
    top: 5px;
    left: -15px;
    background-color: #E11383;
    border-radius: 50%;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-radio input[type="radio"]:disabled + span:before {
    opacity: .65;
    border: 2px solid #ccc;
    cursor: no-drop; }
  .ui-radio input[type="radio"]:checked + span:before {
    border-color: #E11383; }
  .ui-radio input[type="radio"]:checked + span:after {
    visibility: visible;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); }
  .ui-radio input[type="radio"]:disabled:checked + span:before {
    border-color: #ccc; }
  .ui-radio input[type="radio"]:disabled:checked + span:after {
    opacity: .65;
    cursor: no-drop;
    background-color: #ccc; }

.ui-checkbox {
  position: relative;
  margin: 0 20px 10px 20px;
  line-height: 20px;
  height: 20px; }
  .ui-checkbox input[type="checkbox"] + span:hover {
    cursor: pointer; }
    .ui-checkbox input[type="checkbox"] + span:hover:before {
      border-color: #E11383; }
  .ui-checkbox input[type="checkbox"]:disabled + span:hover {
    cursor: not-allowed; }
    .ui-checkbox input[type="checkbox"]:disabled + span:hover:before {
      border-color: #ccc; }
  .ui-checkbox input[type="checkbox"] {
    display: none; }
  .ui-checkbox input[type="checkbox"] + span {
    font-weight: normal; }
  .ui-checkbox input[type="checkbox"] + span:before {
    content: "";
    width: 18px;
    height: 18px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
    margin-left: -20px;
    background-color: transparent;
    border-radius: 2px;
    border: 2px solid #ccc;
    -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-checkbox input[type="checkbox"]:disabled + span:before {
    opacity: .65;
    border: 2px solid #ccc;
    cursor: no-drop; }
  .ui-checkbox input[type="checkbox"]:checked + span:before {
    border-color: #E11383; }
  .ui-checkbox input[type="checkbox"] + span:after {
    visibility: hidden;
    content: "";
    width: 8px;
    height: 8px;
    position: absolute;
    top: 7px;
    left: -15px;
    background-color: #E11383;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-checkbox input[type="checkbox"]:checked + span:after {
    visibility: visible;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); }
  .ui-checkbox input[type="checkbox"]:disabled:checked + span:before {
    opacity: .65;
    border: 2px solid #ccc; }
  .ui-checkbox input[type="checkbox"]:disabled:checked + span:after {
    opacity: .65;
    cursor: no-drop;
    background-color: #ccc; }

/*
@license textAngular
Author : Austin Anderson
License : 2013 MIT
Version 1.3.0

See README.md or https://github.com/fraywing/textAngular/wiki for requirements and use.
*/
body > input.ta-hidden-input {
  display: none; }

/* add generic styling for the editor */
.ui-editor {
  /* add the styling for the awesomness of the resizer */
  /* copy the popover code from bootstrap so this will work even without it */ }
  .ui-editor .btn-group {
    margin-bottom: 5px; }
  .ui-editor .ta-toolbar {
    margin: 0 0 10px; }
  .ui-editor.ta-root.focussed > .ta-scroll-window.form-control {
    border-color: #66afe9;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
  .ui-editor .ta-editor.ta-html, .ui-editor .ta-scroll-window.form-control {
    min-height: 300px;
    height: auto;
    overflow: auto;
    font-family: inherit;
    font-size: 100%; }
  .ui-editor .ta-scroll-window.form-control {
    position: relative;
    padding: 0; }
  .ui-editor .ta-scroll-window > .ta-bind {
    height: auto;
    min-height: 300px;
    padding: 6px 12px; }
  .ui-editor .ta-editor:focus {
    user-select: text; }
  .ui-editor .ta-resizer-handle-overlay {
    z-index: 100;
    position: absolute;
    display: none; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-info {
    position: absolute;
    bottom: 16px;
    right: 16px;
    border: 1px solid black;
    background-color: #FFF;
    padding: 0 4px;
    opacity: 0.7; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-background {
    position: absolute;
    bottom: 5px;
    right: 5px;
    left: 5px;
    top: 5px;
    border: 1px solid black;
    background-color: rgba(0, 0, 0, 0.2); }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-corner {
    width: 10px;
    height: 10px;
    position: absolute; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-corner-tl {
    top: 0;
    left: 0;
    border-left: 1px solid black;
    border-top: 1px solid black; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-corner-tr {
    top: 0;
    right: 0;
    border-right: 1px solid black;
    border-top: 1px solid black; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-corner-bl {
    bottom: 0;
    left: 0;
    border-left: 1px solid black;
    border-bottom: 1px solid black; }
  .ui-editor .ta-resizer-handle-overlay > .ta-resizer-handle-corner-br {
    bottom: 0;
    right: 0;
    border: 1px solid black;
    cursor: se-resize;
    background-color: white; }
  .ui-editor .popover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    display: none;
    max-width: 276px;
    padding: 1px;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857143;
    text-align: left;
    white-space: normal;
    background-color: #fff;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    border: 1px solid #ccc;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
  .ui-editor .popover.top {
    margin-top: -10px; }
  .ui-editor .popover.bottom {
    margin-top: 10px; }
  .ui-editor .popover-title {
    padding: 8px 14px;
    margin: 0;
    font-size: 14px;
    background-color: #f7f7f7;
    border-bottom: 1px solid #ebebeb;
    border-radius: 5px 5px 0 0; }
  .ui-editor .popover-content {
    padding: 9px 14px; }
  .ui-editor .popover > .arrow,
  .ui-editor .popover > .arrow:after {
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid; }
  .ui-editor .popover > .arrow {
    border-width: 11px; }
  .ui-editor .popover > .arrow:after {
    content: "";
    border-width: 10px; }
  .ui-editor .popover.top > .arrow {
    bottom: -11px;
    left: 50%;
    margin-left: -11px;
    border-top-color: #999;
    border-top-color: rgba(0, 0, 0, 0.25);
    border-bottom-width: 0; }
  .ui-editor .popover.top > .arrow:after {
    bottom: 1px;
    margin-left: -10px;
    content: " ";
    border-top-color: #fff;
    border-bottom-width: 0; }
  .ui-editor .popover.bottom > .arrow {
    top: -11px;
    left: 50%;
    margin-left: -11px;
    border-top-width: 0;
    border-bottom-color: #999;
    border-bottom-color: rgba(0, 0, 0, 0.25); }
  .ui-editor .popover.bottom > .arrow:after {
    top: 1px;
    margin-left: -10px;
    content: " ";
    border-top-width: 0;
    border-bottom-color: #fff; }

.ui-wizard-form .steps .done > a {
  box-shadow: none; }

md-input-container label {
  margin: 0; }

md-input-container textarea {
  overflow: auto; }

.form-control {
  border-width: 1px;
  box-shadow: none; }

.form-control:focus {
  border-color: #E11383;
  box-shadow: none; }

.form-group .col-sm-10 {
  position: relative; }
  .form-group .col-sm-10 .icon {
    position: absolute;
    right: 25px;
    top: 10px; }

.input-round {
  border-radius: 25px; }

input.input-primary {
  border-color: #E11383; }
  input.input-primary:focus {
    border-color: #E11383; }

input.input-info {
  border-color: #00BCD4; }
  input.input-info:focus {
    border-color: #00BCD4; }

input.input-success {
  border-color: #8BC34A; }
  input.input-success:focus {
    border-color: #8BC34A; }

input.input-warning {
  border-color: #FFCA28; }
  input.input-warning:focus {
    border-color: #FFCA28; }

input.input-danger {
  border-color: #F44336; }
  input.input-danger:focus {
    border-color: #F44336; }

.ui-select {
  position: relative;
  display: inline-block;
  margin: 0 0 2px 1.2%;
  width: auto;
  height: auto;
  border: 1px solid #CBD5DD;
  border-radius: 2px; }
  .ui-select > select {
    z-index: 99;
    display: block;
    position: relative;
    padding: 10px 15px 10px 10px;
    min-width: 200px;
    width: 120%;
    border: none;
    outline: none;
    background: transparent;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: bold;
    text-indent: 0.01px;
    text-overflow: '';
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none; }
  .ui-select select::-ms-expand {
    display: none; }
  .ui-select:after {
    z-index: 0;
    content: "";
    position: absolute;
    right: 8%;
    top: 50%;
    color: #CBD5DD;
    width: 0;
    margin-top: -3px;
    height: 0;
    border-top: 6px solid;
    border-right: 6px solid transparent;
    border-left: 6px solid transparent;
    pointer-events: none; }

/* Show only the native arrow */
@-moz-document url-prefix() {
  .ui-select {
    overflow: hidden; }
  .ui-select select {
    width: 120%;
    width: -moz-calc(100% + 3em);
    width: calc(100% + em); } }

/* Firefox focus has odd artifacts around the text, this kills that. See https://developer.mozilla.org/en-US/docs/Web/CSS/:-moz-focusring */
.ui-select select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000; }

.form-validation .ng-valid.ng-dirty {
  border-color: #8BC34A; }

.form-validation .ng-invalid.ng-dirty {
  border-color: #F44336; }

.form-validation md-input-container > md-icon {
  font-size: 20px;
  line-height: 30px;
  color: #3D4051; }

.form-validation md-input-container:not(.md-input-invalid).md-input-has-value > md-icon {
  color: #8BC34A; }

.form-validation md-input-container.md-input-invalid > md-icon {
  color: #F44336; }

.btn-info-alt {
  color: #fff;
  background-color: #7E57C2;
  border-color: #7E57C2; }
  .btn-info-alt:focus, .btn-info-alt.focus {
    color: #fff;
    background-color: #643da9;
    border-color: #432971; }
  .btn-info-alt:hover {
    color: #fff;
    background-color: #643da9;
    border-color: #603ba1; }
  .btn-info-alt:active, .btn-info-alt.active,
  .open > .btn-info-alt.dropdown-toggle {
    color: #fff;
    background-color: #643da9;
    border-color: #603ba1; }
    .btn-info-alt:active:hover, .btn-info-alt:active:focus, .btn-info-alt:active.focus, .btn-info-alt.active:hover, .btn-info-alt.active:focus, .btn-info-alt.active.focus,
    .open > .btn-info-alt.dropdown-toggle:hover,
    .open > .btn-info-alt.dropdown-toggle:focus,
    .open > .btn-info-alt.dropdown-toggle.focus {
      color: #fff;
      background-color: #55348f;
      border-color: #432971; }
  .btn-info-alt:active, .btn-info-alt.active,
  .open > .btn-info-alt.dropdown-toggle {
    background-image: none; }
  .btn-info-alt.disabled:hover, .btn-info-alt.disabled:focus, .btn-info-alt.disabled.focus, .btn-info-alt[disabled]:hover, .btn-info-alt[disabled]:focus, .btn-info-alt[disabled].focus,
  fieldset[disabled] .btn-info-alt:hover,
  fieldset[disabled] .btn-info-alt:focus,
  fieldset[disabled] .btn-info-alt.focus {
    background-color: #7E57C2;
    border-color: #7E57C2; }
  .btn-info-alt .badge {
    color: #7E57C2;
    background-color: #fff; }

.btn-dark {
  color: #fff;
  background-color: #262B33;
  border-color: #262B33; }
  .btn-dark:focus, .btn-dark.focus {
    color: #fff;
    background-color: #101216;
    border-color: black; }
  .btn-dark:hover {
    color: #fff;
    background-color: #101216;
    border-color: #0c0d10; }
  .btn-dark:active, .btn-dark.active,
  .open > .btn-dark.dropdown-toggle {
    color: #fff;
    background-color: #101216;
    border-color: #0c0d10; }
    .btn-dark:active:hover, .btn-dark:active:focus, .btn-dark:active.focus, .btn-dark.active:hover, .btn-dark.active:focus, .btn-dark.active.focus,
    .open > .btn-dark.dropdown-toggle:hover,
    .open > .btn-dark.dropdown-toggle:focus,
    .open > .btn-dark.dropdown-toggle.focus {
      color: #fff;
      background-color: #010101;
      border-color: black; }
  .btn-dark:active, .btn-dark.active,
  .open > .btn-dark.dropdown-toggle {
    background-image: none; }
  .btn-dark.disabled:hover, .btn-dark.disabled:focus, .btn-dark.disabled.focus, .btn-dark[disabled]:hover, .btn-dark[disabled]:focus, .btn-dark[disabled].focus,
  fieldset[disabled] .btn-dark:hover,
  fieldset[disabled] .btn-dark:focus,
  fieldset[disabled] .btn-dark.focus {
    background-color: #262B33;
    border-color: #262B33; }
  .btn-dark .badge {
    color: #262B33;
    background-color: #fff; }

.btn-line-default {
  color: #3D4051;
  background-color: transparent;
  border-color: #fafafa; }
  .btn-line-default:hover, .btn-line-default:focus, .btn-line-default:active, .btn-line-default.active {
    color: #3D4051;
    background-color: #fafafa; }
  .open .btn-line-default.dropdown-toggle {
    color: #3D4051;
    background-color: #fafafa; }

.btn-line-primary {
  color: #3D4051;
  background-color: transparent;
  border-color: #E11383; }
  .btn-line-primary:hover, .btn-line-primary:focus, .btn-line-primary:active, .btn-line-primary.active {
    color: #fff;
    background-color: #E11383; }
  .open .btn-line-primary.dropdown-toggle {
    color: #fff;
    background-color: #E11383; }

.btn-line-success {
  color: #3D4051;
  background-color: transparent;
  border-color: #8BC34A; }
  .btn-line-success:hover, .btn-line-success:focus, .btn-line-success:active, .btn-line-success.active {
    color: #fff;
    background-color: #8BC34A; }
  .open .btn-line-success.dropdown-toggle {
    color: #fff;
    background-color: #8BC34A; }

.btn-line-info {
  color: #3D4051;
  background-color: transparent;
  border-color: #00BCD4; }
  .btn-line-info:hover, .btn-line-info:focus, .btn-line-info:active, .btn-line-info.active {
    color: #fff;
    background-color: #00BCD4; }
  .open .btn-line-info.dropdown-toggle {
    color: #fff;
    background-color: #00BCD4; }

.btn-line-warning {
  color: #3D4051;
  background-color: transparent;
  border-color: #FFCA28; }
  .btn-line-warning:hover, .btn-line-warning:focus, .btn-line-warning:active, .btn-line-warning.active {
    color: #fff;
    background-color: #FFCA28; }
  .open .btn-line-warning.dropdown-toggle {
    color: #fff;
    background-color: #FFCA28; }

.btn-line-danger {
  color: #3D4051;
  background-color: transparent;
  border-color: #F44336; }
  .btn-line-danger:hover, .btn-line-danger:focus, .btn-line-danger:active, .btn-line-danger.active {
    color: #fff;
    background-color: #F44336; }
  .open .btn-line-danger.dropdown-toggle {
    color: #fff;
    background-color: #F44336; }

.btn-line-dark {
  color: #3D4051;
  background-color: transparent;
  border-color: #262B33; }
  .btn-line-dark:hover, .btn-line-dark:focus, .btn-line-dark:active, .btn-line-dark.active {
    color: #fff;
    background-color: #262B33; }
  .open .btn-line-dark.dropdown-toggle {
    color: #fff;
    background-color: #262B33; }

.btn-w-xs {
  min-width: 80px; }

.btn-w-sm {
  min-width: 100px; }

.btn-w-md {
  min-width: 135px; }

.btn-w-lg {
  min-width: 160px; }

.btn-round {
  border-radius: 2em; }

.btn-gap {
  margin: 5px; }

.btn-gap-h {
  margin: 0 5px; }

.btn-gap-v {
  margin: 0 0 5px; }

.btn.btn-raised,
.btn-group.btn-raised {
  text-transform: uppercase;
  -webkit-transition: 0.25s ease-out;
  -moz-transition: 0.25s ease-out;
  transition: 0.25s ease-out; }
  .btn.btn-raised:hover, .btn.btn-raised:focus, .btn.btn-raised:active,
  .btn-group.btn-raised:hover,
  .btn-group.btn-raised:focus,
  .btn-group.btn-raised:active {
    outline: none; }
  .btn.btn-raised:disabled, .btn.btn-raised.disabled,
  .btn-group.btn-raised:disabled,
  .btn-group.btn-raised.disabled {
    box-shadow: none; }

.btn.btn-floating,
.btn-group.btn-floating {
  -webkit-transition: 0.25s;
  -moz-transition: 0.25s;
  transition: 0.25s; }
  .btn.btn-floating:hover, .btn.btn-floating:focus, .btn.btn-floating:active,
  .btn-group.btn-floating:hover,
  .btn-group.btn-floating:focus,
  .btn-group.btn-floating:active {
    outline: none; }
  .btn.btn-floating:disabled, .btn.btn-floating.disabled,
  .btn-group.btn-floating:disabled,
  .btn-group.btn-floating.disabled {
    box-shadow: none; }

.btn.btn-raised.btn-primary:hover, .btn.btn-raised.btn-primary:focus, .btn.btn-raised.btn-primary.focus, .btn.btn-raised.btn-primary:active, .btn.btn-raised.btn-primary.active,
.open > .btn.btn-raised.btn-primary.dropdown-toggle, .btn.btn-floating.btn-primary:hover, .btn.btn-floating.btn-primary:focus, .btn.btn-floating.btn-primary.focus, .btn.btn-floating.btn-primary:active, .btn.btn-floating.btn-primary.active,
.open > .btn.btn-floating.btn-primary.dropdown-toggle,
.btn-group.btn-raised.btn-primary:hover,
.btn-group.btn-raised.btn-primary:focus,
.btn-group.btn-raised.btn-primary.focus,
.btn-group.btn-raised.btn-primary:active,
.btn-group.btn-raised.btn-primary.active,
.open >
.btn-group.btn-raised.btn-primary.dropdown-toggle,
.btn-group.btn-floating.btn-primary:hover,
.btn-group.btn-floating.btn-primary:focus,
.btn-group.btn-floating.btn-primary.focus,
.btn-group.btn-floating.btn-primary:active,
.btn-group.btn-floating.btn-primary.active,
.open >
.btn-group.btn-floating.btn-primary.dropdown-toggle {
  background-color: #c91175;
  border-color: #c91175; }

.btn.btn-raised.btn-info:hover, .btn.btn-raised.btn-info:focus, .btn.btn-raised.btn-info.focus, .btn.btn-raised.btn-info:active, .btn.btn-raised.btn-info.active,
.open > .btn.btn-raised.btn-info.dropdown-toggle, .btn.btn-floating.btn-info:hover, .btn.btn-floating.btn-info:focus, .btn.btn-floating.btn-info.focus, .btn.btn-floating.btn-info:active, .btn.btn-floating.btn-info.active,
.open > .btn.btn-floating.btn-info.dropdown-toggle,
.btn-group.btn-raised.btn-info:hover,
.btn-group.btn-raised.btn-info:focus,
.btn-group.btn-raised.btn-info.focus,
.btn-group.btn-raised.btn-info:active,
.btn-group.btn-raised.btn-info.active,
.open >
.btn-group.btn-raised.btn-info.dropdown-toggle,
.btn-group.btn-floating.btn-info:hover,
.btn-group.btn-floating.btn-info:focus,
.btn-group.btn-floating.btn-info.focus,
.btn-group.btn-floating.btn-info:active,
.btn-group.btn-floating.btn-info.active,
.open >
.btn-group.btn-floating.btn-info.dropdown-toggle {
  background-color: #00a5bb;
  border-color: #00a5bb; }

.btn.btn-raised.btn-warning:hover, .btn.btn-raised.btn-warning:focus, .btn.btn-raised.btn-warning.focus, .btn.btn-raised.btn-warning:active, .btn.btn-raised.btn-warning.active,
.open > .btn.btn-raised.btn-warning.dropdown-toggle, .btn.btn-floating.btn-warning:hover, .btn.btn-floating.btn-warning:focus, .btn.btn-floating.btn-warning.focus, .btn.btn-floating.btn-warning:active, .btn.btn-floating.btn-warning.active,
.open > .btn.btn-floating.btn-warning.dropdown-toggle,
.btn-group.btn-raised.btn-warning:hover,
.btn-group.btn-raised.btn-warning:focus,
.btn-group.btn-raised.btn-warning.focus,
.btn-group.btn-raised.btn-warning:active,
.btn-group.btn-raised.btn-warning.active,
.open >
.btn-group.btn-raised.btn-warning.dropdown-toggle,
.btn-group.btn-floating.btn-warning:hover,
.btn-group.btn-floating.btn-warning:focus,
.btn-group.btn-floating.btn-warning.focus,
.btn-group.btn-floating.btn-warning:active,
.btn-group.btn-floating.btn-warning.active,
.open >
.btn-group.btn-floating.btn-warning.dropdown-toggle {
  background-color: #ffc40f;
  border-color: #ffc40f; }

.btn.btn-raised.btn-danger:hover, .btn.btn-raised.btn-danger:focus, .btn.btn-raised.btn-danger.focus, .btn.btn-raised.btn-danger:active, .btn.btn-raised.btn-danger.active,
.open > .btn.btn-raised.btn-danger.dropdown-toggle, .btn.btn-floating.btn-danger:hover, .btn.btn-floating.btn-danger:focus, .btn.btn-floating.btn-danger.focus, .btn.btn-floating.btn-danger:active, .btn.btn-floating.btn-danger.active,
.open > .btn.btn-floating.btn-danger.dropdown-toggle,
.btn-group.btn-raised.btn-danger:hover,
.btn-group.btn-raised.btn-danger:focus,
.btn-group.btn-raised.btn-danger.focus,
.btn-group.btn-raised.btn-danger:active,
.btn-group.btn-raised.btn-danger.active,
.open >
.btn-group.btn-raised.btn-danger.dropdown-toggle,
.btn-group.btn-floating.btn-danger:hover,
.btn-group.btn-floating.btn-danger:focus,
.btn-group.btn-floating.btn-danger.focus,
.btn-group.btn-floating.btn-danger:active,
.btn-group.btn-floating.btn-danger.active,
.open >
.btn-group.btn-floating.btn-danger.dropdown-toggle {
  background-color: #f32c1e;
  border-color: #f32c1e; }

.btn.btn-raised.btn-default:hover, .btn.btn-raised.btn-default:focus, .btn.btn-raised.btn-default.focus, .btn.btn-raised.btn-default:active, .btn.btn-raised.btn-default.active,
.open > .btn.btn-raised.btn-default.dropdown-toggle, .btn.btn-floating.btn-default:hover, .btn.btn-floating.btn-default:focus, .btn.btn-floating.btn-default.focus, .btn.btn-floating.btn-default:active, .btn.btn-floating.btn-default.active,
.open > .btn.btn-floating.btn-default.dropdown-toggle,
.btn-group.btn-raised.btn-default:hover,
.btn-group.btn-raised.btn-default:focus,
.btn-group.btn-raised.btn-default.focus,
.btn-group.btn-raised.btn-default:active,
.btn-group.btn-raised.btn-default.active,
.open >
.btn-group.btn-raised.btn-default.dropdown-toggle,
.btn-group.btn-floating.btn-default:hover,
.btn-group.btn-floating.btn-default:focus,
.btn-group.btn-floating.btn-default.focus,
.btn-group.btn-floating.btn-default:active,
.btn-group.btn-floating.btn-default.active,
.open >
.btn-group.btn-floating.btn-default.dropdown-toggle {
  background-color: #ededed;
  border-color: #ededed; }

.btn-flat {
  background: none;
  color: #3D4051;
  border: 1px solid transparent;
  text-transform: uppercase;
  -webkit-tap-highlight-color: transparent;
  -webkit-transition: 0.25s ease-out;
  -moz-transition: 0.25s ease-out;
  transition: 0.25s ease-out; }
  .btn-flat:hover, .btn-flat:focus, .btn-flat:active {
    background-color: #fafafa;
    outline: none;
    box-shadow: none;
    border-color: #fafafa; }
  .btn-flat.btn-primary {
    color: #E11383; }
  .btn-flat.btn-info {
    color: #00BCD4; }
  .btn-flat.btn-warning {
    color: #FFCA28; }
  .btn-flat.btn-danger {
    color: #F44336; }

.btn-icon {
  padding: 0;
  display: inline-block;
  text-align: center;
  border-radius: 2px;
  height: 35px;
  width: 35px;
  line-height: 35px; }
  .btn-icon i {
    line-height: 35px; }
  .btn-icon.btn-icon-lined {
    line-height: 31px; }
    .btn-icon.btn-icon-lined i {
      line-height: 31px; }
    .btn-icon.btn-icon-lined.btn-icon-thin {
      line-height: 33px; }
      .btn-icon.btn-icon-lined.btn-icon-thin i {
        line-height: 33px; }

.btn-icon-lined {
  display: inline-block;
  text-align: center;
  border-radius: 2px;
  background-color: #ffffff;
  border-width: 2px;
  border-style: solid;
  border-color: #3D4051;
  color: #3D4051;
  height: 35px;
  width: 35px;
  line-height: 35px; }
  .btn-icon-lined i {
    line-height: 35px; }
  .btn-icon-lined.btn-icon-lined {
    line-height: 31px; }
    .btn-icon-lined.btn-icon-lined i {
      line-height: 31px; }
    .btn-icon-lined.btn-icon-lined.btn-icon-thin {
      line-height: 33px; }
      .btn-icon-lined.btn-icon-lined.btn-icon-thin i {
        line-height: 33px; }
  .btn-icon-lined.btn-icon-thin {
    border-width: 1px; }
  .btn-icon-lined:hover {
    background-color: #ffffff;
    color: #ffffff; }
  .btn-icon-lined.btn-default-light {
    color: #bbb;
    border: 2px solid #bbb; }
    .btn-icon-lined.btn-default-light:hover {
      color: #bbb;
      border: 2px solid #bbb; }
  .btn-icon-lined.btn-default {
    color: #c4c4c4;
    border-color: #c4c4c4; }
    .btn-icon-lined.btn-default:hover {
      color: #c4c4c4;
      border-color: #c4c4c4; }
  .btn-icon-lined.btn-primary {
    color: #E11383;
    border-color: #E11383; }
  .btn-icon-lined.btn-success {
    color: #8BC34A;
    border-color: #8BC34A; }
  .btn-icon-lined.btn-info {
    color: #00BCD4;
    border-color: #00BCD4; }
  .btn-icon-lined.btn-warning {
    color: #FFCA28;
    border-color: #FFCA28; }
  .btn-icon-lined.btn-danger {
    color: #F44336;
    border-color: #F44336; }

.btn-icon-round {
  border-radius: 50%; }

.btn-icon-sm {
  height: 30px;
  width: 30px;
  line-height: 30px; }
  .btn-icon-sm i {
    line-height: 30px; }
  .btn-icon-sm.btn-icon-lined {
    line-height: 26px; }
    .btn-icon-sm.btn-icon-lined i {
      line-height: 26px; }
    .btn-icon-sm.btn-icon-lined.btn-icon-thin {
      line-height: 28px; }
      .btn-icon-sm.btn-icon-lined.btn-icon-thin i {
        line-height: 28px; }

.btn-icon-md {
  height: 45px;
  width: 45px;
  line-height: 45px;
  font-size: 18px; }
  .btn-icon-md i {
    line-height: 45px; }
  .btn-icon-md.btn-icon-lined {
    line-height: 41px; }
    .btn-icon-md.btn-icon-lined i {
      line-height: 41px; }
    .btn-icon-md.btn-icon-lined.btn-icon-thin {
      line-height: 43px; }
      .btn-icon-md.btn-icon-lined.btn-icon-thin i {
        line-height: 43px; }

.btn-icon-lg {
  height: 65px;
  width: 65px;
  line-height: 65px;
  font-size: 28px; }
  .btn-icon-lg i {
    line-height: 65px; }
  .btn-icon-lg.btn-icon-lined {
    line-height: 61px; }
    .btn-icon-lg.btn-icon-lined i {
      line-height: 61px; }
    .btn-icon-lg.btn-icon-lined.btn-icon-thin {
      line-height: 63px; }
      .btn-icon-lg.btn-icon-lined.btn-icon-thin i {
        line-height: 63px; }

.btn-icon-lg-alt {
  height: 70px;
  width: 70px;
  line-height: 70px; }
  .btn-icon-lg-alt i {
    line-height: 70px; }
  .btn-icon-lg-alt.btn-icon-lined {
    line-height: 66px; }
    .btn-icon-lg-alt.btn-icon-lined i {
      line-height: 66px; }
    .btn-icon-lg-alt.btn-icon-lined.btn-icon-thin {
      line-height: 68px; }
      .btn-icon-lg-alt.btn-icon-lined.btn-icon-thin i {
        line-height: 68px; }

.btn-icon-xl {
  height: 80px;
  width: 80px;
  line-height: 80px; }
  .btn-icon-xl i {
    line-height: 80px; }
  .btn-icon-xl.btn-icon-lined {
    line-height: 76px; }
    .btn-icon-xl.btn-icon-lined i {
      line-height: 76px; }
    .btn-icon-xl.btn-icon-lined.btn-icon-thin {
      line-height: 78px; }
      .btn-icon-xl.btn-icon-lined.btn-icon-thin i {
        line-height: 78px; }

.btn-twitter {
  color: #ffffff;
  background-color: #00c7f7;
  border-color: #00c7f7; }
  .btn-twitter:hover, .btn-twitter:focus, .btn-twitter:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #00a6ce;
    border-color: #0096ba; }

.btn-facebook {
  color: #ffffff;
  background-color: #335397;
  border-color: #335397; }
  .btn-facebook:hover, .btn-facebook:focus, .btn-facebook:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #294279;
    border-color: #243a69; }

.btn-gplus,
.btn-google-plus {
  color: #ffffff;
  background-color: #dd4a38;
  border-color: #dd4a38; }
  .btn-gplus:hover, .btn-gplus:focus, .btn-gplus:active,
  .btn-google-plus:hover,
  .btn-google-plus:focus,
  .btn-google-plus:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #ca3522;
    border-color: #b8301f; }

.btn-instagram {
  color: #ffffff;
  background-color: #82685A;
  border-color: #82685A; }
  .btn-instagram:hover, .btn-instagram:focus, .btn-instagram:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #6a5549;
    border-color: #5e4b41; }

.btn-vimeo {
  color: #ffffff;
  background-color: #63879C;
  border-color: #63879C; }
  .btn-vimeo:hover, .btn-vimeo:focus, .btn-vimeo:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #537183;
    border-color: #4b6777; }

.btn-flickr {
  color: #ffffff;
  background-color: #0061DB;
  border-color: #0061DB; }
  .btn-flickr:hover, .btn-flickr:focus, .btn-flickr:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #004fb2;
    border-color: #00469e; }

.btn-github {
  color: #ffffff;
  background-color: #3B3B3B;
  border-color: #3B3B3B; }
  .btn-github:hover, .btn-github:focus, .btn-github:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #272727;
    border-color: #1c1c1c; }

.btn-pinterest {
  color: #ffffff;
  background-color: #D73532;
  border-color: #D73532; }
  .btn-pinterest:hover, .btn-pinterest:focus, .btn-pinterest:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #bc2725;
    border-color: #ab2421; }

.btn-tumblr {
  color: #ffffff;
  background-color: #586980;
  border-color: #586980; }
  .btn-tumblr:hover, .btn-tumblr:focus, .btn-tumblr:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #475568;
    border-color: #3f4b5c; }

.btn-linkedin {
  color: #ffffff;
  background-color: #018FAF;
  border-color: #018FAF; }
  .btn-linkedin:hover, .btn-linkedin:focus, .btn-linkedin:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #016e86;
    border-color: #015d72; }

.btn-dribbble {
  color: #ffffff;
  background-color: #EA73A0;
  border-color: #EA73A0; }
  .btn-dribbble:hover, .btn-dribbble:focus, .btn-dribbble:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #e55088;
    border-color: #e23e7c; }

.btn-stumbleupon {
  color: #ffffff;
  background-color: #EA4B24;
  border-color: #EA4B24; }
  .btn-stumbleupon:hover, .btn-stumbleupon:focus, .btn-stumbleupon:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #d13914;
    border-color: #bf3412; }

.btn-lastfm {
  color: #ffffff;
  background-color: #B80638;
  border-color: #B80638; }
  .btn-lastfm:hover, .btn-lastfm:focus, .btn-lastfm:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #90052c;
    border-color: #7d0426; }

.btn-evernote {
  color: #ffffff;
  background-color: #3BAB27;
  border-color: #3BAB27; }
  .btn-evernote:hover, .btn-evernote:focus, .btn-evernote:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #308a1f;
    border-color: #2a791c; }

.btn-skype {
  color: #ffffff;
  background-color: #00B0F6;
  border-color: #00B0F6; }
  .btn-skype:hover, .btn-skype:focus, .btn-skype:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #0093cd;
    border-color: #0084b9; }

.btn-soundcloud {
  color: #ffffff;
  background-color: #0066FF;
  border-color: #0066FF; }
  .btn-soundcloud:hover, .btn-soundcloud:focus, .btn-soundcloud:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #0056d6;
    border-color: #004ec2; }

.btn-behance {
  color: #ffffff;
  background-color: #B80638;
  border-color: #B80638; }
  .btn-behance:hover, .btn-behance:focus, .btn-behance:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #90052c;
    border-color: #7d0426; }

.btn-rss {
  color: #ffffff;
  background-color: #F79638;
  border-color: #F79638; }
  .btn-rss:hover, .btn-rss:focus, .btn-rss:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #f58111;
    border-color: #e87709; }

.btn-youtube {
  color: #ffffff;
  background-color: #CC181E;
  border-color: #CC181E; }
  .btn-youtube:hover, .btn-youtube:focus, .btn-youtube:active {
    color: #ffffff;
    text-decoration: none;
    background-color: #a71419;
    border-color: #951216; }

/* 20170609 NALEX - MK-ADMIN-PANEL */
.btn-file {
  position: relative;
  overflow: hidden; }

.btn-file input[type=file] {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 100%;
  min-height: 100%;
  font-size: 100px;
  text-align: right;
  filter: alpha(opacity=0);
  opacity: 0;
  outline: none;
  background: white;
  cursor: inherit;
  display: block; }

.ui-wave {
  position: relative;
  overflow: hidden;
  z-index: 0;
  -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  -moz-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-wave.ui-wave-overflowed {
    overflow: visible; }
  .ui-wave .ink {
    display: block;
    position: absolute;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 100%;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0); }
  .ui-wave.btn-flat .ink, .ui-wave.btn-default .ink {
    background: rgba(0, 0, 0, 0.2); }

.wave-animate {
  -webkit-animation: ripple 0.65s linear;
  -moz-animation: ripple 0.65s linear;
  animation: ripple 0.65s linear; }

@-webkit-keyframes ripple {
  100% {
    opacity: 0;
    -webkit-transform: scale(2.5); } }

@-moz-keyframes ripple {
  100% {
    opacity: 0;
    -moz-transform: scale(2.5); } }

@keyframes ripple {
  100% {
    opacity: 0;
    -webkit-transform: scale(2.5);
    -moz-transform: scale(2.5);
    -ms-transform: scale(2.5);
    -o-transform: scale(2.5);
    transform: scale(2.5); } }

.nav-container .ui-wave .ink {
  background: rgba(0, 0, 0, 0.2); }

.nav-collapsed-min .nav-container .ui-wave {
  overflow: visible; }

.nav-horizontal.nav-container .ui-wave {
  overflow: visible; }

.header-container.bg-white .ui-wave .ink {
  background: rgba(0, 0, 0, 0.2); }

.content-container.ng-leave {
  z-index: 9999; }

.content-container.ng-enter {
  z-index: 8888; }

/*==========  animations  ==========*/
@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg); } }

@-moz-keyframes spin {
  from {
    -moz-transform: rotate(0deg); }
  to {
    -moz-transform: rotate(360deg); } }

@keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg); } }

.animate-spin {
  -webkit-animation: spin 3s linear infinite;
  -moz-animation: spin 3s linear infinite;
  animation: spin 3s linear infinite; }

@-webkit-keyframes fade-up-enter {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@-moz-keyframes fade-up-enter {
  0% {
    opacity: 0;
    -moz-transform: translateY(20px); }
  100% {
    opacity: 1;
    -moz-transform: translateY(0); } }

@keyframes fade-up-enter {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    -moz-transform: translateY(20px);
    -ms-transform: translateY(20px);
    -o-transform: translateY(20px);
    transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

@-webkit-keyframes fade-up-leave {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-20px); } }

@-moz-keyframes fade-up-leave {
  0% {
    opacity: 1;
    -moz-transform: translateY(0); }
  100% {
    opacity: 0;
    -moz-transform: translateY(-20px); } }

@keyframes fade-up-leave {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    transform: translateY(-20px); } }

.animate-fade-up.ng-enter {
  -webkit-animation: 0.35s fade-up-enter;
  -moz-animation: 0.35s fade-up-enter;
  animation: 0.35s fade-up-enter; }

@-webkit-keyframes animate-flip-y-enter {
  0% {
    -webkit-transform: perspective(3000px) rotateY(90deg);
    opacity: 0; }
  100% {
    -webkit-transform: perspective(3000px) rotateY(0deg);
    opacity: 1; } }

@-moz-keyframes animate-flip-y-enter {
  0% {
    -moz-transform: perspective(3000px) rotateY(90deg);
    opacity: 0; }
  100% {
    -moz-transform: perspective(3000px) rotateY(0deg);
    opacity: 1; } }

@keyframes animate-flip-y-enter {
  0% {
    -webkit-transform: perspective(3000px) rotateY(90deg);
    -moz-transform: perspective(3000px) rotateY(90deg);
    -ms-transform: perspective(3000px) rotateY(90deg);
    -o-transform: perspective(3000px) rotateY(90deg);
    transform: perspective(3000px) rotateY(90deg);
    opacity: 0; }
  100% {
    -webkit-transform: perspective(3000px) rotateY(0deg);
    -moz-transform: perspective(3000px) rotateY(0deg);
    -ms-transform: perspective(3000px) rotateY(0deg);
    -o-transform: perspective(3000px) rotateY(0deg);
    transform: perspective(3000px) rotateY(0deg);
    opacity: 1; } }

@-webkit-keyframes animate-flip-y-leave {
  0% {
    -webkit-transform: perspective(3000px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(3000px) rotateY(-90deg);
    opacity: 0; } }

@-moz-keyframes animate-flip-y-leave {
  0% {
    -moz-transform: perspective(3000px) rotateY(0deg);
    opacity: 1; }
  100% {
    -moz-transform: perspective(3000px) rotateY(-90deg);
    opacity: 0; } }

@keyframes animate-flip-y-leave {
  0% {
    -webkit-transform: perspective(3000px) rotateY(0deg);
    -moz-transform: perspective(3000px) rotateY(0deg);
    -ms-transform: perspective(3000px) rotateY(0deg);
    -o-transform: perspective(3000px) rotateY(0deg);
    transform: perspective(3000px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(3000px) rotateY(-90deg);
    -moz-transform: perspective(3000px) rotateY(-90deg);
    -ms-transform: perspective(3000px) rotateY(-90deg);
    -o-transform: perspective(3000px) rotateY(-90deg);
    transform: perspective(3000px) rotateY(-90deg);
    opacity: 0; } }

.animate-flip-y.ng-enter {
  -webkit-animation: 0.35s animate-flip-y-enter ease-in-out;
  -moz-animation: 0.35s animate-flip-y-enter ease-in-out;
  animation: 0.35s animate-flip-y-enter ease-in-out; }

@-webkit-keyframes slideInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); }
  100% {
    -webkit-transform: translateY(0); } }

@-moz-keyframes slideInDown {
  0% {
    opacity: 0;
    -moz-transform: translateY(-2000px); }
  100% {
    -moz-transform: translateY(0); } }

@keyframes slideInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -moz-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    -o-transform: translateY(-2000px);
    transform: translateY(-2000px); }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

@-webkit-keyframes slideOutUp {
  0% {
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); } }

@-moz-keyframes slideOutUp {
  0% {
    -moz-transform: translateY(0); }
  100% {
    opacity: 0;
    -moz-transform: translateY(-2000px); } }

@keyframes slideOutUp {
  0% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -moz-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    -o-transform: translateY(-2000px);
    transform: translateY(-2000px); } }

.animate-vertical-slide.ng-hide-add {
  -webkit-animation: 0.35s slideOutUp ease-in-out;
  -moz-animation: 0.35s slideOutUp ease-in-out;
  animation: 0.35s slideOutUp ease-in-out; }

.animate-vertical-slide.ng-hide-remove {
  -webkit-animation: 0.35s 0.35s slideInDown ease-in-out;
  -moz-animation: 0.35s 0.35s slideInDown ease-in-out;
  animation: 0.35s 0.35s slideInDown ease-in-out; }

/*==========  simple ones  ==========*/
@-webkit-keyframes slideOutUp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.95); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1); } }

@-moz-keyframes slideOutUp {
  0% {
    opacity: 0;
    -moz-transform: scale(0.95); }
  100% {
    opacity: 1;
    -moz-transform: scale(1); } }

@keyframes slideOutUp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.95);
    -moz-transform: scale(0.95);
    -ms-transform: scale(0.95);
    -o-transform: scale(0.95);
    transform: scale(0.95); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); } }

.ainmate-scale-up.ng-enter {
  -webkit-animation: 0.35s slideOutUp ease-in-out;
  -moz-animation: 0.35s slideOutUp ease-in-out;
  animation: 0.35s slideOutUp ease-in-out; }

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

@-moz-keyframes slideInRight {
  0% {
    opacity: 0;
    -moz-transform: translateX(25px); }
  100% {
    opacity: 1;
    -moz-transform: translateX(0); } }

@keyframes slideInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(25px);
    -moz-transform: translateX(25px);
    -ms-transform: translateX(25px);
    -o-transform: translateX(25px);
    transform: translateX(25px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0); } }

.ainmate-slide-in-right.ng-enter {
  -webkit-animation: 0.35s slideInRight ease-in-out;
  -moz-animation: 0.35s slideInRight ease-in-out;
  animation: 0.35s slideInRight ease-in-out; }

.animated {
  -webkit-animation-duration: 0.35s;
  -moz-animation-duration: 0.35s;
  animation-duration: 0.35s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both; }

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge {
  -webkit-animation-duration: 2s;
  -moz-animation-duration: 2s;
  animation-duration: 2s; }

@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100%);
    visibility: visible; }
  100% {
    -webkit-transform: translateY(0); } }

@-moz-keyframes slideInUp {
  0% {
    -moz-transform: translateY(100%);
    visibility: visible; }
  100% {
    -moz-transform: translateY(0); } }

@keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100%);
    -moz-transform: translateY(100%);
    -ms-transform: translateY(100%);
    -o-transform: translateY(100%);
    transform: translateY(100%);
    visibility: visible; }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

.slideInUp {
  -webkit-animation-name: slideInUp;
  -moz-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes scaleInLeft {
  0% {
    -webkit-transform-origin: left top;
    -webkit-transform: scale(0.5);
    opacity: 0; }
  100% {
    -webkit-transform: scale(1);
    opacity: 1; } }

@-moz-keyframes scaleInLeft {
  0% {
    -moz-transform-origin: left top;
    -moz-transform: scale(0.5);
    opacity: 0; }
  100% {
    -moz-transform: scale(1);
    opacity: 1; } }

@keyframes scaleInLeft {
  0% {
    -webkit-transform-origin: left top;
    -moz-transform-origin: left top;
    -ms-transform-origin: left top;
    -o-transform-origin: left top;
    transform-origin: left top;
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 0; }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.scaleInLeft {
  -webkit-animation-name: scaleInLeft;
  -moz-animation-name: scaleInLeft;
  animation-name: scaleInLeft; }

@-webkit-keyframes scaleInRight {
  0% {
    -webkit-transform-origin: right top;
    -webkit-transform: scale(0.5);
    opacity: 0; }
  100% {
    -webkit-transform: scale(1);
    opacity: 1; } }

@-moz-keyframes scaleInRight {
  0% {
    -moz-transform-origin: right top;
    -moz-transform: scale(0.5);
    opacity: 0; }
  100% {
    -moz-transform: scale(1);
    opacity: 1; } }

@keyframes scaleInRight {
  0% {
    -webkit-transform-origin: right top;
    -moz-transform-origin: right top;
    -ms-transform-origin: right top;
    -o-transform-origin: right top;
    transform-origin: right top;
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 0; }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.scaleInRight {
  -webkit-animation-name: scaleInRight;
  -moz-animation-name: scaleInRight;
  animation-name: scaleInRight; }

@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: none;
    opacity: 1; } }

@-moz-keyframes rotateInUpLeft {
  0% {
    -moz-transform-origin: left bottom;
    -moz-transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -moz-transform-origin: left bottom;
    -moz-transform: none;
    opacity: 1; } }

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -moz-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    -o-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    -moz-transform: rotate3d(0, 0, 1, 45deg);
    -ms-transform: rotate3d(0, 0, 1, 45deg);
    -o-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -moz-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    -o-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  -moz-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: none;
    opacity: 1; } }

@-moz-keyframes rotateInUpRight {
  0% {
    -moz-transform-origin: right bottom;
    -moz-transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -moz-transform-origin: right bottom;
    -moz-transform: none;
    opacity: 1; } }

@keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -moz-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    -o-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    -moz-transform: rotate3d(0, 0, 1, -90deg);
    -ms-transform: rotate3d(0, 0, 1, -90deg);
    -o-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -moz-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    -o-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  -moz-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

.dropdown-menu {
  -webkit-transform-origin: top left;
  -moz-transform-origin: top left;
  -ms-transform-origin: top left;
  -o-transform-origin: top left;
  transform-origin: top left; }
  .dropdown-menu.pull-right {
    -webkit-transform-origin: top right;
    -moz-transform-origin: top right;
    -ms-transform-origin: top right;
    -o-transform-origin: top right;
    transform-origin: top right; }

.dropdown-menu-scaleIn {
  display: block;
  opacity: 0;
  -webkit-transition: all 0.35s;
  -moz-transition: all 0.35s;
  transition: all 0.35s;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.open > .dropdown-menu-scaleIn {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1); }

.badge-primary {
  background-color: #E11383; }

.badge-success {
  background-color: #8BC34A; }

.badge-info {
  background-color: #00BCD4; }

.badge-warning {
  background-color: #FFCA28; }

.badge-danger {
  background-color: #F44336; }

.breadcrumb a {
  color: #3D4051; }
  .breadcrumb a:hover {
    text-decoration: none; }

.breadcrumb-alt {
  overflow: hidden;
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  width: 100%; }
  .breadcrumb-alt > li {
    float: left;
    margin: 0 25px 0 0; }
    .breadcrumb-alt > li > a {
      position: relative;
      float: left;
      background-color: white;
      color: #3D4051;
      font-size: 12px;
      padding: 10px; }
      .breadcrumb-alt > li > a:before {
        position: absolute;
        top: 50%;
        left: -1em;
        margin-top: -1.6em;
        border-color: white white white rgba(0, 0, 0, 0);
        border-style: solid;
        border-width: 1.5em 0 1.7em 1em;
        content: ""; }
      .breadcrumb-alt > li > a:after {
        position: absolute;
        top: 50%;
        right: -1em;
        margin-top: -1.5em;
        border-bottom: 1.5em solid rgba(0, 0, 0, 0);
        border-left: 1em solid white;
        border-top: 1.5em solid rgba(0, 0, 0, 0);
        content: ""; }
      .breadcrumb-alt > li > a:hover, .breadcrumb-alt > li > a.active {
        text-decoration: none;
        background-color: #E11383;
        color: #fff; }
        .breadcrumb-alt > li > a:hover:before, .breadcrumb-alt > li > a.active:before {
          border-color: #E11383 #E11383 #E11383 rgba(0, 0, 0, 0); }
        .breadcrumb-alt > li > a:hover:after, .breadcrumb-alt > li > a.active:after {
          border-left: 1em solid #E11383; }

.callout {
  margin: 20px 0;
  padding: 20px;
  border-left: 3px solid #eee; }
  .callout h4 {
    margin-top: 0;
    margin-bottom: 5px; }
  .callout p:last-child {
    margin-bottom: 0; }

.callout-success {
  background-color: #f3faf3;
  border-color: #8BC34A; }
  .callout-success h4 {
    color: #8BC34A; }

.callout-info {
  background-color: #f4f8fa;
  border-color: #00BCD4; }
  .callout-info h4 {
    color: #00BCD4; }

.callout-warning {
  background-color: #fcf8f2;
  border-color: #FFCA28; }
  .callout-warning h4 {
    color: #FFCA28; }

.callout-danger {
  background-color: #fdf7f7;
  border-color: #F44336; }
  .callout-danger h4 {
    color: #F44336; }

.dropdown-menu.dropdown-dark {
  background-color: #262B33; }
  .dropdown-menu.dropdown-dark.with-arrow:after {
    border-bottom: 7px solid #262B33; }
  .dropdown-menu.dropdown-dark > li > a {
    color: #c4c4c4; }

.dropdown-menu.with-arrow {
  margin-top: 0; }
  .dropdown-menu.with-arrow:before {
    content: " ";
    position: absolute;
    left: 12px;
    top: -16px;
    border: 8px solid transparent;
    border-bottom: 8px solid rgba(0, 0, 0, 0.15); }
  .dropdown-menu.with-arrow:after {
    content: " ";
    position: absolute;
    left: 13px;
    top: -14px;
    border: 7px solid transparent;
    border-bottom: 7px solid #fff; }
  .dropdown-menu.with-arrow.pull-right {
    margin-top: 0; }
    .dropdown-menu.with-arrow.pull-right:before {
      left: auto;
      right: 12px; }
    .dropdown-menu.with-arrow.pull-right:after {
      left: auto;
      right: 13px; }
  .dropdown-menu.with-arrow.panel {
    border: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }
  .dropdown-menu.with-arrow.panel-default:before {
    border-bottom: 8px solid #e2edeb; }
  .dropdown-menu.with-arrow.panel-default:after {
    border-bottom: 7px solid #F2F7F7; }
  .dropdown-menu.with-arrow.panel-dark:before {
    border-bottom: 8px solid #262B33; }
  .dropdown-menu.with-arrow.panel-dark:after {
    border-bottom: 7px solid #262B33; }
  .dropdown-menu.with-arrow.panel-primary:before {
    border-bottom: 8px solid #E11383; }
  .dropdown-menu.with-arrow.panel-primary:after {
    border-bottom: 7px solid #E11383; }
  .dropdown-menu.with-arrow.panel-success:before {
    border-bottom: 8px solid #ebf8cd; }
  .dropdown-menu.with-arrow.panel-success:after {
    border-bottom: 7px solid #F0FBE3; }
  .dropdown-menu.with-arrow.panel-info:before {
    border-bottom: 8px solid #c5f1fa; }
  .dropdown-menu.with-arrow.panel-info:after {
    border-bottom: 7px solid #E6F5FD; }
  .dropdown-menu.with-arrow.panel-warning:before {
    border-bottom: 8px solid #ffecd4; }
  .dropdown-menu.with-arrow.panel-warning:after {
    border-bottom: 7px solid #FFFAED; }
  .dropdown-menu.with-arrow.panel-danger:before {
    border-bottom: 8px solid #f7d0d1; }
  .dropdown-menu.with-arrow.panel-danger:after {
    border-bottom: 7px solid #FBE9E6; }

.ih-item {
  position: relative;
  border-radius: 2px;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out; }
  .ih-item a {
    color: #333; }
    .ih-item a:hover {
      text-decoration: none; }
  .ih-item img {
    border-radius: 2px;
    width: 100%;
    height: 100%; }

.ih-item.ih-material {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%; }
  .ih-item.ih-material .info-mask {
    content: '';
    position: absolute;
    top: -25%;
    left: 0;
    right: 0;
    padding-bottom: 100%;
    border-radius: 50%;
    opacity: 0;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
  .ih-item.ih-material .info-content {
    opacity: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease; }
    .ih-item.ih-material .info-content:before {
      content: '';
      display: inline-block;
      vertical-align: middle;
      height: 100%;
      margin-left: -0.5em; }
    .ih-item.ih-material .info-content .info-inner {
      display: inline-block;
      width: 100%;
      vertical-align: middle;
      text-align: center; }
      .ih-item.ih-material .info-content .info-inner h3 {
        margin: 0 0 10px;
        text-transform: uppercase;
        color: #fff;
        font-size: 18px; }
      .ih-item.ih-material .info-content .info-inner p {
        font-style: italic;
        font-size: 12px;
        color: white; }
  .ih-item.ih-material .bg-white + .info-content .info-inner h3,
  .ih-item.ih-material .bg-warning + .info-content .info-inner h3 {
    color: #3D4051; }
  .ih-item.ih-material .bg-white + .info-content .info-inner p,
  .ih-item.ih-material .bg-warning + .info-content .info-inner p {
    color: #999; }
  .ih-item.ih-material a:hover .info-content {
    opacity: 1;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); }
  .ih-item.ih-material a:hover .info-mask {
    opacity: .8;
    -webkit-transform: scale(1.21);
    -moz-transform: scale(1.21);
    -ms-transform: scale(1.21);
    -o-transform: scale(1.21);
    transform: scale(1.21); }

img.img30_30 {
  width: 30px;
  height: 30px; }

img.img40_40 {
  width: 40px;
  height: 40px; }

img.img64_64 {
  width: 64px;
  height: 64px; }

img.img80_80 {
  width: 80px;
  height: 80px; }

.label {
  padding: .5em .8em; }

.label-info-alt {
  background: #7E57C2; }

.list-group-item {
  padding: 15px;
  border: 1px solid #f3f3f3; }

.list-info li {
  padding: 10px;
  border-bottom: 1px solid #eee; }
  .list-info li:last-child {
    border-bottom: none; }
  .list-info li .icon {
    margin-right: 10px;
    color: #E11383; }
  .list-info li label {
    width: 100px; }

.media-list.media-divider-full .media {
  border-bottom: 1px solid #e2edeb; }

.media-list.media-divider-inset .media-body {
  border-bottom: 1px solid #e2edeb; }

.nav-boxed {
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
  background-color: #ffffff;
  border-radius: 2px; }
  .nav-boxed.nav-justified > li > a {
    margin: 0; }
  .nav-boxed a {
    color: #3D4051; }
  .nav-boxed > li > a {
    display: block;
    padding: 10px 5px;
    border-left: 0;
    border-top: 1px solid #f3f3f3; }
    @media (min-width: 768px) {
      .nav-boxed > li > a {
        border-top: 0;
        border-left: 1px solid #f3f3f3; } }
    .nav-boxed > li > a > i {
      display: block;
      width: 40px;
      height: 40px;
      line-height: 40px;
      margin: 0 auto 2px;
      font-size: 30px; }
  .nav-boxed > li:first-child > a {
    border-left: none;
    border-top: 0; }
    @media (min-width: 768px) {
      .nav-boxed > li:first-child > a {
        border-left: 1px solid #f3f3f3; } }

.panel {
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.1); }
  .panel .panel {
    box-shadow: none; }
  .panel .panel-heading {
    text-transform: uppercase; }
  .panel .panel-title {
    font-size: 14px; }
  .panel.panel-labeled {
    position: relative; }
    .panel.panel-labeled .panel-body {
      padding: 35px 15px; }
  .panel.panel-minimal .panel-heading {
    background: none;
    border: 0; }
  .panel .panel-label {
    color: #ccc;
    position: absolute;
    bottom: 5px;
    left: 7px; }
  .panel .panel-body.padding-lg {
    padding: 30px 15px; }
  .panel .panel-body.padding-xl {
    padding: 60px 15px; }
  .panel .panel-body.padding-lg-h {
    padding: 15px 30px; }

.panel-dark {
  border-color: #262B33; }
  .panel-dark > .panel-heading {
    color: #fff;
    background-color: #262B33;
    border-color: #262B33; }
    .panel-dark > .panel-heading + .panel-collapse > .panel-body {
      border-top-color: #262B33; }
    .panel-dark > .panel-heading .badge {
      color: #262B33;
      background-color: #fff; }
  .panel-dark > .panel-footer + .panel-collapse > .panel-body {
    border-bottom-color: #262B33; }

.panel-box {
  display: table;
  table-layout: fixed;
  width: 100%;
  height: 100%;
  text-align: center;
  border: none; }
  .panel-box .panel-item {
    display: table-cell;
    padding: 30px;
    width: 1%;
    vertical-align: top;
    border-radius: 0; }
  .panel-box .panel-left {
    border-bottom-left-radius: 2px;
    border-top-left-radius: 2px; }
  .panel-box .panel-right {
    border-bottom-right-radius: 2px;
    border-top-right-radius: 2px; }
  .panel-box.info-box i {
    line-height: 70px; }
  .panel-box .panel-top,
  .panel-box .panel-bottom {
    display: block; }
  .panel-box .panel-top {
    padding: 30px 20px;
    border-top-left-radius: 2px;
    border-top-right-radius: 2px; }
  .panel-box .panel-bottom {
    padding: 10px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px; }
    .panel-box .panel-bottom p {
      margin: 0; }
  .panel-box .list-justified-container {
    padding: 15px 0; }
  .panel-box ul.list-justified {
    display: table;
    width: 100%;
    list-style: none;
    padding: 0; }
    .panel-box ul.list-justified > li {
      float: none;
      display: table-cell;
      padding: 10px;
      width: 1%;
      border-right: 1px solid white; }
      .panel-box ul.list-justified > li:last-child {
        border: none; }
      .panel-box ul.list-justified > li p {
        margin: 0; }
  .panel-box .panel-icon,
  .panel-box .panel-img {
    display: block;
    margin: -75px auto 0;
    border-radius: 50%;
    border: 10px solid #ffffff;
    width: 150px;
    height: 150px;
    line-height: 80px;
    text-align: center;
    font-size: 58px;
    text-shadow: -6px 8px 5px rgba(0, 0, 0, 0.3); }
  .panel-box .panel-icon {
    padding: 28px 35px 35px; }
  .panel-box .panel-img {
    padding: 0; }
    .panel-box .panel-img img {
      width: 100%;
      max-width: 100%; }

.mini-box {
  min-height: 120px;
  padding: 25px; }
  .mini-box .box-icon {
    display: inline-block;
    width: 70px;
    height: 70px;
    line-height: 70px;
    vertical-align: middle;
    text-align: center;
    font-size: 35px;
    border-radius: 2px; }
    .mini-box .box-icon.rounded {
      border-radius: 50%; }
  .mini-box .btn-icon,
  .mini-box .btn-icon-lined {
    margin: 0 15px 0 0;
    font-size: 32px; }
  .mini-box .box-info {
    display: inline-block;
    vertical-align: top; }
    .mini-box .box-info p {
      margin: 0; }

.panel-profile {
  border: none; }
  .panel-profile .profile {
    margin: 5px 15px 5px 5px;
    border-radius: 50%;
    padding: 5px;
    border: 1px solid rgba(0, 0, 0, 0.2); }
    .panel-profile .profile img {
      border-radius: 50%; }
  .panel-profile .list-group > li > i {
    margin-right: 10px;
    font-size: 16px;
    color: #c4c4c4;
    table-layout: fixed; }
  .panel-profile .list-justified-container {
    padding: 15px 0; }
  .panel-profile ul.list-justified {
    display: table;
    width: 100%;
    list-style: none;
    padding: 0; }
    .panel-profile ul.list-justified > li {
      float: none;
      display: table-cell;
      padding: 10px;
      width: 1%;
      border-right: 1px solid white; }
      .panel-profile ul.list-justified > li:last-child {
        border: none; }
      .panel-profile ul.list-justified > li p {
        margin: 0; }

.popover-title {
  padding: 8px 14px 0;
  color: #aaa;
  font-weight: bold;
  border-bottom: none; }

.popover-content {
  color: #fafafa; }

.pricing-table {
  position: relative;
  margin-bottom: 20px;
  background-color: #fcfcfc;
  color: #999;
  border-radius: 2px;
  box-shadow: none;
  text-align: center;
  -webkit-transition: 0.25s ease-out;
  -moz-transition: 0.25s ease-out;
  transition: 0.25s ease-out; }
  .pricing-table header {
    text-align: center;
    padding: 12px 8px;
    border-radius: 2px 2px 0 0; }
    .pricing-table header h2 {
      margin: 0;
      font-size: 20px;
      font-weight: normal;
      text-transform: uppercase; }
  .pricing-table .pricing-price {
    border-bottom: 1px solid #e7edf6;
    padding: 45px 15px;
    background-color: #A0A2AA;
    font-size: 56px;
    line-height: 1;
    color: #fff;
    font-weight: 300; }
    .pricing-table .pricing-price .pricing-sign {
      margin-right: 5px;
      font-size: 24px;
      font-weight: normal; }
    .pricing-table .pricing-price .pricing-sub {
      margin-left: 5px;
      font-size: 22px;
      line-height: 1; }
  .pricing-table .pricing-lead {
    margin-bottom: 1.5em;
    font-size: 18px;
    text-transform: uppercase; }
    .pricing-table .pricing-lead:after {
      margin: 0 auto;
      content: "";
      height: 0px;
      width: 80px;
      padding-top: .6em;
      border-bottom: solid 3px #eff0f3;
      display: block; }
  .pricing-table .pricing-plan-details {
    padding: 1em; }
    .pricing-table .pricing-plan-details > ul {
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: 14px;
      line-height: 2em; }
  .pricing-table > footer {
    padding: 2em;
    text-align: center; }
    .pricing-table > footer > a {
      display: block;
      margin: 0 auto;
      padding: 12px;
      font-size: 14px;
      line-height: 1;
      width: 100%;
      max-width: 200px; }
  .pricing-table.pricing-table-primary .pricing-price {
    background-color: #E11383; }
  .pricing-table.pricing-table-primary:after {
    border-top: 6px solid #E11383;
    border-left: 6px solid #E11383; }
  .pricing-table.pricing-table-secondary .pricing-price, .pricing-table.pricing-table-info .pricing-price {
    background-color: #00BCD4; }
  .pricing-table.pricing-table-secondary:after, .pricing-table.pricing-table-info:after {
    border-top: 6px solid #00BCD4;
    border-left: 6px solid #00BCD4; }
  .pricing-table.pricing-table-success .pricing-price {
    background-color: #8BC34A; }
  .pricing-table.pricing-table-success:after {
    border-top: 6px solid #8BC34A;
    border-left: 6px solid #8BC34A; }
  .pricing-table.pricing-table-warning .pricing-price {
    background-color: #FFCA28; }
  .pricing-table.pricing-table-warning:after {
    border-top: 6px solid #FFCA28;
    border-left: 6px solid #FFCA28; }
  .pricing-table.pricing-table-danger .pricing-price {
    background-color: #F44336; }
  .pricing-table.pricing-table-danger:after {
    border-top: 6px solid #F44336;
    border-left: 6px solid #F44336; }

.ui-ribbon-container {
  position: relative; }
  .ui-ribbon-container .ui-ribbon-wrapper {
    position: absolute;
    overflow: hidden;
    width: 85px;
    height: 88px;
    top: -3px;
    right: -3px; }
  .ui-ribbon-container .ui-ribbon {
    position: relative;
    display: block;
    text-align: center;
    font-size: 15px;
    font-weight: bold;
    color: #ffffff;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    padding: 7px 0;
    left: -5px;
    top: 15px;
    width: 120px;
    line-height: 20px;
    background-color: #a2a2a2;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); }
    .ui-ribbon-container .ui-ribbon:before, .ui-ribbon-container .ui-ribbon:after {
      position: absolute;
      content: " ";
      line-height: 0;
      border-top: 2px solid #a2a2a2;
      border-left: 2px solid transparent;
      border-right: 2px solid transparent;
      bottom: -2px; }
    .ui-ribbon-container .ui-ribbon:before {
      left: 0;
      bottom: -1px; }
    .ui-ribbon-container .ui-ribbon:after {
      right: 0; }
  .ui-ribbon-container.ui-ribbon-primary .ui-ribbon {
    background-color: #E11383; }
    .ui-ribbon-container.ui-ribbon-primary .ui-ribbon:before, .ui-ribbon-container.ui-ribbon-primary .ui-ribbon:after {
      border-top: 2px solid #E11383; }
  .ui-ribbon-container.ui-ribbon-success .ui-ribbon {
    background-color: #8BC34A; }
    .ui-ribbon-container.ui-ribbon-success .ui-ribbon:before, .ui-ribbon-container.ui-ribbon-success .ui-ribbon:after {
      border-top: 2px solid #8BC34A; }
  .ui-ribbon-container.ui-ribbon-info .ui-ribbon {
    background-color: #00BCD4; }
    .ui-ribbon-container.ui-ribbon-info .ui-ribbon:before, .ui-ribbon-container.ui-ribbon-info .ui-ribbon:after {
      border-top: 2px solid #00BCD4; }
  .ui-ribbon-container.ui-ribbon-warning .ui-ribbon {
    background-color: #FFCA28; }
    .ui-ribbon-container.ui-ribbon-warning .ui-ribbon:before, .ui-ribbon-container.ui-ribbon-warning .ui-ribbon:after {
      border-top: 2px solid #FFCA28; }
  .ui-ribbon-container.ui-ribbon-danger .ui-ribbon {
    background-color: #F44336; }
    .ui-ribbon-container.ui-ribbon-danger .ui-ribbon:before, .ui-ribbon-container.ui-ribbon-danger .ui-ribbon:after {
      border-top: 2px solid #F44336; }

.flags-sprite,
.flags-american,
.flags-china,
.flags-france,
.flags-germany,
.flags-italy,
.flags-japan,
.flags-korea,
.flags-portugal,
.flags-russia,
.flags-spain {
  background-image: url("ui/images/flags.png");
  background-repeat: no-repeat; }

.flags-american {
  background-position: 0 0;
  height: 32px;
  width: 32px; }

.flags-china {
  background-position: 0 -32px;
  height: 32px;
  width: 32px; }

.flags-france {
  background-position: 0 -64px;
  height: 32px;
  width: 32px; }

.flags-germany {
  background-position: 0 -96px;
  height: 32px;
  width: 32px; }

.flags-italy {
  background-position: 0 -128px;
  height: 32px;
  width: 32px; }

.flags-japan {
  background-position: 0 -160px;
  height: 32px;
  width: 32px; }

.flags-korea {
  background-position: 0 -192px;
  height: 32px;
  width: 32px; }

.flags-portugal {
  background-position: 0 -224px;
  height: 32px;
  width: 32px; }

.flags-russia {
  background-position: 0 -256px;
  height: 32px;
  width: 32px; }

.flags-spain {
  background-position: 0 -288px;
  height: 32px;
  width: 32px; }

.ui-timline-container {
  padding: 15px; }

.ui-timline-left .ui-timeline:before {
  left: 0; }

@media (min-width: 768px) {
  .ui-timline-left .ui-timeline .tl-item:before {
    display: none; } }

@media (min-width: 768px) {
  .ui-timline-left .ui-timeline .tl-item .tl-caption {
    margin-left: -55px; } }

@media (min-width: 768px) {
  .ui-timline-left .ui-timeline .tl-item .tl-body .tl-time {
    left: auto;
    right: 15px;
    color: #c4c4c4; } }

.ui-timeline {
  display: table;
  position: relative;
  table-layout: fixed;
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse; }
  .ui-timeline:before {
    background-color: #e6e6e6;
    bottom: 0px;
    content: "";
    position: absolute;
    left: 0;
    top: 30px;
    width: 1px;
    z-index: 0; }
    @media (min-width: 768px) {
      .ui-timeline:before {
        left: 50%; } }
  .ui-timeline .tl-item {
    display: table-row;
    margin-bottom: 5px; }
    .ui-timeline .tl-item:before {
      display: none;
      content: ""; }
      @media (min-width: 768px) {
        .ui-timeline .tl-item:before {
          display: block;
          width: 50%; } }
    .ui-timeline .tl-item .tl-caption {
      width: 150px;
      margin-left: -55px; }
      @media (min-width: 768px) {
        .ui-timeline .tl-item .tl-caption {
          margin-left: -110px; } }
    @media (min-width: 768px) {
      .ui-timeline .tl-item.alt {
        text-align: right; }
        .ui-timeline .tl-item.alt:before {
          display: none; }
        .ui-timeline .tl-item.alt:after {
          content: "";
          display: block;
          width: 50%; }
        .ui-timeline .tl-item.alt .tl-body .tl-entry {
          margin: 0 35px 15px 0; }
        .ui-timeline .tl-item.alt .tl-body .tl-time {
          right: -220px;
          left: auto;
          text-align: left; }
        .ui-timeline .tl-item.alt .tl-body .tl-icon {
          right: -53px;
          left: auto; }
        .ui-timeline .tl-item.alt .tl-body .tl-content:after {
          right: -16px;
          left: auto;
          border: 8px solid transparent;
          border-left: 8px solid rgba(255, 255, 255, 0.9);
          border-top: 8px solid rgba(255, 255, 255, 0.9); } }
    .ui-timeline .tl-item .tl-body {
      display: table-cell;
      width: 50%;
      vertical-align: top; }
      .ui-timeline .tl-item .tl-body .tl-entry {
        position: relative;
        margin: 0 0 15px 36px; }
      .ui-timeline .tl-item .tl-body .tl-time {
        z-index: 1;
        position: absolute;
        left: auto;
        right: 15px;
        top: 0;
        width: 150px;
        color: #c4c4c4;
        line-height: 35px;
        text-align: right; }
        @media (min-width: 768px) {
          .ui-timeline .tl-item .tl-body .tl-time {
            left: -220px;
            right: auto;
            color: #3D4051; } }
      .ui-timeline .tl-item .tl-body .tl-icon {
        position: absolute;
        left: -53px;
        top: 0; }
      .ui-timeline .tl-item .tl-body .tl-content {
        position: relative;
        padding: 15px;
        border-radius: 2px;
        background-color: rgba(255, 255, 255, 0.9); }
        .ui-timeline .tl-item .tl-body .tl-content:after {
          content: " ";
          line-height: 0;
          position: absolute;
          left: -16px;
          top: 0;
          border: 8px solid transparent;
          border-right: 8px solid rgba(255, 255, 255, 0.9);
          border-top: 8px solid rgba(255, 255, 255, 0.9); }

.tooltip-inner {
  padding: .85em;
  text-align: left; }
  .tooltip-inner ul {
    padding-left: 20px; }

.mdl-shadow--2dp, .card-panel, .card {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--3dp {
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--4dp {
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--6dp {
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--8dp {
  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); }

.mdl-shadow--16dp {
  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); }

.mdl-shadow--24dp {
  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); }

.md-button {
  margin: 0;
  line-height: 1.42857; }
  .md-button.md-fab {
    font-size: 20px;
    padding: 0; }
    .md-button.md-fab.md-fab-square {
      border-radius: 2px; }
    .md-button.md-fab.md-fab-xs {
      font-size: 14px;
      padding: 0;
      width: 36px;
      height: 36px;
      line-height: 36px; }
    .md-button.md-fab.md-fab-sm {
      font-size: 14px;
      width: 40px;
      height: 40px;
      line-height: 40px; }
    .md-button.md-fab.md-fab-lg {
      font-size: 28px;
      width: 65px;
      height: 65px;
      line-height: 65px; }

.btn-lg {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.33;
  border-radius: 2px; }

.btn-sm {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 2px; }

.btn-xs {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 2px; }

.card-panel {
  padding: 20px;
  margin: 10px 0 20px 0;
  border-radius: 2px; }

.card {
  position: relative;
  overflow: hidden;
  margin: 10px 0 20px 0;
  border-radius: 2px; }
  .card .card-title {
    font-size: 24px; }
    .card .card-title.activator {
      cursor: pointer; }
  .card .card-action > a {
    margin-right: 20px;
    text-transform: uppercase; }
  .card .card-image {
    position: relative; }
    .card .card-image img {
      border-radius: 2px 2px 0 0;
      position: relative;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      width: 100%; }
    .card .card-image .card-title {
      position: absolute;
      bottom: 0;
      left: 0;
      padding: 20px;
      color: #fff;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); }
  .card .card-content {
    padding: 20px;
    border-radius: 0 0 2px 2px; }
    .card .card-content p {
      margin: 0;
      color: inherit; }
    .card .card-content .card-title {
      line-height: 48px; }
    .card .card-content .card-profile-img {
      position: relative;
      z-index: 1;
      margin-top: -70px;
      border-radius: 50%;
      width: 100px;
      height: 100px;
      padding: 5px;
      background-color: #fff; }
      .card .card-content .card-profile-img img {
        width: 90px;
        height: 90px;
        border-radius: 50%; }
      .card .card-content .card-profile-img.profile-img-sm {
        margin-top: -50px;
        width: 60px;
        height: 60px;
        padding: 2px; }
        .card .card-content .card-profile-img.profile-img-sm img {
          width: 56px;
          height: 56px;
          border-radius: 50%; }
    .card .card-content .card-button .btn-icon {
      position: relative;
      z-index: 1;
      margin-top: -65px; }
  .card .card-action {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding: 20px; }
    .card .card-action.no-border {
      border: 0; }
  .card .card-reveal {
    padding: 20px;
    position: absolute;
    background-color: #FFF;
    width: 100%;
    overflow-y: auto;
    top: 100%;
    height: 100%;
    z-index: 1; }
    .card .card-reveal .card-title {
      cursor: pointer;
      display: block; }

.ui-input-group {
  position: relative;
  margin: 18px 0 12px; }
  .ui-input-group .form-control:focus {
    border-color: #E11383; }
  .ui-input-group > input,
  .ui-input-group > textarea {
    padding-left: 0;
    padding-right: 0;
    border: none;
    border-bottom: 1px solid #CBD5DD; }
    .ui-input-group > input:focus,
    .ui-input-group > textarea:focus {
      outline: none; }
    .ui-input-group > input:focus ~ label,
    .ui-input-group > input:valid ~ label,
    .ui-input-group > textarea:focus ~ label,
    .ui-input-group > textarea:valid ~ label {
      top: -20px;
      left: 0;
      font-size: 12px; }
    .ui-input-group > input:valid ~ label,
    .ui-input-group > textarea:valid ~ label {
      color: #999; }
    .ui-input-group > input:focus ~ label,
    .ui-input-group > textarea:focus ~ label {
      color: #E11383; }
    .ui-input-group > input:focus ~ .input-bar:before,
    .ui-input-group > input:focus ~ .input-bar:after,
    .ui-input-group > textarea:focus ~ .input-bar:before,
    .ui-input-group > textarea:focus ~ .input-bar:after {
      width: 50%; }
  .ui-input-group > label {
    color: #999;
    font-size: 14px;
    font-weight: normal;
    position: absolute;
    pointer-events: none;
    left: 0;
    top: 10px;
    -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-input-group .input-bar {
    position: relative;
    display: block;
    width: 100%; }
  .ui-input-group .input-bar:before,
  .ui-input-group .input-bar:after {
    content: '';
    height: 1px;
    width: 0;
    bottom: 1px;
    position: absolute;
    background: #E11383;
    -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -moz-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
  .ui-input-group .input-bar:before {
    left: 50%; }
  .ui-input-group .input-bar:after {
    right: 50%; }

.ui-accordion .panel-group .panel-heading + .panel-collapse .panel-body {
  border-top: 1px solid #e2edeb; }

.ui-accordion .panel {
  border: 1px solid #e2edeb; }

.ui-accordion .panel-heading {
  padding: 0;
  background-color: #F2F7F7; }
  .ui-accordion .panel-heading .panel-title > a {
    display: block;
    padding: 15px;
    font-size: 14px; }
    .ui-accordion .panel-heading .panel-title > a:hover, .ui-accordion .panel-heading .panel-title > a:active, .ui-accordion .panel-heading .panel-title > a:focus {
      cursor: pointer;
      text-decoration: none; }

.ui-accordion-success .panel {
  border: 1px solid #8BC34A; }

.ui-accordion-success .panel-heading {
  background-color: #8BC34A;
  color: #ffffff; }

.ui-accordion-info .panel {
  border: 1px solid #00BCD4; }

.ui-accordion-info .panel-heading {
  background-color: #00BCD4;
  color: #ffffff; }

.ui-accordion-warning .panel {
  border: 1px solid #FFCA28; }

.ui-accordion-warning .panel-heading {
  background-color: #FFCA28;
  color: #ffffff; }

.ui-accordion-danger .panel {
  border: 1px solid #F44336; }

.ui-accordion-danger .panel-heading {
  background-color: #F44336;
  color: #ffffff; }

.ui-accordion-dark .panel {
  border: 1px solid #262B33; }

.ui-accordion-dark .panel-heading {
  background-color: #262B33;
  color: #ffffff; }

.ui-map {
  display: block;
  height: 400px; }

.pagination-lg > li > a,
.pagination-lg > li span {
  line-height: 26px;
  padding: 10px 18px; }

.pagination > li:first-child > a,
.pagination > li:first-child > span, .pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-radius: 2px; }

.pagination > li > a {
  color: #3D4051;
  border-radius: 2px;
  cursor: pointer; }

.pagination > li > a,
.pagination > li > span {
  padding: 5px 10px;
  margin-left: 10px; }

.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 4px 8px;
  font-size: 12px;
  line-height: 20px; }

.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px; }

.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px; }

.progress {
  box-shadow: none;
  background-color: #f5f5f5; }

.progressbar-xs {
  height: 12px; }

.progress-rounded {
  border-radius: 50px; }

.progress-bar {
  box-shadow: none; }

.progressbar-xs {
  height: 10px; }

.progressbar-sm {
  height: 15px; }

.progressbar-container {
  margin-bottom: 20px; }
  .progressbar-container .progress {
    margin-bottom: 5px; }
  .progressbar-container .desc {
    color: #A7A9AC; }

.vprogressbar-container {
  height: 250px;
  margin-top: 25px;
  border-bottom: #F0F0F1 2px solid;
  position: relative; }
  .vprogressbar-container.brand-info {
    border-color: #00BCD4; }
  .vprogressbar-container.brand-success {
    border-color: #8BC34A; }
  .vprogressbar-container .vprogressbar {
    padding-left: 10px; }
    .vprogressbar-container .vprogressbar li {
      position: relative;
      height: 248px;
      width: 35px;
      background: #F0F0F1;
      margin-right: 18px;
      float: left;
      list-style: none; }
  .vprogressbar-container .vprogressbar-percent {
    display: block;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%; }
  .vprogressbar-container .vprogressbar-legend {
    position: absolute;
    top: 0px;
    right: 0px;
    padding-left: 0;
    padding: 5px 10px;
    text-align: left;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.3); }
    .vprogressbar-container .vprogressbar-legend li {
      display: block;
      font-size: 11px;
      margin-bottom: 5px;
      list-style: none; }
    .vprogressbar-container .vprogressbar-legend .vpointer {
      height: 10px;
      width: 10px;
      display: inline-block;
      position: relative;
      top: 1px;
      margin-right: 5px; }
  .vprogressbar-container .vprogressbar-info {
    color: #ccc; }

.ui-tab .nav-tabs {
  margin-bottom: 15px; }
  .ui-tab .nav-tabs.nav-justified > li.active > a {
    border-bottom-color: transparent; }
  .ui-tab .nav-tabs > li.active > a {
    background-color: #ffffff; }
  .ui-tab .nav-tabs a {
    color: #3D4051; }
    .ui-tab .nav-tabs a:hover {
      cursor: pointer; }

.ui-tab-container .nav-tabs {
  margin-bottom: 0; }
  .ui-tab-container .nav-tabs.nav-justified > li:last-child {
    border-right: 0; }
  .ui-tab-container .nav-tabs.nav-justified > li:hover > a, .ui-tab-container .nav-tabs.nav-justified > li:active > a, .ui-tab-container .nav-tabs.nav-justified > li:focus > a {
    border-width: 0 0 1px 0;
    border-style: solid;
    border-color: #ddd; }
  .ui-tab-container .nav-tabs.nav-justified > li > a {
    border-width: 0 0 1px 0;
    border-style: solid;
    border-color: #ddd; }
  .ui-tab-container .nav-tabs > li.active > a {
    color: #E11383; }
  .ui-tab-container .nav-tabs > li:hover > a, .ui-tab-container .nav-tabs > li:active > a, .ui-tab-container .nav-tabs > li:focus > a {
    border: 0;
    background-color: transparent; }
  .ui-tab-container .nav-tabs > li > a {
    margin: 0;
    border: 0;
    padding: 15px 15px;
    font-weight: bold;
    border-radius: 0; }

.ui-tab-container .tab-content {
  padding: 15px 15px; }

.ui-tab-horizontal {
  border: 1px solid #ddd;
  border-radius: 2px; }
  .ui-tab-horizontal .nav-tabs {
    background-color: #F2F7F7; }
    .ui-tab-horizontal .nav-tabs > li {
      border-right: 1px solid #ddd; }
      .ui-tab-horizontal .nav-tabs > li.active:hover > a, .ui-tab-horizontal .nav-tabs > li.active:active > a, .ui-tab-horizontal .nav-tabs > li.active:focus > a {
        border: 0;
        background-color: #fff; }
      .ui-tab-horizontal .nav-tabs > li.active > a:focus, .ui-tab-horizontal .nav-tabs > li.active > a:hover, .ui-tab-horizontal .nav-tabs > li.active > a:active {
        border: 0; }

.ui-tab-vertical {
  position: relative;
  padding: 0 0 0 30%; }
  .ui-tab-vertical .nav-tabs {
    position: absolute;
    left: 0;
    top: 0;
    width: 30%;
    background-color: #F2F7F7;
    border-width: 1px 0 1px 1px;
    border-radius: 2px 0 0 2px;
    border-color: #ddd;
    border-style: solid; }
    .ui-tab-vertical .nav-tabs > li {
      width: 100%;
      float: none;
      border-bottom: 1px solid #ddd;
      margin: 0; }
      .ui-tab-vertical .nav-tabs > li:last-child {
        border-bottom: 0; }
      .ui-tab-vertical .nav-tabs > li.active:hover > a, .ui-tab-vertical .nav-tabs > li.active:active > a, .ui-tab-vertical .nav-tabs > li.active:focus > a {
        border: 0;
        background-color: #fff; }
      .ui-tab-vertical .nav-tabs > li.active > a {
        margin-right: -1px; }
        .ui-tab-vertical .nav-tabs > li.active > a:focus, .ui-tab-vertical .nav-tabs > li.active > a:hover, .ui-tab-vertical .nav-tabs > li.active > a:active {
          border: 0; }
      .ui-tab-vertical .nav-tabs > li > a {
        display: block; }
  .ui-tab-vertical .tab-content {
    border: 1px solid #ddd;
    border-radius: 0 2px 2px 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuY3NzIiwic291cmNlcyI6WyJ1aS5zY3NzIiwidWkvX3VpLnNjc3MiLCJnbG9iYWwvX3Zhci5zY3NzIiwiZ2xvYmFsL192YXItZXh0cmEuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvX21peGlucy5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2hpZGUtdGV4dC5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX29wYWNpdHkuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19pbWFnZS5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2xhYmVscy5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc2V0LWZpbHRlci5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc2l6ZS5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc3BvbnNpdmUtdmlzaWJpbGl0eS5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX3NpemUuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL190YWItZm9jdXMuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19yZXNldC10ZXh0LnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fdGV4dC1lbXBoYXNpcy5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtb3ZlcmZsb3cuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL192ZW5kb3ItcHJlZml4ZXMuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19hbGVydHMuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19idXR0b25zLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fcGFuZWxzLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2xpc3QtZ3JvdXAuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19uYXYtZGl2aWRlci5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2Zvcm1zLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fcHJvZ3Jlc3MtYmFyLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fdGFibGUtcm93LnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fYmFja2dyb3VuZC12YXJpYW50LnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2dyYWRpZW50cy5zY3NzIiwiYm9vdHN0cmFwL2Jvb3RzdHJhcC9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fY2VudGVyLWJsb2NrLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fbmF2LXZlcnRpY2FsLWFsaWduLnNjc3MiLCJib290c3RyYXAvYm9vdHN0cmFwL21peGlucy9fZ3JpZC1mcmFtZXdvcmsuc2NzcyIsImJvb3RzdHJhcC9ib290c3RyYXAvbWl4aW5zL19ncmlkLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190aW50LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsImJvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsImJvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwiYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsImJvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsImJvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19zZWxlY3Rpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsImJvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsImJvdXJib24vYWRkb25zL19tYXJnaW4uc2NzcyIsImJvdXJib24vYWRkb25zL19wYWRkaW5nLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsImJvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsImJvdXJib24vYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCJ1aS9jb21wb25lbnRzL19zY2FmZm9sZGluZy5zY3NzIiwidWkvY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwidWkvY29tcG9uZW50cy9fdHlwZS5zY3NzIiwidWkvY29tcG9uZW50cy9fdGFibGVzLnNjc3MiLCJ1aS9jb21wb25lbnRzL190YWJsZXMtcmVzcG9uc2l2ZS5zY3NzIiwidWkvY29tcG9uZW50cy9fZm9ybS1jaGVja2JveC1yYWRpby5zY3NzIiwidWkvY29tcG9uZW50cy9fZm9ybS1lZGl0b3Iuc2NzcyIsInVpL2NvbXBvbmVudHMvX2Zvcm0tZWxlbWVudHMuc2NzcyIsInVpL2NvbXBvbmVudHMvX2Zvcm0taW5wdXQuc2NzcyIsInVpL2NvbXBvbmVudHMvX2Zvcm0tc2VsZWN0LnNjc3MiLCJ1aS9jb21wb25lbnRzL19mb3JtLXN3aXRjaC5zY3NzIiwidWkvY29tcG9uZW50cy9fZm9ybS12YWxpZGF0aW9uLnNjc3MiLCJ1aS9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJ1aS9jb21wb25lbnRzL193YXZlLnNjc3MiLCJ1aS9jb21wb25lbnRzL19hbmltYXRpb24uc2NzcyIsInVpL2NvbXBvbmVudHMvX2JhZGdlcy5zY3NzIiwidWkvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsInVpL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsInVpL2NvbXBvbmVudHMvX2Ryb3Bkb3ducy5zY3NzIiwidWkvY29tcG9uZW50cy9faG92ZXIuc2NzcyIsInVpL2NvbXBvbmVudHMvX2ltYWdlLXNpemUuc2NzcyIsInVpL2NvbXBvbmVudHMvX2xhYmVscy5zY3NzIiwidWkvY29tcG9uZW50cy9fbGlzdC1ncm91cC5zY3NzIiwidWkvY29tcG9uZW50cy9fbWVkaWEuc2NzcyIsInVpL2NvbXBvbmVudHMvX25hdnMuc2NzcyIsInVpL2NvbXBvbmVudHMvX3BhbmVscy5zY3NzIiwidWkvY29tcG9uZW50cy9fcG9wb3ZlcnMuc2NzcyIsInVpL2NvbXBvbmVudHMvX3ByaWNpbmctdGFibGVzLnNjc3MiLCJ1aS9jb21wb25lbnRzL19yaWJib25zLnNjc3MiLCJ1aS9jb21wb25lbnRzL19zcHJpdGVzLnNjc3MiLCJ1aS9jb21wb25lbnRzL190aW1lbGluZS5zY3NzIiwidWkvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwidWkvY29tcG9uZW50cy9fbWF0ZXJpYWwtc2hhZG93LnNjc3MiLCJ1aS9jb21wb25lbnRzL19tYXRlcmlhbC1idXR0b24uc2NzcyIsInVpL2NvbXBvbmVudHMvX21hdGVyaWFsLWNhcmRzLnNjc3MiLCJ1aS9jb21wb25lbnRzL19tYXRlcmlhbC1mb3JtLnNjc3MiLCJ1aS9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsInVpL2NvbXBvbmVudHMvX21hcC5zY3NzIiwidWkvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwidWkvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFycy5zY3NzIiwidWkvY29tcG9uZW50cy9fdGFiLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIHJlYXNvbiBmb3IgZG9pbmcgc28gaXMgdG8gc29sdmUgXCJyZWxhdGl2ZSBhc3NldHMgKGltYWdlcywgZm9udHMpIGZhaWwgdG8gZmluZFwiIGlzc3VlXG5cbkBpbXBvcnQgXCJ1aS91aVwiO1xuIiwiXG4vLyBTaGFyZWQgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgXG4gICAgXCIuLi9nbG9iYWwvdmFyXCIgICAgICAgICAgICAgICAgICAgICAgICAvLyBnbG9iYWwgdmFyaWFibGVzXG4sICAgXCIuLi9nbG9iYWwvdmFyLWV4dHJhXCIgICAgICAgICAgICAgICAgICAvLyBleHRyYSBnbG9iYWwgdmFyaWFibGVzXG4sICAgXCIuLi9ib290c3RyYXAvYm9vdHN0cmFwL21peGluc1wiICAgICAgICAvLyBCb290c3RyYXAgbWl4aW5zXG4sICAgXCIuLi9ib3VyYm9uL2JvdXJib25cIiAgICAgICAgICAgICAgICAgICAvLyBtaXhpbnNcbjtcblxuQGltcG9ydFxuXG4vLyBDb3JlIENTU1xuICAgIFwiY29tcG9uZW50cy9zY2FmZm9sZGluZ1wiXG4sICAgXCJjb21wb25lbnRzL2dyaWRcIlxuLCAgIFwiY29tcG9uZW50cy90eXBlXCJcbiwgICBcImNvbXBvbmVudHMvdGFibGVzXCJcbiwgICBcImNvbXBvbmVudHMvdGFibGVzLXJlc3BvbnNpdmVcIlxuLCAgIFwiY29tcG9uZW50cy9mb3JtLWNoZWNrYm94LXJhZGlvXCJcbiwgICBcImNvbXBvbmVudHMvZm9ybS1lZGl0b3JcIlxuLCAgIFwiY29tcG9uZW50cy9mb3JtLWVsZW1lbnRzXCJcbiwgICBcImNvbXBvbmVudHMvZm9ybS1pbnB1dFwiXG4sICAgXCJjb21wb25lbnRzL2Zvcm0tc2VsZWN0XCJcbiwgICBcImNvbXBvbmVudHMvZm9ybS1zd2l0Y2hcIlxuLCAgIFwiY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb25cIlxuLCAgIFwiY29tcG9uZW50cy9idXR0b25zXCJcbiwgICBcImNvbXBvbmVudHMvd2F2ZVwiXG5cbi8vIENvbXBvbmVudHNcbiwgICBcImNvbXBvbmVudHMvYW5pbWF0aW9uXCJcbiwgICBcImNvbXBvbmVudHMvYmFkZ2VzXCJcbiwgICBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIlxuLCAgIFwiY29tcG9uZW50cy9jYWxsb3V0XCJcbiwgICBcImNvbXBvbmVudHMvZHJvcGRvd25zXCJcbiwgICBcImNvbXBvbmVudHMvaG92ZXJcIlxuLCAgIFwiY29tcG9uZW50cy9pbWFnZS1zaXplXCJcbiwgICBcImNvbXBvbmVudHMvbGFiZWxzXCJcbiwgICBcImNvbXBvbmVudHMvbGlzdC1ncm91cFwiXG4sICAgXCJjb21wb25lbnRzL21lZGlhXCJcbiwgICBcImNvbXBvbmVudHMvbmF2c1wiXG4sICAgXCJjb21wb25lbnRzL3BhbmVsc1wiXG4sICAgXCJjb21wb25lbnRzL3BvcG92ZXJzXCJcbiwgICBcImNvbXBvbmVudHMvcHJpY2luZy10YWJsZXNcIlxuLCAgIFwiY29tcG9uZW50cy9yaWJib25zXCJcbiwgICBcImNvbXBvbmVudHMvc3ByaXRlc1wiXG4sICAgXCJjb21wb25lbnRzL3RpbWVsaW5lXCJcbiwgICBcImNvbXBvbmVudHMvdG9vbHRpcFwiXG4sICAgXCJjb21wb25lbnRzL21hdGVyaWFsLXNoYWRvd1wiXG4sICAgXCJjb21wb25lbnRzL21hdGVyaWFsLWJ1dHRvblwiXG4sICAgXCJjb21wb25lbnRzL21hdGVyaWFsLWNhcmRzXCJcbiwgICBcImNvbXBvbmVudHMvbWF0ZXJpYWwtZm9ybVwiXG5cbi8vIENvbXBvbmVudHMgdy8gSmF2YVNjcmlwdFxuLCAgIFwiY29tcG9uZW50cy9hY2NvcmRpb25cIlxuLCAgIFwiY29tcG9uZW50cy9tYXBcIlxuLCAgIFwiY29tcG9uZW50cy9wYWdpbmF0aW9uXCJcbiwgICBcImNvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyc1wiXG4sICAgXCJjb21wb25lbnRzL3RhYlwiXG47IiwiLy8gV2hlbiB0cnVlLCBhc3NldCBwYXRoIGhlbHBlcnMgYXJlIHVzZWQsIG90aGVyd2lzZSB0aGUgcmVndWxhciBDU1MgYHVybCgpYCBpcyB1c2VkLlxuLy8gV2hlbiB0aGVyZSBubyBmdW5jdGlvbiBpcyBkZWZpbmVkLCBgZm4oJycpYCBpcyBwYXJzZWQgYXMgc3RyaW5nIHRoYXQgZXF1YWxzIHRoZSByaWdodCBoYW5kIHNpZGVcbi8vIE5COiBpbiBTYXNzIDMuMyB0aGVyZSBpcyBhIG5hdGl2ZSBmdW5jdGlvbjogZnVuY3Rpb24tZXhpc3RzKHR3YnMtZm9udC1wYXRoKVxuJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlcjogKHR3YnMtZm9udC1wYXRoKFwiXCIpICE9IHVucXVvdGUoJ3R3YnMtZm9udC1wYXRoKFwiXCIpJykpICFkZWZhdWx0O1xuLy9cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyogU0FTUyBWQVJJQUJMRVMgKi9cbi8qIFdBUzogMjAyMDEyMDUgTkFMRVhcblxuQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBvcHBpbnM6NDAwLDMwMCw1MDAsNjAwKTtcbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Nb250c2VycmF0KTtcbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1MYXRvKTtcblxuICovXG5cbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Qb3BwaW5zOjQwMCwzMDAsNTAwLDYwMHxNb250c2VycmF0OjMwMCw0MDAsNTAwLDYwMHxMYXRvOjMwMCw0MDAsNTAwLDYwMCk7XG5cbiRncmV5OiAgICAgICAgICAgICAgIzRENEQ0RDtcbiRsaWdodC1ncmV5OiAgICAgICAgI0E3QTlBQztcbiRsaWdodGVyLWdyZXk6ICAgICAgI0YwRjBGMTtcbiRibHVlOiAgICAgICAgICAgICAgIzA4OTJCMjtcbiRsaWdodC1ibHVlOiAgICAgICAgIzcyRDBFQjtcbiRwaW5rOiAgICAgICAgICAgICAgI0UxMTM4MztcbiRsaWdodC1waW5rOiAgICAgICAgcmdiYSgyMjUsMTksMTMxLDAuNik7XG4kbGlnaHRlci1waW5rOiAgICAgIHJnYmEoMjI1LDE5LDEzMSwwLjUpO1xuXG4kcG9wcGluczogICAgICAgICAgICdQb3BwaW5zJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuJG1vbnRzZXJyYXQ6ICAgICAgICAnTW9udHNlcnJhdCcsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4kZGVmYXVsdC1mb250OiAgICAgICAnTGF0bycsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGRlZmF1bHQtd2VpZ2h0OiA0MDA7XG4kZGVmYXVsdC1mb250LXNpemU6IDE4cHg7XG4kZGVmYXVsdC1saW5lLWhlaWdodDogMS41NTtcblxuLyogMjAxOTA0MjIgTkFMRVggU1RST0xMRVIgVFJBRkZJQyAqL1xuXG4kc3QtZ3JlZW46ICAgICAgICAgICMyMkMwQzE7XG4kc3QtbGlnaHQtcHVycGxlOiAgICM5RjJFNjI7XG4kc3QtZGFyay1wdXJwbGU6ICAgICM2MDUzNjc7XG5cbiRob21lc3RlYWQ6ICAgICAgICAgJ0hvbWVzdGVhZCcsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4vLz09IENvbG9yc1xuLy9cbi8vIyMgR3JheSBhbmQgYnJhbmQgY29sb3JzIGZvciB1c2UgYWNyb3NzIEJvb3RzdHJhcC5cbiRncmF5LWJhc2U6ICAgICAgICAgICAgICAkZ3JleSAhZGVmYXVsdDtcbiRncmF5LWRhcmtlcjogICAgICAgICAgICBsaWdodGVuKCRncmF5LWJhc2UsIDEzLjUlKSAhZGVmYXVsdDsgLy8gIzIyMlxuJGdyYXktZGFyazogICAgICAgICAgICAgIGxpZ2h0ZW4oJGdyYXktYmFzZSwgMjAlKSAhZGVmYXVsdDsgICAvLyAjMzMzXG4kZ3JheTogICAgICAgICAgICAgICAgICAgbGlnaHRlbigkZ3JheS1iYXNlLCAzMy41JSkgIWRlZmF1bHQ7IC8vICM1NTVcbiRncmF5LWxpZ2h0OiAgICAgICAgICAgICBsaWdodGVuKCRncmF5LWJhc2UsIDQ2LjclKSAhZGVmYXVsdDsgLy8gIzc3N1xuJGdyYXktbGlnaHRlcjogICAgICAgICAgIGxpZ2h0ZW4oJGdyYXktYmFzZSwgOTMuNSUpICFkZWZhdWx0OyAvLyAjZWVlXG5cbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICRwaW5rICFkZWZhdWx0O1xuJGJyYW5kLXN1Y2Nlc3M6ICAgICAgICAgIzhCQzM0QSAhZGVmYXVsdDsgLy8gTGlnaHQgR3JlZW4gNTAwXG4kYnJhbmQtaW5mbzogICAgICAgICAgICAjMDBCQ0Q0ICFkZWZhdWx0OyAvLyBDeWFuIDUwMFxuJGJyYW5kLWluZm8tYWx0OiAgICAgICAgIzdFNTdDMiAhZGVmYXVsdDsgLy8gRGVlcCBQdXJwbGUgNDAwXG4kYnJhbmQtd2FybmluZzogICAgICAgICAjRkZDQTI4ICFkZWZhdWx0OyAvLyBBbWJlciA0MDBcbiRicmFuZC1kYW5nZXI6ICAgICAgICAgICNGNDQzMzYgIWRlZmF1bHQ7IC8vIFJlZCA1MDBcblxuJHNraW46ICAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnk7XG4kc2tpbi1saWdodDogICAgICAgICAgICAjNUM2QkMwO1xuJHNraW4tYWNjZW50OiAgICAgICAgICAgJGxpZ2h0LWJsdWU7XG4kc2tpbi13YXJuOiAgICAgICAgICAgICAkYnJhbmQtZGFuZ2VyO1xuJHNraW4tZ3JheS1kYXJrOiAgICAgICAgJGxpZ2h0LWdyZXk7XG4kc2tpbi1ncmF5OiAgICAgICAgICAgICAkbGlnaHRlci1ncmV5O1xuXG4kZGFyazogICAgICAgICAgICAgICAgICAjMjYyQjMzO1xuJGRhcmstbGlnaHQ6ICAgICAgICAgICAgIzNENDA1MTtcbiRkYXJrLWxpZ2h0ZXI6ICAgICAgICAgICNBMEEyQUE7XG4kYnJpZ2h0OiAgICAgICAgICAgICAgICAjZmFmYWZhO1xuJHJldmVyc2U6ICAgICAgICAgICAgICAgI2ZmZmZmZjtcblxuJHN0YXRlLWRlZmF1bHQtYmc6ICAgICAgICAgICAgICAjRjJGN0Y3OyAvLyBhbHNvOiBmbGF0IGJ1dHRvbiBiZywgcGFnaW5hdGlvbiBiZ1xuJHN0YXRlLWRlZmF1bHQtYm9yZGVyOiAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtZGVmYXVsdC1iZywgLTEwKSwgNSUpO1xuJHN0YXRlLWRlZmF1bHQtYm9yZGVyLWxpZ2h0OiAgICAjZjNmM2YzO1xuXG5cbi8vPT0gU2NhZmZvbGRpbmdcbi8vXG4vLyMjIFNldHRpbmdzIGZvciBzb21lIG9mIHRoZSBtb3N0IGdsb2JhbCBzdHlsZXMuXG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBmb3IgYDxib2R5PmAuXG4kYm9keS1iZzogICAgICAgICAgICAgICAjZjNmM2YzICFkZWZhdWx0O1xuLy8qKiBHbG9iYWwgdGV4dCBjb2xvciBvbiBgPGJvZHk+YC5cbiR0ZXh0LWNvbG9yOiAgICAgICAgICAgICRkYXJrLWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyoqIEdsb2JhbCB0ZXh0dWFsIGxpbmsgY29sb3IuXG4kbGluay1jb2xvcjogICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbi8vKiogTGluayBob3ZlciBjb2xvciBzZXQgdmlhIGBkYXJrZW4oKWAgZnVuY3Rpb24uXG4kbGluay1ob3Zlci1jb2xvcjogICAgICBkYXJrZW4oJGxpbmstY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG4vLyoqIExpbmsgaG92ZXIgZGVjb3JhdGlvbi5cbiRsaW5rLWhvdmVyLWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcblxuXG4vLz09IFR5cG9ncmFwaHlcbi8vXG4vLyMjIEZvbnQsIGxpbmUtaGVpZ2h0LCBhbmQgY29sb3IgZm9yIGJvZHkgdGV4dCwgaGVhZGluZ3MsIGFuZCBtb3JlLlxuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6ICAgICAgIEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbi8vKiogRGVmYXVsdCBtb25vc3BhY2UgZm9udHMgZm9yIGA8Y29kZT5gLCBgPGtiZD5gLCBhbmQgYDxwcmU+YC5cbiRmb250LWZhbWlseS1tb25vc3BhY2U6ICAgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LWJhc2U6ICAgICAgICAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAxNHB4ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1sYXJnZTogICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjI1KSkgIWRlZmF1bHQ7IC8vIH4xOHB4XG4kZm9udC1zaXplLXNtYWxsOiAgICAgICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDAuODUpKSAhZGVmYXVsdDsgLy8gfjEycHhcblxuJGZvbnQtc2l6ZS1oMTogICAgICAgICAgICBmbG9vcigoJGZvbnQtc2l6ZS1iYXNlICogMi42KSkgIWRlZmF1bHQ7IC8vIH4zNnB4XG4kZm9udC1zaXplLWgyOiAgICAgICAgICAgIGZsb29yKCgkZm9udC1zaXplLWJhc2UgKiAyLjE1KSkgIWRlZmF1bHQ7IC8vIH4zMHB4XG4kZm9udC1zaXplLWgzOiAgICAgICAgICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDEuNykpICFkZWZhdWx0OyAvLyB+MjRweFxuJGZvbnQtc2l6ZS1oNDogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjQpKSAhZGVmYXVsdDsgLy8gfjE4cHhcbiRmb250LXNpemUtaDU6ICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1oNjogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAwLjg1KSkgIWRlZmF1bHQ7IC8vIH4xMnB4XG5cbi8vKiogVW5pdC1sZXNzIGBsaW5lLWhlaWdodGAgZm9yIHVzZSBpbiBjb21wb25lbnRzIGxpa2UgYnV0dG9ucy5cbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgMS40Mjg1NzE0MjkgIWRlZmF1bHQ7IC8vIDIwLzE0XG4vLyoqIENvbXB1dGVkIFwibGluZS1oZWlnaHRcIiAoYGZvbnQtc2l6ZWAgKiBgbGluZS1oZWlnaHRgKSBmb3IgdXNlIHdpdGggYG1hcmdpbmAsIGBwYWRkaW5nYCwgZXRjLlxuJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOiAgICAyMHB4ICFkZWZhdWx0OyAvLyB+MjBweFxuXG4vLyoqIEJ5IGRlZmF1bHQsIHRoaXMgaW5oZXJpdHMgZnJvbSB0aGUgYDxib2R5PmAuXG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6ICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgIDUwMCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgMS4xICFkZWZhdWx0O1xuJGhlYWRpbmdzLWNvbG9yOiAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuXG5cbi8vPT0gSWNvbm9ncmFwaHlcbi8vXG4vLyMjIFNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIGFuZCBmaWxlbmFtZSBvZiB0aGUgaW5jbHVkZWQgR2x5cGhpY29ucyBpY29uIGZvbnQuIFVzZWZ1bCBmb3IgdGhvc2UgaW5jbHVkaW5nIEJvb3RzdHJhcCB2aWEgQm93ZXIuXG5cbi8vKiogTG9hZCBmb250cyBmcm9tIHRoaXMgZGlyZWN0b3J5LlxuJGljb24tZm9udC1wYXRoOiAgICAgICAgICBcIi4uL2ZvbnRzL1wiICFkZWZhdWx0O1xuLy8qKiBGaWxlIG5hbWUgZm9yIGFsbCBmb250IGZpbGVzLlxuJGljb24tZm9udC1uYW1lOiAgICAgICAgICBcImdseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXJcIiAhZGVmYXVsdDtcbi8vKiogRWxlbWVudCBJRCB3aXRoaW4gU1ZHIGljb24gZmlsZS5cbiRpY29uLWZvbnQtc3ZnLWlkOiAgICAgICAgXCJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXJcIiAhZGVmYXVsdDtcblxuXG4vLz09IENvbXBvbmVudHNcbi8vXG4vLyMjIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS4gVmFsdWVzIGJhc2VkIG9uIDE0cHggdGV4dCBhbmQgMS40MjggbGluZS1oZWlnaHQgKH4yMHB4IHRvIHN0YXJ0KS5cblxuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogICAgIDhweCAhZGVmYXVsdDtcbiRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDogICAxMnB4ICFkZWZhdWx0O1xuXG4kcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDogICAgMTBweCAhZGVmYXVsdDtcbiRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw6ICAxNnB4ICFkZWZhdWx0O1xuXG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogICAgNXB4ICFkZWZhdWx0O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogIDEwcHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLXhzLXZlcnRpY2FsOiAgICAgICAxcHggIWRlZmF1bHQ7XG4kcGFkZGluZy14cy1ob3Jpem9udGFsOiAgICAgNXB4ICFkZWZhdWx0O1xuXG4kbGluZS1oZWlnaHQtbGFyZ2U6ICAgICAgICAgMS4zMyAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1zbWFsbDogICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzLWJhc2U6ICAgICAgICAycHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogICAgICAgMnB4ICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc21hbGw6ICAgICAgIDJweCAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgY29sb3IgZm9yIGFjdGl2ZSBpdGVtcyAoZS5nLiwgbmF2cyBvciBkcm9wZG93bnMpLlxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIEdsb2JhbCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhY3RpdmUgaXRlbXMgKGUuZy4sIG5hdnMgb3IgZHJvcGRvd25zKS5cbiRjb21wb25lbnQtYWN0aXZlLWJnOiAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8qKiBXaWR0aCBvZiB0aGUgYGJvcmRlcmAgZm9yIGdlbmVyYXRpbmcgY2FyZXRzIHRoYXQgaW5kaWNhdG9yIGRyb3Bkb3ducy5cbiRjYXJldC13aWR0aC1iYXNlOiAgICAgICAgICA0cHggIWRlZmF1bHQ7XG4vLyoqIENhcmV0cyBpbmNyZWFzZSBzbGlnaHRseSBpbiBzaXplIGZvciBsYXJnZXIgY29tcG9uZW50cy5cbiRjYXJldC13aWR0aC1sYXJnZTogICAgICAgICA1cHggIWRlZmF1bHQ7XG5cblxuLy89PSBUYWJsZXNcbi8vXG4vLyMjIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cblxuLy8qKiBQYWRkaW5nIGZvciBgPHRoPmBzIGFuZCBgPHRkPmBzLlxuJHRhYmxlLWNlbGwtcGFkZGluZzogICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuLy8qKiBQYWRkaW5nIGZvciBjZWxscyBpbiBgLnRhYmxlLWNvbmRlbnNlZGAuXG4kdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZzogIDVweCAhZGVmYXVsdDtcblxuLy8qKiBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYWxsIHRhYmxlcy5cbiR0YWJsZS1iZzogICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1zdHJpcGVkYC5cbiR0YWJsZS1iZy1hY2NlbnQ6ICAgICAgICAgICAgICAgI2Y5ZjlmOSAhZGVmYXVsdDtcbi8vKiogQmFja2dyb3VuZCBjb2xvciB1c2VkIGZvciBgLnRhYmxlLWhvdmVyYC5cbiR0YWJsZS1iZy1ob3ZlcjogICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbiR0YWJsZS1iZy1hY3RpdmU6ICAgICAgICAgICAgICAgJHRhYmxlLWJnLWhvdmVyICFkZWZhdWx0O1xuXG4vLyoqIEJvcmRlciBjb2xvciBmb3IgdGFibGUgYW5kIGNlbGwgYm9yZGVycy5cbiR0YWJsZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLz09IEJ1dHRvbnNcbi8vXG4vLyMjIEZvciBlYWNoIG9mIEJvb3RzdHJhcCdzIGJ1dHRvbnMsIGRlZmluZSB0ZXh0LCBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgY29sb3IuXG5cbiRidG4tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgIG5vcm1hbCAhZGVmYXVsdDtcblxuJGJ0bi1kZWZhdWx0LWNvbG9yOiAgICAgICAgICAgICAgJHRleHQtY29sb3IgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtYmc6ICAgICAgICAgICAgICAgICAkYnJpZ2h0ICFkZWZhdWx0O1xuJGJ0bi1kZWZhdWx0LWJvcmRlcjogICAgICAgICAgICAgJGJ0bi1kZWZhdWx0LWJnICFkZWZhdWx0O1xuXG4kYnRuLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kYnRuLXByaW1hcnktYm9yZGVyOiAgICAgICAgICAgICAkYnRuLXByaW1hcnktYmcgIWRlZmF1bHQ7XG5cbiRidG4tc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgICAgICAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcbiRidG4tc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAgICAgICRidG4tc3VjY2Vzcy1iZyAhZGVmYXVsdDtcblxuJGJ0bi1pbmZvLWNvbG9yOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4taW5mby1iZzogICAgICAgICAgICAgICAgICAgICRicmFuZC1pbmZvICFkZWZhdWx0O1xuJGJ0bi1pbmZvLWJvcmRlcjogICAgICAgICAgICAgICAgJGJ0bi1pbmZvLWJnICFkZWZhdWx0O1xuXG4kYnRuLXdhcm5pbmctY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi13YXJuaW5nLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4kYnRuLXdhcm5pbmctYm9yZGVyOiAgICAgICAgICAgICAkYnRuLXdhcm5pbmctYmcgIWRlZmF1bHQ7XG5cbiRidG4tZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWRhbmdlci1iZzogICAgICAgICAgICAgICAgICAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuJGJ0bi1kYW5nZXItYm9yZGVyOiAgICAgICAgICAgICAgJGJ0bi1kYW5nZXItYmcgIWRlZmF1bHQ7XG5cbiRidG4taW5mby1hbHQtY29sb3I6ICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWluZm8tYWx0LWJnOiAgICAgICAgICAgICAgICAkYnJhbmQtaW5mby1hbHQgIWRlZmF1bHQ7XG4kYnRuLWluZm8tYWx0LWJvcmRlcjogICAgICAgICAgICAkYnRuLWluZm8tYWx0LWJnICFkZWZhdWx0O1xuXG4kYnRuLWRhcmstY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1kYXJrLWJnOiAgICAgICAgICAgICAgICAgICAgJGRhcmsgIWRlZmF1bHQ7XG4kYnRuLWRhcmstYm9yZGVyOiAgICAgICAgICAgICAgICAkYnRuLWRhcmstYmcgIWRlZmF1bHQ7XG5cbiRidG4tbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyBBbGxvd3MgZm9yIGN1c3RvbWl6aW5nIGJ1dHRvbiByYWRpdXMgaW5kZXBlbmRlbnRseSBmcm9tIGdsb2JhbCBib3JkZXIgcmFkaXVzXG4kYnRuLWJvcmRlci1yYWRpdXMtYmFzZTogICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItcmFkaXVzLWxhcmdlOiAgICAgICAgJGJvcmRlci1yYWRpdXMtbGFyZ2UgIWRlZmF1bHQ7XG4kYnRuLWJvcmRlci1yYWRpdXMtc21hbGw6ICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbWFsbCAhZGVmYXVsdDtcblxuLy89PSBGb3Jtc1xuLy9cbi8vIyNcblxuLy8qKiBgPGlucHV0PmAgYmFja2dyb3VuZCBjb2xvclxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogYDxpbnB1dCBkaXNhYmxlZD5gIGJhY2tncm91bmQgY29sb3JcbiRpbnB1dC1iZy1kaXNhYmxlZDogICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbi8vKiogVGV4dCBjb2xvciBmb3IgYDxpbnB1dD5gc1xuJGlucHV0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJHRleHQtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIGA8aW5wdXQ+YCBib3JkZXIgY29sb3JcbiRpbnB1dC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICNDQkQ1REQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IFJlbmFtZSBgJGlucHV0LWJvcmRlci1yYWRpdXNgIHRvIGAkaW5wdXQtYm9yZGVyLXJhZGl1cy1iYXNlYCBpbiB2NFxuLy8qKiBEZWZhdWx0IGAuZm9ybS1jb250cm9sYCBib3JkZXIgcmFkaXVzXG4kaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuLy8qKiBMYXJnZSBgLmZvcm0tY29udHJvbGAgYm9yZGVyIHJhZGl1c1xuJGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U6ICAgICAgJGJvcmRlci1yYWRpdXMtbGFyZ2UgIWRlZmF1bHQ7XG4vLyoqIFNtYWxsIGAuZm9ybS1jb250cm9sYCBib3JkZXIgcmFkaXVzXG4kaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDogICAgICAkYm9yZGVyLXJhZGl1cy1zbWFsbCAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIGlucHV0cyBvbiBmb2N1c1xuJGlucHV0LWJvcmRlci1mb2N1czogICAgICAgICAgICAgIzY2YWZlOSAhZGVmYXVsdDtcblxuLy8qKiBQbGFjZWhvbGRlciB0ZXh0IGNvbG9yXG4kaW5wdXQtY29sb3ItcGxhY2Vob2xkZXI6ICAgICAgICAjOTk5ICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgYC5mb3JtLWNvbnRyb2xgIGhlaWdodFxuJGlucHV0LWhlaWdodC1iYXNlOiAgICAgICAgICAgICAgKCRsaW5lLWhlaWdodC1jb21wdXRlZCArICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICogMikgKyAyKSAhZGVmYXVsdDtcbi8vKiogTGFyZ2UgYC5mb3JtLWNvbnRyb2xgIGhlaWdodFxuJGlucHV0LWhlaWdodC1sYXJnZTogICAgICAgICAgICAgKGNlaWwoJGZvbnQtc2l6ZS1sYXJnZSAqICRsaW5lLWhlaWdodC1sYXJnZSkgKyAoJHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuLy8qKiBTbWFsbCBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LXNtYWxsOiAgICAgICAgICAgICAoZmxvb3IoJGZvbnQtc2l6ZS1zbWFsbCAqICRsaW5lLWhlaWdodC1zbWFsbCkgKyAoJHBhZGRpbmctc21hbGwtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuXG4vLyoqIGAuZm9ybS1ncm91cGAgbWFyZ2luXG4kZm9ybS1ncm91cC1tYXJnaW4tYm90dG9tOiAgICAgICAxNXB4ICFkZWZhdWx0O1xuXG4kbGVnZW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJGxlZ2VuZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2U1ZTVlNSAhZGVmYXVsdDtcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0ZXh0dWFsIGlucHV0IGFkZG9uc1xuJGlucHV0LWdyb3VwLWFkZG9uLWJnOiAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogQm9yZGVyIGNvbG9yIGZvciB0ZXh0dWFsIGlucHV0IGFkZG9uc1xuJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlciAhZGVmYXVsdDtcblxuLy8qKiBEaXNhYmxlZCBjdXJzb3IgZm9yIGZvcm0gY29udHJvbHMgYW5kIGJ1dHRvbnMuXG4kY3Vyc29yLWRpc2FibGVkOiAgICAgICAgICAgICAgICBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuXG4vLz09IERyb3Bkb3duc1xuLy9cbi8vIyMgRHJvcGRvd24gbWVudSBjb250YWluZXIgYW5kIGNvbnRlbnRzLlxuXG4vLyoqIEJhY2tncm91bmQgZm9yIHRoZSBkcm9wZG93biBtZW51LlxuJGRyb3Bkb3duLWJnOiAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogRHJvcGRvd24gbWVudSBgYm9yZGVyLWNvbG9yYC5cbiRkcm9wZG93bi1ib3JkZXI6ICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsLjE1KSAhZGVmYXVsdDtcbi8vKiogRHJvcGRvd24gbWVudSBgYm9yZGVyLWNvbG9yYCAqKmZvciBJRTgqKi5cbiRkcm9wZG93bi1mYWxsYmFjay1ib3JkZXI6ICAgICAgICNjY2MgIWRlZmF1bHQ7XG4vLyoqIERpdmlkZXIgY29sb3IgZm9yIGJldHdlZW4gZHJvcGRvd24gaXRlbXMuXG4kZHJvcGRvd24tZGl2aWRlci1iZzogICAgICAgICAgICAjZTVlNWU1ICFkZWZhdWx0O1xuXG4vLyoqIERyb3Bkb3duIGxpbmsgdGV4dCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWNvbG9yOiAgICAgICAgICAgICRncmF5LWRhcmsgIWRlZmF1bHQ7XG4vLyoqIEhvdmVyIGNvbG9yIGZvciBkcm9wZG93biBsaW5rcy5cbiRkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIEhvdmVyIGJhY2tncm91bmQgZm9yIGRyb3Bkb3duIGxpbmtzLlxuJGRyb3Bkb3duLWxpbmstaG92ZXItYmc6ICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vKiogQWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbSB0ZXh0IGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIEFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0gYmFja2dyb3VuZCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZzogICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4vLyoqIERpc2FibGVkIGRyb3Bkb3duIG1lbnUgaXRlbSBiYWNrZ3JvdW5kIGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogVGV4dCBjb2xvciBmb3IgaGVhZGVycyB3aXRoaW4gZHJvcGRvd24gbWVudXMuXG4kZHJvcGRvd24taGVhZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8gTm90ZTogRGVwcmVjYXRlZCAkZHJvcGRvd24tY2FyZXQtY29sb3IgYXMgb2YgdjMuMS4wXG4kZHJvcGRvd24tY2FyZXQtY29sb3I6ICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuXG5cbi8vLS0gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuLy9cbi8vIE5vdGU6IFRoZXNlIHZhcmlhYmxlcyBhcmUgbm90IGdlbmVyYXRlZCBpbnRvIHRoZSBDdXN0b21pemVyLlxuXG4kemluZGV4LW5hdmJhcjogICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1kcm9wZG93bjogICAgICAgICAgMTAwMCAhZGVmYXVsdDtcbiR6aW5kZXgtcG9wb3ZlcjogICAgICAgICAgIDEwNjAgIWRlZmF1bHQ7XG4kemluZGV4LXRvb2x0aXA6ICAgICAgICAgICAxMDcwICFkZWZhdWx0O1xuJHppbmRleC1uYXZiYXItZml4ZWQ6ICAgICAgMTAzMCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWwtYmFja2dyb3VuZDogIDEwNDAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsOiAgICAgICAgICAgICAxMDQwICFkZWZhdWx0O1xuXG4vLz09IE1lZGlhIHF1ZXJpZXMgYnJlYWtwb2ludHNcbi8vXG4vLyMjIERlZmluZSB0aGUgYnJlYWtwb2ludHMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsIGFkYXB0aW5nIHRvIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbi8vIEV4dHJhIHNtYWxsIHNjcmVlbiAvIHBob25lXG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4teHNgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi14czogICAgICAgICAgICAgICAgICA0ODBweCAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi14cy1taW5gIGFzIG9mIHYzLjIuMFxuJHNjcmVlbi14cy1taW46ICAgICAgICAgICAgICAkc2NyZWVuLXhzICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXBob25lYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tcGhvbmU6ICAgICAgICAgICAgICAgJHNjcmVlbi14cy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNtYWxsIHNjcmVlbiAvIHRhYmxldFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXNtYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tc206ICAgICAgICAgICAgICAgICAgNzY4cHggIWRlZmF1bHQ7XG4kc2NyZWVuLXNtLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tc20gIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tdGFibGV0YCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tdGFibGV0OiAgICAgICAgICAgICAgJHNjcmVlbi1zbS1taW4gIWRlZmF1bHQ7XG5cbi8vIE1lZGl1bSBzY3JlZW4gLyBkZXNrdG9wXG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tbWRgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1tZDogICAgICAgICAgICAgICAgICA5OTJweCAhZGVmYXVsdDtcbiRzY3JlZW4tbWQtbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1tZCAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tZGVza3RvcDogICAgICAgICAgICAgJHNjcmVlbi1tZC1taW4gIWRlZmF1bHQ7XG5cbi8vIExhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLWxnYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGc6ICAgICAgICAgICAgICAgICAgMTIwMHB4ICFkZWZhdWx0O1xuJHNjcmVlbi1sZy1taW46ICAgICAgICAgICAgICAkc2NyZWVuLWxnICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLWxnLWRlc2t0b3BgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1sZy1kZXNrdG9wOiAgICAgICAgICAkc2NyZWVuLWxnLW1pbiAhZGVmYXVsdDtcblxuLy8gU28gbWVkaWEgcXVlcmllcyBkb24ndCBvdmVybGFwIHdoZW4gcmVxdWlyZWQsIHByb3ZpZGUgYSBtYXhpbXVtXG4kc2NyZWVuLXhzLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLXNtLW1pbiAtIDEpICFkZWZhdWx0O1xuJHNjcmVlbi1zbS1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1tZC1taW4gLSAxKSAhZGVmYXVsdDtcbiRzY3JlZW4tbWQtbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbGctbWluIC0gMSkgIWRlZmF1bHQ7XG5cblxuLy89PSBHcmlkIHN5c3RlbVxuLy9cbi8vIyMgRGVmaW5lIHlvdXIgY3VzdG9tIHJlc3BvbnNpdmUgZ3JpZC5cblxuLy8qKiBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbiRncmlkLWNvbHVtbnM6ICAgICAgICAgICAgICAxMiAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBiZXR3ZWVuIGNvbHVtbnMuIEdldHMgZGl2aWRlZCBpbiBoYWxmIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6ICAgICAgICAgMzBweCAhZGVmYXVsdDtcbi8vIE5hdmJhciBjb2xsYXBzZVxuLy8qKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlY29tZXMgdW5jb2xsYXBzZWQuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50OiAgICAgJHNjcmVlbi1zbS1taW4gIWRlZmF1bHQ7XG4vLyoqIFBvaW50IGF0IHdoaWNoIHRoZSBuYXZiYXIgYmVnaW5zIGNvbGxhcHNpbmcuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heDogKCRncmlkLWZsb2F0LWJyZWFrcG9pbnQgLSAxKSAhZGVmYXVsdDtcblxuXG4vLz09IENvbnRhaW5lciBzaXplc1xuLy9cbi8vIyMgRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuLy8gU21hbGwgc2NyZWVuIC8gdGFibGV0XG4kY29udGFpbmVyLXRhYmxldDogICAgICAgICAgICAgKDcyMHB4ICsgJGdyaWQtZ3V0dGVyLXdpZHRoKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLXNtLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1zbTogICAgICAgICAgICAgICAgICRjb250YWluZXItdGFibGV0ICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuJGNvbnRhaW5lci1kZXNrdG9wOiAgICAgICAgICAgICg5NDBweCArICRncmlkLWd1dHRlci13aWR0aCkgIWRlZmF1bHQ7XG4vLyoqIEZvciBgJHNjcmVlbi1tZC1taW5gIGFuZCB1cC5cbiRjb250YWluZXItbWQ6ICAgICAgICAgICAgICAgICAkY29udGFpbmVyLWRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vIExhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wOiAgICAgICgxMTQwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpICFkZWZhdWx0O1xuLy8qKiBGb3IgYCRzY3JlZW4tbGctbWluYCBhbmQgdXAuXG4kY29udGFpbmVyLWxnOiAgICAgICAgICAgICAgICAgJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wICFkZWZhdWx0O1xuXG5cbi8vPT0gTmF2YmFyXG4vL1xuLy8jI1xuXG4vLyBCYXNpY3Mgb2YgYSBuYXZiYXJcbiRuYXZiYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgNTBweCAhZGVmYXVsdDtcbiRuYXZiYXItbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICFkZWZhdWx0O1xuJG5hdmJhci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICBmbG9vcigoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpICFkZWZhdWx0O1xuJG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAoKCRuYXZiYXItaGVpZ2h0IC0gJGxpbmUtaGVpZ2h0LWNvbXB1dGVkKSAvIDIpICFkZWZhdWx0O1xuJG5hdmJhci1jb2xsYXBzZS1tYXgtaGVpZ2h0OiAgICAgICAzNDBweCAhZGVmYXVsdDtcblxuJG5hdmJhci1kZWZhdWx0LWNvbG9yOiAgICAgICAgICAgICAjNzc3ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWJnOiAgICAgICAgICAgICAgICAjZjhmOGY4ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWJvcmRlcjogICAgICAgICAgICBkYXJrZW4oJG5hdmJhci1kZWZhdWx0LWJnLCA2LjUlKSAhZGVmYXVsdDtcblxuLy8gTmF2YmFyIGxpbmtzXG4kbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjogICAgICAgICAgICAgICAgIzc3NyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgICM1NTUgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItZGVmYXVsdC1iZywgNi41JSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgI2NjYyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnOiAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gTmF2YmFyIGJyYW5kIGxhYmVsXG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgJG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItY29sb3I6ICAgICAgICAgZGFya2VuKCRuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvciwgMTAlKSAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1iZzogICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gTmF2YmFyIHRvZ2dsZVxuJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ob3Zlci1iZzogICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWljb24tYmFyLWJnOiAgICAgICAgIzg4OCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC10b2dnbGUtYm9yZGVyLWNvbG9yOiAgICAgICAjZGRkICFkZWZhdWx0O1xuXG5cbi8vIEludmVydGVkIG5hdmJhclxuLy8gUmVzZXQgaW52ZXJ0ZWQgbmF2YmFyIGJhc2ljc1xuJG5hdmJhci1pbnZlcnNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1iZzogICAgICAgICAgICAgICAgICAgICAgICAgIzIyMiAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItaW52ZXJzZS1iZywgMTAlKSAhZGVmYXVsdDtcblxuLy8gSW52ZXJ0ZWQgbmF2YmFyIGxpbmtzXG4kbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICM0NDQgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZzogICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXIgYnJhbmQgbGFiZWxcbiRuYXZiYXItaW52ZXJzZS1icmFuZC1jb2xvcjogICAgICAgICAgICAgICAgJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItY29sb3I6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItYmc6ICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXIgdG9nZ2xlXG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnOiAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWljb24tYmFyLWJnOiAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWJvcmRlci1jb2xvcjogICAgICAgICMzMzMgIWRlZmF1bHQ7XG5cblxuLy89PSBOYXZzXG4vL1xuLy8jI1xuXG4vLz09PSBTaGFyZWQgbmF2IHN0eWxlc1xuJG5hdi1saW5rLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAxMHB4IDE1cHggIWRlZmF1bHQ7XG4kbmF2LWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbiRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kbmF2LWRpc2FibGVkLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLz09IFRhYnNcbiRuYXYtdGFicy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICRib2R5LWJnICFkZWZhdWx0O1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAkZ3JheSAhZGVmYXVsdDtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I6ICAgICAkYm9keS1iZyAhZGVmYXVsdDtcblxuLy89PSBQaWxsc1xuJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZzogICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy89PSBQYWdpbmF0aW9uXG4vL1xuLy8jI1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAjZGNlMGUwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAkdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAjYWFhICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyOiAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAkc3RhdGUtZGVmYXVsdC1iZyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjogICAgICAgICAgICRzdGF0ZS1kZWZhdWx0LWJnICFkZWZhdWx0O1xuXG5cbi8vPT0gUGFnZXJcbi8vXG4vLyMjXG5cbiRwYWdlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWJnICFkZWZhdWx0O1xuJHBhZ2VyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24tYm9yZGVyICFkZWZhdWx0O1xuJHBhZ2VyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcblxuJHBhZ2VyLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24taG92ZXItYmcgIWRlZmF1bHQ7XG5cbiRwYWdlci1hY3RpdmUtYmc6ICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRwYWdlci1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuJHBhZ2VyLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy89PSBKdW1ib3Ryb25cbi8vXG4vLyMjXG5cbiRqdW1ib3Ryb24tcGFkZGluZzogICAgICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4kanVtYm90cm9uLWNvbG9yOiAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiRqdW1ib3Ryb24taGVhZGluZy1jb2xvcjogICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kanVtYm90cm9uLWZvbnQtc2l6ZTogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjUpKSAhZGVmYXVsdDtcbiRqdW1ib3Ryb24taGVhZGluZy1mb250LXNpemU6ICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDQuNSkpICFkZWZhdWx0O1xuXG5cbi8vPT0gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy9cbi8vIyMgRGVmaW5lIGNvbG9ycyBmb3IgZm9ybSBmZWVkYmFjayBzdGF0ZXMgYW5kLCBieSBkZWZhdWx0LCBhbGVydHMuXG5cbiRzdGF0ZS1zdWNjZXNzLXRleHQ6ICAgICAgICAgICAgICM2ODdGNDIgIWRlZmF1bHQ7XG4kc3RhdGUtc3VjY2Vzcy1iZzogICAgICAgICAgICAgICAjRjBGQkUzICFkZWZhdWx0O1xuJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLXN1Y2Nlc3MtYmcsIC0xMCksIDUlKSAhZGVmYXVsdDtcblxuJHN0YXRlLWluZm8tdGV4dDogICAgICAgICAgICAgICAgIzNCNzk5QSAhZGVmYXVsdDtcbiRzdGF0ZS1pbmZvLWJnOiAgICAgICAgICAgICAgICAgICNFNkY1RkQgIWRlZmF1bHQ7XG4kc3RhdGUtaW5mby1ib3JkZXI6ICAgICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtaW5mby1iZywgLTEwKSwgNyUpICFkZWZhdWx0O1xuXG4kc3RhdGUtd2FybmluZy10ZXh0OiAgICAgICAgICAgICAjOUE3RTI2ICFkZWZhdWx0O1xuJHN0YXRlLXdhcm5pbmctYmc6ICAgICAgICAgICAgICAgI0ZGRkFFRCAhZGVmYXVsdDtcbiRzdGF0ZS13YXJuaW5nLWJvcmRlcjogICAgICAgICAgIGRhcmtlbihhZGp1c3QtaHVlKCRzdGF0ZS13YXJuaW5nLWJnLCAtMTApLCA1JSkgIWRlZmF1bHQ7XG5cbiRzdGF0ZS1kYW5nZXItdGV4dDogICAgICAgICAgICAgICNBMTUxM0MgIWRlZmF1bHQ7XG4kc3RhdGUtZGFuZ2VyLWJnOiAgICAgICAgICAgICAgICAjRkJFOUU2ICFkZWZhdWx0O1xuJHN0YXRlLWRhbmdlci1ib3JkZXI6ICAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLWRhbmdlci1iZywgLTEwKSwgNSUpICFkZWZhdWx0O1xuXG5cbi8vPT0gVG9vbHRpcHNcbi8vXG4vLyMjXG5cbi8vKiogVG9vbHRpcCBtYXggd2lkdGhcbiR0b29sdGlwLW1heC13aWR0aDogICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xuLy8qKiBUb29sdGlwIHRleHQgY29sb3JcbiR0b29sdGlwLWNvbG9yOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIFRvb2x0aXAgYmFja2dyb3VuZCBjb2xvclxuJHRvb2x0aXAtYmc6ICAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6ICAgICAgICAgICAgIC45ICFkZWZhdWx0O1xuXG4vLyoqIFRvb2x0aXAgYXJyb3cgd2lkdGhcbiR0b29sdGlwLWFycm93LXdpZHRoOiAgICAgICAgIDVweCAhZGVmYXVsdDtcbi8vKiogVG9vbHRpcCBhcnJvdyBjb2xvclxuJHRvb2x0aXAtYXJyb3ctY29sb3I6ICAgICAgICAgJHRvb2x0aXAtYmcgIWRlZmF1bHQ7XG5cblxuLy89PSBQb3BvdmVyc1xuLy9cbi8vIyNcblxuLy8qKiBQb3BvdmVyIGJvZHkgYmFja2dyb3VuZCBjb2xvclxuJHBvcG92ZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFyayAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBtYXhpbXVtIHdpZHRoXG4kcG9wb3Zlci1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgIDI3NnB4ICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIGJvcmRlciBjb2xvclxuJHBvcG92ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZGFyayAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBmYWxsYmFjayBib3JkZXIgY29sb3JcbiRwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvcjogICAgICAgJGRhcmsgIWRlZmF1bHQ7XG5cbi8vKiogUG9wb3ZlciB0aXRsZSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci10aXRsZS1iZzogICAgICAgICAgICAgICAgICAgICRkYXJrICFkZWZhdWx0O1xuXG4vLyoqIFBvcG92ZXIgYXJyb3cgd2lkdGhcbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBhcnJvdyBjb2xvclxuJHBvcG92ZXItYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgICAkZGFyayAhZGVmYXVsdDtcblxuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IHdpZHRoXG4kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDogICAgICAgICAgICgkcG9wb3Zlci1hcnJvdy13aWR0aCArIDEpICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IGNvbG9yXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogICAgICAgICAgICRkYXJrICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IGZhbGxiYWNrIGNvbG9yXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjogICRkYXJrICFkZWZhdWx0O1xuXG5cbi8vPT0gTGFiZWxzXG4vL1xuLy8jI1xuXG4vLyoqIERlZmF1bHQgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLWRlZmF1bHQtYmc6ICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIFByaW1hcnkgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXByaW1hcnktYmc6ICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIFN1Y2Nlc3MgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgJGJyYW5kLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4vLyoqIEluZm8gbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLWluZm8tYmc6ICAgICAgICAgICAgICAgJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG4vLyoqIFdhcm5pbmcgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXdhcm5pbmctYmc6ICAgICAgICAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4vLyoqIERhbmdlciBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtZGFuZ2VyLWJnOiAgICAgICAgICAgICAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgbGFiZWwgdGV4dCBjb2xvclxuJGxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIGEgbGlua2VkIGxhYmVsXG4kbGFiZWwtbGluay1ob3Zlci1jb2xvcjogICAgICAjZmZmICFkZWZhdWx0O1xuXG5cbi8vPT0gTW9kYWxzXG4vL1xuLy8jI1xuXG4vLyoqIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgbW9kYWwgYm9keVxuJG1vZGFsLWlubmVyLXBhZGRpbmc6ICAgICAgICAgMTVweCAhZGVmYXVsdDtcblxuLy8qKiBQYWRkaW5nIGFwcGxpZWQgdG8gdGhlIG1vZGFsIHRpdGxlXG4kbW9kYWwtdGl0bGUtcGFkZGluZzogICAgICAgICAxNXB4ICFkZWZhdWx0O1xuLy8qKiBNb2RhbCB0aXRsZSBsaW5lLWhlaWdodFxuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBjb250ZW50IGFyZWFcbiRtb2RhbC1jb250ZW50LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogTW9kYWwgY29udGVudCBib3JkZXIgY29sb3JcbiRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGNvbnRlbnQgYm9yZGVyIGNvbG9yICoqZm9yIElFOCoqXG4kbW9kYWwtY29udGVudC1mYWxsYmFjay1ib3JkZXItY29sb3I6ICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG5cbi8vKiogTW9kYWwgYmFja2Ryb3AgYmFja2dyb3VuZCBjb2xvclxuJG1vZGFsLWJhY2tkcm9wLWJnOiAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbi8vKiogTW9kYWwgYmFja2Ryb3Agb3BhY2l0eVxuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6ICAgICAgLjUgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGhlYWRlciBib3JkZXIgY29sb3JcbiRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICNlNWU1ZTUgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGZvb3RlciBib3JkZXIgY29sb3JcbiRtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yOiAgICRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kbW9kYWwtbGc6ICAgICAgICAgICAgICAgICAgICA5MDBweCAhZGVmYXVsdDtcbiRtb2RhbC1tZDogICAgICAgICAgICAgICAgICAgIDYwMHB4ICFkZWZhdWx0O1xuJG1vZGFsLXNtOiAgICAgICAgICAgICAgICAgICAgMzAwcHggIWRlZmF1bHQ7XG5cblxuLy89PSBBbGVydHNcbi8vXG4vLyMjIERlZmluZSBhbGVydCBjb2xvcnMsIGJvcmRlciByYWRpdXMsIGFuZCBwYWRkaW5nLlxuXG4kYWxlcnQtcGFkZGluZzogICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbiRhbGVydC1saW5rLWZvbnQtd2VpZ2h0OiAgICAgIGJvbGQgIWRlZmF1bHQ7XG5cbiRhbGVydC1zdWNjZXNzLWJnOiAgICAgICAgICAgICRzdGF0ZS1zdWNjZXNzLWJnICFkZWZhdWx0O1xuJGFsZXJ0LXN1Y2Nlc3MtdGV4dDogICAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1zdWNjZXNzLWJvcmRlcjogICAgICAgICRzdGF0ZS1zdWNjZXNzLWJvcmRlciAhZGVmYXVsdDtcblxuJGFsZXJ0LWluZm8tYmc6ICAgICAgICAgICAgICAgJHN0YXRlLWluZm8tYmcgIWRlZmF1bHQ7XG4kYWxlcnQtaW5mby10ZXh0OiAgICAgICAgICAgICAkc3RhdGUtaW5mby10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LWluZm8tYm9yZGVyOiAgICAgICAgICAgJHN0YXRlLWluZm8tYm9yZGVyICFkZWZhdWx0O1xuXG4kYWxlcnQtd2FybmluZy1iZzogICAgICAgICAgICAkc3RhdGUtd2FybmluZy1iZyAhZGVmYXVsdDtcbiRhbGVydC13YXJuaW5nLXRleHQ6ICAgICAgICAgICRzdGF0ZS13YXJuaW5nLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy1ib3JkZXI6ICAgICAgICAkc3RhdGUtd2FybmluZy1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRhbGVydC1kYW5nZXItYmc6ICAgICAgICAgICAgICRzdGF0ZS1kYW5nZXItYmcgIWRlZmF1bHQ7XG4kYWxlcnQtZGFuZ2VyLXRleHQ6ICAgICAgICAgICAkc3RhdGUtZGFuZ2VyLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtZGFuZ2VyLWJvcmRlcjogICAgICAgICAkc3RhdGUtZGFuZ2VyLWJvcmRlciAhZGVmYXVsdDtcblxuXG4vLz09IFByb2dyZXNzIGJhcnNcbi8vXG4vLyMjXG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgd2hvbGUgcHJvZ3Jlc3MgY29tcG9uZW50XG4kcHJvZ3Jlc3MtYmc6ICAgICAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuLy8qKiBQcm9ncmVzcyBiYXIgdGV4dCBjb2xvclxuJHByb2dyZXNzLWJhci1jb2xvcjogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogVmFyaWFibGUgZm9yIHNldHRpbmcgcm91bmRlZCBjb3JuZXJzIG9uIHByb2dyZXNzIGJhci5cbiRwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAgICAgIDAgIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItYmc6ICAgICAgICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuLy8qKiBTdWNjZXNzIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1zdWNjZXNzLWJnOiAgICAgJGJyYW5kLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4vLyoqIFdhcm5pbmcgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmc6ICAgICAkYnJhbmQtd2FybmluZyAhZGVmYXVsdDtcbi8vKiogRGFuZ2VyIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1kYW5nZXItYmc6ICAgICAgJGJyYW5kLWRhbmdlciAhZGVmYXVsdDtcbi8vKiogSW5mbyBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItaW5mby1iZzogICAgICAgICRicmFuZC1pbmZvICFkZWZhdWx0O1xuXG5cbi8vPT0gTGlzdCBncm91cFxuLy9cbi8vIyNcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9uIGAubGlzdC1ncm91cC1pdGVtYFxuJGxpc3QtZ3JvdXAtYmc6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBgLmxpc3QtZ3JvdXAtaXRlbWAgYm9yZGVyIGNvbG9yXG4kbGlzdC1ncm91cC1ib3JkZXI6ICAgICAgICAgICAgICNlZmYyZjcgIWRlZmF1bHQ7XG4vLyoqIExpc3QgZ3JvdXAgYm9yZGVyIHJhZGl1c1xuJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1czogICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2Ygc2luZ2xlIGxpc3QgZWxlbWVudHMgb24gaG92ZXJcbiRsaXN0LWdyb3VwLWhvdmVyLWJnOiAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbi8vKiogVGV4dCBjb2xvciBvZiBhY3RpdmUgbGlzdCBlbGVtZW50c1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbi8vKiogQmFja2dyb3VuZCBjb2xvciBvZiBhY3RpdmUgbGlzdCBlbGVtZW50c1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWJnOiAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbi8vKiogQm9yZGVyIGNvbG9yIG9mIGFjdGl2ZSBsaXN0IGVsZW1lbnRzXG4kbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyOiAgICAgICRsaXN0LWdyb3VwLWJvcmRlciAhZGVmYXVsdDtcbi8vKiogVGV4dCBjb2xvciBmb3IgY29udGVudCB3aXRoaW4gYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS10ZXh0LWNvbG9yOiAgbGlnaHRlbigkbGlzdC1ncm91cC1hY3RpdmUtYmcsIDQwJSkgIWRlZmF1bHQ7XG5cbi8vKiogVGV4dCBjb2xvciBvZiBkaXNhYmxlZCBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1kaXNhYmxlZC1iZzogICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBUZXh0IGNvbG9yIGZvciBjb250ZW50IHdpdGhpbiBkaXNhYmxlZCBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtbGluay1jb2xvcjogICAgICAgICAjNTU1ICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtbGluay1ob3Zlci1jb2xvcjogICAkbGlzdC1ncm91cC1saW5rLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtbGluay1oZWFkaW5nLWNvbG9yOiAjMzMzICFkZWZhdWx0O1xuXG5cbi8vPT0gUGFuZWxzXG4vL1xuLy8jI1xuXG4kcGFuZWwtYmc6ICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhbmVsLWJvZHktcGFkZGluZzogICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRwYW5lbC1oZWFkaW5nLXBhZGRpbmc6ICAgICAgIDEwcHggMTVweCAhZGVmYXVsdDtcbiRwYW5lbC1mb290ZXItcGFkZGluZzogICAgICAgICRwYW5lbC1oZWFkaW5nLXBhZGRpbmcgIWRlZmF1bHQ7XG4kcGFuZWwtYm9yZGVyLXJhZGl1czogICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuXG4vLyoqIEJvcmRlciBjb2xvciBmb3IgZWxlbWVudHMgd2l0aGluIHBhbmVsc1xuJHBhbmVsLWlubmVyLWJvcmRlcjogICAgICAgICAgJHN0YXRlLWRlZmF1bHQtYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLWZvb3Rlci1iZzogICAgICAgICAgICAgI2ZhZmFmYSAhZGVmYXVsdDtcblxuJHBhbmVsLWRlZmF1bHQtdGV4dDogICAgICAgICAgJHRleHQtY29sb3IgIWRlZmF1bHQ7XG4kcGFuZWwtZGVmYXVsdC1ib3JkZXI6ICAgICAgICAkc3RhdGUtZGVmYXVsdC1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtZGVmYXVsdC1oZWFkaW5nLWJnOiAgICAkc3RhdGUtZGVmYXVsdC1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLXByaW1hcnktdGV4dDogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRwYW5lbC1wcmltYXJ5LWJvcmRlcjogICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuJHBhbmVsLXByaW1hcnktaGVhZGluZy1iZzogICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbiRwYW5lbC1zdWNjZXNzLXRleHQ6ICAgICAgICAgICRzdGF0ZS1zdWNjZXNzLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAkc3RhdGUtc3VjY2Vzcy1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtc3VjY2Vzcy1oZWFkaW5nLWJnOiAgICAkc3RhdGUtc3VjY2Vzcy1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLWluZm8tdGV4dDogICAgICAgICAgICAgJHN0YXRlLWluZm8tdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC1pbmZvLWJvcmRlcjogICAgICAgICAgICRzdGF0ZS1pbmZvLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC1pbmZvLWhlYWRpbmctYmc6ICAgICAgICRzdGF0ZS1pbmZvLWJnICFkZWZhdWx0O1xuXG4kcGFuZWwtd2FybmluZy10ZXh0OiAgICAgICAgICAkc3RhdGUtd2FybmluZy10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLXdhcm5pbmctYm9yZGVyOiAgICAgICAgJHN0YXRlLXdhcm5pbmctYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLXdhcm5pbmctaGVhZGluZy1iZzogICAgJHN0YXRlLXdhcm5pbmctYmcgIWRlZmF1bHQ7XG5cbiRwYW5lbC1kYW5nZXItdGV4dDogICAgICAgICAgICRzdGF0ZS1kYW5nZXItdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC1kYW5nZXItYm9yZGVyOiAgICAgICAgICRzdGF0ZS1kYW5nZXItYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLWRhbmdlci1oZWFkaW5nLWJnOiAgICAgJHN0YXRlLWRhbmdlci1iZyAhZGVmYXVsdDtcblxuXG4vLz09IFRodW1ibmFpbHNcbi8vXG4vLyMjXG5cbi8vKiogUGFkZGluZyBhcm91bmQgdGhlIHRodW1ibmFpbCBpbWFnZVxuJHRodW1ibmFpbC1wYWRkaW5nOiAgICAgICAgICAgNHB4ICFkZWZhdWx0O1xuLy8qKiBUaHVtYm5haWwgYmFja2dyb3VuZCBjb2xvclxuJHRodW1ibmFpbC1iZzogICAgICAgICAgICAgICAgJGJvZHktYmcgIWRlZmF1bHQ7XG4vLyoqIFRodW1ibmFpbCBib3JkZXIgY29sb3JcbiR0aHVtYm5haWwtYm9yZGVyOiAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG4vLyoqIFRodW1ibmFpbCBib3JkZXIgcmFkaXVzXG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6ICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuXG4vLyoqIEN1c3RvbSB0ZXh0IGNvbG9yIGZvciB0aHVtYm5haWwgY2FwdGlvbnNcbiR0aHVtYm5haWwtY2FwdGlvbi1jb2xvcjogICAgICR0ZXh0LWNvbG9yICFkZWZhdWx0O1xuLy8qKiBQYWRkaW5nIGFyb3VuZCB0aGUgdGh1bWJuYWlsIGNhcHRpb25cbiR0aHVtYm5haWwtY2FwdGlvbi1wYWRkaW5nOiAgIDlweCAhZGVmYXVsdDtcblxuXG4vLz09IFdlbGxzXG4vL1xuLy8jI1xuXG4kd2VsbC1iZzogICAgICAgICAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuJHdlbGwtYm9yZGVyOiAgICAgICAgICAgICAgICAgZGFya2VuKCR3ZWxsLWJnLCA3JSkgIWRlZmF1bHQ7XG5cblxuLy89PSBCYWRnZXNcbi8vXG4vLyMjXG5cbiRiYWRnZS1jb2xvcjogICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIExpbmtlZCBiYWRnZSB0ZXh0IGNvbG9yIG9uIGhvdmVyXG4kYmFkZ2UtbGluay1ob3Zlci1jb2xvcjogICAgICAjZmZmICFkZWZhdWx0O1xuJGJhZGdlLWJnOiAgICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogQmFkZ2UgdGV4dCBjb2xvciBpbiBhY3RpdmUgbmF2IGxpbmtcbiRiYWRnZS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRsaW5rLWNvbG9yICFkZWZhdWx0O1xuLy8qKiBCYWRnZSBiYWNrZ3JvdW5kIGNvbG9yIGluIGFjdGl2ZSBuYXYgbGlua1xuJGJhZGdlLWFjdGl2ZS1iZzogICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuJGJhZGdlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgYm9sZCAhZGVmYXVsdDtcbiRiYWRnZS1saW5lLWhlaWdodDogICAgICAgICAgIDEgIWRlZmF1bHQ7XG4kYmFkZ2UtYm9yZGVyLXJhZGl1czogICAgICAgICAxMHB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gQnJlYWRjcnVtYnNcbi8vXG4vLyMjXG5cbiRicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWw6ICAgOHB4ICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsOiAxNXB4ICFkZWZhdWx0O1xuLy8qKiBCcmVhZGNydW1iIGJhY2tncm91bmQgY29sb3JcbiRicmVhZGNydW1iLWJnOiAgICAgICAgICAgICAgICAgJHN0YXRlLWRlZmF1bHQtYmcgIWRlZmF1bHQ7XG4vLyoqIEJyZWFkY3J1bWIgdGV4dCBjb2xvclxuJGJyZWFkY3J1bWItY29sb3I6ICAgICAgICAgICAgICAkc3RhdGUtZGVmYXVsdC1ib3JkZXIgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3Igb2YgY3VycmVudCBwYWdlIGluIHRoZSBicmVhZGNydW1iXG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBUZXh0dWFsIHNlcGFyYXRvciBmb3IgYmV0d2VlbiBicmVhZGNydW1iIGVsZW1lbnRzXG4kYnJlYWRjcnVtYi1zZXBhcmF0b3I6ICAgICAgICAgIFwiL1wiICFkZWZhdWx0O1xuXG5cbi8vPT0gQ2Fyb3VzZWxcbi8vXG4vLyMjXG5cbiRjYXJvdXNlbC10ZXh0LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAwIDFweCAycHggcmdiYSgwLDAsMCwuNikgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgIDE1JSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLW9wYWNpdHk6ICAgICAgICAgICAgICAgICAgICAuNSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuXG4vLz09IENsb3NlXG4vL1xuLy8jI1xuXG4kY2xvc2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICBib2xkICFkZWZhdWx0O1xuJGNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiRjbG9zZS10ZXh0LXNoYWRvdzogICAgICAgICAgIDAgMXB4IDAgI2ZmZiAhZGVmYXVsdDtcblxuXG4vLz09IENvZGVcbi8vXG4vLyMjXG5cbiRjb2RlLWNvbG9yOiAgICAgICAgICAgICAgICAgICNjNzI1NGUgIWRlZmF1bHQ7XG4kY29kZS1iZzogICAgICAgICAgICAgICAgICAgICAjZjlmMmY0ICFkZWZhdWx0O1xuXG4ka2JkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGtiZC1iZzogICAgICAgICAgICAgICAgICAgICAgIzMzMyAhZGVmYXVsdDtcblxuJHByZS1iZzogICAgICAgICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbiRwcmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRncmF5LWRhcmsgIWRlZmF1bHQ7XG4kcHJlLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuJHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ6ICAgMzQwcHggIWRlZmF1bHQ7XG5cblxuLy89PSBUeXBlXG4vL1xuLy8jI1xuXG4vLyoqIEhvcml6b250YWwgb2Zmc2V0IGZvciBmb3JtcyBhbmQgbGlzdHMuXG4kY29tcG9uZW50LW9mZnNldC1ob3Jpem9udGFsOiAxODBweCAhZGVmYXVsdDtcbi8vKiogVGV4dCBtdXRlZCBjb2xvclxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEFiYnJldmlhdGlvbnMgYW5kIGFjcm9ueW1zIGJvcmRlciBjb2xvclxuJGFiYnItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEhlYWRpbmdzIHNtYWxsIGNvbG9yXG4kaGVhZGluZ3Mtc21hbGwtY29sb3I6ICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogQmxvY2txdW90ZSBzbWFsbCBjb2xvclxuJGJsb2NrcXVvdGUtc21hbGwtY29sb3I6ICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEJsb2NrcXVvdGUgZm9udCBzaXplXG4kYmxvY2txdW90ZS1mb250LXNpemU6ICAgICAgICAoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSkgIWRlZmF1bHQ7XG4vLyoqIEJsb2NrcXVvdGUgYm9yZGVyIGNvbG9yXG4kYmxvY2txdW90ZS1ib3JkZXItY29sb3I6ICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBQYWdlIGhlYWRlciBib3JkZXIgY29sb3JcbiRwYWdlLWhlYWRlci1ib3JkZXItY29sb3I6ICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4vLyoqIFdpZHRoIG9mIGhvcml6b250YWwgZGVzY3JpcHRpb24gbGlzdCB0aXRsZXNcbiRkbC1ob3Jpem9udGFsLW9mZnNldDogICAgICAgICRjb21wb25lbnQtb2Zmc2V0LWhvcml6b250YWwgIWRlZmF1bHQ7XG4vLyoqIFBvaW50IGF0IHdoaWNoIC5kbC1ob3Jpem9udGFsIGJlY29tZXMgaG9yaXpvbnRhbFxuJGRsLWhvcml6b250YWwtYnJlYWtwb2ludDogICAgJGdyaWQtZmxvYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbi8vKiogSG9yaXpvbnRhbCBsaW5lIGNvbG9yLlxuJGhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiIsIlxuXG4vLz09IFR5cG9ncmFwaHlcbiRmb250LXdlaWdodC10aGluOiAgICAgIDMwMCAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1jb25kZW5zZWQ6IFwiUm9ib3RvIENvbmRlbnNlZFwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG5cbi8vIENhcmRzIFxuJGNhcmQtcGFkZGluZzogICAgICAgICAgMjBweCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWNhcmQ6ICAgIDJweCAhZGVmYXVsdDtcblxuXG4vLyBHcmlkIFZhcmlhYmxlc1xuJGVsZW1lbnQtdG9wLW1hcmdpbjogICAgICAgICgkZ3JpZC1ndXR0ZXItd2lkdGgvMykgIWRlZmF1bHQ7XG4kZWxlbWVudC1ib3R0b20tbWFyZ2luOiAgICAgKCRncmlkLWd1dHRlci13aWR0aCoyKS8zICFkZWZhdWx0O1xuXG4vLyBBbmltYXRpb25cbiRtYXRlcmlhbF9hbmltYXRpb246ICAgICAgICBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtcblxuXG4vLyBib3ggc2hhZG93XG4uei1kZXB0aC0xIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi56LWRlcHRoLTEtaGFsZiB7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTFweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgNHB4IDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnotZGVwdGgtMiB7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTdweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG59XG4uei1kZXB0aC0zIHtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCksIDAgMTdweCA1MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcbn1cbi56LWRlcHRoLTQge1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCAyOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKSwgMCAyNXB4IDU1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjEpO1xufVxuLnotZGVwdGgtNSB7XG4gICAgYm94LXNoYWRvdzogMCAyN3B4IDI0cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNDBweCA3N3B4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn0iLCIvLyBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFV0aWxpdGllc1xuQGltcG9ydCBcIm1peGlucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvb3BhY2l0eVwiO1xuQGltcG9ydCBcIm1peGlucy9pbWFnZVwiO1xuQGltcG9ydCBcIm1peGlucy9sYWJlbHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzZXQtZmlsdGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9yZXNwb25zaXZlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJtaXhpbnMvc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy90YWItZm9jdXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzZXQtdGV4dFwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LWVtcGhhc2lzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtb3ZlcmZsb3dcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdmVuZG9yLXByZWZpeGVzXCI7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgXCJtaXhpbnMvYWxlcnRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcGFuZWxzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcIm1peGlucy9uYXYtZGl2aWRlclwiO1xuQGltcG9ydCBcIm1peGlucy9mb3Jtc1wiO1xuQGltcG9ydCBcIm1peGlucy9wcm9ncmVzcy1iYXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdGFibGUtcm93XCI7XG5cbi8vIFNraW5zXG5AaW1wb3J0IFwibWl4aW5zL2JhY2tncm91bmQtdmFyaWFudFwiO1xuQGltcG9ydCBcIm1peGlucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2dyYWRpZW50c1wiO1xuXG4vLyBMYXlvdXRcbkBpbXBvcnQgXCJtaXhpbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2VudGVyLWJsb2NrXCI7XG5AaW1wb3J0IFwibWl4aW5zL25hdi12ZXJ0aWNhbC1hbGlnblwiO1xuQGltcG9ydCBcIm1peGlucy9ncmlkLWZyYW1ld29ya1wiO1xuQGltcG9ydCBcIm1peGlucy9ncmlkXCI7XG4iLCIvLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vXG4vLyBIZWFkcyB1cCEgdjMgbGF1bmNoZWQgd2l0aCBvbmx5IGAuaGlkZS10ZXh0KClgLCBidXQgcGVyIG91ciBwYXR0ZXJuIGZvclxuLy8gbWl4aW5zIGJlaW5nIHJldXNlZCBhcyBjbGFzc2VzIHdpdGggdGhlIHNhbWUgbmFtZSwgdGhpcyBkb2Vzbid0IGhvbGQgdXAuIEFzXG4vLyBvZiB2My4wLjEgd2UgaGF2ZSBhZGRlZCBgLnRleHQtaGlkZSgpYCBhbmQgZGVwcmVjYXRlZCBgLmhpZGUtdGV4dCgpYC5cbi8vXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdcblxuLy8gRGVwcmVjYXRlZCBhcyBvZiB2My4wLjEgKGhhcyBiZWVuIHJlbW92ZWQgaW4gdjQpXG5AbWl4aW4gaGlkZS10ZXh0KCkge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcbkBtaXhpbiB0ZXh0LWhpZGUoKSB7XG4gIEBpbmNsdWRlIGhpZGUtdGV4dDtcbn1cbiIsIi8vIE9wYWNpdHlcblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIC8vIElFOCBmaWx0ZXJcbiAgJG9wYWNpdHktaWU6ICgkb3BhY2l0eSAqIDEwMCk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbkBtaXhpbiBpbWctcmVzcG9uc2l2ZSgkZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogJGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG5AbWl4aW4gaW1nLXJldGluYSgkZmlsZS0xeCwgJGZpbGUtMngsICR3aWR0aC0xeCwgJGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1pbWFnZS1wYXRoKFwiI3skZmlsZS0xeH1cIiksIFwiI3skZmlsZS0xeH1cIikpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWltYWdlLXBhdGgoXCIjeyRmaWxlLTJ4fVwiKSwgXCIjeyRmaWxlLTJ4fVwiKSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkd2lkdGgtMXggJGhlaWdodC0xeDtcbiAgfVxufVxuIiwiLy8gTGFiZWxzXG5cbkBtaXhpbiBsYWJlbC12YXJpYW50KCRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgJltocmVmXSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLy9cbi8vIFdoZW4geW91IG5lZWQgdG8gcmVtb3ZlIGEgZ3JhZGllbnQgYmFja2dyb3VuZCwgZG8gbm90IGZvcmdldCB0byB1c2UgdGhpcyB0byByZXNldFxuLy8gdGhlIElFIGZpbHRlciBmb3IgSUU5IGFuZCBiZWxvdy5cblxuQG1peGluIHJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbn1cbiIsIi8vIFJlc2l6ZSBhbnl0aGluZ1xuXG5AbWl4aW4gcmVzaXphYmxlKCRkaXJlY3Rpb24pIHtcbiAgcmVzaXplOiAkZGlyZWN0aW9uOyAvLyBPcHRpb25zOiBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgYm90aFxuICBvdmVyZmxvdzogYXV0bzsgLy8gUGVyIENTUzMgVUksIGByZXNpemVgIG9ubHkgYXBwbGllcyB3aGVuIGBvdmVyZmxvd2AgaXNuJ3QgYHZpc2libGVgXG59XG4iLCIvLyBSZXNwb25zaXZlIHV0aWxpdGllc1xuXG4vL1xuLy8gTW9yZSBlYXNpbHkgaW5jbHVkZSBhbGwgdGhlIHN0YXRlcyBmb3IgcmVzcG9uc2l2ZS11dGlsaXRpZXMubGVzcy5cbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgkcGFyZW50KSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUjeyRwYXJlbnR9ICB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHIjeyRwYXJlbnR9ICAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoI3skcGFyZW50fSxcbiAgdGQjeyRwYXJlbnR9ICAgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxufVxuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiByZXNwb25zaXZlLWludmlzaWJpbGl0eSgkcGFyZW50KSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gU2l6aW5nIHNob3J0Y3V0c1xuXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xufVxuXG5AbWl4aW4gc3F1YXJlKCRzaXplKSB7XG4gIEBpbmNsdWRlIHNpemUoJHNpemUsICRzaXplKTtcbn1cbiIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xuXG5AbWl4aW4gdGFiLWZvY3VzKCkge1xuICAvLyBEZWZhdWx0XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICAvLyBXZWJLaXRcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0KCkge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplLlxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgYSN7JHBhcmVudH06aG92ZXIsXG4gIGEjeyRwYXJlbnR9OmZvY3VzIHtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gVGV4dCBvdmVyZmxvd1xuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG5AbWl4aW4gdGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IGhhdmUgYmVlbiByZW1vdmVkIGluIHY0LlxuXG4vLyAtIEFuaW1hdGlvbnNcbi8vIC0gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gLSBCb3ggc2hhZG93XG4vLyAtIEJveCBzaXppbmdcbi8vIC0gQ29udGVudCBjb2x1bW5zXG4vLyAtIEh5cGhlbnNcbi8vIC0gUGxhY2Vob2xkZXIgdGV4dFxuLy8gLSBUcmFuc2Zvcm1hdGlvbnNcbi8vIC0gVHJhbnNpdGlvbnNcbi8vIC0gVXNlciBTZWxlY3RcblxuXG4vLyBBbmltYXRpb25zXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICRhbmltYXRpb247XG4gICAgICAgLW8tYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbn1cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiAkbmFtZTtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogJG5hbWU7XG59XG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCRkdXJhdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xufVxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmctZnVuY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbn1cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJGRlbGF5KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXk7XG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkaXRlcmF0aW9uLWNvdW50KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbi1jb3VudDtcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAkaXRlcmF0aW9uLWNvdW50O1xufVxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRmaWxsLW1vZGUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiAkZmlsbC1tb2RlO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6ICRmaWxsLW1vZGU7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXG5cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuQG1peGluIGNvbnRlbnQtY29sdW1ucygkY29sdW1uLWNvdW50LCAkY29sdW1uLWdhcDogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6ICRjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG5AbWl4aW4gaHlwaGVucygkbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogJG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogJG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogJG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogJG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogJG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3I6ICRpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6ICRjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbkBtaXhpbiBzY2FsZSgkcmF0aW8uLi4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG59XG5cbkBtaXhpbiBzY2FsZVgoJHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWCgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbn1cbkBtaXhpbiBzY2FsZVkoJHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTtcbn1cbkBtaXhpbiBza2V3KCR4LCAkeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goJHgpIHNrZXdZKCR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzQ4ODU7IElFOStcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpO1xufVxuQG1peGluIHRyYW5zbGF0ZSgkeCwgJHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xufVxuQG1peGluIHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJHgsICR5LCAkeik7XG59XG5AbWl4aW4gcm90YXRlKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuQG1peGluIHJvdGF0ZVgoJGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpO1xufVxuQG1peGluIHJvdGF0ZVkoJGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpO1xufVxuQG1peGluIHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmU6ICRwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlO1xufVxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbn1cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRvcmlnaW4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XG4gICAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjsgLy8gSUU5IG9ubHlcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xufVxuXG5cbi8vIFRyYW5zaXRpb25zXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG59XG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkdHJhbnNpdGlvbi1wcm9wZXJ0eS4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnR5O1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnR5O1xufVxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRyYW5zaXRpb24tZGVsYXkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRyYW5zaXRpb24tZHVyYXRpb247XG59XG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tdHJhbnNmb3JtKCR0cmFuc2l0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbn1cblxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0KSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7IC8vIElFMTArXG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG4iLCIvLyBBbGVydHNcblxuQG1peGluIGFsZXJ0LXZhcmlhbnQoJGJhY2tncm91bmQsICRib3JkZXIsICR0ZXh0LWNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRib3JkZXIsIDUlKTtcbiAgfVxuICAuYWxlcnQtbGluayB7XG4gICAgY29sb3I6IGRhcmtlbigkdGV4dC1jb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbkBtaXhpbiBidXR0b24tdmFyaWFudCgkY29sb3IsICRiYWNrZ3JvdW5kLCAkYm9yZGVyKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRib3JkZXIsIDI1JSk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRib3JkZXIsIDEyJSk7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMTIlKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDE3JSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMjUlKTtcbiAgICB9XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5iYWRnZSB7XG4gICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLyBCdXR0b24gc2l6ZXNcbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZy12ZXJ0aWNhbCwgJHBhZGRpbmctaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkYm9yZGVyLXJhZGl1cykge1xuICBwYWRkaW5nOiAkcGFkZGluZy12ZXJ0aWNhbCAkcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuIiwiLy8gUGFuZWxzXG5cbkBtaXhpbiBwYW5lbC12YXJpYW50KCRib3JkZXIsICRoZWFkaW5nLXRleHQtY29sb3IsICRoZWFkaW5nLWJnLWNvbG9yLCAkaGVhZGluZy1ib3JkZXIpIHtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gICYgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6ICRoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRpbmctYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaGVhZGluZy1ib3JkZXI7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBjb2xvcjogJGhlYWRpbmctYmctY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmID4gLnBhbmVsLWZvb3RlciB7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUGFnaW5hdGlvblxuXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXZlcnRpY2FsLCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gID4gbGkge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZzogJHBhZGRpbmctdmVydGljYWwgJHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBhJiwgYnV0dG9uJiB0byBhLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX0sIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9XG4gIH1cblxuICBhLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX0sXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG4gICAgfVxuICAgICYuYWN0aXZlLFxuICAgICYuYWN0aXZlOmhvdmVyLFxuICAgICYuYWN0aXZlOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbkBtaXhpbiBuYXYtZGl2aWRlcigkY29sb3I6ICNlNWU1ZTUpIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogKCgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbn1cbiIsIi8vIEZvcm0gdmFsaWRhdGlvbiBzdGF0ZXNcbi8vXG4vLyBVc2VkIGluIGZvcm1zLmxlc3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0gdmFsaWRhdGlvbiBDU1MgZm9yIHdhcm5pbmdzLCBlcnJvcnMsXG4vLyBhbmQgc3VjY2Vzc2VzLlxuXG5AbWl4aW4gZm9ybS1jb250cm9sLXZhbGlkYXRpb24oJHRleHQtY29sb3I6ICM1NTUsICRib3JkZXItY29sb3I6ICNjY2MsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1KSB7XG4gIC8vIENvbG9yIHRoZSBsYWJlbCBhbmQgaGVscCB0ZXh0XG4gIC5oZWxwLWJsb2NrLFxuICAuY29udHJvbC1sYWJlbCxcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUsXG4gICYucmFkaW8gbGFiZWwsXG4gICYuY2hlY2tib3ggbGFiZWwsXG4gICYucmFkaW8taW5saW5lIGxhYmVsLFxuICAmLmNoZWNrYm94LWlubGluZSBsYWJlbCAge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgfVxuICAvLyBTZXQgdGhlIGJvcmRlciBhbmQgYm94IHNoYWRvdyBvbiBzcGVjaWZpYyBpbnB1dHMgdG8gbWF0Y2hcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpOyAvLyBSZWRlY2xhcmUgc28gdHJhbnNpdGlvbnMgd29ya1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlci1jb2xvciwgMTAlKTtcbiAgICAgICRzaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgNnB4IGxpZ2h0ZW4oJGJvcmRlci1jb2xvciwgMjAlKTtcbiAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJHNoYWRvdyk7XG4gICAgfVxuICB9XG4gIC8vIFNldCB2YWxpZGF0aW9uIHN0YXRlcyBhbHNvIGZvciBhZGRvbnNcbiAgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG4gIC8vIE9wdGlvbmFsIGZlZWRiYWNrIGljb25cbiAgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgJGlucHV0LWJvcmRlci1mb2N1c2AgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtZm9jdXMoJGNvbG9yOiAkaW5wdXQtYm9yZGVyLWZvY3VzKSB7XG4gICRjb2xvci1yZ2JhOiByZ2JhKHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvciksIC42KTtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4ICRjb2xvci1yZ2JhKTtcbiAgfVxufVxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gUmVsYXRpdmUgdGV4dCBzaXplLCBwYWRkaW5nLCBhbmQgYm9yZGVyLXJhZGlpIGNoYW5nZXMgZm9yIGZvcm0gY29udHJvbHMuIEZvclxuLy8gaG9yaXpvbnRhbCBzaXppbmcsIHdyYXAgY29udHJvbHMgaW4gdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLiBgPHNlbGVjdD5gXG4vLyBlbGVtZW50IGdldHMgc3BlY2lhbCBsb3ZlIGJlY2F1c2UgaXQncyBzcGVjaWFsLCBhbmQgdGhhdCdzIGEgZmFjdCFcbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIGlucHV0LXNpemUoJHBhcmVudCwgJGlucHV0LWhlaWdodCwgJHBhZGRpbmctdmVydGljYWwsICRwYWRkaW5nLWhvcml6b250YWwsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXZlcnRpY2FsICRwYWRkaW5nLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBzZWxlY3QjeyRwYXJlbnR9IHtcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gIH1cblxuICB0ZXh0YXJlYSN7JHBhcmVudH0sXG4gIHNlbGVjdFttdWx0aXBsZV0jeyRwYXJlbnR9IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIi8vIFByb2dyZXNzIGJhcnNcblxuQG1peGluIHByb2dyZXNzLWJhci12YXJpYW50KCRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgLy8gRGVwcmVjYXRlZCBwYXJlbnQgY2xhc3MgcmVxdWlyZW1lbnQgYXMgb2YgdjMuMi4wXG4gIC5wcm9ncmVzcy1zdHJpcGVkICYge1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LXN0cmlwZWQ7XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUgPiB0aGVhZCA+IHRyLFxuICAudGFibGUgPiB0Ym9keSA+IHRyLFxuICAudGFibGUgPiB0Zm9vdCA+IHRyIHtcbiAgICA+IHRkLiN7JHN0YXRlfSxcbiAgICA+IHRoLiN7JHN0YXRlfSxcbiAgICAmLiN7JHN0YXRlfSA+IHRkLFxuICAgICYuI3skc3RhdGV9ID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciB7XG4gICAgPiB0ZC4jeyRzdGF0ZX06aG92ZXIsXG4gICAgPiB0aC4jeyRzdGF0ZX06aG92ZXIsXG4gICAgJi4jeyRzdGF0ZX06aG92ZXIgPiB0ZCxcbiAgICAmOmhvdmVyID4gLiN7JHN0YXRlfSxcbiAgICAmLiN7JHN0YXRlfTpob3ZlciA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbiAgYSN7JHBhcmVudH06aG92ZXIsXG4gIGEjeyRwYXJlbnR9OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuXG5cbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuQG1peGluIGdyYWRpZW50LWhvcml6b250YWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gT3BlcmEgMTJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTEpOyAvLyBJRTkgYW5kIGRvd25cbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgIC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nLCBHcmFkaWVudFR5cGU9MCk7IC8vIElFOSBhbmQgZG93blxufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkZGVnOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTsgLy8gT3BlcmEgMTJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbn1cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nLCBHcmFkaWVudFR5cGU9MSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG59XG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogIzAwYjNlZSwgJG1pZC1jb2xvcjogIzdhNDNiNiwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTApOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICM1NTUsICRvdXRlci1jb2xvcjogIzMzMykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSksICRhbmdsZTogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuIiwiLy8gQ2xlYXJmaXhcbi8vXG4vLyBGb3IgbW9kZXJuIGJyb3dzZXJzXG4vLyAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuLy8gICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbi8vICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuLy8gICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbi8vIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4vLyAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4vL1xuLy8gU291cmNlOiBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay9cblxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMlxuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCIvLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG5cbkBtaXhpbiBjZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cblxuQG1peGluIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigkZWxlbWVudC1oZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogKCgkbmF2YmFyLWhlaWdodCAtICRlbGVtZW50LWhlaWdodCkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKCgkbmF2YmFyLWhlaWdodCAtICRlbGVtZW50LWhlaWdodCkgLyAyKTtcbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbi8vIFtjb252ZXJ0ZXJdIFRoaXMgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBpbiBMRVNTLCBidXQgU2FzcyBzdXBwb3J0cyByZWFsIGxvb3BzXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGk6IDEsICRsaXN0OiBcIi5jb2wteHMtI3skaX0sIC5jb2wtc20tI3skaX0sIC5jb2wtbWQtI3skaX0sIC5jb2wtbGctI3skaX1cIikge1xuICBAZm9yICRpIGZyb20gKDEgKyAxKSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICRsaXN0OiBcIiN7JGxpc3R9LCAuY29sLXhzLSN7JGl9LCAuY29sLXNtLSN7JGl9LCAuY29sLW1kLSN7JGl9LCAuY29sLWxnLSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cbn1cblxuXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGRlZmluZWQgcmVjdXJzaXZlbHkgaW4gTEVTUywgYnV0IFNhc3Mgc3VwcG9ydHMgcmVhbCBsb29wc1xuQG1peGluIGZsb2F0LWdyaWQtY29sdW1ucygkY2xhc3MsICRpOiAxLCAkbGlzdDogXCIuY29sLSN7JGNsYXNzfS0jeyRpfVwiKSB7XG4gIEBmb3IgJGkgZnJvbSAoMSArIDEpIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJGxpc3Q6IFwiI3skbGlzdH0sIC5jb2wtI3skY2xhc3N9LSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuQG1peGluIGNhbGMtZ3JpZC1jb2x1bW4oJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gIEBpZiAoJHR5cGUgPT0gd2lkdGgpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LSN7JGluZGV4fSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1c2gpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LXB1c2gtI3skaW5kZXh9IHtcbiAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdXNoKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVzaC0wIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gcHVsbCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0jeyRpbmRleH0ge1xuICAgICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdWxsKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0wIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IG9mZnNldCkge1xuICAgIC5jb2wtI3skY2xhc3N9LW9mZnNldC0jeyRpbmRleH0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBkZWZpbmVkIHJlY3Vyc2l2ZWx5IGluIExFU1MsIGJ1dCBTYXNzIHN1cHBvcnRzIHJlYWwgbG9vcHNcbkBtaXhpbiBsb29wLWdyaWQtY29sdW1ucygkY29sdW1ucywgJGNsYXNzLCAkdHlwZSkge1xuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBjYWxjLWdyaWQtY29sdW1uKCRpLCAkY2xhc3MsICR0eXBlKTtcbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuQG1peGluIG1ha2UtZ3JpZCgkY2xhc3MpIHtcbiAgQGluY2x1ZGUgZmxvYXQtZ3JpZC1jb2x1bW5zKCRjbGFzcyk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgd2lkdGgpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1bGwpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1c2gpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIG9mZnNldCk7XG59XG4iLCIvLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuLy8gQ2VudGVyZWQgY29udGFpbmVyIGVsZW1lbnRcbkBtaXhpbiBjb250YWluZXItZml4ZWQoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogIGZsb29yKCgkZ3V0dGVyIC8gMikpO1xuICBwYWRkaW5nLXJpZ2h0OiBjZWlsKCgkZ3V0dGVyIC8gMikpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXJvdygkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICBjZWlsKCgkZ3V0dGVyIC8gLTIpKTtcbiAgbWFyZ2luLXJpZ2h0OiBmbG9vcigoJGd1dHRlciAvIC0yKSk7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgZXh0cmEgc21hbGwgY29sdW1uc1xuQG1peGluIG1ha2UteHMtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG59XG5AbWl4aW4gbWFrZS14cy1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cbkBtaXhpbiBtYWtlLXhzLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xufVxuQG1peGluIG1ha2UteHMtY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgc21hbGwgY29sdW1uc1xuQG1peGluIG1ha2Utc20tY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2Utc20tY29sdW1uLXB1c2goJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLXNtLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcbkBtaXhpbiBtYWtlLW1kLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbWQtY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLW1kLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIGxhcmdlIGNvbHVtbnNcbkBtaXhpbiBtYWtlLWxnLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbGctY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLWxnLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbiIsIi8vIEJvdXJib24gNC4yLjJcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogbnVsbDtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgMCkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSApO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAwLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1Mjtcbi8vLyAgIH1cblxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAmOjpzZWxlY3Rpb24ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIDo6c2VsZWN0aW9uIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiXG5AbWl4aW4gYmctc3R5bGUgKCRiYWNrZ3JvdW5kLCAkY29sb3IpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGEge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBiZy12YXJpYW50LWFsdCAoJGNvbG9yKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIGNvbG9yOiAkcmV2ZXJzZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICBjb2xvcjogJHJldmVyc2U7XG4gICAgfVxufVxuXG5ib2R5IHtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG59XG5cbi8vIE92ZXJyaWRlcyBBbmd1bGFyLU1hdGVyaWFsXG5ib2R5IHAsXG5odG1sIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAgIGNvbG9yOiAkcmV2ZXJzZTtcbn1cbjo6LW1vei1zZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAgIGNvbG9yOiAkcmV2ZXJzZTtcbn1cblxuOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG5hIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1c3tcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuc3Bhbi5ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5uby1tYXJnaW4ge1xuICAgIG1hcmdpbjogMDtcbn1cbi5uby1tYXJnaW4tYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm5vLWJvcmRlciB7XG4gICAgYm9yZGVyOiAwO1xufVxuLm5vLWJvcmRlci1yYWRpdXMge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ubm8tcGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbn1cbi5uby1zaGFkb3cge1xuICAgIGJveC1zaGFkb3c6IDA7XG59XG4uZnVsbC13aWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi51aS1zZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuLnNlY3Rpb24taGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG59XG5cblxuLy8gYmFja2dyb3VuZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG92ZXJyaWRlcyBCb290c3RyYXBcbmEuYmctcHJpbWFyeSB7IEBpbmNsdWRlIGJnLXZhcmlhbnQtYWx0ICgkYnJhbmQtcHJpbWFyeSk7IH1cbmEuYmctc3VjY2VzcyB7IEBpbmNsdWRlIGJnLXZhcmlhbnQtYWx0ICgkYnJhbmQtc3VjY2Vzcyk7IH1cbmEuYmctaW5mbyB7IEBpbmNsdWRlIGJnLXZhcmlhbnQtYWx0ICgkYnJhbmQtaW5mbyk7IH1cbmEuYmctd2FybmluZyB7IEBpbmNsdWRlIGJnLXZhcmlhbnQtYWx0ICgkYnJhbmQtd2FybmluZyk7IH1cbmEuYmctZGFuZ2VyIHsgQGluY2x1ZGUgYmctdmFyaWFudC1hbHQgKCRicmFuZC1kYW5nZXIpOyB9XG5cbi8vIG5vcm1hbFxuLmJnLXdoaXRlIHsgQGluY2x1ZGUgYmctc3R5bGUoI2ZmZiwgJHRleHQtY29sb3IpOyB9XG4uYmctYm9keSB7IEBpbmNsdWRlIGJnLXN0eWxlKCRib2R5LWJnLCAkdGV4dC1jb2xvcik7IH1cbi5iZy1kYXJrIHsgQGluY2x1ZGUgYmctc3R5bGUoJGRhcmssICRyZXZlcnNlKTsgfVxuLmJnLWRhcmstbGlnaHQgeyBAaW5jbHVkZSBiZy1zdHlsZSgkZGFyay1saWdodCwgJHJldmVyc2UpOyB9XG4uYmctYmxhY2sgeyBAaW5jbHVkZSBiZy1zdHlsZSgjMDAwLCAkcmV2ZXJzZSk7IH1cbi5iZy1wcmltYXJ5IHsgQGluY2x1ZGUgYmctc3R5bGUoJGJyYW5kLXByaW1hcnksICRyZXZlcnNlKTsgfVxuLmJnLXByaW1hcnktbGlnaHQgeyBAaW5jbHVkZSBiZy1zdHlsZSgkc2tpbi1saWdodCwgJHJldmVyc2UpOyB9XG4uYmctc3VjY2VzcyB7IEBpbmNsdWRlIGJnLXN0eWxlKCRicmFuZC1zdWNjZXNzLCAkcmV2ZXJzZSk7IH1cbi5iZy1pbmZvIHsgQGluY2x1ZGUgYmctc3R5bGUoJGJyYW5kLWluZm8sICRyZXZlcnNlKTsgfVxuLmJnLWluZm8tYWx0IHsgQGluY2x1ZGUgYmctc3R5bGUoJGJyYW5kLWluZm8tYWx0LCAkcmV2ZXJzZSk7IH1cbi5iZy13YXJuaW5nIHsgQGluY2x1ZGUgYmctc3R5bGUoJGJyYW5kLXdhcm5pbmcsICRyZXZlcnNlKTsgfVxuXG4uYmctZGFuZ2VyIHsgQGluY2x1ZGUgYmctc3R5bGUoJGJyYW5kLWRhbmdlciwgJHJldmVyc2UpOyB9XG4uYmctZGFyayB7IEBpbmNsdWRlIGJnLXN0eWxlKCRkYXJrLCAkcmV2ZXJzZSk7IH1cbi5iZy1icmlnaHQgeyBAaW5jbHVkZSBiZy1zdHlsZSgkYnJpZ2h0LCAkdGV4dC1jb2xvcik7IH1cbi5iZy13aGl0ZSB7IEBpbmNsdWRlIGJnLXN0eWxlKCRyZXZlcnNlLCAkdGV4dC1jb2xvcik7IH1cblxuLmJnLWZhY2Vib29rIHsgQGluY2x1ZGUgYmctc3R5bGUoIzMzNTM5NywgJHJldmVyc2UpOyB9XG4uYmctdHdpdHRlciB7IEBpbmNsdWRlIGJnLXN0eWxlKCMwMGM3ZjcsICRyZXZlcnNlKTsgfVxuLmJnLWdvb2dsZS1wbHVzIHsgQGluY2x1ZGUgYmctc3R5bGUoI2RmNGEzMiwgJHJldmVyc2UpOyB9XG5cblxuXG4iLCIucGFnZS1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wO1xuICAgIG1hcmdpbjogYXV0bztcbn0iLCJcbi8vIEluY2x1ZGluZzogR3JhZGllbnQgdGV4dCwgQmxvY2txdW90ZSwgRHJvcGNhcCwgSGlnaGxpZ2h0LCBMaXN0LCBkaXZpZGVyL3NwYWNlLCBiYWNrZ3JvdW5kXG5cblxuLmJsb2NrcXVvdGUtY29sb3JlZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcbiAgICAmLnB1bGwtcmlnaHQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4vLyBHcmFkaWVudCB0ZXh0XG4uZ3JhZGllbnQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNTBweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGNvbG9yOiAkYnJhbmQtcHJpbWFyeTsgLy8gZmFsbGJhY2tcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg5MmRlZywgI2ZiODNmYSwgIzAwYWNlZCk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udGV4dC1zbWFsbCB7IGZvbnQtc2l6ZTogMTJweDsgfVxuLnRleHQtbm9ybWFsIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7IH1cbi50ZXh0LWh1Z2UgeyBmb250LXNpemU6IDcycHg7IH1cbi50ZXh0LWxhcmdlIHsgZm9udC1zaXplOiA1MHB4OyB9XG4uc2l6ZS1oMSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oMTsgfVxuLnNpemUtaDIgeyBmb250LXNpemU6ICRmb250LXNpemUtaDI7IH1cbi5zaXplLWgzIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWgzOyB9XG4uc2l6ZS1oNCB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oNDsgfVxuLnRleHQtdGhpbiB7IGZvbnQtd2VpZ2h0OiAzMDA7IH1cbi50ZXh0LXVsdHJhbGlnaHQgeyBmb250LXdlaWdodDogMTAwOyB9XG5cbi5jb2xvci1wcmltYXJ5LFxuYS5jb2xvci1wcmltYXJ5IHsgXG4gICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGJyYW5kLXByaW1hcnk7IH1cbn1cbi5jb2xvci1zdWNjZXNzLFxuYS5jb2xvci1zdWNjZXNzIHsgXG4gICAgY29sb3I6ICRicmFuZC1zdWNjZXNzO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGJyYW5kLXN1Y2Nlc3M7IH1cbn1cbi5jb2xvci1pbmZvLFxuYS5jb2xvci1pbmZvIHsgXG4gICAgY29sb3I6ICRicmFuZC1pbmZvO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGJyYW5kLWluZm87IH1cbn1cbi5jb2xvci1pbmZvLWFsdCxcbmEuY29sb3ItaW5mby1hbHQgeyBcbiAgICBjb2xvcjogJGJyYW5kLWluZm8tYWx0O1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGJyYW5kLWluZm8tYWx0OyB9XG59XG4uY29sb3Itd2FybmluZyxcbmEuY29sb3Itd2FybmluZyB7IFxuICAgIGNvbG9yOiAkYnJhbmQtd2FybmluZztcbiAgICAmOmhvdmVyIHsgY29sb3I6ICRicmFuZC13YXJuaW5nOyB9XG59XG4uY29sb3ItZGFuZ2VyLFxuYS5jb2xvci1kYW5nZXIgeyBcbiAgICBjb2xvcjogJGJyYW5kLWRhbmdlcjtcbiAgICAmOmhvdmVyIHsgY29sb3I6ICRicmFuZC1kYW5nZXI7IH1cbn1cbi5jb2xvci1kYXJrLFxuYS5jb2xvci1kYXJrIHsgXG4gICAgY29sb3I6ICRkYXJrO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGRhcms7IH1cbn1cbi5jb2xvci1yZXZlcnNlLFxuYS5jb2xvci1kYXJrIHsgXG4gICAgY29sb3I6ICRyZXZlcnNlO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJHJldmVyc2U7IH1cbn1cbi5jb2xvci1ncmF5LWRhcmtlcixcbmEuY29sb3ItZ3JheS1kYXJrZXIgeyBcbiAgICBjb2xvcjogJGdyYXktZGFya2VyO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGdyYXktZGFya2VyOyB9XG59XG4uY29sb3ItZ3JheS1kYXJrLFxuYS5jb2xvci1ncmF5LWRhcmsgeyBcbiAgICBjb2xvcjogJGdyYXktZGFyaztcbiAgICAmOmhvdmVyIHsgY29sb3I6ICRncmF5LWRhcms7IH1cbn1cbi5jb2xvci1ncmF5LFxuYS5jb2xvci1ncmF5IHsgXG4gICAgY29sb3I6ICRncmF5O1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGdyYXk7IH1cbn1cbi5jb2xvci1ncmF5LWxpZ2h0LFxuYS5jb2xvci1ncmF5LWxpZ2h0IHsgXG4gICAgY29sb3I6ICRncmF5LWxpZ2h0O1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGdyYXktbGlnaHQ7IH1cbn1cbi5jb2xvci1ncmF5LWxpZ2h0ZXIsXG5hLmNvbG9yLWdyYXktbGlnaHRlciB7IFxuICAgIGNvbG9yOiAkZ3JheS1saWdodGVyO1xuICAgICY6aG92ZXIgeyBjb2xvcjogJGdyYXktbGlnaHRlcjsgfVxufVxuXG5cbi8vIERyb3BjYXBcbi5kcm9wY2FwLFxuLmRyb3BjYXAtc3F1YXJlLFxuLmRyb3BjYXAtY2lyY2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIHRleHQtc2hhZG93OiBub25lOyAgICAgICAgXG59XG5cbi5kcm9wY2FwIHtcbiAgICBmb250LXNpemU6IDMuMWVtO1xufVxuXG4uZHJvcGNhcC1zcXVhcmUsXG4uZHJvcGNhcC1jaXJjbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRyb3BjYXAtc3F1YXJlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlOyAgICAgICAgXG4gICAgZm9udC1zaXplOiAyLjNlbTtcbn1cblxuLmRyb3BjYXAtY2lyY2xlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7ICAgICAgICBcbiAgICBmb250LXNpemU6IDEuNzhlbTtcbn1cblxuLmRyb3BjYXAuY29sb3JlZCB7XG4gICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xufVxuXG4uZHJvcGNhcC1zcXVhcmUuY29sb3JlZCxcbi5kcm9wY2FwLWNpcmNsZS5jb2xvcmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbiAgICBjb2xvcjogJHJldmVyc2U7XG59XG5cblxuLy8gSGlnaHRsaWdodFxuLnVpLWhpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XG4gICAgY29sb3I6ICRyZXZlcnNlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7ICAgICAgICBcbiAgICBwYWRkaW5nOiAycHggNXB4O1xuICAgICYuY29sb3JlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbn1cblxuLy8gXG4ucHVsbC1pbiB7XG4gICAgbWFyZ2luOiAwIC0xNXB4O1xufVxuXG4vLyBkaXZpZGVyXG4uZGl2aWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICYuZGl2aWRlci1kYXNoZWQge1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHN0YXRlLWRlZmF1bHQtYm9yZGVyO1xuICAgIH1cbiAgICAmLmRpdmlkZXItZG90dGVkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggZG90dGVkICRzdGF0ZS1kZWZhdWx0LWJvcmRlcjtcbiAgICB9XG59XG4uZGl2aWRlci1zbSB7IFxuICAgIG1hcmdpbi10b3A6IDEwcHg7IFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IFxufVxuLmRpdmlkZXItbWQge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7ICAgICBcbn1cbi5kaXZpZGVyLWxnIHsgXG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLmRpdmlkZXIteGwgeyBcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG5cbi8vIFxuLnNwYWNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgcGFkZGluZzogNnB4O1xufVxuLnNwYWNlLW1kIHsgcGFkZGluZzogMTVweDsgfVxuLnNwYWNlLWxnIHsgcGFkZGluZzogMjVweDsgfVxuXG5cbi5oci1jb2xvcmVkIHtcbiAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xufVxuXG5cbiIsIi50YWJsZS1keW5hbWljIHtcbiAgICAvLyBmaWx0ZXJzXG4gICAgLnRhYmxlLWZpbHRlcnMge1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuXG4gICAgICAgIC5mbGV4LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIC5jYXRlZ29yeS1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmlsdGVyLXJlc3VsdC1pbmZvIHtcbiAgICAgICAgcGFkZGluZzogN3B4O1xuICAgIH1cblxuICAgIC8vIHRhYmxlXG4gICAgLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXG4gICAgICAgIHRoZWFkIHRoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAmPi50aCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4IDhweCA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5nbHlwaGljb24tY2hldnJvbi11cCxcbiAgICAgICAgICAgIC5nbHlwaGljb24tY2hldnJvbi1kb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM5OTk7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRza2luO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRza2luO1xuICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mYS1hbmdsZS11cCxcbiAgICAgICAgICAgIC5mYS1hbmdsZS1kb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2tpbjtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2tpbjtcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLmdseXBoaWNvbi1jaGV2cm9uLXVwLFxuICAgICAgICAgICAgLmZhLWFuZ2xlLXVwIHtcbiAgICAgICAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmZhLWFuZ2xlLWRvd24ge1xuICAgICAgICAgICAgICAgIHRvcDogMThweDtcbiAgICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAuZ2x5cGhpY29uLWNoZXZyb24tZG93biB7XG4gICAgICAgICAgICAgICAgdG9wOiAxOHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA2cHg7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZm9vdGVyXG4gICAgLnRhYmxlLWZvb3RlcntcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAucGFnZS1udW0taW5mbyB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBsaTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIlxuXG4vLyBmbGlwIHNjcm9sbCAoUHVyZSBDU1MpLCB0aGFua3MgdG8gaHR0cDovL2VsdmVyeS5uZXQvZGVtby9yZXNwb25zaXZlLXRhYmxlcy8jZmxpcC1zY3JvbGxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgICAudGFibGUtZmxpcC1zY3JvbGwge1xuICAgICAgICAuY2Y6YWZ0ZXIgeyB2aXNpYmlsaXR5OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDA7IGNvbnRlbnQ6IFwiIFwiOyBjbGVhcjogYm90aDsgaGVpZ2h0OiAwOyB9XG4gICAgICAgICogaHRtbCAuY2YgeyB6b29tOiAxOyB9XG4gICAgICAgICo6Zmlyc3QtY2hpbGQraHRtbCAuY2YgeyB6b29tOiAxOyB9XG4gICAgICAgIHRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHsgbWFyZ2luOiAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgICAgIHRoIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICB0YWJsZSB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIHRoZWFkIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgIHRib2R5IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93LXg6IGF1dG87IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgICAgdGhlYWQgdHIgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAudGFibGUgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQgeyAvLyBhZGQgdG8gQm9vdHN0cmFwIHN0eWxlXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgfVxuICAgICAgICB0aCB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgICB0Ym9keSB0ciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgICAgICB0ZCB7IGRpc3BsYXk6IGJsb2NrOyBtaW4taGVpZ2h0OiAxLjI1ZW07IHRleHQtYWxpZ246IGxlZnQ7IH1cblxuXG4gICAgICAgIC8qIHNvcnQgb3V0IGJvcmRlcnMgKi9cblxuICAgICAgICB0aCB7IGJvcmRlci1ib3R0b206IDA7IGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgICAgIHRkIHsgYm9yZGVyLWxlZnQ6IDA7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgICB0Ym9keSB0ciB7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2JhYmNiZjsgfVxuICAgICAgICB0aDpsYXN0LWNoaWxkLFxuICAgICAgICB0ZDpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYWJjYmY7IH1cbiAgICB9XG59XG4iLCJcblxuLy8gUmFkaW9cbi51aS1yYWRpbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAyMHB4IDEwcHggMjBweDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpkaXNhYmxlZCArIHNwYW46aG92ZXIge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3BhbjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjM1cyAkbWF0ZXJpYWxfYW5pbWF0aW9uKTtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3BhbjphZnRlciB7XG4gICAgICAgIC8vIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgbGVmdDogLTE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggc2NhbGUoMCkgKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjNzICRtYXRlcmlhbF9hbmltYXRpb24pO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06ZGlzYWJsZWQgKyBzcGFuOmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IC42NTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgICAgICAgY3Vyc29yOiBuby1kcm9wO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgc3BhbjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICAgICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgxKSApO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpkaXNhYmxlZDpjaGVja2VkICsgc3BhbjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IC42NTtcbiAgICAgICAgY3Vyc29yOiBuby1kcm9wO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgIH1cbn1cblxuLy8gQ2hlY2tib3hcbi51aS1jaGVja2JveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAyMHB4IDEwcHggMjBweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgc3Bhbjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06ZGlzYWJsZWQgKyBzcGFuOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuIHtcbiAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjY2NjOyAgICAgICAgIFxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMzVzICRtYXRlcmlhbF9hbmltYXRpb24pO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpkaXNhYmxlZCArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogLjY1O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICAgICAgICBjdXJzb3I6IG5vLWRyb3A7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW46YWZ0ZXIge1xuICAgICAgICAvLyBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogN3B4O1xuICAgICAgICBsZWZ0OiAtMTVweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggc2NhbGUoMCkgKTsgICAgICAgIFxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMzVzICRtYXRlcmlhbF9hbmltYXRpb24pO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICAgICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgxKSApOyAgICAgICAgXG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IC42NTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjYzsgICAgICAgICBcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmRpc2FibGVkOmNoZWNrZWQgKyBzcGFuOmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogLjY1O1xuICAgICAgICBjdXJzb3I6IG5vLWRyb3A7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgfVxufSIsIi8qXG5AbGljZW5zZSB0ZXh0QW5ndWxhclxuQXV0aG9yIDogQXVzdGluIEFuZGVyc29uXG5MaWNlbnNlIDogMjAxMyBNSVRcblZlcnNpb24gMS4zLjBcblxuU2VlIFJFQURNRS5tZCBvciBodHRwczovL2dpdGh1Yi5jb20vZnJheXdpbmcvdGV4dEFuZ3VsYXIvd2lraSBmb3IgcmVxdWlyZW1lbnRzIGFuZCB1c2UuXG4qL1xuXG5ib2R5ID4gaW5wdXQudGEtaGlkZGVuLWlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBhZGQgZ2VuZXJpYyBzdHlsaW5nIGZvciB0aGUgZWRpdG9yICovXG4udWktZWRpdG9yIHtcblxuICAgIC5idG4tZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLnRhLXRvb2xiYXIge1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIH1cblxuICAgICYudGEtcm9vdC5mb2N1c3NlZCA+IC50YS1zY3JvbGwtd2luZG93LmZvcm0tY29udHJvbCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY2YWZlOTtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbiAgICB9XG5cbiAgICAudGEtZWRpdG9yLnRhLWh0bWwsIC50YS1zY3JvbGwtd2luZG93LmZvcm0tY29udHJvbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgIH1cblxuICAgIC50YS1zY3JvbGwtd2luZG93LmZvcm0tY29udHJvbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAudGEtc2Nyb2xsLXdpbmRvdyA+IC50YS1iaW5kIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgfVxuXG4gICAgLnRhLWVkaXRvcjpmb2N1cyB7XG4gICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICAgIH1cblxuICAgIC8qIGFkZCB0aGUgc3R5bGluZyBmb3IgdGhlIGF3ZXNvbW5lc3Mgb2YgdGhlIHJlc2l6ZXIgKi9cbiAgICAudGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSB7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWluZm8ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMTZweDtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICAgIC50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWJhY2tncm91bmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIH1cblxuICAgIC50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWNvcm5lciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAudGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSA+IC50YS1yZXNpemVyLWhhbmRsZS1jb3JuZXItdGx7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cblxuICAgIC50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWNvcm5lci10cntcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbiAgICB9XG5cbiAgICAudGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSA+IC50YS1yZXNpemVyLWhhbmRsZS1jb3JuZXItYmx7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cblxuICAgIC50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWNvcm5lci1icntcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgIGN1cnNvcjogc2UtcmVzaXplO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAvKiBjb3B5IHRoZSBwb3BvdmVyIGNvZGUgZnJvbSBib290c3RyYXAgc28gdGhpcyB3aWxsIHdvcmsgZXZlbiB3aXRob3V0IGl0ICovXG4gICAgLnBvcG92ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMTA2MDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgLjIpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgfVxuICAgIC5wb3BvdmVyLnRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIH1cbiAgICAucG9wb3Zlci5ib3R0b20ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cbiAgICAucG9wb3Zlci10aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgIH1cbiAgICAucG9wb3Zlci1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogOXB4IDE0cHg7XG4gICAgfVxuICAgIC5wb3BvdmVyID4gLmFycm93LFxuICAgIC5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gICAgLnBvcG92ZXIgPiAuYXJyb3cge1xuICAgICAgICBib3JkZXItd2lkdGg6IDExcHg7XG4gICAgfVxuICAgIC5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICAgIH1cbiAgICAucG9wb3Zlci50b3AgPiAuYXJyb3cge1xuICAgICAgICBib3R0b206IC0xMXB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMjUpO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIH1cbiAgICAucG9wb3Zlci50b3AgPiAuYXJyb3c6YWZ0ZXIge1xuICAgICAgICBib3R0b206IDFweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB9XG4gICAgLnBvcG92ZXIuYm90dG9tID4gLmFycm93IHtcbiAgICAgICAgdG9wOiAtMTFweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTExcHg7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICM5OTk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgICB9XG4gICAgLnBvcG92ZXIuYm90dG9tID4gLmFycm93OmFmdGVyIHtcbiAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG4gICAgfVxufVxuIiwiLy8gXG4udWktd2l6YXJkLWZvcm0ge1xuICAgIC5zdGVwcyB7XG4gICAgICAgIC5kb25lID4gYSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufSIsIlxubWQtaW5wdXQtY29udGFpbmVyIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgdGV4dGFyZWEge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG59XG5cblxuLy8gR2VuZXJhbFxuLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkc2tpbjtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uZm9ybS1ncm91cCB7XG4gICAgLmNvbC1zbS0xMCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDI1cHg7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmlucHV0LXJvdW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xufVxuXG5pbnB1dC5pbnB1dC1wcmltYXJ5IHtcbiAgICBib3JkZXItY29sb3I6ICRza2luO1xuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRza2luO1xuICAgIH1cbn1cbmlucHV0LmlucHV0LWluZm8ge1xuICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLWluZm87XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLWluZm87XG4gICAgfVxufVxuaW5wdXQuaW5wdXQtc3VjY2VzcyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtc3VjY2VzcztcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtc3VjY2VzcztcbiAgICB9XG59XG5pbnB1dC5pbnB1dC13YXJuaW5nIHtcbiAgICBib3JkZXItY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgIH1cbn1cbmlucHV0LmlucHV0LWRhbmdlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtZGFuZ2VyO1xuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1kYW5nZXI7XG4gICAgfVxufVxuXG5cblxuXG4iLCIudWktc2VsZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwIDAgMnB4IDEuMiU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAgID4gc2VsZWN0IHtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweCAxMHB4IDEwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LWluZGVudDogMC4wMXB4O1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiAnJztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIGhpZGUgc2VsZWN0IGFycm93IG9uIHdlYmtpdFxuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gaGlkZSBzZWxlY3QgYXJyb3cgb24gSUUgMTArXG4gICAgc2VsZWN0OjotbXMtZXhwYW5kIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDglO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1ib3JkZXI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gICAgfVxufVxuXG4vLyBIaWRlIHNlbGVjdCBhcnJvdyBpbiBGaXJlZm94IDMwKywgdGhhbmtzIGh0dHA6Ly9qc2Jpbi5jb20veWFydWhcbi8qIFNob3cgb25seSB0aGUgbmF0aXZlIGFycm93ICovXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkgeyBcbiAgICAudWktc2VsZWN0IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLnVpLXNlbGVjdCBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgd2lkdGg6IC1tb3otY2FsYygxMDAlICsgM2VtKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIGVtKTtcbiAgICB9XG59XG4vKiBGaXJlZm94IGZvY3VzIGhhcyBvZGQgYXJ0aWZhY3RzIGFyb3VuZCB0aGUgdGV4dCwgdGhpcyBraWxscyB0aGF0LiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTLzotbW96LWZvY3VzcmluZyAqL1xuLnVpLXNlbGVjdCBzZWxlY3Q6LW1vei1mb2N1c3Jpbmcge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbn1cbiIsIiIsIlxuLy8gZm9ybSB2YWxpZGF0aW9uXG4uZm9ybS12YWxpZGF0aW9ue1xuICAgIC5uZy1wcmlzdGluZSB7fSAvLyBXaGVuIGl0IGlzIGZpcnN0IGluaXRpYWxpemVkXG4gICAgLm5nLWRpcnR5IHt9IC8vIFdoZW4gdGhlIHZpZXcgY2hhbmdlc1xuICAgIC5uZy12YWxpZC5uZy1kaXJ0eSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLXN1Y2Nlc3M7XG4gICAgfVxuICAgIC5uZy1pbnZhbGlkLm5nLWRpcnR5IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtZGFuZ2VyO1xuICAgIH1cblxuXG4gICAgbWQtaW5wdXQtY29udGFpbmVyID4gbWQtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7ICAgIFxuICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICAgIG1kLWlucHV0LWNvbnRhaW5lcjpub3QoLm1kLWlucHV0LWludmFsaWQpLm1kLWlucHV0LWhhcy12YWx1ZSA+IG1kLWljb24ge1xuICAgICAgICBjb2xvcjogJGJyYW5kLXN1Y2Nlc3M7IFxuICAgIH1cbiAgICBtZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtaW52YWxpZCA+IG1kLWljb24ge1xuICAgICAgICBjb2xvcjogJGJyYW5kLWRhbmdlcjsgXG4gICAgfVxufVxuXG4iLCJcbi8vIG1peGluXG5AbWl4aW4gYnV0dG9uLWxpbmUtdmFyaWFudCgkY29sb3IsICRiYWNrZ3JvdW5kLCAkYm9yZGVyKSB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gICAgLm9wZW4gJiB7XG4gICAgICAgICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbi1pY29uLXZhcmlhbnQoJHNpemUpIHtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gICAgaSB7IGxpbmUtaGVpZ2h0OiAkc2l6ZTsgfVxuICAgICYuYnRuLWljb24tbGluZWQge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRzaXplIC0gNHB4KTtcbiAgICAgICAgaSB7IGxpbmUtaGVpZ2h0OiAoJHNpemUgLSA0cHgpOyB9XG5cbiAgICAgICAgJi5idG4taWNvbi10aGluIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAoJHNpemUgLSAycHgpO1xuICAgICAgICAgICAgaSB7IGxpbmUtaGVpZ2h0OiAoJHNpemUgLSAycHgpOyB9XG4gICAgICAgIH1cbiAgICB9ICAgIFxufVxuXG5AbWl4aW4gc29jaWFsLWJ1dHRvbi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkYm9yZGVyKSB7XG4gICAgY29sb3I6ICRyZXZlcnNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogJHJldmVyc2U7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLCA4JSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRib3JkZXIsIDEyJSkgICAgICAgIFxuICAgIH0gICAgXG59XG5AbWl4aW4gYnV0dG9uLXN0YXRlLWNvbG9yKCRiYWNrZ3JvdW5kKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUsXG4gICAgLm9wZW4gPiAmLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDUlKTtcbiAgICB9XG59XG5cblxuXG5cblxuLy8gYWRkIHRvIGRlZmF1bHQgYnV0dG9uXG4uYnRuLWluZm8tYWx0IHtcbiAgICBAaW5jbHVkZSBidXR0b24tdmFyaWFudCgkYnRuLWluZm8tYWx0LWNvbG9yLCAkYnRuLWluZm8tYWx0LWJnLCAkYnRuLWluZm8tYWx0LWJvcmRlcik7XG59XG4uYnRuLWRhcmsge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4tZGFyay1jb2xvciwgJGJ0bi1kYXJrLWJnLCAkYnRuLWRhcmstYm9yZGVyKTtcbn1cblxuLy8gbGluZWQgdmVyc2lvblxuLmJ0bi1saW5lLWRlZmF1bHQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1saW5lLXZhcmlhbnQoJGJ0bi1kZWZhdWx0LWNvbG9yLCAkYnRuLWRlZmF1bHQtYmcsICRidG4tZGVmYXVsdC1ib3JkZXIpO1xufVxuLmJ0bi1saW5lLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1saW5lLXZhcmlhbnQoJGJ0bi1wcmltYXJ5LWNvbG9yLCAkYnRuLXByaW1hcnktYmcsICRidG4tcHJpbWFyeS1ib3JkZXIpO1xufVxuLmJ0bi1saW5lLXN1Y2Nlc3Mge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1saW5lLXZhcmlhbnQoJGJ0bi1zdWNjZXNzLWNvbG9yLCAkYnRuLXN1Y2Nlc3MtYmcsICRidG4tc3VjY2Vzcy1ib3JkZXIpO1xufVxuLmJ0bi1saW5lLWluZm8ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1saW5lLXZhcmlhbnQoJGJ0bi1pbmZvLWNvbG9yLCAkYnRuLWluZm8tYmcsICRidG4taW5mby1ib3JkZXIpO1xufVxuLmJ0bi1saW5lLXdhcm5pbmcge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1saW5lLXZhcmlhbnQoJGJ0bi13YXJuaW5nLWNvbG9yLCAkYnRuLXdhcm5pbmctYmcsICRidG4td2FybmluZy1ib3JkZXIpO1xufVxuLmJ0bi1saW5lLWRhbmdlciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWxpbmUtdmFyaWFudCgkYnRuLWRhbmdlci1jb2xvciwgJGJ0bi1kYW5nZXItYmcsICRidG4tZGFuZ2VyLWJvcmRlcik7XG59XG4uYnRuLWxpbmUtZGFyayB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWxpbmUtdmFyaWFudCgkYnRuLWRhcmstY29sb3IsICRidG4tZGFyay1iZywgJGJ0bi1kYXJrLWJvcmRlcik7XG59XG5cbi8vXG4uYnRuLXcteHMgeyBtaW4td2lkdGg6IDgwcHg7IH1cbi5idG4tdy1zbSB7IG1pbi13aWR0aDogMTAwcHg7IH1cbi5idG4tdy1tZCB7IG1pbi13aWR0aDogMTM1cHg7IH1cbi5idG4tdy1sZyB7IG1pbi13aWR0aDogMTYwcHg7IH1cblxuLy8gXG4uYnRuLXJvdW5kIHsgYm9yZGVyLXJhZGl1czogMmVtOyB9XG4uYnRuLWdhcCB7IG1hcmdpbjogNXB4OyB9XG4uYnRuLWdhcC1oIHsgbWFyZ2luOiAwIDVweDsgfVxuLmJ0bi1nYXAtdiB7IG1hcmdpbjogMCAwIDVweDsgfVxuXG4vLyBcbi5idG4sXG4uYnRuLWdyb3VwIHtcbiAgICAmLmJ0bi1yYWlzZWQge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBAZXh0ZW5kIC56LWRlcHRoLTE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oLjI1cyBlYXNlLW91dCk7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpkaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAuei1kZXB0aC0xLWhhbGY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5idG4tZmxvYXRpbmcge1xuICAgICAgICBAZXh0ZW5kIC56LWRlcHRoLTE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oLjI1cyk7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpkaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAuei1kZXB0aC0xLWhhbGY7XG4gICAgICAgIH0gICAgICAgIFxuICAgIH1cblxuICAgICYuYnRuLXJhaXNlZCxcbiAgICAmLmJ0bi1mbG9hdGluZyB7XG4gICAgICAgICYuYnRuLXByaW1hcnkgeyBAaW5jbHVkZSBidXR0b24tc3RhdGUtY29sb3IoJGJyYW5kLXByaW1hcnkpOyB9XG4gICAgICAgICYuYnRuLWluZm8geyBAaW5jbHVkZSBidXR0b24tc3RhdGUtY29sb3IoJGJyYW5kLWluZm8pOyB9XG4gICAgICAgICYuYnRuLXdhcm5pbmcgeyBAaW5jbHVkZSBidXR0b24tc3RhdGUtY29sb3IoJGJyYW5kLXdhcm5pbmcpOyB9XG4gICAgICAgICYuYnRuLWRhbmdlciB7IEBpbmNsdWRlIGJ1dHRvbi1zdGF0ZS1jb2xvcigkYnJhbmQtZGFuZ2VyKTsgfVxuICAgICAgICAmLmJ0bi1kZWZhdWx0IHsgQGluY2x1ZGUgYnV0dG9uLXN0YXRlLWNvbG9yKCRidG4tZGVmYXVsdC1iZyk7IH1cbiAgICB9XG59XG4uYnRuLWZsYXQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gR2V0cyByaWQgb2YgdGFwIGFjdGl2ZSBzdGF0ZVxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oLjI1cyBlYXNlLW91dCk7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyaWdodDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJpZ2h0O1xuICAgIH1cbiAgICAmLmJ0bi1wcmltYXJ5IHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbiAgICAmLmJ0bi1pbmZvIHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1pbmZvO1xuICAgIH1cbiAgICAmLmJ0bi13YXJuaW5nIHtcbiAgICAgICAgY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgIH1cbiAgICAmLmJ0bi1kYW5nZXIge1xuICAgICAgICBjb2xvcjogJGJyYW5kLWRhbmdlcjtcbiAgICB9XG59XG5cblxuLy8gXG4uYnRuLWljb24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoMzVweCk7XG59XG4uYnRuLWljb24tbGluZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZXJzZTtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRleHQtY29sb3I7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoMzVweCk7XG4gICAgJi5idG4taWNvbi10aGluIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZXJzZTtcbiAgICAgICAgY29sb3I6ICRyZXZlcnNlO1xuICAgIH1cblxuICAgIC8vIFxuICAgICYuYnRuLWRlZmF1bHQtbGlnaHQge1xuICAgICAgICBjb2xvcjogI2JiYjtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2JiYjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2JiYjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJ0bi1kZWZhdWx0IHtcbiAgICAgICAgY29sb3I6ICRncmF5LWxpZ2h0O1xuICAgICAgICBib3JkZXItY29sb3I6ICRncmF5LWxpZ2h0O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRncmF5LWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJ0bi1wcmltYXJ5IHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbiAgICAmLmJ0bi1zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1zdWNjZXNzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1zdWNjZXNzO1xuICAgIH1cbiAgICAmLmJ0bi1pbmZvIHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1pbmZvO1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1pbmZvO1xuICAgIH1cbiAgICAmLmJ0bi13YXJuaW5nIHtcbiAgICAgICAgY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgIH1cbiAgICAmLmJ0bi1kYW5nZXIge1xuICAgICAgICBjb2xvcjogJGJyYW5kLWRhbmdlcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtZGFuZ2VyO1xuICAgIH0gIFxufVxuLmJ0bi1pY29uLXJvdW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uYnRuLWljb24tc20ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoMzBweCk7XG59XG4uYnRuLWljb24tbWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoNDVweCk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuLmJ0bi1pY29uLWxnIHtcbiAgICBAaW5jbHVkZSBidXR0b24taWNvbi12YXJpYW50KDY1cHgpO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5idG4taWNvbi1sZy1hbHQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoNzBweCk7XG59XG4uYnRuLWljb24teGwge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXZhcmlhbnQoODBweCk7XG59XG5cblxuLy8gc29jaWFsIGJ1dHRvbnNcbi5idG4tdHdpdHRlciB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjMDBjN2Y3LCAjMDBjN2Y3KTsgfVxuLmJ0bi1mYWNlYm9vayB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjMzM1Mzk3LCAjMzM1Mzk3KTsgfVxuLmJ0bi1ncGx1cyxcbi5idG4tZ29vZ2xlLXBsdXMgeyBAaW5jbHVkZSBzb2NpYWwtYnV0dG9uLXZhcmlhbnQoI2RkNGEzOCwgI2RkNGEzOCk7IH1cbi5idG4taW5zdGFncmFtIHsgQGluY2x1ZGUgc29jaWFsLWJ1dHRvbi12YXJpYW50KCM4MjY4NUEsICM4MjY4NUEpOyB9XG4uYnRuLXZpbWVvIHsgQGluY2x1ZGUgc29jaWFsLWJ1dHRvbi12YXJpYW50KCM2Mzg3OUMsICM2Mzg3OUMpOyB9XG4uYnRuLWZsaWNrciB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjMDA2MURCLCAjMDA2MURCKTsgfVxuLmJ0bi1naXRodWIgeyBAaW5jbHVkZSBzb2NpYWwtYnV0dG9uLXZhcmlhbnQoIzNCM0IzQiwgIzNCM0IzQik7IH1cbi5idG4tcGludGVyZXN0IHsgQGluY2x1ZGUgc29jaWFsLWJ1dHRvbi12YXJpYW50KCNENzM1MzIsICNENzM1MzIpOyB9XG4uYnRuLXR1bWJsciB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjNTg2OTgwLCAjNTg2OTgwKTsgfVxuLmJ0bi1saW5rZWRpbiB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjMDE4RkFGLCAjMDE4RkFGKTsgfVxuLmJ0bi1kcmliYmJsZSB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjRUE3M0EwLCAjRUE3M0EwKTsgfVxuLmJ0bi1zdHVtYmxldXBvbiB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjRUE0QjI0LCAjRUE0QjI0KTsgfVxuLmJ0bi1sYXN0Zm0geyBAaW5jbHVkZSBzb2NpYWwtYnV0dG9uLXZhcmlhbnQoI0I4MDYzOCwgI0I4MDYzOCk7IH1cbi5idG4tZXZlcm5vdGUgeyBAaW5jbHVkZSBzb2NpYWwtYnV0dG9uLXZhcmlhbnQoIzNCQUIyNywgIzNCQUIyNyk7IH1cbi5idG4tc2t5cGUgeyBAaW5jbHVkZSBzb2NpYWwtYnV0dG9uLXZhcmlhbnQoIzAwQjBGNiwgIzAwQjBGNik7IH1cbi5idG4tc291bmRjbG91ZCB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjMDA2NkZGLCAjMDA2NkZGKTsgfVxuLmJ0bi1iZWhhbmNlIHsgQGluY2x1ZGUgc29jaWFsLWJ1dHRvbi12YXJpYW50KCNCODA2MzgsICNCODA2MzgpOyB9XG4uYnRuLXJzcyB7IEBpbmNsdWRlIHNvY2lhbC1idXR0b24tdmFyaWFudCgjRjc5NjM4LCAjRjc5NjM4KTsgfVxuLmJ0bi15b3V0dWJlIHsgQGluY2x1ZGUgc29jaWFsLWJ1dHRvbi12YXJpYW50KCNDQzE4MUUsICNDQzE4MUUpOyB9XG5cbi8qIDIwMTcwNjA5IE5BTEVYIC0gTUstQURNSU4tUEFORUwgKi9cblxuLmJ0bi1maWxlXG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5idG4tZmlsZSBpbnB1dFt0eXBlPWZpbGVdXG57XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY3Vyc29yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufSIsIlxuLnVpLXdhdmUge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB6LWluZGV4OjA7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYWxsIDAuMnMgJG1hdGVyaWFsX2FuaW1hdGlvbiApO1xuICAgICYudWktd2F2ZS1vdmVyZmxvd2VkIHtcbiAgICAgICAgb3ZlcmZsb3c6dmlzaWJsZTtcbiAgICB9XG4gICAgLmluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgwKSApO1xuICAgIH1cblxuICAgIC8vIFxuICAgICYuYnRuLWZsYXQsXG4gICAgJi5idG4tZGVmYXVsdCB7XG4gICAgICAgIC5pbmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxufVxuLndhdmUtYW5pbWF0ZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKCByaXBwbGUgMC42NXMgbGluZWFyICk7XG59XG5AaW5jbHVkZSBrZXlmcmFtZXMgKHJpcHBsZSkge1xuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHNjYWxlKDIuNSkgKTtcbiAgICB9XG59XG5cbi8vIHNpZGViYXJcbi5uYXYtY29udGFpbmVyIHsgLy8gYm90aCBmb3IgZGFyayBhbmQgbGlnaHRcbiAgICAudWktd2F2ZSB7XG4gICAgICAgIC5pbmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9ICAgICAgICBcbiAgICB9XG59XG4ubmF2LWNvbGxhcHNlZC1taW4ge1xuICAgIC5uYXYtY29udGFpbmVyIHtcbiAgICAgICAgLnVpLXdhdmUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4ubmF2LWhvcml6b250YWwge1xuICAgICYubmF2LWNvbnRhaW5lciB7XG4gICAgICAgIC51aS13YXZlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfSAgICBcbn1cbi8vIHRvcC1oZWFkZXJcbi5oZWFkZXItY29udGFpbmVyLmJnLXdoaXRlIHtcbiAgICAudWktd2F2ZSB7XG4gICAgICAgIC5pbmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9ICAgICAgICBcbiAgICB9XG59XG5cblxuIiwiLmNvbnRlbnQtY29udGFpbmVyLm5nLWxlYXZlICB7IHotaW5kZXg6OTk5OTsgfVxuLmNvbnRlbnQtY29udGFpbmVyLm5nLWVudGVyICB7IHotaW5kZXg6ODg4ODsgfVxuXG4vKj09PT09PT09PT0gIGFuaW1hdGlvbnMgID09PT09PT09PT0qL1xuLy8gVGhhbmtzLCBodHRwczovL2dpdGh1Yi5jb20vZGFuZWRlbi9hbmltYXRlLmNzc1xuXG4vLyBodG1sIHsgLy8gZml4IHdlYmtpdCB0cmFuc2xhdGUgY2F1c2luZyBzY29sbGJhciBpc3N1ZSwgc2lkZSBlZmZlY3Q6IHBhZ2UgZmFpbCB0byBzY3JvbGxcbi8vICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vIH1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKHNwaW4pIHtcbiAgICBmcm9tIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCByb3RhdGUoMGRlZykgKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHJvdGF0ZSgzNjBkZWcpICk7XG4gICAgfVxufVxuXG4uYW5pbWF0ZS1zcGluIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oc3BpbiAzcyBsaW5lYXIgaW5maW5pdGUpO1xufVxuXG5cbi8vIGFuaW1hdGUtZmFkZS11cCwgYSBjb21iaW5hdGlvbiBvZiBcImZhZGVPdXRVcFwiIGFuZCBcImZhZGVJblVwXCJcbkBpbmNsdWRlIGtleWZyYW1lcyhmYWRlLXVwLWVudGVyKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoMjBweCkgKTtcbiAgICB9XG4gICAgXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSgwKSApO1xuICAgIH1cbn1cbkBpbmNsdWRlIGtleWZyYW1lcyhmYWRlLXVwLWxlYXZlKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoMCkgKTtcbiAgICB9XG4gICAgXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSgtMjBweCkgKTtcbiAgICB9XG59XG4uYW5pbWF0ZS1mYWRlLXVwLm5nLWVudGVyLFxuLmFuaW1hdGUtZmFkZS11cC5uZy1sZWF2ZSB7XG59XG4uYW5pbWF0ZS1mYWRlLXVwLm5nLWVudGVyIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oMC4zNXMgZmFkZS11cC1lbnRlcik7XG59XG4vLyAuYW5pbWF0ZS1mYWRlLXVwLm5nLWxlYXZlIHtcbi8vICAgICBAaW5jbHVkZSBhbmltYXRpb24oMC4zNXMgZmFkZS11cC1sZWF2ZSk7XG4vLyB9XG5cblxuXG4vLyBhbmltYXRlLWZsaXAteSwgYSBjb21iaW5hdGlvbiBvZiBcImZsaXBJbllcIiBhbmQgXCJmbGlwT3V0WVwiXG5AaW5jbHVkZSBrZXlmcmFtZXMoYW5pbWF0ZS1mbGlwLXktZW50ZXIpIHtcbiAgICAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggcGVyc3BlY3RpdmUoMzAwMHB4KSByb3RhdGVZKDkwZGVnKSApO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBwZXJzcGVjdGl2ZSgzMDAwcHgpIHJvdGF0ZVkoMGRlZykgKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbn1cbkBpbmNsdWRlIGtleWZyYW1lcyhhbmltYXRlLWZsaXAteS1sZWF2ZSkge1xuICAgIDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBwZXJzcGVjdGl2ZSgzMDAwcHgpIHJvdGF0ZVkoMGRlZykgKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggcGVyc3BlY3RpdmUoMzAwMHB4KSByb3RhdGVZKC05MGRlZykgKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG4uYW5pbWF0ZS1mbGlwLXkubmctZW50ZXIge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbigwLjM1cyBhbmltYXRlLWZsaXAteS1lbnRlciBlYXNlLWluLW91dCk7XG59XG4vLyAuYW5pbWF0ZS1mbGlwLXkubmctbGVhdmUge1xuLy8gICAgIEBpbmNsdWRlIGFuaW1hdGlvbigwLjVzIGFuaW1hdGUtZmxpcC15LWxlYXZlKTtcbi8vIH1cblxuXG4vLyB2ZXJ0aWNhbCBzbGlkZVxuQGluY2x1ZGUga2V5ZnJhbWVzKHNsaWRlSW5Eb3duKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoLTIwMDBweCkgKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVZKDApICk7XG4gICAgfVxufVxuQGluY2x1ZGUga2V5ZnJhbWVzIChzbGlkZU91dFVwKSB7XG4gICAgMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoMCkgKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVZKC0yMDAwcHgpICk7XG4gICAgfVxufVxuLmFuaW1hdGUtdmVydGljYWwtc2xpZGUubmctaGlkZS1hZGQge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbiguMzVzIHNsaWRlT3V0VXAgZWFzZS1pbi1vdXQpO1xufVxuLmFuaW1hdGUtdmVydGljYWwtc2xpZGUubmctaGlkZS1yZW1vdmUge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbiguMzVzIC4zNXMgc2xpZGVJbkRvd24gZWFzZS1pbi1vdXQpO1xufVxuXG5cbi8qPT09PT09PT09PSAgc2ltcGxlIG9uZXMgID09PT09PT09PT0qL1xuXG4vLyBzY2FsZVVwXG5AaW5jbHVkZSBrZXlmcmFtZXMgKHNsaWRlT3V0VXApIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggc2NhbGUoMC45NSkgKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgxKSApO1xuICAgIH1cbn1cbi5haW5tYXRlLXNjYWxlLXVwLm5nLWVudGVyIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oMC4zNXMgc2xpZGVPdXRVcCBlYXNlLWluLW91dCk7XG59XG5cbi8vIFxuQGluY2x1ZGUga2V5ZnJhbWVzKHNsaWRlSW5SaWdodCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVYKDI1cHgpICk7XG4gICAgfVxuICAgIFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVgoMCkgKTtcbiAgICB9XG59XG4uYWlubWF0ZS1zbGlkZS1pbi1yaWdodC5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKDAuMzVzIHNsaWRlSW5SaWdodCBlYXNlLWluLW91dCk7XG59XG5cblxuLy8gXG4uYW5pbWF0ZWQge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kdXJhdGlvbiggLjM1cyApO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1maWxsLW1vZGUgKGJvdGgpO1xufVxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KGluZmluaXRlKTtcbn1cbi5hbmltYXRlZC5oaW5nZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWR1cmF0aW9uKDJzKTtcbn1cbkBpbmNsdWRlIGtleWZyYW1lcyhzbGlkZUluVXApIHtcbiAgICAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSgxMDAlKSApO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoMCkgKTtcbiAgICB9XG59XG4uc2xpZGVJblVwIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tbmFtZShzbGlkZUluVXApO1xufVxuXG5cblxuQGluY2x1ZGUga2V5ZnJhbWVzIChzY2FsZUluTGVmdCkge1xuICAgIDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbihsZWZ0IHRvcCk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSguNSkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbi5zY2FsZUluTGVmdCB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLW5hbWUoc2NhbGVJbkxlZnQpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMgKHNjYWxlSW5SaWdodCkge1xuICAgIDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbihyaWdodCB0b3ApO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoLjUpKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4uc2NhbGVJblJpZ2h0IHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tbmFtZShzY2FsZUluUmlnaHQpO1xufVxuXG5cblxuQGluY2x1ZGUga2V5ZnJhbWVzIChyb3RhdGVJblVwTGVmdCkge1xuICAgIDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbihsZWZ0IGJvdHRvbSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUzZCgwLCAwLCAxLCA0NWRlZykpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKGxlZnQgYm90dG9tKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbi5yb3RhdGVJblVwTGVmdCB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLW5hbWUocm90YXRlSW5VcExlZnQpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMgKHJvdGF0ZUluVXBSaWdodCkge1xuICAgIDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbihyaWdodCBib3R0b20pO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4ocmlnaHQgYm90dG9tKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbi5yb3RhdGVJblVwUmlnaHQge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1uYW1lKHJvdGF0ZUluVXBSaWdodCk7XG59XG5cbi8vIERyb3Bkb3duXG4uZHJvcGRvd24tbWVudSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbih0b3AgbGVmdCk7XG4gICAgJi5wdWxsLXJpZ2h0IHtcbiAgICAgICAgLy8gbGVmdDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4odG9wIHJpZ2h0KTtcbiAgICB9XG59XG4uZHJvcGRvd24tbWVudS1zY2FsZUluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAwO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4zNXMpO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggc2NhbGUoMCkgKTtcbiAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KCBoaWRkZW4gKTtcbn1cbi5vcGVuID4gLmRyb3Bkb3duLW1lbnUtc2NhbGVJbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHNjYWxlKDEpICk7XG59XG5cbiIsIi8vIC5iYWRnZSB7XG4vLyAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbi8vIH1cblxuLmJhZGdlLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xufVxuXG4uYmFkZ2Utc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXN1Y2Nlc3M7ICAgXG59XG5cbi5iYWRnZS1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtaW5mbzsgICBcbn1cblxuLmJhZGdlLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC13YXJuaW5nOyAgIFxufVxuXG4uYmFkZ2UtZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtZGFuZ2VyOyAgIFxufSIsIi5icmVhZGNydW1iIHtcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJyZWFkY3J1bWItYWx0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBjbGVhcmZpeFxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDAgMjVweCAwIDA7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTEuNmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyYXktbGlnaHRlciAkZ3JheS1saWdodGVyICRncmF5LWxpZ2h0ZXIgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMS41ZW0gMCAxLjdlbSAxZW07XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICByaWdodDogLTFlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMS41ZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMS41ZW0gc29saWQgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMWVtIHNvbGlkICRncmF5LWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMS41ZW0gc29saWQgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLXByaW1hcnkgJGJyYW5kLXByaW1hcnkgJGJyYW5kLXByaW1hcnkgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxZW0gc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIuY2FsbG91dCB7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNlZWU7XG5cbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmNhbGxvdXQtc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZmFmMztcbiAgICBib3JkZXItY29sb3I6ICRicmFuZC1zdWNjZXNzO1xuXG4gICAgaDQge1xuICAgICAgICBjb2xvcjogJGJyYW5kLXN1Y2Nlc3M7XG4gICAgfSAgIFxufVxuXG4uY2FsbG91dC1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGZhO1xuICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLWluZm87XG5cbiAgICBoNCB7XG4gICAgICAgIGNvbG9yOiAkYnJhbmQtaW5mbztcbiAgICB9XG59XG5cbi5jYWxsb3V0LXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZjI7XG4gICAgYm9yZGVyLWNvbG9yOiAkYnJhbmQtd2FybmluZztcblxuICAgIGg0IHtcbiAgICAgICAgY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgIH1cbn1cblxuLmNhbGxvdXQtZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmN2Y3O1xuICAgIGJvcmRlci1jb2xvcjogJGJyYW5kLWRhbmdlcjtcblxuICAgIGg0IHtcbiAgICAgICAgY29sb3I6ICRicmFuZC1kYW5nZXI7XG4gICAgfVxufVxuXG5cbiIsIiRhcnJvd19zaXplOiAgICAgICAgN3B4O1xuJGFycm93X291dGVyOiAgICAgICA4cHg7IC8vIG91dGVyIGJvcmRlciBmb3IgYXJyb3csICRhcnJvd19zaXplICsgMVxuJGFycm93X21hcmdpbl90b3A6ICAwO1xuXG4uZHJvcGRvd24tbWVudSB7XG4gICAgJi5kcm9wZG93bi1kYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XG4gICAgICAgICYud2l0aC1hcnJvdyB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYXJyb3dfc2l6ZSBzb2xpZCAkZGFyazsgICAgICAgICAgICBcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgICBjb2xvcjogJGdyYXktbGlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLndpdGgtYXJyb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiAkYXJyb3dfbWFyZ2luX3RvcDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMnB4O1xuICAgICAgICAgICAgdG9wOiAoLSRhcnJvd19vdXRlciAqIDIpO1xuICAgICAgICAgICAgYm9yZGVyOiAkYXJyb3dfb3V0ZXIgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYXJyb3dfb3V0ZXIgc29saWQgJGRyb3Bkb3duLWJvcmRlcjsgICAgICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTNweDtcbiAgICAgICAgICAgIHRvcDogKC0kYXJyb3dfc2l6ZSAqIDIpO1xuICAgICAgICAgICAgYm9yZGVyOiAkYXJyb3dfc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19zaXplIHNvbGlkICRkcm9wZG93bi1iZzsgICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgICYucHVsbC1yaWdodCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkYXJyb3dfbWFyZ2luX3RvcDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICBcbiAgICAgICAgLy8gUGFuZWxcbiAgICAgICAgJi5wYW5lbCB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwuMik7XG4gICAgICAgIH1cbiAgICAgICAgJi5wYW5lbC1kZWZhdWx0IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYXJyb3dfb3V0ZXIgc29saWQgJHBhbmVsLWRlZmF1bHQtYm9yZGVyOyAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFycm93X3NpemUgc29saWQgJHBhbmVsLWRlZmF1bHQtaGVhZGluZy1iZzsgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnBhbmVsLWRhcmsge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19vdXRlciBzb2xpZCAkZGFyazsgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19zaXplIHNvbGlkICRkYXJrOyAgICAgICAgICAgIFxuICAgICAgICAgICAgfSAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICYucGFuZWwtcHJpbWFyeSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFycm93X291dGVyIHNvbGlkICRwYW5lbC1wcmltYXJ5LWJvcmRlcjsgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19zaXplIHNvbGlkICRwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc7ICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5wYW5lbC1zdWNjZXNzIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYXJyb3dfb3V0ZXIgc29saWQgJHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOyAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFycm93X3NpemUgc29saWQgJHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZzsgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnBhbmVsLWluZm8ge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19vdXRlciBzb2xpZCAkcGFuZWwtaW5mby1ib3JkZXI7ICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYXJyb3dfc2l6ZSBzb2xpZCAkcGFuZWwtaW5mby1oZWFkaW5nLWJnOyAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYucGFuZWwtd2FybmluZyB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFycm93X291dGVyIHNvbGlkICRwYW5lbC13YXJuaW5nLWJvcmRlcjsgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19zaXplIHNvbGlkICRwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc7ICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5wYW5lbC1kYW5nZXIge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19vdXRlciBzb2xpZCAkcGFuZWwtZGFuZ2VyLWJvcmRlcjsgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhcnJvd19zaXplIHNvbGlkICRwYW5lbC1kYW5nZXItaGVhZGluZy1iZzsgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL2d1ZGgvaWhvdmVyXG5cbi5paC1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCBhbGwgMC4zNXMgZWFzZS1pbi1vdXQgKTtcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4uaWgtaXRlbS5paC1tYXRlcmlhbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7IFxuICAgIGhlaWdodDogMTAwJTsgXG5cbiAgICAuaW5mby1tYXNrIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMjUlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgwKSApO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCAgYWxsIC40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSApO1xuICAgIH1cblxuICAgIC5pbmZvLWNvbnRlbnQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7ICBcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSguNSkgKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggIGFsbCAuM3MgZWFzZSApO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNWVtOyAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLmluZm8taW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJnLXdoaXRlICsgLmluZm8tY29udGVudCxcbiAgICAuYmctd2FybmluZyArIC5pbmZvLWNvbnRlbnQge1xuICAgICAgICAuaW5mby1pbm5lciB7XG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgICAgLmluZm8tY29udGVudCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCBzY2FsZSgxKSApO1xuICAgICAgICB9XG4gICAgICAgIC5pbmZvLW1hc2sge1xuICAgICAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHNjYWxlKDEuMjEpICk7IC8vIGZvciAyMDAqMzAwIGltYWdlc1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW1nIHtcbiAgICAmLmltZzMwXzMwIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICB9XG4gICAgJi5pbWc0MF80MCB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfSAgICBcbiAgICAmLmltZzY0XzY0IHtcbiAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgIGhlaWdodDogNjRweDtcbiAgICB9XG4gICAgJi5pbWc4MF84MCB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBoZWlnaHQ6IDgwcHg7ICAgICAgICBcbiAgICB9XG59XG4iLCIubGFiZWwge1xuICAgIHBhZGRpbmc6IC41ZW0gLjhlbTtcbn1cblxuLmxhYmVsLWluZm8tYWx0IHtcbiAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtaW5mby1hbHQ7XG59IiwiLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc3RhdGUtZGVmYXVsdC1ib3JkZXItbGlnaHQ7XG59XG5cblxuLmxpc3QtaW5mbyB7XG4gICAgbGkge1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHsgXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7IHdpZHRoOiAxMDBweDsgfVxuICAgIH1cbn0iLCIubWVkaWEtbGlzdCB7XG5cbiAgICAmLm1lZGlhLWRpdmlkZXItZnVsbCB7XG4gICAgICAgIC5tZWRpYSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN0YXRlLWRlZmF1bHQtYm9yZGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5tZWRpYS1kaXZpZGVyLWluc2V0IHtcbiAgICAgICAgLm1lZGlhLWJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzdGF0ZS1kZWZhdWx0LWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLm5hdi1ib3hlZCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsMCwwLC4yKTtcblxuICAgIC8vIG92ZXJyaWRlcyBCb290c3RyYXBcbiAgICAmLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZXJzZTtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgID4gbGkge1xuICAgICAgICA+IGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzdGF0ZS1kZWZhdWx0LWJvcmRlci1saWdodDtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRzdGF0ZS1kZWZhdWx0LWJvcmRlci1saWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmZpcnN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHN0YXRlLWRlZmF1bHQtYm9yZGVyLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8vIG92ZXJyaWRlcyBCb290c3RyYXBcbi5wYW5lbCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsMCwwLC4xKTtcbiAgICAvLyBmb3IgcGFuZWxzIGluIHBhbmVsXG4gICAgLnBhbmVsIHsgXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgIC5wYW5lbC1oZWFkaW5nIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgLnBhbmVsLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gICAgfVxuXG4gICAgJi5wYW5lbC1sYWJlbGVkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAucGFuZWwtYm9keSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5wYW5lbC1taW5pbWFsIHtcbiAgICAgICAgLnBhbmVsLWhlYWRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFuZWwtbGFiZWwge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgbGVmdDogN3B4O1xuICAgIH1cbiAgICAucGFuZWwtYm9keSB7XG4gICAgICAgICYucGFkZGluZy1sZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XG4gICAgICAgIH1cbiAgICAgICAgJi5wYWRkaW5nLXhsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMTVweDtcbiAgICAgICAgfVxuICAgICAgICAmLnBhZGRpbmctbGctaCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYW5lbC1kYXJrIHtcbiAgICBAaW5jbHVkZSBwYW5lbC12YXJpYW50KCRkYXJrLCAjZmZmLCAkZGFyaywgJGRhcmspO1xufVxuXG4vLyBwYW5lbCBib3hcbi5wYW5lbC1ib3gge1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyBlbnN1cmUgYWx3YXlzIHRoZSBzYW1lIGhlaWdodCBmb3IgcGFuZWwgbGVmdCBhbmQgcmlnaHRcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyAvLyBlbnN1cmUgc2FtZSB3aWR0aFxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLnBhbmVsLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICB3aWR0aDogMSU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuICAgIC5wYW5lbC1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzICgkYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICB9XG4gICAgLnBhbmVsLXJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cyAoJGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgfVxuXG4gICAgJi5pbmZvLWJveCB7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFuZWwtdG9wLFxuICAgIC5wYW5lbC1ib3R0b20ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnBhbmVsLXRvcCB7XG4gICAgICAgIHBhZGRpbmc6IDMwcHggMjBweDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMgKCRib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgIH1cbiAgICAucGFuZWwtYm90dG9tIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMgKCRib3JkZXItcmFkaXVzLWJhc2UpO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxpc3QtanVzdGlmaWVkLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICB9XG5cbiAgICB1bC5saXN0LWp1c3RpZmllZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB3aWR0aDogMSU7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ3JheS1saWdodGVyO1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYW5lbC1pY29uLFxuICAgIC5wYW5lbC1pbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAtNzVweCBhdXRvIDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICRyZXZlcnNlO1xuICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA4MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogNThweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IC02cHggOHB4IDVweCByZ2JhKDAsMCwwLDAuMyk7XG5cbiAgICB9XG4gICAgLnBhbmVsLWljb24ge1xuICAgICAgICBwYWRkaW5nOiAyOHB4IDM1cHggMzVweDtcbiAgICB9XG4gICAgLnBhbmVsLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vLyBtaW5pIGJveFxuLm1pbmktYm94IHtcbiAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICBwYWRkaW5nOiAyNXB4O1xuICAgIC5ib3gtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAzNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gICAgICAgICYucm91bmRlZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnRuLWljb24sXG4gICAgLmJ0bi1pY29uLWxpbmVkIHtcbiAgICAgICAgLy8gZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMCAxNXB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4OyAgICAgICAgXG4gICAgfVxuXG4gICAgLmJveC1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gXG4ucGFuZWwtcHJvZmlsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLnByb2ZpbGUge1xuICAgICAgICBtYXJnaW46IDVweCAxNXB4IDVweCA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDAgNXB4IGxpZ2h0ZW4oJHNraW4sIDEwJSksIDAgMCAxMHB4IDAgcmdiYSgwLDAsMCwuMik7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMik7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saXN0LWdyb3VwID4gbGkgPiBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkZ3JheS1saWdodDtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB9XG5cbiAgICAubGlzdC1qdXN0aWZpZWQtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMTVweCAwO1xuICAgIH1cblxuICAgIHVsLmxpc3QtanVzdGlmaWVkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxJTtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRncmF5LWxpZ2h0ZXI7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gLnBvcG92ZXIge31cblxuLnBvcG92ZXItdGl0bGUge1xuICAgIHBhZGRpbmc6IDhweCAxNHB4IDA7XG4gICAgY29sb3I6ICNhYWE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gICAgY29sb3I6ICRicmlnaHQ7XG59IiwiLnByaWNpbmctdGFibGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbiguMjVzIGVhc2Utb3V0KTtcblxuICAgICYuZmVhdHVyZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBleHRlbmQgLnotZGVwdGgtMS1oYWxmO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFyay1saWdodGVyLCA1JSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsICRwYWRkaW5nLWJhc2UtdmVydGljYWw7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlICRib3JkZXItcmFkaXVzLWxhcmdlIDAgMDtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAvLyBjb2xvcjogJHJldmVyc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2luZy1wcmljZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oI2YyZjVmYSwgMyUpO1xuICAgICAgICBwYWRkaW5nOiA0NXB4IDE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWxpZ2h0ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogNTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXRoaW47XG4gICAgICAgIC5wcmljaW5nLXNpZ24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB9XG4gICAgICAgIC5wcmljaW5nLXN1YiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2luZy1sZWFkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IC42ZW07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAzcHggI2VmZjBmMztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNpbmctcGxhbi1kZXRhaWxzIHtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICA+IHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBmb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb2xvclxuICAgICYucHJpY2luZy10YWJsZS1wcmltYXJ5IHtcbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYnJhbmQtcHJpbWFyeSwgNSUpO1xuICAgICAgICB9XG4gICAgICAgIC5wcmljaW5nLXByaWNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAgJi5wcmljaW5nLXRhYmxlLXNlY29uZGFyeSxcbiAgICAmLnByaWNpbmctdGFibGUtaW5mbyB7XG4gICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJyYW5kLWluZm8sIDUlKTtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2luZy1wcmljZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtaW5mbztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkYnJhbmQtaW5mbztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgJGJyYW5kLWluZm87XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5wcmljaW5nLXRhYmxlLXN1Y2Nlc3Mge1xuICAgICAgICBoZWFkZXIge1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRicmFuZC1zdWNjZXNzLCA1JSk7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNpbmctcHJpY2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXN1Y2Nlc3M7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiA2cHggc29saWQgJGJyYW5kLXN1Y2Nlc3M7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkICRicmFuZC1zdWNjZXNzO1xuICAgICAgICB9XG4gICAgfVxuICAgICYucHJpY2luZy10YWJsZS13YXJuaW5nIHtcbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYnJhbmQtd2FybmluZywgNSUpO1xuICAgICAgICB9XG4gICAgICAgIC5wcmljaW5nLXByaWNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC13YXJuaW5nO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRicmFuZC13YXJuaW5nO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCAkYnJhbmQtd2FybmluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnByaWNpbmctdGFibGUtZGFuZ2VyIHtcbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYnJhbmQtZGFuZ2VyLCA1JSk7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNpbmctcHJpY2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWRhbmdlcjtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCAkYnJhbmQtZGFuZ2VyO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIudWktcmliYm9uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC51aS1yaWJib24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDg1cHg7XG4gICAgICAgIGhlaWdodDogODhweDtcbiAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICByaWdodDogLTNweDtcbiAgICB9XG5cbiAgICAudWktcmliYm9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogJHJldmVyc2U7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggcm90YXRlKDQ1ZGVnKSApO1xuICAgICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgICAgbGVmdDogLTVweDtcbiAgICAgICAgdG9wOiAxNXB4O1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsMCwwLDAuMyk7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGdyYXk7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3R0b206IC0ycHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIC8vIGNvbG9yXG4gICAgJi51aS1yaWJib24tcHJpbWFyeSB7XG4gICAgICAgIC51aS1yaWJib24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnVpLXJpYmJvbi1zdWNjZXNzIHtcbiAgICAgICAgLnVpLXJpYmJvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtc3VjY2VzcztcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRicmFuZC1zdWNjZXNzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYudWktcmliYm9uLWluZm8ge1xuICAgICAgICAudWktcmliYm9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1pbmZvO1xuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLWluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi51aS1yaWJib24td2FybmluZyB7XG4gICAgICAgIC51aS1yaWJib24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXdhcm5pbmc7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYnJhbmQtd2FybmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnVpLXJpYmJvbi1kYW5nZXIge1xuICAgICAgICAudWktcmliYm9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1kYW5nZXI7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59IiwiLmZsYWdzLXNwcml0ZSxcbi5mbGFncy1hbWVyaWNhbixcbi5mbGFncy1jaGluYSxcbi5mbGFncy1mcmFuY2UsXG4uZmxhZ3MtZ2VybWFueSxcbi5mbGFncy1pdGFseSxcbi5mbGFncy1qYXBhbixcbi5mbGFncy1rb3JlYSxcbi5mbGFncy1wb3J0dWdhbCxcbi5mbGFncy1ydXNzaWEsXG4uZmxhZ3Mtc3BhaW57YmFja2dyb3VuZC1pbWFnZTp1cmwoJ3VpL2ltYWdlcy9mbGFncy5wbmcnKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9XG4uZmxhZ3MtYW1lcmljYW57YmFja2dyb3VuZC1wb3NpdGlvbjowIDA7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH1cbi5mbGFncy1jaGluYXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTMycHg7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH1cbi5mbGFncy1mcmFuY2V7YmFja2dyb3VuZC1wb3NpdGlvbjowIC02NHB4O2hlaWdodDozMnB4O3dpZHRoOjMycHh9XG4uZmxhZ3MtZ2VybWFueXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHg7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH1cbi5mbGFncy1pdGFseXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4O2hlaWdodDozMnB4O3dpZHRoOjMycHh9XG4uZmxhZ3MtamFwYW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweDtoZWlnaHQ6MzJweDt3aWR0aDozMnB4fVxuLmZsYWdzLWtvcmVhe2JhY2tncm91bmQtcG9zaXRpb246MCAtMTkycHg7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH1cbi5mbGFncy1wb3J0dWdhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIyNHB4O2hlaWdodDozMnB4O3dpZHRoOjMycHh9XG4uZmxhZ3MtcnVzc2lhe2JhY2tncm91bmQtcG9zaXRpb246MCAtMjU2cHg7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH1cbi5mbGFncy1zcGFpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTI4OHB4O2hlaWdodDozMnB4O3dpZHRoOjMycHh9IiwiJFRMX2NvbnRlbnRfYmc6ICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwuOSk7XG5cbi51aS10aW1saW5lLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTVweDtcblxuXG59XG5cbi51aS10aW1saW5lLWxlZnQge1xuICAgIC51aS10aW1lbGluZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAudGwtaXRlbSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50bC1jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTU1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC50bC1ib2R5IHtcbiAgICAgICAgICAgICAgICAudGwtdGltZSB7XG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyYXktbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51aS10aW1lbGluZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7IC8vIGVuc3VyZSBzYW1lIHdpZHRoXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRncmF5LWxpZ2h0ZXIsIDEwJSk7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50bC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRsLWNhcHRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01NXB4O1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTExMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLmFsdCB7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlOyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudGwtYm9keSB7XG4gICAgICAgICAgICAgICAgICAgIC50bC1lbnRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMzVweCAxNXB4IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnRsLXRpbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0yMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC50bC1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtNTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnRsLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAkVExfY29udGVudF9iZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA4cHggc29saWQgJFRMX2NvbnRlbnRfYmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudGwtYm9keSB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgICAgIC50bC1lbnRyeSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDE1cHggMzZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50bC10aW1lIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRncmF5LWxpZ2h0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0yMjBweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAudGwtaWNvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC01M3B4O1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50bC10aXRsZSB7fVxuICAgICAgICAgICAgLnRsLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJFRMX2NvbnRlbnRfYmc7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgJFRMX2NvbnRlbnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkVExfY29udGVudF9iZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIi50b29sdGlwLWlubmVyIHtcbiAgICBwYWRkaW5nOiAuODVlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIH1cbn0iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL21hdGVyaWFsLWRlc2lnbi1saXRlL1xuXG4kc2hhZG93LWtleS11bWJyYS1vcGFjaXR5OiAwLjIgIWRlZmF1bHQ7XG4kc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5OiAwLjE0ICFkZWZhdWx0O1xuJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5OiAwLjEyICFkZWZhdWx0O1xuXG4vLyBGb2N1cyBzaGFkb3cgbWl4aW4uXG5AbWl4aW4gZm9jdXMtc2hhZG93KCkge1xuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLDAsMCwuMTgpLDAgOHB4IDE2cHggcmdiYSgwLDAsMCwuMzYpO1xufVxuXG5AbWl4aW4gc2hhZG93LTJkcCgpIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy0zZHAoKSB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgICAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctNGRwKCkge1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy02ZHAoKSB7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgMCAxcHggMThweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgICAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy04ZHAoKSB7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgICAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cblxuQG1peGluIHNoYWRvdy0xNmRwKCkge1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIDAgIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgICAgMCAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG5AbWl4aW4gc2hhZG93LTI0ZHAoKSB7XG4gICAgYm94LXNoYWRvdzogMCAgOXB4IDQ2cHggIDhweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAgIDAgMjRweCAzOHB4ICAzcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cblxuLm1kbC1zaGFkb3ctLTJkcCB7XG4gICAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tM2RwIHtcbiAgICBAaW5jbHVkZSBzaGFkb3ctM2RwKCk7XG59XG5cbi5tZGwtc2hhZG93LS00ZHAge1xuICAgIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gICAgQGluY2x1ZGUgc2hhZG93LTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tOGRwIHtcbiAgICBAaW5jbHVkZSBzaGFkb3ctOGRwKCk7XG59XG5cbi5tZGwtc2hhZG93LS0xNmRwIHtcbiAgICBAaW5jbHVkZSBzaGFkb3ctMTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tMjRkcCB7XG4gICAgQGluY2x1ZGUgc2hhZG93LTI0ZHAoKTtcbn0iLCIvLyBBbmd1bGFyIE1hdGVyaWFsLCBtZC1mYWJcbi5tZC1idXR0b24ge1xuICAgIC8vIG92ZXJyaWRlc1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cbiAgICAvLyBGQUJcbiAgICAmLm1kLWZhYiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmLm1kLWZhYi1zcXVhcmUge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgICAgfVxuICAgICAgICAmLm1kLWZhYi14cyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgICAgfVxuICAgICAgICAmLm1kLWZhYi1zbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgICAgICYubWQtZmFiLWxnIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgICAgIHdpZHRoOiA2NXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA2NXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDY1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBTaXppbmcsIG5lZWQgdG8gb3ZlcnJpZGVzIGFnYWluIGZvciBtZC1idXR0b25cbi5idG4tbGcge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsLCAkcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsLCAkZm9udC1zaXplLWxhcmdlLCAkbGluZS1oZWlnaHQtbGFyZ2UsICRib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5idG4tc20ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsLCAkcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsLCAkZm9udC1zaXplLXNtYWxsLCAkbGluZS1oZWlnaHQtc21hbGwsICRib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5idG4teHMge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXhzLXZlcnRpY2FsLCAkcGFkZGluZy14cy1ob3Jpem9udGFsLCAkZm9udC1zaXplLXNtYWxsLCAkbGluZS1oZWlnaHQtc21hbGwsICRib3JkZXItcmFkaXVzLXNtYWxsKTtcbn0iLCJcbi5jYXJkLXBhbmVsIHtcbiAgICBwYWRkaW5nOiAkY2FyZC1wYWRkaW5nO1xuICAgIG1hcmdpbjogJGVsZW1lbnQtdG9wLW1hcmdpbiAwICRlbGVtZW50LWJvdHRvbS1tYXJnaW4gMDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jYXJkO1xuICAgIEBleHRlbmQgLm1kbC1zaGFkb3ctLTJkcDtcbn1cblxuLmNhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogJGVsZW1lbnQtdG9wLW1hcmdpbiAwICRlbGVtZW50LWJvdHRvbS1tYXJnaW4gMDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jYXJkO1xuICAgIEBleHRlbmQgLm1kbC1zaGFkb3ctLTJkcDtcblxuICAgIC5jYXJkLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAmLmFjdGl2YXRvciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FyZC1hY3Rpb24gPiBhIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY2FyZC1wYWRkaW5nO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5jYXJkLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jYXJkICRib3JkZXItcmFkaXVzLWNhcmQgMCAwO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC10aXRsZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZzogJGNhcmQtcGFkZGluZztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4yNSk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAkY2FyZC1wYWRkaW5nO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJGJvcmRlci1yYWRpdXMtY2FyZCAkYm9yZGVyLXJhZGl1cy1jYXJkO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmQtdGl0bGUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmQtcHJvZmlsZS1pbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC03MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDsgXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogOTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDkwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByb2ZpbGUtaW1nLXNtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4OyBcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJkLWJ1dHRvbiAuYnRuLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC02NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmQtYWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgIHBhZGRpbmc6ICRjYXJkLXBhZGRpbmc7XG4gICAgICAgICYubm8tYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLXJldmVhbCB7XG4gICAgICAgIHBhZGRpbmc6ICRjYXJkLXBhZGRpbmc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC5jYXJkLXRpdGxlIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICB9XG59IiwiXG4vLyBNYXRlcmlhbCBpbnB1dFxuLnVpLWlucHV0LWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxuICAgIG1hcmdpbjogMThweCAwIDEycHg7XG5cbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBpbnB1dCxcbiAgICA+IHRleHRhcmVhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyO1xuICAgICAgICAmOmZvY3VzIHsgb3V0bGluZTpub25lOyB9XG4gICAgICAgICY6Zm9jdXMgfiBsYWJlbCxcbiAgICAgICAgJjp2YWxpZCB+IGxhYmVsIHtcbiAgICAgICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgICY6dmFsaWQgfiBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIH4gbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWN0aXZlIHN0YXRlXG4gICAgICAgICY6Zm9jdXMgfiAuaW5wdXQtYmFyOmJlZm9yZSxcbiAgICAgICAgJjpmb2N1cyB+IC5pbnB1dC1iYXI6YWZ0ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1jb2xvci1wbGFjZWhvbGRlcjsgXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgLjM1cyAkbWF0ZXJpYWxfYW5pbWF0aW9uKTtcbiAgICB9XG5cbiAgICAuaW5wdXQtYmFyIHsgXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5pbnB1dC1iYXI6YmVmb3JlLFxuICAgIC5pbnB1dC1iYXI6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxcHg7IFxuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgYm90dG9tOiAxcHg7IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5OyBcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIC4zNXMgJG1hdGVyaWFsX2FuaW1hdGlvbik7XG4gICAgfVxuICAgIC5pbnB1dC1iYXI6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgIH1cbiAgICAuaW5wdXQtYmFyOmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDUwJTsgXG4gICAgfVxufSIsIi51aS1hY2NvcmRpb24ge1xuXG4gICAgLnBhbmVsLWdyb3VwIHtcbiAgICAgICAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzdGF0ZS1kZWZhdWx0LWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYW5lbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzdGF0ZS1kZWZhdWx0LWJvcmRlcjtcbiAgICB9XG5cbiAgICAucGFuZWwtaGVhZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGF0ZS1kZWZhdWx0LWJnO1xuICAgICAgICAucGFuZWwtdGl0bGUgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51aS1hY2NvcmRpb24tc3VjY2VzcyB7XG4gICAgLnBhbmVsIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJyYW5kLXN1Y2Nlc3M7XG4gICAgfVxuICAgIC5wYW5lbC1oZWFkaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXN1Y2Nlc3M7XG4gICAgICAgIGNvbG9yOiAkcmV2ZXJzZTtcbiAgICB9XG59XG4udWktYWNjb3JkaW9uLWluZm8ge1xuICAgIC5wYW5lbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRicmFuZC1pbmZvO1xuICAgIH1cbiAgICAucGFuZWwtaGVhZGluZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1pbmZvO1xuICAgICAgICBjb2xvcjogJHJldmVyc2U7XG4gICAgfVxufVxuLnVpLWFjY29yZGlvbi13YXJuaW5nIHtcbiAgICAucGFuZWwge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYnJhbmQtd2FybmluZztcbiAgICB9XG4gICAgLnBhbmVsLWhlYWRpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtd2FybmluZztcbiAgICAgICAgY29sb3I6ICRyZXZlcnNlO1xuICAgIH1cbn1cbi51aS1hY2NvcmRpb24tZGFuZ2VyIHtcbiAgICAucGFuZWwge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYnJhbmQtZGFuZ2VyO1xuICAgIH1cbiAgICAucGFuZWwtaGVhZGluZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1kYW5nZXI7XG4gICAgICAgIGNvbG9yOiAkcmV2ZXJzZTtcbiAgICB9XG59XG4udWktYWNjb3JkaW9uLWRhcmsge1xuICAgIC5wYW5lbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrO1xuICAgIH1cbiAgICAucGFuZWwtaGVhZGluZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrO1xuICAgICAgICBjb2xvcjogJHJldmVyc2U7XG4gICAgfVxufSIsIi51aS1tYXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNDAwcHg7XG59IiwiLnBhZ2luYXRpb24tbGcgPiBsaSB7XG4gICAgPiBhLCBcbiAgICBzcGFuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICB9XG59IFxuXG4ucGFnaW5hdGlvbiB7XG4gICAgPiBsaSB7XG4gICAgICAgIC8vIG92ZXJyaWRlcyBCb290c3RyYXBcbiAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgID4gYSxcbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGEsXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICB9ICAgXG59XG5cbi5wYWdpbmF0aW9uLXNtIHtcbiAgQGluY2x1ZGUgcGFnaW5hdGlvbi1zaXplKDRweCwgOHB4LCAkZm9udC1zaXplLXNtYWxsLCAkbGluZS1oZWlnaHQtY29tcHV0ZWQsICRib3JkZXItcmFkaXVzLXNtYWxsKTtcbn0iLCIvLyBvdmVycmlkZXMgQm9vdHN0cmFwIHN0eWxlXG4ucHJvZ3Jlc3Mge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJnO1xufVxuXG4ucHJvZ3Jlc3NiYXIteHMge1xuICAgIGhlaWdodDogMTJweDtcbn1cblxuLnByb2dyZXNzLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4ucHJvZ3Jlc3MtYmFyIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vLyBjdXN0b21cbi5wcm9ncmVzc2Jhci14cyB7IGhlaWdodDogMTBweDsgfVxuLnByb2dyZXNzYmFyLXNtIHsgaGVpZ2h0OiAxNXB4OyB9XG5cblxuLnByb2dyZXNzYmFyLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAucHJvZ3Jlc3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICAgIC5kZXNjIHtcbiAgICAgICAgY29sb3I6ICRza2luLWdyYXktZGFyaztcbiAgICB9XG59XG5cbi52cHJvZ3Jlc3NiYXItY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNraW4tZ3JheSAycHggc29saWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYuYnJhbmQtaW5mbyB7IGJvcmRlci1jb2xvcjogJGJyYW5kLWluZm87IH1cbiAgICAmLmJyYW5kLXN1Y2Nlc3MgeyBib3JkZXItY29sb3I6ICRicmFuZC1zdWNjZXNzOyB9XG4gICAgLnZwcm9ncmVzc2JhciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNDhweDtcbiAgICAgICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNraW4tZ3JheTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAudnByb2dyZXNzYmFyLXBlcmNlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnZwcm9ncmVzc2Jhci1sZWdlbmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4zKTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAgYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC52cG9pbnRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudnByb2dyZXNzYmFyLWluZm8ge1xuICAgICAgICBjb2xvcjojY2NjO1xuICAgIH1cbn1cbiIsIi8vIERlcGVuZGVuY3k6IEFuZ3VsYXIgVUkgQm9vdHN0cmFwXG5cbi51aS10YWIge1xuICAgIC5uYXYtdGFicyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICYubmF2LWp1c3RpZmllZCB7XG4gICAgICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICAvLyAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICAgICAvLyAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAvLyAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51aS10YWItY29udGFpbmVyIHtcbiAgICAubmF2LXRhYnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAmLm5hdi1qdXN0aWZpZWQge1xuICAgICAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGxpbmstY29sb3I7XG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFiLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDE1cHg7XG4gICAgfVxufVxuXG4udWktdGFiLWhvcml6b250YWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAubmF2LXRhYnMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhdGUtZGVmYXVsdC1iZztcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLnVpLXRhYi12ZXJ0aWNhbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgMCAwIDMwJTtcbiAgICAubmF2LXRhYnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0YXRlLWRlZmF1bHQtYmc7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDFweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAwIDAgJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgICAgXG4gICAgfVxuXG4gICAgLnRhYi1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYm9yZGVyLXJhZGl1cy1iYXNlICRib3JkZXItcmFkaXVzLWJhc2UgMDtcbiAgICB9XG5cbn1cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBRVFBLG9CQUFvQjtBQUNwQjs7Ozs7O0dBTUc7QUFFSCxPQUFPLENBQUMsb0hBQUk7QUFtQloscUNB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 */
