* {
  margin: 0;
  padding: 0;
  font: inherit;
  box-sizing: border-box;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  -webkit-focus-ring-color: rgba(255,255,255,0);
  cursor: default;
}
body {
  font-size: 100%;
  line-height: 1;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}
a {
  background: transparent;
}
*:focus,
*:active,
*:hover {
  outline: none;
}
hr {
  box-sizing: content-box;
  height: 0;
}
ol,
ul {
  list-style: none;
}
pre {
  -moz-tab-size: 4;
       tab-size: 4;
  white-space: pre-wrap;
}
q {
  quotes: '\201C' '\201D' '\2018' '\2019';
}
img {
  border: none;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input {
  line-height: normal;
}
button,
select {
  text-transform: none;
}
button {
  overflow: visible;
}
button,
html input[type='button'],
input[type='reset'],
input[type='submit'] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
}
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  height: auto;
}
input[type='search'] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: none;
  padding: 0;
}
textarea {
  overflow: auto;
  vertical-align: top;
}
button,
input,
select[multiple],
textarea {
  background-image: none;
}
input,
select,
textarea {
  border-radius: 0;
  box-shadow: none;
}
input,
textarea {
  resize: none;
  -webkit-user-select: text;
     -moz-user-select: text;
      -ms-user-select: text;
          user-select: text;
}
[placeholder]:focus:-ms-input-placeholder {
  color: transparent;
}
[placeholder]:focus::placeholder {
  color: transparent;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* Библиотека анимаций */
@charset "UTF-8";

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */

.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

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

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

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  animation-duration: .75s;
}

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    transform: translate3d(0,-4px,0);
  }
}

.bounce {
  animation-name: bounce;
  transform-origin: center bottom;
}

@keyframes flash {
  from, 50%, to {
    opacity: 1;
  }

  25%, 75% {
    opacity: 0;
  }
}

.flash {
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.pulse {
  animation-name: pulse;
}

@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }

  30% {
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    transform: scale3d(.95, 1.05, 1);
  }

  75% {
    transform: scale3d(1.05, .95, 1);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  animation-name: rubberBand;
}

@keyframes shake {
  from, to {
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    transform: translate3d(10px, 0, 0);
  }
}

.shake {
  animation-name: shake;
}

@keyframes headShake {
  0% {
    transform: translateX(0);
  }

  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    transform: translateX(0);
  }
}

.headShake {
  animation-timing-function: ease-in-out;
  animation-name: headShake;
}

@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

.swing {
  transform-origin: top center;
  animation-name: swing;
}

@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }

  10%, 20% {
    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
  }

  30%, 50%, 70%, 90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%, 60%, 80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.tada {
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes wobble {
  from {
    transform: none;
  }

  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    transform: none;
  }
}

.wobble {
  animation-name: wobble;
}

@keyframes jello {
  from, 11.1%, to {
    transform: none;
  }

  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

.jello {
  animation-name: jello;
  transform-origin: center;
}

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    transform: scale3d(.97, .97, .97);
  }

  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

.bounceIn {
  animation-name: bounceIn;
}

@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }

  75% {
    transform: translate3d(0, -10px, 0);
  }

  90% {
    transform: translate3d(0, 5px, 0);
  }

  to {
    transform: none;
  }
}

.bounceInDown {
  animation-name: bounceInDown;
}

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }

  75% {
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    transform: translate3d(5px, 0, 0);
  }

  to {
    transform: none;
  }
}

.bounceInLeft {
  animation-name: bounceInLeft;
}

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    transform: translate3d(10px, 0, 0);
  }

  90% {
    transform: translate3d(-5px, 0, 0);
  }

  to {
    transform: none;
  }
}

.bounceInRight {
  animation-name: bounceInRight;
}

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  75% {
    transform: translate3d(0, 10px, 0);
  }

  90% {
    transform: translate3d(0, -5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.bounceInUp {
  animation-name: bounceInUp;
}

@keyframes bounceOut {
  20% {
    transform: scale3d(.9, .9, .9);
  }

  50%, 55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }
}

.bounceOut {
  animation-name: bounceOut;
}

@keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }

  40%, 45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

.bounceOutDown {
  animation-name: bounceOutDown;
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

.bounceOutLeft {
  animation-name: bounceOutLeft;
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

.bounceOutRight {
  animation-name: bounceOutRight;
}

@keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }

  40%, 45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

.bounceOutUp {
  animation-name: bounceOutUp;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  animation-name: fadeIn;
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInDown {
  animation-name: fadeInDown;
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInDownBig {
  animation-name: fadeInDownBig;
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInLeft {
  animation-name: fadeInLeft;
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInLeftBig {
  animation-name: fadeInLeftBig;
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInRight {
  animation-name: fadeInRight;
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInRightBig {
  animation-name: fadeInRightBig;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInUp {
  animation-name: fadeInUp;
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInUpBig {
  animation-name: fadeInUpBig;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeOut {
  animation-name: fadeOut;
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}

.fadeOutDown {
  animation-name: fadeOutDown;
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

.fadeOutDownBig {
  animation-name: fadeOutDownBig;
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}

.fadeOutLeft {
  animation-name: fadeOutLeft;
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

.fadeOutLeftBig {
  animation-name: fadeOutLeftBig;
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}

.fadeOutRight {
  animation-name: fadeOutRight;
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

.fadeOutRightBig {
  animation-name: fadeOutRightBig;
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}

.fadeOutUp {
  animation-name: fadeOutUp;
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

.fadeOutUpBig {
  animation-name: fadeOutUpBig;
}

@keyframes flip {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    animation-timing-function: ease-out;
  }

  40% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    animation-timing-function: ease-out;
  }

  50% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    animation-timing-function: ease-in;
  }

  80% {
    transform: perspective(400px) scale3d(.95, .95, .95);
    animation-timing-function: ease-in;
  }

  to {
    transform: perspective(400px);
    animation-timing-function: ease-in;
  }
}

.animated.flip {
  backface-visibility: visible;
  animation-name: flip;
}

@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

.flipInX {
  backface-visibility: visible !important;
  animation-name: flipInX;
}

@keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

.flipInY {
  backface-visibility: visible !important;
  animation-name: flipInY;
}

@keyframes flipOutX {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

.flipOutX {
  animation-name: flipOutX;
  backface-visibility: visible !important;
}

@keyframes flipOutY {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

.flipOutY {
  backface-visibility: visible !important;
  animation-name: flipOutY;
}

@keyframes lightSpeedIn {
  from {
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    transform: skewX(-5deg);
    opacity: 1;
  }

  to {
    transform: none;
    opacity: 1;
  }
}

.lightSpeedIn {
  animation-name: lightSpeedIn;
  animation-timing-function: ease-out;
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

.lightSpeedOut {
  animation-name: lightSpeedOut;
  animation-timing-function: ease-in;
}

@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    transform-origin: center;
    transform: none;
    opacity: 1;
  }
}

.rotateIn {
  animation-name: rotateIn;
}

@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}

.rotateInDownLeft {
  animation-name: rotateInDownLeft;
}

@keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}

.rotateInDownRight {
  animation-name: rotateInDownRight;
}

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

  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}

.rotateInUpLeft {
  animation-name: rotateInUpLeft;
}

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

  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}

.rotateInUpRight {
  animation-name: rotateInUpRight;
}

@keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }

  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

.rotateOut {
  animation-name: rotateOut;
}

@keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

.rotateOutDownLeft {
  animation-name: rotateOutDownLeft;
}

@keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutDownRight {
  animation-name: rotateOutDownRight;
}

@keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutUpLeft {
  animation-name: rotateOutUpLeft;
}

@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.rotateOutUpRight {
  animation-name: rotateOutUpRight;
}

@keyframes hinge {
  0% {
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }

  20%, 60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }

  40%, 80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

.hinge {
  animation-name: hinge;
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }

  50% {
    transform: rotate(-10deg);
  }

  70% {
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.jackInTheBox {
  animation-name: jackInTheBox;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes rollIn {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.rollIn {
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

.rollOut {
  animation-name: rollOut;
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  animation-name: zoomIn;
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInDown {
  animation-name: zoomInDown;
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInLeft {
  animation-name: zoomInLeft;
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInRight {
  animation-name: zoomInRight;
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInUp {
  animation-name: zoomInUp;
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  to {
    opacity: 0;
  }
}

.zoomOut {
  animation-name: zoomOut;
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomOutDown {
  animation-name: zoomOutDown;
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}

.zoomOutLeft {
  animation-name: zoomOutLeft;
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}

.zoomOutRight {
  animation-name: zoomOutRight;
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomOutUp {
  animation-name: zoomOutUp;
}

@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInDown {
  animation-name: slideInDown;
}

@keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInLeft {
  animation-name: slideInLeft;
}

@keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInRight {
  animation-name: slideInRight;
}

@keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInUp {
  animation-name: slideInUp;
}

@keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}

.slideOutDown {
  animation-name: slideOutDown;
}

@keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}

.slideOutLeft {
  animation-name: slideOutLeft;
}

@keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}

.slideOutRight {
  animation-name: slideOutRight;
}

@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}

.slideOutUp {
  animation-name: slideOutUp;
}

/* /Библиотека анимаций */
/* Глобальные стили */
body {
  position: relative;
  font-family: Open Sans, sans-serif;
}
.site-width {
  margin: auto;
  max-width: 1450px;
  padding-left: 10px;
  padding-right: 10px;
}
.inn-padd {
  padding-left: 10px;
  padding-right: 10px;
}
strong {
  font-weight: 600;
}
/* Круглые краницы */
.bg-round {
  position: absolute;
  left: 50%;
  width: 150%;
  height: 300px;
  transform: translateX(-50%);
  border-radius: 50%;
}
/* /Глобальные стили */
/* Footer */
.footer {
  display: block;
}
.footer-inner {
  position: relative;
  margin-top: 250px;
  text-align: center;
  background-color: #c0e4f6;
}
/* Верхний текст */
.footer-inner__text-top {
  position: relative;
  z-index: 10;
  font-size: 34px;
  line-height: 40px;
  color: #636363;
}
/* /Верхний текст */
/* Блок с изображениями */
.footer-inner__images {
  position: relative;
  z-index: 10;
  margin: auto;
  margin-top: 40px;
  padding: 0 170px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: row;
      flex-direction: row;
  max-width: 1350px;
  -ms-flex-pack: justify;
      justify-content: space-between;
  background-color: #2780bb;
  border-radius: 500px;
}
.footer-inner__images-item {
  position: relative;
  margin: 35px 0;
  -ms-flex-align: center;
      -ms-grid-row-align: center;
      align-items: center;
}
.footer-inner__image-item-image {
  margin-bottom: 50px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center;
  height: 73%;
}
.footer-inner__images-item-txt {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 400px;
  transform: translateX(-50%);
  font-size: 30px;
  color: #fff;
}
/* /Блок с изображениями */
/* Нижний текст */
.footer-inner__text-bottom {
  padding: 56px 0;
  font-size: 34px;
  line-height: 40px;
  color: #009a42;
}
/* /Нижний текст */
/* Примечание */
.footer-note {
  padding: 34px 0;
  font-size: 30px;
  text-align: center;
  color: #636363;
}
.footer-note__a {
  color: #636363;
  -webkit-transition: .2s ease;
  -o-transition: .2s ease;
  transition: .2s ease;
}
.footer-note__a:hover {
  color: #0167ac;
}

/* /Примечание */
/* Скачать макеты */
.footer-download {
  padding: 25px 10px;
  background-color: #d5edf9;
}
/* Кнопка Скачать макеты */
.footer-download__btn {
  margin: auto;
  background-color: #0069aa;
  border-radius: 10px;
  -ms-flex-align: center;
      align-items: center;
  padding: 20px 8px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  width: 100%;
  max-width: 295px;
  height: 60px;
}
a.footer-download__btn {
  text-decoration: none;
  color: #fff;
  transition: 0.2s ease;
}
a.footer-download__btn:hover {
  box-shadow: 0 0 7px 0 #808080;
}
.footer-download__btn-txt {
  padding: 0 27px;
}
/* /Кнопка Скачать макеты */
/* Каталог FLAVIA */
.footer-download__btn-small {
  margin-top: 20px;
  padding: 0;
  max-width: 170px;
  height: 38px;
}
/* /Каталог FLAVIA */
/* /Скачать макеты */
/* Бэкграунд круглый */
.header__bg.footer__bg {
  position: absolute;
  z-index: 5;
  top: -70px;
  width: 100%;
  transform: rotate(180deg);
  background-color: transparent;
}
/* Адаптация */
@media screen and (max-width: 1200px) {
  .footer-inner__images-item-txt {
    font-size: 24px;
  }
}
@media screen and (max-width: 1060px) {
  .footer-inner__images-item-txt {
    left: inherit;
    width: inherit;
    transform: inherit;
  }
  .footer-inner__text-top {
    padding-top: 30px;
  }
  .footer-inner__images {
    -ms-flex-pack: distribute;
        justify-content: space-around;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin: 50px 10px 0;
    padding: 0 100px;
  }
  .footer-inner__image-item-image {
    margin-bottom: 70px;
  }
}
/* /Адаптация */
/* /Footer */
/* Header */
.header {
  position: relative;
  margin-bottom: 100px;
  display: block;
  text-align: center;
/* Header Top */
}
.header__top {
  position: relative;
  z-index: 30;
  display: inline-block;
  width: 100%;
  background-color: #fff;
}
.header__top-bg {
  bottom: 0;
  text-align: center;
  background-color: #fff;
}
.header__title {
  position: relative;
  z-index: 20;
  margin: auto;
  padding: 38px 10px;
  font-family: 'Open Sans', sans-serif;
  font-size: 33px;
  color: #636363;
}
.header__logo-img {
  position: relative;
  z-index: 20;
/* Header Top */
/* Header Bottom */
}
.header__bottom {
  position: relative;
  z-index: 20;
  text-align: center;
  background-color: #c0e4f7;
}
.header__bottom-title {
  position: relative;
  margin-top: 100px;
  margin-bottom: 70px;
  padding: 25px 70px 18px;
  display: inline-block;
  font-size: 50px;
  font-weight: 700;
  line-height: 53px;
  color: #fff;
  background-color: #61a6d1;
  border-radius: 200px;
  text-transform: uppercase;
}
.header__bottom-title-round-number {
  position: relative;
  padding: 30px 36px 30px 30px;
  display: inline-block;
  font-size: 60px;
}
.header__bottom-title-round-number:after {
  position: absolute;
  top: 50%;
  left: 52%;
  width: 90px;
  height: 90px;
  content: '';
  transform: translate(-50%, -50%);
  border: 3px solid #fff;
  border-radius: 50%;
}
/* Колонки */
.cols {
  position: relative;
  margin: auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  max-width: 1500px;
}
.col-left.col__header,
.col-right.col__header {
  -ms-flex-pack: start;
      justify-content: flex-start;
}
.col__dotted {
  width: 7px;
  height: 98%;
  background-image: url("../../images/single-dot.png");
  background-position: center;
}
.col-left,
.col-right {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: justify;
      justify-content: space-between;
}
.col__header-text {
  margin-top: 40px;
  font-size: 34px;
  font-weight: 600;
  line-height: 56px;
  color: #0167ac;
  text-transform: uppercase;
}
.col__header-text strong {
  font-weight: 800;
}
/* /Колонки */
/* /Header Bottom */
/* Фон */
.header__top-bg-container {
  position: absolute;
  left: 0;
  bottom: -40px;
  overflow: hidden;
  width: 100%;
  height: 100px;
}
.header__bg {
  position: absolute;
  z-index: 10;
  bottom: -90px;
  overflow: hidden;
  width: 100%;
  height: 200px;
  background-color: transparent;
}
.header__bg-round {
  z-index: 10;
  bottom: 50px;
  background-color: #c0e4f7;
}
.header__bg-round-lite {
  z-index: 5;
  bottom: 0;
  background-color: #d5edf9;
}
/* /Фон */
/* Адаптация */
@media screen and (max-width: 780px) {
  .footer-inner__images-item {
    width: 50%;
  }
  .footer-inner__image-item-image {
    -ms-flex-align: center;
        -ms-grid-row-align: center;
        align-items: center;
  }
  .footer-inner__images-item-txt {
    width: 100%;
  }
}
@media screen and (max-width: 780px) {
  .col__header-img-picture {
    width: 80%;
  }
}
@media screen and (max-width: 720px) {
  .col__header-text {
    font-size: 25px;
    line-height: 35px;
  }
  .col-left,
  .col-right {
    -ms-flex-align: center;
        -ms-grid-row-align: center;
        align-items: center;
  }
}
@media screen and (max-width: 600px) {
  .footer__lojka {
    width: 33vw;
  }
  .footer__tarelka {
    width: 22vw;
  }
  .footer__glass {
    width: 13vw;
  }
  .footer__cup {
    width: 23vw;
  }
  .footer-inner__images {
    padding: 20px 14vw;
  }
  .footer-inner__images-item-txt {
    font-size: 4vw;
  }
  .footer-inner__images-item {
    margin: 12px 0;
  }
  .footer-inner__image-item-image {
    margin-bottom: 11vw;
  }
}
@media screen and (max-width: 510px) {
  .header__bottom-title {
    font-size: 40px;
    line-height: 50px;
  }
  .header__bottom-title-round-number {
    padding: 35px;
  }
  .col__header-text {
    font-size: 4vw;
    line-height: 5.5vw;
  }
}
/* /Адаптация */
/* /Header */
/* Контент */
.content__item {
  margin: auto;
  display: block;
  font-size: 15px;
  text-align: justify;
}
.content__item:after {
  display: inline-block;
  width: 100%;
  content: '';
/* Разделитель */
}
.content__separator {
  margin: 20px 0;
  height: 60px;
  text-align: center;
}
.col__dotted-separator {
  display: inline-block;
/* /Разделитель */
}
/* Центральный блок */
.content__item-center {
  display: inline-block;
  max-width: 60%;
  text-align: center;
}
.content__item-center-cent {
  position: relative;
  margin: 0 -4px;
  display: inline-block;
  width: 60%;
  text-align: center;
  vertical-align: middle;
}
.content__item-center-cent-img {
  width: 100%;
}
.content__item-center-cent-txt {
  position: absolute;
  top: 45%;
  width: 100%;
  height: 50%;
}
.content__item-center-span {
  position: absolute;
  top: 50%;
  left: 0;
  padding: 0 80px;
  font-size: 2em;
  text-align: center;
  color: #fff;
  transform: translateY(-50%);
}
.content__item-center-left,
.content__item-center-right {
  display: inline-block;
  width: 20%;
  vertical-align: middle;
}
.content__item-center-left-img,
.content__item-center-right-img {
  width: 100%;
}
.content__item-center-left {
  margin: -1px;
}
/* /Центральный блок */
/* Боковой блок */
.content__item-side {
  margin-top: -65px;
  display: inline-block;
  width: 100%;
  max-width: 18%;
  text-align: center;
  vertical-align: middle;
}
.content__item-side-img {
  width: 9.4em;
}
.content__item-side-text {
  position: absolute;
  left: 50%;
  width: 100%;
  text-align: center;
  transform: translateX(-50%);
}
.content__item-side-text-title {
  margin-top: 22px;
  margin-bottom: 4px;
  font-size: 3em;
  font-weight: 600;
}
.celsium .content__item-side-text {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
}
.celsium .content__item-side-text-title-red {
  width: 24vw;
}
.content__item-side-text-txt {
  margin-bottom: 3px;
  font-size: 2em;
  font-weight: 600;
  color: #636363;
}
.content__item-side-text-note {
  font-size: 1.6em;
  color: #636363;
}
/* Слева */
.content__item-side-text-title-red {
  color: #df1a0a;
}
/* /Слева */
/* Справа */
.content__item-side-text-title-green {
  color: #009a42;
}
/* /Справа */
/* /Боковой блок */
/* Пузыри Параллакс */
.parallax-container {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.ball {
  position: absolute;
  z-index: -1;
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: auto;
}
.ball0 {
  right: -500px;
  bottom: -950px;
  width: 1920px;
  height: 1920px;
  background-image: url("../../images/ball0.png");
}
.ball1 {
  right: -500px;
  bottom: 1000px;
  width: 1822px;
  height: 1822px;
  background-image: url("../../images/ball1.png");
}
.ball2 {
  right: -800px;
  bottom: 2000px;
  width: 1718px;
  height: 1718px;
  background-image: url("../../images/ball2.png");
}
.ball3 {
  left: -600px;
  bottom: 3000px;
  width: 1523px;
  height: 1523px;
  background-image: url("../../images/ball3.png");
}
.ball4 {
  right: -200px;
  bottom: 4000px;
  width: 1283px;
  height: 1283px;
  background-image: url("../../images/ball4.png");
}
.ball5 {
  left: -500px;
  bottom: -1000px;
  width: 1196px;
  height: 1196px;
  background-image: url("../../images/ball5.png");
}
.ball6 {
  right: 800px;
  bottom: 3500px;
  width: 1136px;
  height: 1136px;
  background-image: url("../../images/ball6.png");
}
.ball7 {
  right: -200px;
  bottom: 2500px;
  width: 1011px;
  height: 1011px;
  background-image: url("../../images/ball7.png");
}
.ball8 {
  right: -100px;
  bottom: 1500px;
  width: 686px;
  height: 686px;
  background-image: url("../../images/ball8.png");
}
.ball9 {
  left: 50px;
  bottom: 1000px;
  width: 739px;
  height: 739px;
  background-image: url("../../images/ball9.png");
}
.ball10 {
  right: 200px;
  bottom: 2000px;
  width: 417px;
  height: 417px;
  background-image: url("../../images/ball10.png");
}
.ball11 {
  left: 400px;
  bottom: 1500px;
  width: 282px;
  height: 282px;
  background-image: url("../../images/ball11.png");
}
/* /Пузыри Параллакс */
/* Плавное появление блоков */
.hidden {
  opacity: 1;
}
.visible {
  opacity: 0;
}
/* /Плавное появление блоков */
/* Адаптация */
@media screen and (max-width: 1500px) {
  .content__item-side-text-txt {
    font-size: 2vw;
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    justify-content: center;
  }
}
@media screen and (max-width: 1050px) {
  .content__item {
    font-size: 1.2vw;
  }
  .content__item-center-span {
    padding: 0 7vw;
  }

  .content__item-side-text-txt {
    font-size: 2.3vw;
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    justify-content: center;
  }
  .content {
    overflow: hidden;
  }
  .content__item-side-text {
    width: 118%;
  }
  .content__item-side-text-note {
    font-size: 2em;
  }
}
@media screen and (max-width: 730px) {
  .header__logo-img {
    width: 60%;
  }
  .header__title {
    font-size: 24px;
    line-height: 30px;
  }
  .header__bottom-title {
    padding: 33px 40px;
    font-size: 22px;
    line-height: 33px;
  }
  .footer-inner__text-top,
  .footer-inner__text-bottom,
  .footer-note {
    font-size: 22px;
    line-height: 30px;
  }
  .footer-inner {
    margin-top: 150px;
  }
}
@media screen and (max-width: 350px) {
  .footer-download__btn-txt {
    padding: 0 10px;
  }
}
/* /Адаптация */
/* /Контент */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvb3B0aW1pemUuc3R5bCIsImFwcC5zdHlsIiwiaGVscGVycy9hbmltYXRlLmNzcyIsIi4uL2Jsb2Nrcy9mb290ZXIvZm9vdGVyLnN0eWwiLCIuLi9ibG9ja3MvaGVhZGVyL2hlYWRlci5zdHlsIiwiLi4vYmxvY2tzL3BhZ2UvcGFnZS5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0MsVUFBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7O0FBTUQ7Ozs7Ozs7Ozs7OztFQVlDLGVBQUE7O0FBSUQ7Ozs7RUFJQyxzQkFBQTtFQUNBLHlCQUFBOztBQUlEO0VBQ0MsY0FBQTtFQUNBLFVBQUE7O0FBSUQ7O0VBRUMsY0FBQTs7QUFTRDtFQUNDLHdCQUFBO0VBQ0EsMkJBQUE7RUFDQSwrQkFBQTtFQUNBLDJDQUFBO0VBQ0EsOENBQUE7RUFDQSxnQkFBQTs7QUFHRDtFQUNDLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7O0FBTUQ7RUFDQyx3QkFBQTs7QUFHRDs7O0VBQ0MsY0FBQTs7QUFNRDtFQUNDLHdCQUFBO0VBQ0EsVUFBQTs7QUFHRDs7RUFFQyxpQkFBQTs7QUFHRDtFQUNDLGlCQUFBO09BQUEsWUFBQTtFQUNBLHNCQUFBOztBQUdEO0VBQ0Msd0NBQUE7O0FBTUQ7RUFDQyxhQUFBOztBQUdEO0VBQ0MsaUJBQUE7O0FBTUQ7O0VBRUMsb0JBQUE7O0FBTUQ7O0VBRUMscUJBQUE7O0FBR0Q7RUFDQyxrQkFBQTs7QUFLRDs7OztFQUlDLDJCQUFBO0VBQ0EsZ0JBQUE7O0FBR0Q7O0VBRUMsZ0JBQUE7O0FBR0Q7O0VBRUMsdUJBQUE7O0FBS0Q7O0VBRUMsYUFBQTs7QUFJRDtFQUNDLDhCQUFBO0VBQ0Esd0JBQUE7O0FBR0Q7O0VBRUMseUJBQUE7O0FBR0Q7O0VBRUMsYUFBQTtFQUNBLFdBQUE7O0FBSUQ7RUFDQyxlQUFBO0VBQ0Esb0JBQUE7O0FBR0Q7Ozs7RUFJQyx1QkFBQTs7QUFJRDs7O0VBR0Ms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Rjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSwyQkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0lBQ0Esc0NBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSw4QkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0lBQ0EsbUNBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSw0QkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0lBQ0EscUNBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSwrQkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0lBQ0EsbUNBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSx5QkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0lBQ0EscUNBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxnQkFBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSw0QkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0dBQ0Y7O0VBRUE7SUFDRSxXQUFBO0dBQ0Y7Q0FDRjs7QUFFQTtFQUNFLHdCQUFBO0NBQ0Y7O0FBRUE7RUFDRTtJQUNFLFdBQUE7R0FDRjs7RUFFQTtJQUNFLFdBQUE7SUFDQSxtQ0FBQTtHQUNGO0NBQ0Y7O0FBRUE7RUFDRSw0QkFBQTtDQUNGOztBQUVBO0VBQ0U7SUFDRSxXQUFBO0dBQ0Y7O0VBRUE7SUFDRSxXQUFBO0lBQ0EscUNBQUE7R0FDRjtDQUNGOztBQUVBO0VBQ0UsK0JBQUE7Q0FDRjs7QUFFQTtFQUNFO0lBQ0UsV0FBQTtHQUNGOztFQUVBO0lBQ0UsV0FBQTtJQUNBLG9DQUFBO0dBQ0Y7Q0FDRjs7QUFFQTtFQUNFLDRCQUFBO0NBQ0Y7O0FBRUE7RUFDRTtJQUNFLFdBQUE7R0FDRjs7RUFF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QUNDLGNBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxnREFBQTs7QUFDRDtFQUNDLFdBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxnREFBQTs7QUFDRDtFQUNDLGFBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTs7QUFDRDtFQUNDLFlBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTs7QUFFRCx1QkFBQTtBQUVBLDhCQUFBO0FBQ0E7RUFDQyxXQUFBOztBQUVEO0VBQ0MsV0FBQTs7QUFDRCwrQkFBQTtBQUVBLGVBQUE7QUFFbUM7RUFDbEM7SUFDQyxlQUFBOzs7QUFFaUM7RUFDbEM7SUFDQyxpQkFBQTs7RUFDRDtJQUNDLGVBQUE7OztBQUVpQztFQUNsQztJQUNDLFdBQUE7O0VBQ0Q7SUFDQyxnQkFBQTtJQUNBLGtCQUFBOztFQUNEO0lBQ0MsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBOztFQUVEOzs7SUFHQyxnQkFBQTtJQUNBLGtCQUFBOztFQUVEO0lBQ0Msa0JBQUE7OztBQUVpQztFQUNsQztJQUNDLGdCQUFBOzs7QUFDRixnQkFBQTtBQUVBLGNBQUEiLCJmaWxlIjoiYXBwLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFJlc2V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBSZXNldCBkZWZhdWx0IHN0eWxlcy5cbiogLy8gQHN0eWxpbnQgaWdub3JlXG5cdG1hcmdpbiAwXG5cdHBhZGRpbmcgMFxuXHRmb250IGluaGVyaXRcblx0Ym94LXNpemluZyBib3JkZXItYm94XG5cbi8vIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbmFydGljbGVcbmFzaWRlXG5kZXRhaWxzXG5maWdjYXB0aW9uXG5maWd1cmVcbmZvb3RlclxuaGVhZGVyXG5oZ3JvdXBcbm1haW5cbm5hdlxuc2VjdGlvblxuc3VtbWFyeVxuXHRkaXNwbGF5IGJsb2NrXG5cbi8vIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4vLyAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5hdWRpb1xuY2FudmFzXG5wcm9ncmVzc1xudmlkZW9cblx0ZGlzcGxheSBpbmxpbmUtYmxvY2sgICAgLy8gMVxuXHR2ZXJ0aWNhbC1hbGlnbiBiYXNlbGluZSAvLyAyXG5cbi8vIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuYXVkaW86bm90KFtjb250cm9sc10pXG5cdGRpc3BsYXkgbm9uZVxuXHRoZWlnaHQgMFxuXG4vLyBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4vLyBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbltoaWRkZW5dXG50ZW1wbGF0ZVxuXHRkaXNwbGF5IG5vbmVcblxuLy8gQmFzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbi8vIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4vLyAzLiBSZW1vdmUgaGlnaGxpdGUgb24gbW9iaWxlIGRldmljZXMuXG4vLyA0LiBTZXQgZGVmYXVsdCBjdXJzb3IuXG5odG1sXG5cdGZvbnQtZmFtaWx5IHNhbnMtc2VyaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDFcblx0LW1zLXRleHQtc2l6ZS1hZGp1c3QgMTAwJSAgICAgICAgICAgICAgICAgICAgICAgLy8gMlxuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QgMTAwJSAgICAgICAgICAgICAgICAgICAvLyAyXG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciByZ2JhKDAsIDAsIDAsIDApICAgIC8vIDNcblx0LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgLy8gM1xuXHRjdXJzb3IgZGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0XG5cbi8vIFNldCAxMDAlIGxpbmUtaGVpZ2h0XG5ib2R5XG5cdGZvbnQtc2l6ZSAxMDAlXG5cdGxpbmUtaGVpZ2h0IDFcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmcgZ3JheXNjYWxlXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmcgYW50aWFsaWFzZWRcblxuLy8gTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuYVxuXHRiYWNrZ3JvdW5kIHRyYW5zcGFyZW50XG5cbi8vIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuKjpmb2N1cywgKjphY3RpdmUsICo6aG92ZXIgLy8gQHN0eWxpbnQgaWdub3JlXG5cdG91dGxpbmUgbm9uZVxuXG4vLyBUeXBvZ3JhcGh5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG5oclxuXHRib3gtc2l6aW5nIGNvbnRlbnQtYm94XG5cdGhlaWdodCAwXG5cbi8vIFJlbW92ZSBkZWZhdWx0IHN0eWxlXG5vbFxudWxcblx0bGlzdC1zdHlsZSBub25lXG5cbi8vIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbnByZVxuXHR0YWItc2l6ZSA0XG5cdHdoaXRlLXNwYWNlIHByZS13cmFwXG5cbi8vIFNldCBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxucVxuXHRxdW90ZXMgJ1xcMjAxQycgJ1xcMjAxRCcgJ1xcMjAxOCcgJ1xcMjAxOSdcblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG5pbWdcblx0Ym9yZGVyIG5vbmVcblxuLy8gQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbnN2Zzpub3QoOnJvb3QpXG5cdG92ZXJmbG93IGhpZGRlblxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpbiB0aGUgVUEgc3R5bGVzaGVldC5cbmJ1dHRvblxuaW5wdXRcblx0bGluZS1oZWlnaHQgbm9ybWFsXG5cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbi8vIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4vLyBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4vLyBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuYnV0dG9uXG5zZWxlY3Rcblx0dGV4dC10cmFuc2Zvcm0gbm9uZVxuXG4vLyBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC5cbmJ1dHRvblxuXHRvdmVyZmxvdyB2aXNpYmxlXG5cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuLy8gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuLy8gMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGUgYGlucHV0YCBhbmQgb3RoZXJzLlxuYnV0dG9uXG5odG1sIGlucHV0W3R5cGU9J2J1dHRvbiddICAgLy8gMVxuaW5wdXRbdHlwZT0ncmVzZXQnXVxuaW5wdXRbdHlwZT0nc3VibWl0J11cblx0LXdlYmtpdC1hcHBlYXJhbmNlIGJ1dHRvbiAvLyAyXG5cdGN1cnNvciBwb2ludGVyICAgICAgICAgICAgLy8gM1xuXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuYnV0dG9uW2Rpc2FibGVkXVxuaHRtbCBpbnB1dFtkaXNhYmxlZF1cblx0Y3Vyc29yIGRlZmF1bHRcblxuLy8gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS5cbmlucHV0W3R5cGU9J2NoZWNrYm94J11cbmlucHV0W3R5cGU9J3JhZGlvJ11cblx0Ym94LXNpemluZyBib3JkZXItYm94XG5cbi8vIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4vLyBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuLy8gZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b25cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uXG5cdGhlaWdodCBhdXRvXG5cbi8vIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4vLyAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXVxuXHQtd2Via2l0LWFwcGVhcmFuY2UgdGV4dGZpZWxkIC8vIDFcblx0Ym94LXNpemluZyBjb250ZW50LWJveFxuXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZSBvbiBPUyBYLlxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b25cbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uXG5cdC13ZWJraXQtYXBwZWFyYW5jZSBub25lXG5cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXJcblx0Ym9yZGVyIG5vbmVcblx0cGFkZGluZyAwXG5cbi8vIDEuIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4vLyAyLiBJbXByb3ZlIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxudGV4dGFyZWFcblx0b3ZlcmZsb3cgYXV0byAgICAgIC8vIDFcblx0dmVydGljYWwtYWxpZ24gdG9wIC8vIDJcblxuLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZS5cbmJ1dHRvblxuaW5wdXRcbnNlbGVjdFttdWx0aXBsZV1cbnRleHRhcmVhXG5cdGJhY2tncm91bmQtaW1hZ2Ugbm9uZVxuXG4vLyAxLiBSZW1vdmUgYGJvcmRlci1yYWRpdXNgIGluIGlPUy5cbi8vIDIuIFJlbW92ZSBgYm94LXNoYWRvd2AgaW4gaU9TLlxuaW5wdXRcbnNlbGVjdFxudGV4dGFyZWFcblx0Ym9yZGVyLXJhZGl1cyAwIC8vIDFcblx0Ym94LXNoYWRvdyBub25lIC8vIDJcblxuLy8gMS4gRGlzYWJsZSByZXNpemUuXG4vLyAyLiBBbGxvdyB1c2VyIHNlbGVjdC5cbmlucHV0XG50ZXh0YXJlYVxuXHRyZXNpemUgbm9uZSAgICAgIC8vIDFcblx0dXNlci1zZWxlY3QgdGV4dCAvLyAyXG5cbi8vIEhpZGUgcGxhY2Vob2xkZXIgb24gZm9jdXMuXG5bcGxhY2Vob2xkZXJdOmZvY3VzOjpwbGFjZWhvbGRlclxuXHRjb2xvciB0cmFuc3BhcmVudFxuXG4vLyBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbnRhYmxlXG5cdGJvcmRlci1jb2xsYXBzZSBjb2xsYXBzZVxuXHRib3JkZXItc3BhY2luZyAwXG4iLCJpbXBvcnQoJ3Nwcml0ZXMvKicpXG5pbXBvcnQoJ2hlbHBlcnMvc3ZnLXNpemUnKVxuQGltcG9ydCAnaGVscGVycy92YXJpYWJsZXMnXG5AaW1wb3J0ICdoZWxwZXJzL21peGlucydcbkBpbXBvcnQgJ2hlbHBlcnMvZm9udHMnXG5AaW1wb3J0ICdoZWxwZXJzL29wdGltaXplJ1xuLyog0JHQuNCx0LvQuNC+0YLQtdC60LAg0LDQvdC40LzQsNGG0LjQuSAqL1xuQGltcG9ydCAnaGVscGVycy9hbmltYXRlLmNzcydcbi8qIC/QkdC40LHQu9C40L7RgtC10LrQsCDQsNC90LjQvNCw0YbQuNC5ICovXG5cbi8qINCT0LvQvtCx0LDQu9GM0L3Ri9C1INGB0YLQuNC70LggKi9cbmJvZHlcblx0cG9zaXRpb24gcmVsYXRpdmVcblx0Zm9udC1mYW1pbHkgT3BlbiBTYW5zLCBzYW5zLXNlcmlmXG5cbi5zaXRlLXdpZHRoXG5cdG1hcmdpbiBhdXRvXG5cdG1heC13aWR0aCAkc2l0ZVdpZHRoSW5uZXJcblx0cGFkZGluZy1sZWZ0IDEwcHhcblx0cGFkZGluZy1yaWdodCAxMHB4XG5cbi5pbm4tcGFkZFxuXHRwYWRkaW5nLWxlZnQgMTBweFxuXHRwYWRkaW5nLXJpZ2h0IDEwcHhcblxuc3Ryb25nXG5cdGZvbnQtd2VpZ2h0IDYwMFxuXG4vKiDQmtGA0YPQs9C70YvQtSDQutGA0LDQvdC40YbRiyAqL1xuLmJnLXJvdW5kXG5cdHBvc2l0aW9uIGFic29sdXRlXG5cdGxlZnQgNTAlXG5cdHdpZHRoIDE1MCVcblx0aGVpZ2h0IDMwMHB4XG5cdHRyYW5zZm9ybSB0cmFuc2xhdGVYKC01MCUpXG5cdGJvcmRlci1yYWRpdXMgNTAlXG5cblxuLyogL9CT0LvQvtCx0LDQu9GM0L3Ri9C1INGB0YLQuNC70LggKi9cblxuaW1wb3J0KCcuLi9ibG9ja3MvKiovKicpXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qIVxuICogYW5pbWF0ZS5jc3MgLWh0dHA6Ly9kYW5lZGVuLm1lL2FuaW1hdGVcbiAqIFZlcnNpb24gLSAzLjUuMlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBEYW5pZWwgRWRlblxuICovXG5cbi5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5hbmltYXRlZC5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4uYW5pbWF0ZWQuaGluZ2Uge1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xufVxuXG4uYW5pbWF0ZWQuZmxpcE91dFgsXG4uYW5pbWF0ZWQuZmxpcE91dFksXG4uYW5pbWF0ZWQuYm91bmNlSW4sXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sIDIwJSwgNTMlLCA4MCUsIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICB9XG5cbiAgNDAlLCA0MyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gIH1cblxuICA3MCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICB9XG59XG5cbi5ib3VuY2Uge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgZnJvbSwgNTAlLCB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGFzaCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnB1bHNlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuXG5Aa2V5ZnJhbWVzIHJ1YmJlckJhbmQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cblxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnJ1YmJlckJhbmQge1xuICBhbmltYXRpb24tbmFtZTogcnViYmVyQmFuZDtcbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIGZyb20sIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG59XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cblxuQGtleWZyYW1lcyBoZWFkU2hha2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNi41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICB9XG5cbiAgMTguNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gIH1cblxuICAzMS41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICB9XG5cbiAgNDMuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uaGVhZFNoYWtlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2U7XG59XG5cbkBrZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuLnN3aW5nIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xufVxuXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDAlLCA2MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnRhZGEge1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgd29iYmxlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ud29iYmxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbn1cblxuQGtleWZyYW1lcyBqZWxsbyB7XG4gIGZyb20sIDExLjElLCB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMjIuMiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgfVxuXG4gIDMzLjMlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICB9XG5cbiAgNDQuNCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICB9XG5cbiAgNTUuNSUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICB9XG5cbiAgNjYuNiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgfVxuXG4gIDc3LjclIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gIH1cblxuICA4OC44JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgfVxufVxuXG4uamVsbG8ge1xuICBhbmltYXRpb24tbmFtZTogamVsbG87XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbiB7XG4gIGZyb20sIDIwJSwgNDAlLCA2MCUsIDgwJSwgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5ib3VuY2VJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5ib3VuY2VJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXQge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duQmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnRCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG4uYW5pbWF0ZWQuZmxpcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG4uZmxpcEluWCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblkge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTtcbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxpcE91dFkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRPdXQge1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAyMCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA0MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbn1cblxuQGtleWZyYW1lcyBqYWNrSW5UaGVCb3gge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4xKSByb3RhdGUoMzBkZWcpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4uamFja0luVGhlQm94IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGphY2tJblRoZUJveDtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucm9sbEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuLnJvbGxPdXQge1xuICBhbmltYXRpb24tbmFtZTogcm9sbE91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uem9vbUluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21Jbjtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXA7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnpvb21PdXQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tT3V0VXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xufVxuIiwiLyogRm9vdGVyICovXG4uZm9vdGVyXG5cdGRpc3BsYXkgYmxvY2tcblxuLmZvb3Rlci1pbm5lclxuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHRtYXJnaW4tdG9wIDI1MHB4XG5cdHRleHQtYWxpZ24gY2VudGVyXG5cdGJhY2tncm91bmQtY29sb3IgI2MwZTRmNlxuXG4vKiDQktC10YDRhdC90LjQuSDRgtC10LrRgdGCICovXG4uZm9vdGVyLWlubmVyX190ZXh0LXRvcFxuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHR6LWluZGV4IDEwXG5cdGZvbnQtc2l6ZSAzNHB4XG5cdGxpbmUtaGVpZ2h0IDQwcHhcblx0Y29sb3IgJGdyZXlDb2xvclxuLyogL9CS0LXRgNGF0L3QuNC5INGC0LXQutGB0YIgKi9cblxuLyog0JHQu9C+0Log0YEg0LjQt9C+0LHRgNCw0LbQtdC90LjRj9C80LggKi9cbi5mb290ZXItaW5uZXJfX2ltYWdlc1xuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHR6LWluZGV4IDEwXG5cdG1hcmdpbiBhdXRvXG5cdG1hcmdpbi10b3AgNDBweFxuXHRwYWRkaW5nIDAgMTcwcHhcblx0ZGlzcGxheSBmbGV4XG5cdGZsZXgtZGlyZWN0aW9uIHJvd1xuXHRtYXgtd2lkdGggMTM1MHB4XG5cdGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG5cdGJhY2tncm91bmQtY29sb3IgIzI3ODBiYlxuXHRib3JkZXItcmFkaXVzIDUwMHB4XG5cbi5mb290ZXItaW5uZXJfX2ltYWdlcy1pdGVtXG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdG1hcmdpbiAzNXB4IDBcblx0YWxpZ24taXRlbXMgY2VudGVyXG5cbi5mb290ZXItaW5uZXJfX2ltYWdlLWl0ZW0taW1hZ2Vcblx0bWFyZ2luLWJvdHRvbSA1MHB4XG5cdGRpc3BsYXkgZmxleFxuXHRmbGV4LWRpcmVjdGlvbiBjb2x1bW5cblx0anVzdGlmeS1jb250ZW50IGNlbnRlclxuXHRoZWlnaHQgNzMlXG5cbi5mb290ZXItaW5uZXJfX2ltYWdlcy1pdGVtLXR4dFxuXHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHRsZWZ0IDUwJVxuXHRib3R0b20gMFxuXHR3aWR0aCA0MDBweFxuXHR0cmFuc2Zvcm0gdHJhbnNsYXRlWCgtNTAlKVxuXHRmb250LXNpemUgMzBweFxuXHRjb2xvciAjZmZmXG5cbi8qIC/QkdC70L7QuiDRgSDQuNC30L7QsdGA0LDQttC10L3QuNGP0LzQuCAqL1xuXG4vKiDQndC40LbQvdC40Lkg0YLQtdC60YHRgiAqL1xuLmZvb3Rlci1pbm5lcl9fdGV4dC1ib3R0b21cblx0cGFkZGluZyA1NnB4IDBcblx0Zm9udC1zaXplIDM0cHhcblx0bGluZS1oZWlnaHQgNDBweFxuXHRjb2xvciAkZ3JlZW5Db2xvclxuLyogL9Cd0LjQttC90LjQuSDRgtC10LrRgdGCICovXG5cbi8qINCf0YDQuNC80LXRh9Cw0L3QuNC1ICovXG4uZm9vdGVyLW5vdGVcblx0cGFkZGluZyAzNHB4IDBcblx0Zm9udC1zaXplIDMwcHhcblx0dGV4dC1hbGlnbiBjZW50ZXJcblx0Y29sb3IgJGdyZXlDb2xvclxuXG4vKiAv0J/RgNC40LzQtdGH0LDQvdC40LUgKi9cblxuLyog0KHQutCw0YfQsNGC0Ywg0LzQsNC60LXRgtGLICovXG4uZm9vdGVyLWRvd25sb2FkXG5cdHBhZGRpbmcgMjVweCAxMHB4XG5cblx0YmFja2dyb3VuZC1jb2xvciAjZDVlZGY5XG5cbi8qINCa0L3QvtC/0LrQsCDQodC60LDRh9Cw0YLRjCDQvNCw0LrQtdGC0YsgKi9cbi5mb290ZXItZG93bmxvYWRfX2J0blxuXHRtYXJnaW4gYXV0b1xuXHRiYWNrZ3JvdW5kLWNvbG9yICMwMDY5YWFcblx0Ym9yZGVyLXJhZGl1cyAxMHB4XG5cdGFsaWduLWl0ZW1zIGNlbnRlclxuXHRwYWRkaW5nIDIwcHggOHB4XG5cdGRpc3BsYXkgZmxleFxuXHRqdXN0aWZ5LWNvbnRlbnQgY2VudGVyXG5cdHdpZHRoIDEwMCVcblx0bWF4LXdpZHRoIDM2N3B4XG5cdGhlaWdodCA2MHB4XG5cbmEuZm9vdGVyLWRvd25sb2FkX19idG5cblx0dGV4dC1kZWNvcmF0aW9uIG5vbmVcblx0Y29sb3IgI2ZmZlxuXHR0cmFuc2l0aW9uIC4ycyBlYXNlXG5cbmEuZm9vdGVyLWRvd25sb2FkX19idG46aG92ZXJcblx0Ym94LXNoYWRvdyAwIDAgN3B4IDAgZ3JleVxuXG4uZm9vdGVyLWRvd25sb2FkX19idG4tdHh0XG5cdHBhZGRpbmcgMCAyN3B4XG4vKiAv0JrQvdC+0L/QutCwINCh0LrQsNGH0LDRgtGMINC80LDQutC10YLRiyAqL1xuXG4vKiDQmtCw0YLQsNC70L7QsyBGTEFWSUEgKi9cbi5mb290ZXItZG93bmxvYWRfX2J0bi1zbWFsbFxuXHRtYXJnaW4tdG9wIDIwcHhcblx0cGFkZGluZyAwXG5cdG1heC13aWR0aCAxNzBweFxuXHRoZWlnaHQgMzhweFxuXG4vKiAv0JrQsNGC0LDQu9C+0LMgRkxBVklBICovXG5cbi8qIC/QodC60LDRh9Cw0YLRjCDQvNCw0LrQtdGC0YsgKi9cblxuXG4vKiDQkdGN0LrQs9GA0LDRg9C90LQg0LrRgNGD0LPQu9GL0LkgKi9cbi5oZWFkZXJfX2JnLmZvb3Rlcl9fYmdcblx0cG9zaXRpb24gYWJzb2x1dGVcblx0ei1pbmRleCA1XG5cdHRvcCAtNzBweFxuXHR3aWR0aCAxMDAlXG5cdHRyYW5zZm9ybSByb3RhdGUoMTgwZGVnKVxuXHRiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zcGFyZW50XG5cblxuLyog0JDQtNCw0L/RgtCw0YbQuNGPICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDEyMDBweClcblx0LmZvb3Rlci1pbm5lcl9faW1hZ2VzLWl0ZW0tdHh0XG5cdFx0Zm9udC1zaXplIDI0cHhcblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aCAxMDYwcHgpXG5cdC5mb290ZXItaW5uZXJfX2ltYWdlcy1pdGVtLXR4dFxuXHRcdGxlZnQgaW5oZXJpdFxuXHRcdHdpZHRoIGluaGVyaXRcblx0XHR0cmFuc2Zvcm0gaW5oZXJpdFxuXHQuZm9vdGVyLWlubmVyX190ZXh0LXRvcFxuXHRcdHBhZGRpbmctdG9wIDMwcHhcblx0LmZvb3Rlci1pbm5lcl9faW1hZ2VzXG5cdFx0anVzdGlmeS1jb250ZW50IHNwYWNlLWFyb3VuZFxuXHRcdGZsZXgtd3JhcCB3cmFwXG5cdFx0bWFyZ2luIDUwcHggMTBweCAwXG5cdFx0cGFkZGluZyAwIDEwMHB4XG5cdC5mb290ZXItaW5uZXJfX2ltYWdlLWl0ZW0taW1hZ2Vcblx0XHRtYXJnaW4tYm90dG9tIDcwcHhcblxuLyogL9CQ0LTQsNC/0YLQsNGG0LjRjyAqL1xuXG4vKiAvRm9vdGVyICovXG4iLCIvKiBIZWFkZXIgKi9cbi5oZWFkZXJcblx0cG9zaXRpb24gcmVsYXRpdmVcblx0bWFyZ2luLWJvdHRvbSAxMDBweFxuXHRkaXNwbGF5IGJsb2NrXG5cdHRleHQtYWxpZ24gY2VudGVyXG5cblx0LyogSGVhZGVyIFRvcCAqL1xuLmhlYWRlcl9fdG9wXG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdHotaW5kZXggMzBcblx0ZGlzcGxheSBpbmxpbmUtYmxvY2tcblx0d2lkdGggMTAwJVxuXHRiYWNrZ3JvdW5kLWNvbG9yICNmZmZcblxuLmhlYWRlcl9fdG9wLWJnXG5cdGJvdHRvbSAwXG5cdHRleHQtYWxpZ24gY2VudGVyXG5cdGJhY2tncm91bmQtY29sb3IgI2ZmZlxuXG5cbi5oZWFkZXJfX3RpdGxlXG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdHotaW5kZXggMjBcblx0bWFyZ2luIGF1dG9cblx0cGFkZGluZyAzOHB4IDEwcHhcblx0Zm9udC1mYW1pbHkgJ09wZW4gU2FucycsIHNhbnMtc2VyaWZcblx0Zm9udC1zaXplIDMzcHhcblx0Y29sb3IgIzYzNjM2M1xuXG4uaGVhZGVyX19sb2dvLWltZ1xuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHR6LWluZGV4IDIwXG5cdC8qIEhlYWRlciBUb3AgKi9cblxuXHQvKiBIZWFkZXIgQm90dG9tICovXG4uaGVhZGVyX19ib3R0b21cblx0cG9zaXRpb24gcmVsYXRpdmVcblx0ei1pbmRleCAyMFxuXHR0ZXh0LWFsaWduIGNlbnRlclxuXHRiYWNrZ3JvdW5kLWNvbG9yICNjMGU0ZjdcblxuLmhlYWRlcl9fYm90dG9tLXRpdGxlXG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdG1hcmdpbi10b3AgMTAwcHhcblx0bWFyZ2luLWJvdHRvbSA3MHB4XG5cdHBhZGRpbmcgMjVweCA3MHB4IDE4cHhcblx0ZGlzcGxheSBpbmxpbmUtYmxvY2tcblx0Zm9udC1zaXplIDUwcHhcblx0Zm9udC13ZWlnaHQgNzAwXG5cdGxpbmUtaGVpZ2h0IDUzcHhcblx0Y29sb3IgI2ZmZlxuXHRiYWNrZ3JvdW5kLWNvbG9yICM2MWE2ZDFcblx0Ym9yZGVyLXJhZGl1cyAyMDBweFxuXHR0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcblxuLmhlYWRlcl9fYm90dG9tLXRpdGxlLXJvdW5kLW51bWJlclxuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHRwYWRkaW5nIDMwcHggMzZweCAzMHB4IDMwcHhcblx0ZGlzcGxheSBpbmxpbmUtYmxvY2tcblx0Zm9udC1zaXplIDYwcHhcblxuLmhlYWRlcl9fYm90dG9tLXRpdGxlLXJvdW5kLW51bWJlcjphZnRlclxuXHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHR0b3AgNTAlXG5cdGxlZnQgNTIlXG5cdHdpZHRoIDkwcHhcblx0aGVpZ2h0IDkwcHhcblx0Y29udGVudCAnJ1xuXHR0cmFuc2Zvcm0gdHJhbnNsYXRlKC01MCUsIC01MCUpXG5cdGJvcmRlciAzcHggc29saWQgI2ZmZlxuXHRib3JkZXItcmFkaXVzIDUwJVxuXG4vKiDQmtC+0LvQvtC90LrQuCAqL1xuLmNvbHNcblx0cG9zaXRpb24gcmVsYXRpdmVcblx0Ly8gei1pbmRleCAyMFxuXHRtYXJnaW4gYXV0b1xuXHRkaXNwbGF5IGZsZXhcblx0anVzdGlmeS1jb250ZW50IHNwYWNlLWFyb3VuZFxuXHRtYXgtd2lkdGggMTUwMHB4XG5cbi5jb2wtbGVmdC5jb2xfX2hlYWRlcixcbi5jb2wtcmlnaHQuY29sX19oZWFkZXJcblx0anVzdGlmeS1jb250ZW50IGZsZXgtc3RhcnRcbi8vIC5jb2xzX19oZWFkZXJcbi8vIFx0bWFyZ2luLWJvdHRvbSA2MHB4XG5cbi5jb2xfX2RvdHRlZFxuXHR3aWR0aCA3cHhcblx0aGVpZ2h0IDk4JVxuXHRiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vLi4vaW1hZ2VzL3NpbmdsZS1kb3QucG5nJylcblx0YmFja2dyb3VuZC1wb3NpdGlvbiBjZW50ZXJcblxuLmNvbC1sZWZ0LFxuLmNvbC1yaWdodFxuXHRkaXNwbGF5IGZsZXhcblx0ZmxleC1iYXNpcyA1MCVcblx0ZmxleC1kaXJlY3Rpb24gY29sdW1uXG5cdGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG5cbi5jb2xfX2hlYWRlci10ZXh0XG5cdG1hcmdpbi10b3AgNDBweFxuXHRmb250LXNpemUgMzRweFxuXHRmb250LXdlaWdodCA2MDBcblx0bGluZS1oZWlnaHQgNTZweFxuXHRjb2xvciAjMDE2N2FjXG5cdHRleHQtdHJhbnNmb3JtIHVwcGVyY2FzZVxuXHRzdHJvbmdcblx0XHRmb250LXdlaWdodCA4MDBcblxuLyogL9Ca0L7Qu9C+0L3QutC4ICovXG5cblx0LyogL0hlYWRlciBCb3R0b20gKi9cblxuLyog0KTQvtC9ICovXG4uaGVhZGVyX190b3AtYmctY29udGFpbmVyXG5cdHBvc2l0aW9uIGFic29sdXRlXG5cdGxlZnQgMFxuXHRib3R0b20gLTQwcHhcblx0b3ZlcmZsb3cgaGlkZGVuXG5cdHdpZHRoIDEwMCVcblx0aGVpZ2h0IDEwMHB4XG5cbi5oZWFkZXJfX2JnXG5cdHBvc2l0aW9uIGFic29sdXRlXG5cdHotaW5kZXggMTBcblx0Ym90dG9tIC05MHB4XG5cdG92ZXJmbG93IGhpZGRlblxuXHR3aWR0aCAxMDAlXG5cdGhlaWdodCAyMDBweFxuXHRiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zcGFyZW50XG5cbi5oZWFkZXJfX2JnLXJvdW5kXG5cdHotaW5kZXggMTBcblx0Ym90dG9tIDUwcHhcblx0YmFja2dyb3VuZC1jb2xvciAjYzBlNGY3XG5cbi5oZWFkZXJfX2JnLXJvdW5kLWxpdGVcblx0ei1pbmRleCA1XG5cdGJvdHRvbSAwXG5cdGJhY2tncm91bmQtY29sb3IgI2Q1ZWRmOVxuLyogL9Ck0L7QvSAqL1xuXG4vKiDQkNC00LDQv9GC0LDRhtC40Y8gKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGggNzgwcHgpXG5cdC5mb290ZXItaW5uZXJfX2ltYWdlcy1pdGVtXG5cdFx0d2lkdGggNTAlXG5cdC5mb290ZXItaW5uZXJfX2ltYWdlLWl0ZW0taW1hZ2Vcblx0XHRhbGlnbi1pdGVtcyBjZW50ZXJcblx0LmZvb3Rlci1pbm5lcl9faW1hZ2VzLWl0ZW0tdHh0XG5cdFx0d2lkdGggMTAwJVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDc4MHB4KVxuXHQuY29sX19oZWFkZXItaW1nLXBpY3R1cmVcblx0XHR3aWR0aCA4MCVcblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aCA3MjBweClcblx0LmNvbF9faGVhZGVyLXRleHRcblx0XHRmb250LXNpemUgMjVweFxuXHRcdGxpbmUtaGVpZ2h0IDM1cHhcblx0LmNvbC1sZWZ0LCAuY29sLXJpZ2h0XG5cdFx0YWxpZ24taXRlbXMgY2VudGVyXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGggNjAwcHgpXG5cdC5mb290ZXJfX2xvamthXG5cdFx0d2lkdGggMzN2d1xuXHQuZm9vdGVyX190YXJlbGthXG5cdFx0d2lkdGggMjJ2d1xuXHQuZm9vdGVyX19nbGFzc1xuXHRcdHdpZHRoIDEzdndcblx0LmZvb3Rlcl9fY3VwXG5cdFx0d2lkdGggMjN2d1xuXHQuZm9vdGVyLWlubmVyX19pbWFnZXNcblx0XHRwYWRkaW5nIDIwcHggMTR2d1xuXHQuZm9vdGVyLWlubmVyX19pbWFnZXMtaXRlbS10eHRcblx0XHRmb250LXNpemUgNHZ3XG5cdC5mb290ZXItaW5uZXJfX2ltYWdlcy1pdGVtXG5cdFx0bWFyZ2luIDEycHggMFxuXHQuZm9vdGVyLWlubmVyX19pbWFnZS1pdGVtLWltYWdlXG5cdFx0bWFyZ2luLWJvdHRvbSAxMXZ3XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGggNTEwcHgpXG5cdC5oZWFkZXJfX2JvdHRvbS10aXRsZVxuXHRcdGZvbnQtc2l6ZSA0MHB4XG5cdFx0bGluZS1oZWlnaHQgNTBweFxuXHQuaGVhZGVyX19ib3R0b20tdGl0bGUtcm91bmQtbnVtYmVyXG5cdFx0cGFkZGluZyAzNXB4XG5cdC5jb2xfX2hlYWRlci10ZXh0XG5cdFx0Zm9udC1zaXplIDR2d1xuXHRcdGxpbmUtaGVpZ2h0IDUuNXZ3XG4vKiAv0JDQtNCw0L/RgtCw0YbQuNGPICovXG5cbi8qIC9IZWFkZXIgKi9cbiIsIi8qINCa0L7QvdGC0LXQvdGCICovXG4uY29udGVudF9faXRlbVxuXHRtYXJnaW4gYXV0b1xuXHRkaXNwbGF5IGJsb2NrXG5cdGZvbnQtc2l6ZSAxNXB4XG5cdHRleHQtYWxpZ24ganVzdGlmeVxuXG4uY29udGVudF9faXRlbTphZnRlclxuXHRkaXNwbGF5IGlubGluZS1ibG9ja1xuXHR3aWR0aCAxMDAlXG5cdGNvbnRlbnQgJydcblxuXG5cdC8qINCg0LDQt9C00LXQu9C40YLQtdC70YwgKi9cbi5jb250ZW50X19zZXBhcmF0b3Jcblx0bWFyZ2luIDIwcHggMFxuXHRoZWlnaHQgNjBweFxuXHR0ZXh0LWFsaWduIGNlbnRlclxuXG4uY29sX19kb3R0ZWQtc2VwYXJhdG9yXG5cdGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cdC8qIC/QoNCw0LfQtNC10LvQuNGC0LXQu9GMICovXG5cblxuXG5cbi8qINCm0LXQvdGC0YDQsNC70YzQvdGL0Lkg0LHQu9C+0LogKi9cbi5jb250ZW50X19pdGVtLWNlbnRlclxuXHRkaXNwbGF5IGlubGluZS1ibG9ja1xuXHRtYXgtd2lkdGggNjAlXG5cdHRleHQtYWxpZ24gY2VudGVyXG5cbi5jb250ZW50X19pdGVtLWNlbnRlci1jZW50XG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdG1hcmdpbiAwIC00cHhcblx0ZGlzcGxheSBpbmxpbmUtYmxvY2tcblx0d2lkdGggNjAlXG5cdHRleHQtYWxpZ24gY2VudGVyXG5cdHZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXG4uY29udGVudF9faXRlbS1jZW50ZXItY2VudC1pbWdcblx0d2lkdGggMTAwJVxuXG4uY29udGVudF9faXRlbS1jZW50ZXItY2VudC10eHRcblx0cG9zaXRpb24gYWJzb2x1dGVcblx0dG9wIDQ1JVxuXHR3aWR0aCAxMDAlXG5cdGhlaWdodCA1MCVcblxuLmNvbnRlbnRfX2l0ZW0tY2VudGVyLXNwYW5cblx0cG9zaXRpb24gYWJzb2x1dGVcblx0dG9wIDUwJVxuXHRsZWZ0IDBcblx0cGFkZGluZyAwIDgwcHhcblx0Zm9udC1zaXplIDJlbVxuXHR0ZXh0LWFsaWduIGNlbnRlclxuXHRjb2xvciAjZmZmXG5cdHRyYW5zZm9ybSB0cmFuc2xhdGVZKC01MCUpXG5cbi5jb250ZW50X19pdGVtLWNlbnRlci1sZWZ0LFxuLmNvbnRlbnRfX2l0ZW0tY2VudGVyLXJpZ2h0XG5cdGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cdHdpZHRoIDIwJVxuXHR2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuLmNvbnRlbnRfX2l0ZW0tY2VudGVyLWxlZnQtaW1nLFxuLmNvbnRlbnRfX2l0ZW0tY2VudGVyLXJpZ2h0LWltZ1xuXHR3aWR0aCAxMDAlXG5cbi5jb250ZW50X19pdGVtLWNlbnRlci1sZWZ0XG5cdG1hcmdpbiAtMXB4XG5cbi8qIC/QptC10L3RgtGA0LDQu9GM0L3Ri9C5INCx0LvQvtC6ICovXG5cbi8qINCR0L7QutC+0LLQvtC5INCx0LvQvtC6ICovXG4uY29udGVudF9faXRlbS1zaWRlXG5cdG1hcmdpbi10b3AgLTY1cHhcblx0ZGlzcGxheSBpbmxpbmUtYmxvY2tcblx0d2lkdGggMTAwJVxuXHRtYXgtd2lkdGggMTglXG5cdHRleHQtYWxpZ24gY2VudGVyXG5cdHZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXG4uY29udGVudF9faXRlbS1zaWRlLWltZ1xuXHR3aWR0aCA5LjRlbVxuXG4uY29udGVudF9faXRlbS1zaWRlLXRleHRcblx0cG9zaXRpb24gYWJzb2x1dGVcblx0bGVmdCA1MCVcblx0d2lkdGggMTAwJVxuXHR0ZXh0LWFsaWduIGNlbnRlclxuXHR0cmFuc2Zvcm0gdHJhbnNsYXRlWCgtNTAlKVxuXG4uY29udGVudF9faXRlbS1zaWRlLXRleHQtdGl0bGVcblx0bWFyZ2luLXRvcCAyMnB4XG5cdG1hcmdpbi1ib3R0b20gNHB4XG5cdGZvbnQtc2l6ZSAzZW1cblx0Zm9udC13ZWlnaHQgNjAwXG5cbi5jZWxzaXVtXG5cdC5jb250ZW50X19pdGVtLXNpZGUtdGV4dFxuXHRcdGRpc3BsYXkgZmxleFxuXHRcdGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuXHRcdGFsaWduLWl0ZW1zIGNlbnRlclxuXHQuY29udGVudF9faXRlbS1zaWRlLXRleHQtdGl0bGUtcmVkXG5cdFx0d2lkdGggMjR2d1xuXG4uY29udGVudF9faXRlbS1zaWRlLXRleHQtdHh0XG5cdG1hcmdpbi1ib3R0b20gM3B4XG5cdGZvbnQtc2l6ZSAyZW1cblx0Zm9udC13ZWlnaHQgNjAwXG5cdGNvbG9yICRncmV5Q29sb3JcblxuLmNvbnRlbnRfX2l0ZW0tc2lkZS10ZXh0LW5vdGVcblx0Zm9udC1zaXplIDEuNmVtXG5cdGNvbG9yICRncmV5Q29sb3JcblxuLyog0KHQu9C10LLQsCAqL1xuLmNvbnRlbnRfX2l0ZW0tc2lkZS10ZXh0LXRpdGxlLXJlZFxuXHRjb2xvciAkcmVkQ29sb3Jcbi8qIC/QodC70LXQstCwICovXG5cbi8qINCh0L/RgNCw0LLQsCAqL1xuLmNvbnRlbnRfX2l0ZW0tc2lkZS10ZXh0LXRpdGxlLWdyZWVuXG5cdGNvbG9yICRncmVlbkNvbG9yXG4vKiAv0KHQv9GA0LDQstCwICovXG5cbi8qIC/QkdC+0LrQvtCy0L7QuSDQsdC70L7QuiAqL1xuXG4vKiDQn9GD0LfRi9GA0Lgg0J/QsNGA0LDQu9C70LDQutGBICovXG4ucGFyYWxsYXgtY29udGFpbmVyXG5cdHBvc2l0aW9uIGFic29sdXRlXG5cdHotaW5kZXggLTFcblx0dG9wIDBcblx0cmlnaHQgMFxuXHRsZWZ0IDBcblx0Ym90dG9tIDBcblx0b3ZlcmZsb3cgaGlkZGVuXG5cdHdpZHRoIDEwMCVcblx0aGVpZ2h0IDEwMCVcblxuLmJhbGxcblx0cG9zaXRpb24gYWJzb2x1dGVcblx0ei1pbmRleCAtMVxuXHRiYWNrZ3JvdW5kLXJlcGVhdCBuby1yZXBlYXRcblx0YmFja2dyb3VuZC1wb3NpdGlvbiBib3R0b20gY2VudGVyXG5cdGJhY2tncm91bmQtc2l6ZSBhdXRvXG4uYmFsbDBcblx0cmlnaHQgLTUwMHB4XG5cdGJvdHRvbSAtOTUwcHhcblx0d2lkdGggMTkyMHB4XG5cdGhlaWdodCAxOTIwcHhcblx0YmFja2dyb3VuZC1pbWFnZSB1cmwoJy4uLy4uL2ltYWdlcy9iYWxsMC5wbmcnKVxuLmJhbGwxXG5cdHJpZ2h0IC01MDBweFxuXHRib3R0b20gMTAwMHB4XG5cdHdpZHRoIDE4MjJweFxuXHRoZWlnaHQgMTgyMnB4XG5cdGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi8uLi9pbWFnZXMvYmFsbDEucG5nJylcbi5iYWxsMlxuXHRyaWdodCAtODAwcHhcblx0Ym90dG9tIDIwMDBweFxuXHR3aWR0aCAxNzE4cHhcblx0aGVpZ2h0IDE3MThweFxuXHRiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vLi4vaW1hZ2VzL2JhbGwyLnBuZycpXG4uYmFsbDNcblx0bGVmdCAtNjAwcHhcblx0Ym90dG9tIDMwMDBweFxuXHR3aWR0aCAxNTIzcHhcblx0aGVpZ2h0IDE1MjNweFxuXHRiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vLi4vaW1hZ2VzL2JhbGwzLnBuZycpXG4uYmFsbDRcblx0cmlnaHQgLTIwMHB4XG5cdGJvdHRvbSA0MDAwcHhcblx0d2lkdGggMTI4M3B4XG5cdGhlaWdodCAxMjgzcHhcblx0YmFja2dyb3VuZC1pbWFnZSB1cmwoJy4uLy4uL2ltYWdlcy9iYWxsNC5wbmcnKVxuLmJhbGw1XG5cdGxlZnQgLTUwMHB4XG5cdGJvdHRvbSAtMTAwMHB4XG5cdHdpZHRoIDExOTZweFxuXHRoZWlnaHQgMTE5NnB4XG5cdGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi8uLi9pbWFnZXMvYmFsbDUucG5nJylcbi5iYWxsNlxuXHRyaWdodCA4MDBweFxuXHRib3R0b20gMzUwMHB4XG5cdHdpZHRoIDExMzZweFxuXHRoZWlnaHQgMTEzNnB4XG5cdGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi8uLi9pbWFnZXMvYmFsbDYucG5nJylcbi5iYWxsN1xuXHRyaWdodCAtMjAwcHhcblx0Ym90dG9tIDI1MDBweFxuXHR3aWR0aCAxMDExcHhcblx0aGVpZ2h0IDEwMTFweFxuXHRiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vLi4vaW1hZ2VzL2JhbGw3LnBuZycpXG4uYmFsbDhcblx0cmlnaHQgLTEwMHB4XG5cdGJvdHRvbSAxNTAwcHhcblx0d2lkdGggNjg2cHhcblx0aGVpZ2h0IDY4NnB4XG5cdGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi8uLi9pbWFnZXMvYmFsbDgucG5nJylcbi5iYWxsOVxuXHRsZWZ0IDUwcHhcblx0Ym90dG9tIDEwMDBweFxuXHR3aWR0aCA3MzlweFxuXHRoZWlnaHQgNzM5cHhcblx0YmFja2dyb3VuZC1pbWFnZSB1cmwoJy4uLy4uL2ltYWdlcy9iYWxsOS5wbmcnKVxuLmJhbGwxMFxuXHRyaWdodCAyMDBweFxuXHRib3R0b20gMjAwMHB4XG5cdHdpZHRoIDQxN3B4XG5cdGhlaWdodCA0MTdweFxuXHRiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vLi4vaW1hZ2VzL2JhbGwxMC5wbmcnKVxuLmJhbGwxMVxuXHRsZWZ0IDQwMHB4XG5cdGJvdHRvbSAxNTAwcHhcblx0d2lkdGggMjgycHhcblx0aGVpZ2h0IDI4MnB4XG5cdGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi8uLi9pbWFnZXMvYmFsbDExLnBuZycpXG5cbi8qIC/Qn9GD0LfRi9GA0Lgg0J/QsNGA0LDQu9C70LDQutGBICovXG5cbi8qINCf0LvQsNCy0L3QvtC1INC/0L7Rj9Cy0LvQtdC90LjQtSDQsdC70L7QutC+0LIgKi9cbi5oaWRkZW5cblx0b3BhY2l0eSAxXG5cbi52aXNpYmxlXG5cdG9wYWNpdHkgMFxuLyogL9Cf0LvQsNCy0L3QvtC1INC/0L7Rj9Cy0LvQtdC90LjQtSDQsdC70L7QutC+0LIgKi9cblxuLyog0JDQtNCw0L/RgtCw0YbQuNGPICovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGggMTUwMHB4KVxuXHQuY29udGVudF9faXRlbS1zaWRlLXRleHQtdHh0XG5cdFx0Zm9udC1zaXplIDJ2d1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDEwNTBweClcblx0LmNvbnRlbnRfX2l0ZW1cblx0XHRmb250LXNpemUgMS4ydndcblx0LmNvbnRlbnRfX2l0ZW0tY2VudGVyLXNwYW5cblx0XHRwYWRkaW5nIDAgN3Z3XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDczMHB4KVxuXHQuaGVhZGVyX19sb2dvLWltZ1xuXHRcdHdpZHRoIDYwJVxuXHQuaGVhZGVyX190aXRsZVxuXHRcdGZvbnQtc2l6ZSAyNHB4XG5cdFx0bGluZS1oZWlnaHQgMzBweFxuXHQuaGVhZGVyX19ib3R0b20tdGl0bGVcblx0XHRwYWRkaW5nIDMzcHggNDBweFxuXHRcdGZvbnQtc2l6ZSAyMnB4XG5cdFx0bGluZS1oZWlnaHQgMzNweFxuXG5cdC5mb290ZXItaW5uZXJfX3RleHQtdG9wLFxuXHQuZm9vdGVyLWlubmVyX190ZXh0LWJvdHRvbSxcblx0LmZvb3Rlci1ub3RlXG5cdFx0Zm9udC1zaXplIDIycHhcblx0XHRsaW5lLWhlaWdodCAzMHB4XG5cblx0LmZvb3Rlci1pbm5lclxuXHRcdG1hcmdpbi10b3AgMTUwcHhcblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzUwcHgpXG5cdC5mb290ZXItZG93bmxvYWRfX2J0bi10eHRcblx0XHRwYWRkaW5nIDAgMTBweFxuLyogL9CQ0LTQsNC/0YLQsNGG0LjRjyAqL1xuXG4vKiAv0JrQvtC90YLQtdC90YIgKi9cbiJdfQ== */
