.puffIn {
  -webkit-animation-name: puffIn;
  -o-animation-name: puffIn;
  animation-name: puffIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes puffIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

@-o-keyframes puffIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); } }

@keyframes puffIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

.puffOut {
  -webkit-animation-name: puffOut;
  -o-animation-name: puffOut;
  animation-name: puffOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes puffOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); } }

@-o-keyframes puffOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(2px); } }

@keyframes puffOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); } }

.vanishIn {
  -webkit-animation-name: vanishIn;
  -o-animation-name: vanishIn;
  animation-name: vanishIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes vanishIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(90px);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

@-o-keyframes vanishIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); } }

@keyframes vanishIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(90px);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

.vanishOut {
  -webkit-animation-name: vanishOut;
  -o-animation-name: vanishOut;
  animation-name: vanishOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes vanishOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(20px);
    filter: blur(20px); } }

@-o-keyframes vanishOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(20px); } }

@keyframes vanishOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(20px);
    filter: blur(20px); } }

.boingInUp {
  -webkit-animation-name: boingInUp;
  -o-animation-name: boingInUp;
  animation-name: boingInUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.boingOutDown {
  -webkit-animation-name: boingOutDown;
  -o-animation-name: boingOutDown;
  animation-name: boingOutDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

@-o-keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

@keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

svg.dash .path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 0; }
  svg.dash .path.circle {
    -webkit-animation-name: dash;
    -o-animation-name: dash;
    animation-name: dash;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  svg.dash .path.line {
    stroke-dashoffset: 1000;
    -webkit-animation-name: dash;
    -o-animation-name: dash;
    animation-name: dash;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-delay: 0.35s;
    -o-animation-delay: 0.35s;
    animation-delay: 0.35s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }
  svg.dash .path.check {
    stroke-dashoffset: -100;
    -webkit-animation-name: dash-check;
    -o-animation-name: dash-check;
    animation-name: dash-check;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-delay: 0.35s;
    -o-animation-delay: 0.35s;
    animation-delay: 0.35s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }

@-webkit-keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@-o-keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@-webkit-keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

@-o-keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

@keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

.swashIn {
  -webkit-animation-name: swashIn;
  -o-animation-name: swashIn;
  animation-name: swashIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes swashIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1); } }

@-o-keyframes swashIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1); } }

@keyframes swashIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    -o-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1); } }

.swashOut {
  -webkit-animation-name: swashOut;
  -o-animation-name: swashOut;
  animation-name: swashOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes swashOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    transform: scale(0, 0); } }

@-o-keyframes swashOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0, 0);
    transform: scale(0, 0); } }

@keyframes swashOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    -o-transform: scale(0, 0);
    transform: scale(0, 0); } }

.perspectiveDown {
  -webkit-animation-name: perspectiveDown;
  -o-animation-name: perspectiveDown;
  animation-name: perspectiveDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveDown {
  0% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); } }

@-o-keyframes perspectiveDown {
  0% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(-180deg); } }

@keyframes perspectiveDown {
  0% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); } }

.perspectiveDownReturn {
  -webkit-animation-name: perspectiveDownReturn;
  -o-animation-name: perspectiveDownReturn;
  animation-name: perspectiveDownReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveDownReturn {
  0% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes perspectiveDownReturn {
  0% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(0deg); } }

@keyframes perspectiveDownReturn {
  0% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.perspectiveLeft {
  -webkit-animation-name: perspectiveLeft;
  -o-animation-name: perspectiveLeft;
  animation-name: perspectiveLeft;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveLeft {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); } }

@-o-keyframes perspectiveLeft {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(-180deg); } }

@keyframes perspectiveLeft {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); } }

.perspectiveLeftReturn {
  -webkit-animation-name: perspectiveLeftReturn;
  -o-animation-name: perspectiveLeftReturn;
  animation-name: perspectiveLeftReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveLeftReturn {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

@-o-keyframes perspectiveLeftReturn {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(0deg); } }

@keyframes perspectiveLeftReturn {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

.perspectiveRight {
  -webkit-animation-name: perspectiveRight;
  -o-animation-name: perspectiveRight;
  animation-name: perspectiveRight;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveRight {
  0% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); } }

@-o-keyframes perspectiveRight {
  0% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(180deg); } }

@keyframes perspectiveRight {
  0% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); } }

.perspectiveRightReturn {
  -webkit-animation-name: perspectiveRightReturn;
  -o-animation-name: perspectiveRightReturn;
  animation-name: perspectiveRightReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveRightReturn {
  0% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

@-o-keyframes perspectiveRightReturn {
  0% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(0deg); } }

@keyframes perspectiveRightReturn {
  0% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

.perspectiveUp {
  -webkit-animation-name: perspectiveUp;
  -o-animation-name: perspectiveUp;
  animation-name: perspectiveUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveUp {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); } }

@-o-keyframes perspectiveUp {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(180deg); } }

@keyframes perspectiveUp {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); } }

.perspectiveUpReturn {
  -webkit-animation-name: perspectiveUpReturn;
  -o-animation-name: perspectiveUpReturn;
  animation-name: perspectiveUpReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveUpReturn {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes perspectiveUpReturn {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(0deg); } }

@keyframes perspectiveUpReturn {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.effect-slideDown {
  -webkit-animation-name: slideDown;
  -o-animation-name: slideDown;
  animation-name: slideDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes slideDown {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(200%);
    transform: translateY(200%); } }

@-o-keyframes slideDown {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(200%);
    transform: translateY(200%); } }

@keyframes slideDown {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0%);
    -o-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(200%);
    -o-transform: translateY(200%);
    transform: translateY(200%); } }

.effect-slideUp {
  -webkit-animation-name: slideUp;
  -o-animation-name: slideUp;
  animation-name: slideUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes slideUp {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@-o-keyframes slideUp {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(0);
    transform: translateY(0); } }

@keyframes slideUp {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(100%);
    -o-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

.WordOrderJS,
.WordInsertJS {
  margin-top: 1rem;
  overflow-y: auto;
  overflow-x: hidden; }
  .WordOrderJS .frame ol,
  .WordInsertJS .frame ol {
    -webkit-padding-start: 2rem;
    -moz-padding-start: 2rem;
    padding-inline-start: 2rem; }
  .WordOrderJS .frame.numbered .label,
  .WordInsertJS .frame.numbered .label {
    padding-left: 2rem; }
  .WordOrderJS .frame .label,
  .WordInsertJS .frame .label {
    margin-bottom: 0.5rem; }
  .WordOrderJS .frame.afterSentence .sentence-list,
  .WordInsertJS .frame.afterSentence .sentence-list {
    margin-bottom: 0.5rem; }
  .WordOrderJS .frame.afterSentence .label,
  .WordInsertJS .frame.afterSentence .label {
    margin-bottom: 1rem; }
  .WordOrderJS .sentence-list,
  .WordInsertJS .sentence-list {
    clear: right; }
  .WordOrderJS .wrap-sentence .sentence,
  .WordInsertJS .wrap-sentence .sentence {
    display: inline;
    line-height: 1.6rem; }
    .WordOrderJS .wrap-sentence .sentence .word, .WordOrderJS .wrap-sentence .sentence .word-placeholder,
    .WordInsertJS .wrap-sentence .sentence .word,
    .WordInsertJS .wrap-sentence .sentence .word-placeholder {
      display: inline-block;
      margin: 0.1rem 0.2rem;
      cursor: pointer; }
      .WordOrderJS .wrap-sentence .sentence .word .word-content, .WordOrderJS .wrap-sentence .sentence .word-placeholder .word-content,
      .WordInsertJS .wrap-sentence .sentence .word .word-content,
      .WordInsertJS .wrap-sentence .sentence .word-placeholder .word-content {
        min-width: 20px;
        border-radius: 2px;
        padding: 0.2rem 0.4rem;
        text-align: center;
        color: white;
        background-color: #40abe3; }
      .WordOrderJS .wrap-sentence .sentence .word.no-sortable .word-content, .WordOrderJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content, .WordOrderJS .wrap-sentence .sentence .word.word-static .word-content, .WordOrderJS .wrap-sentence .sentence .word-static.word-placeholder .word-content,
      .WordInsertJS .wrap-sentence .sentence .word.no-sortable .word-content,
      .WordInsertJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content,
      .WordInsertJS .wrap-sentence .sentence .word.word-static .word-content,
      .WordInsertJS .wrap-sentence .sentence .word-static.word-placeholder .word-content {
        cursor: default;
        background-color: #93a9b4; }
      .WordOrderJS .wrap-sentence .sentence .word .punctuation, .WordOrderJS .wrap-sentence .sentence .word-placeholder .punctuation,
      .WordInsertJS .wrap-sentence .sentence .word .punctuation,
      .WordInsertJS .wrap-sentence .sentence .word-placeholder .punctuation {
        padding: 0;
        margin-left: 0;
        color: inherit;
        background-color: unset;
        cursor: default; }
        .WordOrderJS .wrap-sentence .sentence .word .punctuation .word-content, .WordOrderJS .wrap-sentence .sentence .word-placeholder .punctuation .word-content,
        .WordInsertJS .wrap-sentence .sentence .word .punctuation .word-content,
        .WordInsertJS .wrap-sentence .sentence .word-placeholder .punctuation .word-content {
          padding-left: 0;
          padding-right: 0;
          color: inherit;
          background-color: inherit; }
    .WordOrderJS .wrap-sentence .sentence .word-placeholder .word-content,
    .WordInsertJS .wrap-sentence .sentence .word-placeholder .word-content {
      background-color: #e4eaec;
      cursor: default; }
    .WordOrderJS .wrap-sentence .sentence .punctuation,
    .WordInsertJS .wrap-sentence .sentence .punctuation {
      padding: 0.2rem 0.4rem;
      margin-left: 0.2rem;
      margin-right: 0.2rem; }
      .WordOrderJS .wrap-sentence .sentence .punctuation.ml-0,
      .WordInsertJS .wrap-sentence .sentence .punctuation.ml-0 {
        padding-left: 0; }
      .WordOrderJS .wrap-sentence .sentence .punctuation.mr-0,
      .WordInsertJS .wrap-sentence .sentence .punctuation.mr-0 {
        padding-right: 0; }
  .WordOrderJS .wrap-sentence.is-valid .word:not(.word-static):not(.no-sortable) > .word-content, .WordOrderJS .wrap-sentence.is-valid .sentence .word-placeholder:not(.word-static):not(.no-sortable) > .word-content,
  .WordInsertJS .wrap-sentence.is-valid .word:not(.word-static):not(.no-sortable) > .word-content,
  .WordInsertJS .wrap-sentence.is-valid .sentence .word-placeholder:not(.word-static):not(.no-sortable) > .word-content {
    color: #0000d9;
    background-color: #e3e3ff;
    cursor: default; }
  .WordOrderJS .wrap-sentence.is-invalid .word:not(.word-static):not(.no-sortable) > .word-content, .WordOrderJS .wrap-sentence.is-invalid .sentence .word-placeholder:not(.word-static):not(.no-sortable) > .word-content,
  .WordInsertJS .wrap-sentence.is-invalid .word:not(.word-static):not(.no-sortable) > .word-content,
  .WordInsertJS .wrap-sentence.is-invalid .sentence .word-placeholder:not(.word-static):not(.no-sortable) > .word-content {
    color: #d90000;
    background-color: #ffe3e3; }
  .WordOrderJS .wrap-sentence .wrapper-button,
  .WordInsertJS .wrap-sentence .wrapper-button {
    float: right;
    margin-bottom: 0.5rem; }
    @media (max-width: 575px) {
      .WordOrderJS .wrap-sentence .wrapper-button,
      .WordInsertJS .wrap-sentence .wrapper-button {
        float: unset;
        width: 100%;
        text-align: center;
        margin-top: 0.5rem;
        margin-bottom: unset; } }
  .WordOrderJS .endingCodeDiv,
  .WordInsertJS .endingCodeDiv {
    padding-top: 1rem; }

.EnLevelTest .WordOrderJS .sentence .word, .EnLevelTest .WordOrderJS .wrap-sentence .sentence .word-placeholder, .WordInsertJS .wrap-sentence .EnLevelTest .WordOrderJS .sentence .word-placeholder,
.EnLevelTest .WordInsertJS .sentence .word,
.WordOrderJS .wrap-sentence .EnLevelTest .WordInsertJS .sentence .word-placeholder,
.EnLevelTest .WordInsertJS .wrap-sentence .sentence .word-placeholder,
.popup .WordOrderJS .sentence .word,
.popup .WordOrderJS .wrap-sentence .sentence .word-placeholder,
.WordInsertJS .wrap-sentence .popup .WordOrderJS .sentence .word-placeholder,
.popup .WordInsertJS .sentence .word,
.WordOrderJS .wrap-sentence .popup .WordInsertJS .sentence .word-placeholder,
.popup .WordInsertJS .wrap-sentence .sentence .word-placeholder {
  margin-left: 0.1rem;
  margin-right: 0.1rem; }
  .EnLevelTest .WordOrderJS .sentence .word.no-sortable .word-content, .EnLevelTest .WordOrderJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content, .WordInsertJS .wrap-sentence .EnLevelTest .WordOrderJS .sentence .no-sortable.word-placeholder .word-content, .EnLevelTest .WordOrderJS .sentence .word.word-static .word-content, .EnLevelTest .WordOrderJS .wrap-sentence .sentence .word-static.word-placeholder .word-content, .WordInsertJS .wrap-sentence .EnLevelTest .WordOrderJS .sentence .word-static.word-placeholder .word-content,
  .EnLevelTest .WordInsertJS .sentence .word.no-sortable .word-content,
  .WordOrderJS .wrap-sentence .EnLevelTest .WordInsertJS .sentence .no-sortable.word-placeholder .word-content,
  .EnLevelTest .WordInsertJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content,
  .EnLevelTest .WordInsertJS .sentence .word.word-static .word-content,
  .WordOrderJS .wrap-sentence .EnLevelTest .WordInsertJS .sentence .word-static.word-placeholder .word-content,
  .EnLevelTest .WordInsertJS .wrap-sentence .sentence .word-static.word-placeholder .word-content,
  .popup .WordOrderJS .sentence .word.no-sortable .word-content,
  .popup .WordOrderJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content,
  .WordInsertJS .wrap-sentence .popup .WordOrderJS .sentence .no-sortable.word-placeholder .word-content,
  .popup .WordOrderJS .sentence .word.word-static .word-content,
  .popup .WordOrderJS .wrap-sentence .sentence .word-static.word-placeholder .word-content,
  .WordInsertJS .wrap-sentence .popup .WordOrderJS .sentence .word-static.word-placeholder .word-content,
  .popup .WordInsertJS .sentence .word.no-sortable .word-content,
  .WordOrderJS .wrap-sentence .popup .WordInsertJS .sentence .no-sortable.word-placeholder .word-content,
  .popup .WordInsertJS .wrap-sentence .sentence .no-sortable.word-placeholder .word-content,
  .popup .WordInsertJS .sentence .word.word-static .word-content,
  .WordOrderJS .wrap-sentence .popup .WordInsertJS .sentence .word-static.word-placeholder .word-content,
  .popup .WordInsertJS .wrap-sentence .sentence .word-static.word-placeholder .word-content {
    padding-left: 0;
    padding-right: 0;
    color: inherit;
    background-color: unset; }

.EnLevelTest .yourLevel,
.popup .yourLevel {
  text-align: center;
  margin: 1.5rem 0; }

.EnLevelTest .exercise-controls,
.popup .exercise-controls {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

.chartDiv {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch; }
  .chartDiv .chart-levels {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center; }
    .chartDiv .chart-levels .char-level {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      width: 100%;
      height: 50px;
      -webkit-box-align: center;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: end;
      -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
      justify-content: flex-end;
      -webkit-transform: translateY(50%);
      -o-transform: translateY(50%);
      transform: translateY(50%); }
  .chartDiv .progress {
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    margin-left: 20px;
    background-image: -webkit-linear-gradient(bottom, #c5cae9 1px, 1px, transparent 50%, transparent 100%, #c5cae9 100%);
    background-image: -o-linear-gradient(bottom, #c5cae9 1px, 1px, transparent 50%, transparent 100%, #c5cae9 100%);
    background-image: linear-gradient(0deg, #c5cae9 1px, 1px, transparent 50%, transparent 100%, #c5cae9 100%);
    -webkit-background-size: 100% 50px;
    background-size: 100% 50px; }
    .chartDiv .progress .progress-bar {
      width: 35%;
      min-height: 1%;
      border-bottom: 0;
      margin: 0 auto;
      -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
      align-self: flex-end;
      background-color: #ffcc33; }
      .chartDiv .progress .progress-bar::after {
        height: 1px; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence div.bg {
  position: absolute;
  top: -3px;
  left: -4px;
  border-radius: 3px; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence div.mark {
  top: -1px;
  right: -25px;
  position: absolute; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.clone, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.clone.word-placeholder, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.word-placeholder,
div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.clone.word-placeholder, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.word-placeholder {
  opacity: 0;
  filter: alpha(opacity=0);
  zoom: 1;
  padding: 2px 1px; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.clone.visible, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.clone.visible.word-placeholder, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.word-placeholder,
div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.clone.visible.word-placeholder, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.word-placeholder {
  top: -30px !important;
  opacity: 1;
  filter: alpha(opacity=100);
  min-width: 4px; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.clone.visible div.arrow, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.clone.visible.word-placeholder div.arrow, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.word-placeholder div.arrow, div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.clone.visible.word-placeholder div.arrow, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.word-placeholder div.arrow {
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 7px solid #d35400;
  position: absolute;
  margin-top: 0px;
  *margin-top: 18px;
  margin-left: -7px;
  left: 50%; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.clone.visible.mini div.arrow, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.clone.visible.mini.word-placeholder div.arrow, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.mini.word-placeholder div.arrow, div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.clone.visible.mini.word-placeholder div.arrow, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.clone.visible.mini.word-placeholder div.arrow {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #d35400;
  margin-left: -6px; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.draggable, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.draggable.word-placeholder, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.draggable.word-placeholder,
div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.draggable.word-placeholder, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.draggable.word-placeholder {
  color: #0000f0; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.moving, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.moving.word-placeholder, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.moving.word-placeholder,
div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.moving.word-placeholder, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.moving.word-placeholder {
  zoom: 1;
  opacity: 0.4;
  filter: alpha(opacity=40);
  z-index: 1; }

div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.word.moving:hover, div.mainWordOrderDiv div.framesCollection div.frame .WordOrderJS .wrap-sentence div.sentence span.moving.word-placeholder:hover, .WordOrderJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.moving.word-placeholder:hover,
div.mainWordOrderDiv div.framesCollection div.frame .WordInsertJS .wrap-sentence div.sentence span.moving.word-placeholder:hover, .WordInsertJS .wrap-sentence div.mainWordOrderDiv div.framesCollection div.frame div.sentence span.moving.word-placeholder:hover {
  background: auto !important; }

div.mainWordOrderDiv span.sliderFeedback {
  /*color: #888;*/
  font-size: 11px;
  font-weight: normal; }

div.tooltip ul.answersList {
  margin-bottom: 4px;
  margin-left: 0;
  margin-top: 5px;
  padding-bottom: 0;
  padding-left: 20px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvZWZmZWN0cy9ibGluZy9fcHVmZkluLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvX2VmZmVjdHMuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9ibGluZy9fcHVmZk91dC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL192YW5pc2hJbi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL192YW5pc2hPdXQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9ib2luZy9fYm9pbmdJblVwLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvYm9pbmcvX2JvaW5nT3V0RG93bi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2Rhc2gvX2Rhc2guc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9tYXRoL19zd2FzaEluLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvbWF0aC9fc3dhc2hPdXQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVEb3duLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlRG93blJldHVybi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZUxlZnQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVMZWZ0UmV0dXJuLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlUmlnaHQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVSaWdodFJldHVybi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZVVwLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlVXBSZXR1cm4uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9zbGlkZS9fc2xpZGVEb3duLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvc2xpZGUvX3NsaWRlVXAuc2NzcyIsIndvcmRvcmRlci5zY3NzIiwiaGVscGVycy9fdmFyaWFibGVzLnNjc3MiLCJoZWxwZXJzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VDQXZCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FERzFCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBLEVBQUE7O0FBWHJCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFBO0VBRW5CO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QixpQkFBaUIsRUFBQSxFQUFBOztBQVhyQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qix5QkFBaUI7SUFBakIsaUJBQWlCLEVBQUEsRUFBQTs7QUVoQnJCO0VBQ0UsK0JBQXVCO0VBQXZCLDBCQUF1QjtFQUF2Qix1QkFBdUI7RURBeEIsOEJBQXNCO0VBQXRCLHlCQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUIsRUFBQTs7QUNHMUI7RUFDRTtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBO0VBRW5CO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qix5QkFBaUI7SUFBakIsaUJBQWlCLEVBQUEsRUFBQTs7QUFYckI7RUFDRTtJQUNFLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIsaUJBQWlCLEVBQUE7RUFFbkI7SUFDRSxVQUFVO0lBQ1YsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFBLEVBQUE7O0FBWHJCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBO0VBRW5CO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQSxFQUFBOztBQ2hCckI7RUFDRSxnQ0FBd0I7RUFBeEIsMkJBQXdCO0VBQXhCLHdCQUF3QjtFRkF6Qiw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBRUcxQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QiwwQkFBa0I7SUFBbEIsa0JBQWtCLEVBQUE7RUFFcEI7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQSxFQUFBOztBQVhyQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QixrQkFBa0IsRUFBQTtFQUVwQjtJQUNFLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIsaUJBQWlCLEVBQUEsRUFBQTs7QUFYckI7RUFDRTtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QiwwQkFBa0I7SUFBbEIsa0JBQWtCLEVBQUE7RUFFcEI7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBLEVBQUE7O0FDaEJyQjtFQUNFLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCO0VIQTFCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FHRzFCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIsMEJBQWtCO0lBQWxCLGtCQUFrQixFQUFBLEVBQUE7O0FBWHRCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFBO0VBRW5CO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QixrQkFBa0IsRUFBQSxFQUFBOztBQVh0QjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QiwwQkFBa0I7SUFBbEIsa0JBQWtCLEVBQUEsRUFBQTs7QUNoQnRCO0VBQ0UsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUI7RUpBMUIsOEJBQXNCO0VBQXRCLHlCQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUIsRUFBQTs7QUlHMUI7RUFDRTtJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLHFEQUFxRDtJQUNyRCw2Q0FBNkMsRUFBQTtFQUUvQztJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLG9EQUFvRDtJQUNwRCw0Q0FBNEMsRUFBQTtFQUU5QztJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLG1EQUFtRDtJQUNuRCwyQ0FBMkMsRUFBQSxFQUFBOztBQUkvQztFQUNFO0lBQ0UsVUFBVTtJQUNWLGdDQUFnQztJQUNoQywyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLHFEQUFxRDtJQUNyRCw2Q0FBNkMsRUFBQTtFQUUvQztJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7SUFDaEMsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixvREFBb0Q7SUFDcEQsNENBQTRDLEVBQUE7RUFFOUM7SUFDRSxVQUFVO0lBQ1YsZ0NBQWdDO0lBQ2hDLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsbURBQW1EO0lBQ25ELDJDQUEyQyxFQUFBLEVBQUE7O0FBcEIvQztFQUNFO0lBQ0UsVUFBVTtJQUNWLGdDQUFnQztJQUNoQywyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLHFEQUFxRDtJQUNyRCw2Q0FBNkMsRUFBQTtFQUUvQztJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7SUFDaEMsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixvREFBb0Q7SUFDcEQsNENBQTRDLEVBQUE7RUFFOUM7SUFDRSxVQUFVO0lBQ1YsZ0NBQWdDO0lBQ2hDLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsbURBQW1EO0lBQ25ELDJDQUEyQyxFQUFBLEVBQUE7O0FDakQvQztFQUNFLG9DQUE0QjtFQUE1QiwrQkFBNEI7RUFBNUIsNEJBQTRCO0VMQTdCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FLRTFCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLDJCQUEyQjtJQUMzQixpRUFBaUU7SUFDakUseURBQXlELEVBQUE7RUFHM0Q7SUFDRSxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLDJCQUEyQjtJQUMzQixrRUFBa0U7SUFDbEUsMERBQTBELEVBQUE7RUFHNUQ7SUFDRSxVQUFVO0lBQ1YsaUNBQWlDO0lBQ2pDLHlCQUF5QjtJQUN6QixpRUFBaUU7SUFDakUseURBQXlELEVBQUE7RUFHM0Q7SUFDRSxVQUFVO0lBQ1YsaUNBQWlDO0lBQ2pDLHlCQUF5QjtJQUN6QixtRUFBbUU7SUFDbkUsMkRBQTJELEVBQUE7RUFHN0Q7SUFDRSxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLDJCQUEyQjtJQUMzQixrRUFBa0U7SUFDbEUsMERBQTBELEVBQUEsRUFBQTs7QUFHOUQ7RUFDRTtJQUNFLFVBQVU7SUFDVixtQ0FBbUM7SUFDbkMsOEJBQTJCO0lBQTNCLDJCQUEyQjtJQUMzQixpRUFBaUU7SUFDakUseURBQXlELEVBQUE7RUFHM0Q7SUFDRSxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLDhCQUEyQjtJQUEzQiwyQkFBMkI7SUFDM0Isa0VBQWtFO0lBQ2xFLDBEQUEwRCxFQUFBO0VBRzVEO0lBQ0UsVUFBVTtJQUNWLGlDQUFpQztJQUNqQyw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLGlFQUFpRTtJQUNqRSx5REFBeUQsRUFBQTtFQUczRDtJQUNFLFVBQVU7SUFDVixpQ0FBaUM7SUFDakMsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6QixtRUFBbUU7SUFDbkUsMkRBQTJELEVBQUE7RUFHN0Q7SUFDRSxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLDhCQUEyQjtJQUEzQiwyQkFBMkI7SUFDM0Isa0VBQWtFO0lBQ2xFLDBEQUEwRCxFQUFBLEVBQUE7O0FBdEM5RDtFQUNFO0lBQ0UsVUFBVTtJQUNWLG1DQUFtQztJQUNuQyw4QkFBMkI7SUFBM0IsMkJBQTJCO0lBQzNCLGlFQUFpRTtJQUNqRSx5REFBeUQsRUFBQTtFQUczRDtJQUNFLFVBQVU7SUFDVixtQ0FBbUM7SUFDbkMsOEJBQTJCO0lBQTNCLDJCQUEyQjtJQUMzQixrRUFBa0U7SUFDbEUsMERBQTBELEVBQUE7RUFHNUQ7SUFDRSxVQUFVO0lBQ1YsaUNBQWlDO0lBQ2pDLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsaUVBQWlFO0lBQ2pFLHlEQUF5RCxFQUFBO0VBRzNEO0lBQ0UsVUFBVTtJQUNWLGlDQUFpQztJQUNqQyw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLG1FQUFtRTtJQUNuRSwyREFBMkQsRUFBQTtFQUc3RDtJQUNFLFVBQVU7SUFDVixtQ0FBbUM7SUFDbkMsOEJBQTJCO0lBQTNCLDJCQUEyQjtJQUMzQixrRUFBa0U7SUFDbEUsMERBQTBELEVBQUEsRUFBQTs7QUNuRjlEO0VBRUUsc0JBQXNCO0VBQ3RCLG9CQUFvQixFQUFBO0VBSHRCO0lBTUcsNEJBQW9CO0lBQXBCLHVCQUFvQjtJQUFwQixvQkFBb0I7SUFDcEIsZ0NBQXdCO0lBQXhCLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsOENBQXNDO0lBQXRDLHlDQUFzQztJQUF0QyxzQ0FBc0MsRUFBQTtFQVJ6QztJQVlHLHVCQUF1QjtJQUV2Qiw0QkFBb0I7SUFBcEIsdUJBQW9CO0lBQXBCLG9CQUFvQjtJQUNwQixnQ0FBd0I7SUFBeEIsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qiw4Q0FBc0M7SUFBdEMseUNBQXNDO0lBQXRDLHNDQUFzQztJQUN0QyxxQ0FBNkI7SUFBN0IsZ0NBQTZCO0lBQTdCLDZCQUE2QixFQUFBO0VBbEJoQztJQXNCRyx1QkFBdUI7SUFDdkIsa0NBQTBCO0lBQTFCLDZCQUEwQjtJQUExQiwwQkFBMEI7SUFDMUIsZ0NBQXdCO0lBQXhCLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsOEJBQXNCO0lBQXRCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIsOENBQXNDO0lBQXRDLHlDQUFzQztJQUF0QyxzQ0FBc0M7SUFDdEMscUNBQTZCO0lBQTdCLGdDQUE2QjtJQUE3Qiw2QkFBNkIsRUFBQTs7QUFLaEM7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msb0JBQW9CLEVBQUEsRUFBQTs7QUFMdEI7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msb0JBQW9CLEVBQUEsRUFBQTs7QUFMdEI7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msb0JBQW9CLEVBQUEsRUFBQTs7QUFJdEI7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msc0JBQXNCLEVBQUEsRUFBQTs7QUFMeEI7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msc0JBQXNCLEVBQUEsRUFBQTs7QUFMeEI7RUFDQztJQUNDLHVCQUF1QixFQUFBO0VBRXhCO0lBQ0Msc0JBQXNCLEVBQUEsRUFBQTs7QUM5Q3hCO0VBQ0MsK0JBQXVCO0VBQXZCLDBCQUF1QjtFQUF2Qix1QkFBdUI7RVBBdkIsOEJBQXNCO0VBQXRCLHlCQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUIsRUFBQTs7QU9HMUI7RUFDQztJQUNDLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0IsRUFBQTtFQUd2QjtJQUNDLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLGtDQUEwQjtJQUExQiwwQkFBMEIsRUFBQTtFQUczQjtJQUNDLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0IsRUFBQSxFQUFBOztBQWhCeEI7RUFDQztJQUNDLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLHlCQUFzQjtJQUF0QixzQkFBc0IsRUFBQTtFQUd2QjtJQUNDLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDZCQUEwQjtJQUExQiwwQkFBMEIsRUFBQTtFQUczQjtJQUNDLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLHlCQUFzQjtJQUF0QixzQkFBc0IsRUFBQSxFQUFBOztBQWhCeEI7RUFDQztJQUNDLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQixFQUFBO0VBR3ZCO0lBQ0MsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLGtDQUEwQjtJQUExQiw2QkFBMEI7SUFBMUIsMEJBQTBCLEVBQUE7RUFHM0I7SUFDQyxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHlCQUFzQjtJQUF0QixzQkFBc0IsRUFBQSxFQUFBOztBQ3JCeEI7RUFDRSxnQ0FBd0I7RUFBeEIsMkJBQXdCO0VBQXhCLHdCQUF3QjtFUkF6Qiw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBUUcxQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHNCQUFzQixFQUFBO0VBR3hCO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsa0NBQTBCO0lBQTFCLDBCQUEwQixFQUFBO0VBRzVCO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHNCQUFzQixFQUFBLEVBQUE7O0FBaEIxQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQixFQUFBO0VBR3hCO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsNkJBQTBCO0lBQTFCLDBCQUEwQixFQUFBO0VBRzVCO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQixFQUFBLEVBQUE7O0FBaEIxQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0Qix5QkFBc0I7SUFBdEIsc0JBQXNCLEVBQUE7RUFHeEI7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsa0NBQTBCO0lBQTFCLDZCQUEwQjtJQUExQiwwQkFBMEIsRUFBQTtFQUc1QjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQixFQUFBLEVBQUE7O0FDckIxQjtFQUNFLHVDQUErQjtFQUEvQixrQ0FBK0I7RUFBL0IsK0JBQStCO0VUQWhDLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FTRzFCO0VBQ0U7SUFDRSxnQ0FBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQTtFQUc3QztJQUNFLGdDQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsc0RBQThDO0lBQTlDLDhDQUE4QyxFQUFBLEVBQUE7O0FBUmxEO0VBQ0U7SUFDRSwyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLDJDQUEyQyxFQUFBO0VBRzdDO0lBQ0UsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4Qiw4Q0FBOEMsRUFBQSxFQUFBOztBQVJsRDtFQUNFO0lBQ0UsZ0NBQXdCO0lBQXhCLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsbURBQTJDO0lBQTNDLDJDQUEyQyxFQUFBO0VBRzdDO0lBQ0UsZ0NBQXdCO0lBQXhCLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsc0RBQThDO0lBQTlDLDhDQUE4QyxFQUFBLEVBQUE7O0FDYmxEO0VBQ0UsNkNBQXFDO0VBQXJDLHdDQUFxQztFQUFyQyxxQ0FBcUM7RVZBdEMsOEJBQXNCO0VBQXRCLHlCQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUIsRUFBQTs7QVVHMUI7RUFDRTtJQUNFLGdDQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsc0RBQThDO0lBQTlDLDhDQUE4QyxFQUFBO0VBR2hEO0lBQ0UsZ0NBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixtREFBMkM7SUFBM0MsMkNBQTJDLEVBQUEsRUFBQTs7QUFSL0M7RUFDRTtJQUNFLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsOENBQThDLEVBQUE7RUFHaEQ7SUFDRSwyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLDJDQUEyQyxFQUFBLEVBQUE7O0FBUi9DO0VBQ0U7SUFDRSxnQ0FBd0I7SUFBeEIsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixzREFBOEM7SUFBOUMsOENBQThDLEVBQUE7RUFHaEQ7SUFDRSxnQ0FBd0I7SUFBeEIsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixtREFBMkM7SUFBM0MsMkNBQTJDLEVBQUEsRUFBQTs7QUNiL0M7RUFDRSx1Q0FBK0I7RUFBL0Isa0NBQStCO0VBQS9CLCtCQUErQjtFWEFoQyw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBV0cxQjtFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQixtREFBMkM7SUFBM0MsMkNBQTJDLEVBQUE7RUFHN0M7SUFDRSw2QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLHNEQUE4QztJQUE5Qyw4Q0FBOEMsRUFBQSxFQUFBOztBQVJsRDtFQUNFO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiwyQ0FBMkMsRUFBQTtFQUc3QztJQUNFLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsOENBQThDLEVBQUEsRUFBQTs7QUFSbEQ7RUFDRTtJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQTtFQUc3QztJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLHNEQUE4QztJQUE5Qyw4Q0FBOEMsRUFBQSxFQUFBOztBQ2JsRDtFQUNFLDZDQUFxQztFQUFyQyx3Q0FBcUM7RUFBckMscUNBQXFDO0VaQXRDLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FZRzFCO0VBQ0U7SUFDRSw2QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLHNEQUE4QztJQUE5Qyw4Q0FBOEMsRUFBQTtFQUdoRDtJQUNFLDZCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsbURBQTJDO0lBQTNDLDJDQUEyQyxFQUFBLEVBQUE7O0FBUi9DO0VBQ0U7SUFDRSx3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLDhDQUE4QyxFQUFBO0VBR2hEO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiwyQ0FBMkMsRUFBQSxFQUFBOztBQVIvQztFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsc0RBQThDO0lBQTlDLDhDQUE4QyxFQUFBO0VBR2hEO0lBQ0UsNkJBQXFCO0lBQXJCLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsbURBQTJDO0lBQTNDLDJDQUEyQyxFQUFBLEVBQUE7O0FDYi9DO0VBQ0Usd0NBQWdDO0VBQWhDLG1DQUFnQztFQUFoQyxnQ0FBZ0M7RWJBakMsOEJBQXNCO0VBQXRCLHlCQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsaUNBQXlCO0VBQXpCLDRCQUF5QjtFQUF6Qix5QkFBeUIsRUFBQTs7QWFHMUI7RUFDRTtJQUNFLGdDQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsbURBQTJDO0lBQTNDLDJDQUEyQyxFQUFBO0VBRzdDO0lBQ0UsZ0NBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixxREFBNkM7SUFBN0MsNkNBQTZDLEVBQUEsRUFBQTs7QUFSakQ7RUFDRTtJQUNFLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsMkNBQTJDLEVBQUE7RUFHN0M7SUFDRSwyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLDZDQUE2QyxFQUFBLEVBQUE7O0FBUmpEO0VBQ0U7SUFDRSxnQ0FBd0I7SUFBeEIsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixtREFBMkM7SUFBM0MsMkNBQTJDLEVBQUE7RUFHN0M7SUFDRSxnQ0FBd0I7SUFBeEIsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixxREFBNkM7SUFBN0MsNkNBQTZDLEVBQUEsRUFBQTs7QUNiakQ7RUFDRSw4Q0FBc0M7RUFBdEMseUNBQXNDO0VBQXRDLHNDQUFzQztFZEF2Qyw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBY0cxQjtFQUNFO0lBQ0UsZ0NBQXdCO0lBQXhCLHdCQUF3QjtJQUN4QixxREFBNkM7SUFBN0MsNkNBQTZDLEVBQUE7RUFHL0M7SUFDRSxnQ0FBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQSxFQUFBOztBQVIvQztFQUNFO0lBQ0UsMkJBQXdCO0lBQXhCLHdCQUF3QjtJQUN4Qiw2Q0FBNkMsRUFBQTtFQUcvQztJQUNFLDJCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsMkNBQTJDLEVBQUEsRUFBQTs7QUFSL0M7RUFDRTtJQUNFLGdDQUF3QjtJQUF4QiwyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLHFEQUE2QztJQUE3Qyw2Q0FBNkMsRUFBQTtFQUcvQztJQUNFLGdDQUF3QjtJQUF4QiwyQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQSxFQUFBOztBQ2IvQztFQUNFLHFDQUE2QjtFQUE3QixnQ0FBNkI7RUFBN0IsNkJBQTZCO0VmQTlCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FlRzFCO0VBQ0U7SUFDRSw2QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQTtFQUc3QztJQUNFLDZCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIscURBQTZDO0lBQTdDLDZDQUE2QyxFQUFBLEVBQUE7O0FBUmpEO0VBQ0U7SUFDRSx3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLDJDQUEyQyxFQUFBO0VBRzdDO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiw2Q0FBNkMsRUFBQSxFQUFBOztBQVJqRDtFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsbURBQTJDO0lBQTNDLDJDQUEyQyxFQUFBO0VBRzdDO0lBQ0UsNkJBQXFCO0lBQXJCLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIscURBQTZDO0lBQTdDLDZDQUE2QyxFQUFBLEVBQUE7O0FDYmpEO0VBQ0UsMkNBQW1DO0VBQW5DLHNDQUFtQztFQUFuQyxtQ0FBbUM7RWhCQXBDLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FnQkcxQjtFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQixxREFBNkM7SUFBN0MsNkNBQTZDLEVBQUE7RUFHL0M7SUFDRSw2QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQSxFQUFBOztBQVIvQztFQUNFO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiw2Q0FBNkMsRUFBQTtFQUcvQztJQUNFLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsMkNBQTJDLEVBQUEsRUFBQTs7QUFSL0M7RUFDRTtJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLHFEQUE2QztJQUE3Qyw2Q0FBNkMsRUFBQTtFQUcvQztJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLG1EQUEyQztJQUEzQywyQ0FBMkMsRUFBQSxFQUFBOztBQ2IvQztFQUNFLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCO0VqQkExQiw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBaUJHMUI7RUFDRTtJQUNFLDZCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsaUNBQXlCO0lBQXpCLHlCQUF5QixFQUFBO0VBRzNCO0lBQ0UsNkJBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQixtQ0FBMkI7SUFBM0IsMkJBQTJCLEVBQUEsRUFBQTs7QUFSL0I7RUFDRTtJQUNFLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsNEJBQXlCO0lBQXpCLHlCQUF5QixFQUFBO0VBRzNCO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiw4QkFBMkI7SUFBM0IsMkJBQTJCLEVBQUEsRUFBQTs7QUFSL0I7RUFDRTtJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCLEVBQUE7RUFHM0I7SUFDRSw2QkFBcUI7SUFBckIsd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQixtQ0FBMkI7SUFBM0IsOEJBQTJCO0lBQTNCLDJCQUEyQixFQUFBLEVBQUE7O0FDYi9CO0VBQ0UsK0JBQXVCO0VBQXZCLDBCQUF1QjtFQUF2Qix1QkFBdUI7RWxCQXhCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FrQkcxQjtFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQixtQ0FBMkI7SUFBM0IsMkJBQTJCLEVBQUE7RUFHN0I7SUFDRSw2QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLGdDQUF3QjtJQUF4Qix3QkFBd0IsRUFBQSxFQUFBOztBQVI1QjtFQUNFO0lBQ0Usd0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiw4QkFBMkI7SUFBM0IsMkJBQTJCLEVBQUE7RUFHN0I7SUFDRSx3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLDJCQUF3QjtJQUF4Qix3QkFBd0IsRUFBQSxFQUFBOztBQVI1QjtFQUNFO0lBQ0UsNkJBQXFCO0lBQXJCLHdCQUFxQjtJQUFyQixxQkFBcUI7SUFDckIsbUNBQTJCO0lBQTNCLDhCQUEyQjtJQUEzQiwyQkFBMkIsRUFBQTtFQUc3QjtJQUNFLDZCQUFxQjtJQUFyQix3QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLGdDQUF3QjtJQUF4QiwyQkFBd0I7SUFBeEIsd0JBQXdCLEVBQUEsRUFBQTs7QUNYNUI7O0VBRUMsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixrQkFBa0IsRUFBQTtFQUpuQjs7SUFRRywyQkFBMEI7SUFBMUIsd0JBQTBCO0lBQTFCLDBCQUEwQixFQUFBO0VBUjdCOztJQVlHLGtCQUFrQixFQUFBO0VBWnJCOztJQWdCRyxxQkFBcUIsRUFBQTtFQWhCeEI7O0lBcUJJLHFCQUFxQixFQUFBO0VBckJ6Qjs7SUF5QkksbUJBQW1CLEVBQUE7RUF6QnZCOztJQStCRSxZQUFZLEVBQUE7RUEvQmQ7O0lBb0NHLGVBQWU7SUFDZixtQkFBbUIsRUFBQTtJQXJDdEI7OztNQXdDSSxxQkFBcUI7TUFDckIscUJBQXFCO01BQ3JCLGVBQWUsRUFBQTtNQTFDbkI7OztRQTZDSyxlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLHlCQUF5QixFQUFBO01BbEQ5Qjs7Ozs7UUF3RE0sZUFBZTtRQUNmLHlCQUFnRCxFQUFBO01BekR0RDs7O1FBOERLLFVBQVU7UUFDVixjQUFjO1FBQ2QsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixlQUFlLEVBQUE7UUFsRXBCOzs7VUFxRU0sZUFBZTtVQUNmLGdCQUFnQjtVQUNoQixjQUFjO1VBQ2QseUJBQXlCLEVBQUE7SUF4RS9COztNQWlGSyx5QkFBZ0Q7TUFDaEQsZUFBZSxFQUFBO0lBbEZwQjs7TUF1Rkksc0JBQXNCO01BQ3RCLG1CQUFtQjtNQUNuQixvQkFBb0IsRUFBQTtNQXpGeEI7O1FBNEZLLGVBQWUsRUFBQTtNQTVGcEI7O1FBZ0dLLGdCQUFnQixFQUFBO0VBaEdyQjs7O0lBc0dHLGNDN0VvQjtJRDhFcEIseUJBQTJEO0lBQzNELGVBQWUsRUFBQTtFQXhHbEI7OztJQTRHRyxjQ2xGa0I7SURtRmxCLHlCQUF5RCxFQUFBO0VBN0c1RDs7SUFpSEcsWUFBWTtJQUNaLHFCQUFxQixFQUFBO0lFNUVyQjtNRnRDSDs7UUFxSEksWUFBWTtRQUNaLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLG9CQUFvQixFQUFBLEVBRXJCO0VBM0hIOztJQStIRSxpQkFBaUIsRUFBQTs7QUFJbkI7Ozs7Ozs7Ozs7RUFLRyxtQkFBbUI7RUFDbkIsb0JBQW9CLEVBQUE7RUFOdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFXSyxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCx1QkFBdUIsRUFBQTs7QUFkNUI7O0VBcUJFLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTs7QUF0QmxCOztFQTBCRSx3QkFBdUI7RUFBdkIsK0JBQXVCO0VBQXZCLHFCQUF1QjtFQUF2Qix1QkFBdUIsRUFBQTs7QUFJekI7RUFDQyxvQkFBYTtFQUFiLHFCQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsMEJBQW9CO0VBQXBCLDRCQUFvQjtFQUFwQix1QkFBb0I7RUFBcEIsb0JBQW9CLEVBQUE7RUFGckI7SUFLRSxvQkFBYTtJQUFiLHFCQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0lBQ2IsNEJBQThCO0lBQTlCLDhCQUE4QjtJQUE5QixzQ0FBOEI7SUFBOUIsa0NBQThCO0lBQTlCLDhCQUE4QjtJQUM5Qix5QkFBbUI7SUFBbkIsMkJBQW1CO0lBQW5CLHNCQUFtQjtJQUFuQixtQkFBbUIsRUFBQTtJQVByQjtNQVVHLG9CQUFhO01BQWIscUJBQWE7TUFBYixvQkFBYTtNQUFiLGFBQWE7TUFDYixXQUFXO01BQ1gsWUFBWTtNQUNaLHlCQUFtQjtNQUFuQiwyQkFBbUI7TUFBbkIsc0JBQW1CO01BQW5CLG1CQUFtQjtNQUNuQixxQkFBeUI7TUFBekIsaUNBQXlCO01BQXpCLGtCQUF5QjtNQUF6Qix5QkFBeUI7TUFDekIsa0NBQTBCO01BQTFCLDZCQUEwQjtNQUExQiwwQkFBMEIsRUFBQTtFQWY3QjtJQW9CRSxtQkFBWTtJQUFaLG9CQUFZO0lBQVosb0JBQVk7SUFBWixZQUFZO0lBQ1osaUJBQWlCO0lBRWpCLG9IQU9DO0lBUEQsK0dBT0M7SUFQRCwwR0FPQztJQUNELGtDQUEwQjtJQUExQiwwQkFBMEIsRUFBQTtJQS9CNUI7TUFrQ0csVUFBVTtNQUNWLGNBQWM7TUFDZCxnQkFBZ0I7TUFDaEIsY0FBYztNQUNkLDRCQUFvQjtNQUFwQix3QkFBb0I7TUFBcEIsb0JBQW9CO01BQ3BCLHlCQUF5QixFQUFBO01BdkM1QjtRQTBDSSxXQUFXLEVBQUE7O0FBUWY7RUFDQyxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7RUFHVixrQkFBa0IsRUFBQTs7QUFHbkI7RUFDQyxTQUFTO0VBQ1QsWUFBWTtFQUNaLGtCQUFrQixFQUFBOztBQUduQjs7RUFLQyxVQUFVO0VBQ1Ysd0JBQTBCO0VBQzFCLE9BQU87RUFDUCxnQkFBZ0IsRUFBQTs7QUFHakI7O0VBS0MscUJBQXFCO0VBQ3JCLFVBQVU7RUFDViwwQkFBNEI7RUFDNUIsY0FBYyxFQUFBOztBQUdmO0VBTUMsUUFBUTtFQUNSLFNBQVM7RUFDVCxrQ0FBa0M7RUFDbEMsbUNBQW1DO0VBQ25DLDZCQUE2QjtFQUM3QixrQkFBa0I7RUFDbEIsZUFBZTtHQUNmLGdCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsU0FBUyxFQUFBOztBQUdWO0VBTUMsa0NBQWtDO0VBQ2xDLG1DQUFtQztFQUNuQyw2QkFBNkI7RUFDN0IsaUJBQWlCLEVBQUE7O0FBR2xCOztFQUtDLGNBQWMsRUFBQTs7QUFHZjs7RUFLQyxPQUFPO0VBQ1AsWUFBWTtFQUNaLHlCQUEyQjtFQUMzQixVQUFVLEVBQUE7O0FBR1g7O0VBS0MsMkJBQTJCLEVBQUE7O0FBRzVCO0VBQ0MsZUFBQTtFQUNBLGVBQWU7RUFDZixtQkFBbUIsRUFBQTs7QUFFcEI7RUFDQyxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsa0JBQWtCLEVBQUEiLCJmaWxlIjoid29yZG9yZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wdWZmSW4ge1xuICBhbmltYXRpb24tbmFtZTogcHVmZkluO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHB1ZmZJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICBmaWx0ZXI6IGJsdXIoMnB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgfVxufVxuIiwiQG1peGluIGluaXRFZmZlY3Qge1xyXG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XHJcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxufVxyXG5cclxuLy8gIEJsaW5nXHJcbkBpbXBvcnQgXCJibGluZy9wdWZmSW5cIjtcclxuQGltcG9ydCBcImJsaW5nL3B1ZmZPdXRcIjtcclxuQGltcG9ydCBcImJsaW5nL3ZhbmlzaEluXCI7XHJcbkBpbXBvcnQgXCJibGluZy92YW5pc2hPdXRcIjtcclxuXHJcbi8vICBCb2luZ1xyXG5AaW1wb3J0IFwiYm9pbmcvYm9pbmdJblVwXCI7XHJcbkBpbXBvcnQgXCJib2luZy9ib2luZ091dERvd25cIjtcclxuXHJcbi8vICBEYXNoXHJcbkBpbXBvcnQgXCJkYXNoL2Rhc2hcIjtcclxuXHJcbi8vICBNYXRoXHJcbkBpbXBvcnQgXCJtYXRoL3N3YXNoSW5cIjtcclxuQGltcG9ydCBcIm1hdGgvc3dhc2hPdXRcIjtcclxuXHJcbi8vICBQZXJzcGVjdGl2ZVxyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVEb3duXCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZURvd25SZXR1cm5cIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlTGVmdFwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVMZWZ0UmV0dXJuXCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZVJpZ2h0XCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuXCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZVVwXCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZVVwUmV0dXJuXCI7XHJcblxyXG4vLyAgU2xpZGVcclxuQGltcG9ydCBcInNsaWRlL3NsaWRlRG93blwiO1xyXG5AaW1wb3J0IFwic2xpZGUvc2xpZGVVcFwiO1xyXG4iLCIucHVmZk91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWZmT3V0O1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHB1ZmZPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDJweCk7XG4gIH1cbn1cbiIsIi52YW5pc2hJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2YW5pc2hJbjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyB2YW5pc2hJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICBmaWx0ZXI6IGJsdXIoOTBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbn1cbiIsIi52YW5pc2hPdXQge1xuICBhbmltYXRpb24tbmFtZTogdmFuaXNoT3V0O1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHZhbmlzaE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICBmaWx0ZXI6IGJsdXIoMjBweCk7XG4gIH1cbn1cbiIsIi5ib2luZ0luVXAge1xuICBhbmltYXRpb24tbmFtZTogYm9pbmdJblVwO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm9pbmdJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg1MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg1MGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib2luZ0luVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuIiwiLmJvaW5nT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib2luZ091dERvd247XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYm9pbmdPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBib2luZ091dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG4iLCJzdmcuZGFzaCB7XHJcblx0LnBhdGgge1xyXG5cdFx0c3Ryb2tlLWRhc2hhcnJheTogMTAwMDtcclxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG5cclxuXHRcdCYuY2lyY2xlIHtcclxuXHRcdFx0YW5pbWF0aW9uLW5hbWU6IGRhc2g7XHJcblx0XHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMC45cztcclxuXHRcdFx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5saW5lIHtcclxuXHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDA7XHJcblxyXG5cdFx0XHRhbmltYXRpb24tbmFtZTogZGFzaDtcclxuXHRcdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwLjlzO1xyXG5cdFx0XHRhbmltYXRpb24tZGVsYXk6IDAuMzVzO1xyXG5cdFx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHRcdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY2hlY2sge1xyXG5cdFx0XHRzdHJva2UtZGFzaG9mZnNldDogLTEwMDtcclxuXHRcdFx0YW5pbWF0aW9uLW5hbWU6IGRhc2gtY2hlY2s7XHJcblx0XHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMC45cztcclxuXHRcdFx0YW5pbWF0aW9uLWRlbGF5OiAwLjM1cztcclxuXHRcdFx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcblx0XHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBkYXNoIHtcclxuXHQwJSB7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMTAwMDtcclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZGFzaC1jaGVjayB7XHJcblx0MCUge1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMDA7XHJcblx0fVxyXG5cdDEwMCUge1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDkwMDtcclxuXHR9XHJcbn1cclxuIiwiLnN3YXNoSW4ge1xuXHRhbmltYXRpb24tbmFtZTogc3dhc2hJbjtcblx0QGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBzd2FzaEluIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuXHR9XG5cblx0OTAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjksIDAuOSk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcblx0fVxufVxuIiwiLnN3YXNoT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3YXNoT3V0O1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHN3YXNoT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICB9XG5cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjksIDAuOSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZURvd247XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVEb3duIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZURvd25SZXR1cm4ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVEb3duUmV0dXJuO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlRG93blJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtMTgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlTGVmdDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZUxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgtMTgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlTGVmdFJldHVybiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZUxlZnRSZXR1cm47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVMZWZ0UmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKC0xODBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZVJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlUmlnaHQ7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlUmlnaHRSZXR1cm47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVSaWdodFJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgxODBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZVVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlVXA7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDE4MGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZVVwUmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlVXBSZXR1cm47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVVcFJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxODBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cbiIsIi5lZmZlY3Qtc2xpZGVEb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlRG93bjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICB9XG59XG4iLCIuZWZmZWN0LXNsaWRlVXAge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVVcDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZVVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiaGVscGVycy9oZWxwZXJzXCI7XG5cbi5Xb3JkT3JkZXJKUyxcbi5Xb3JkSW5zZXJ0SlMge1xuXHRtYXJnaW4tdG9wOiAxcmVtO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cblx0LmZyYW1lIHtcblx0XHRvbCB7XG5cdFx0XHRwYWRkaW5nLWlubGluZS1zdGFydDogMnJlbTtcblx0XHR9XG5cblx0XHQmLm51bWJlcmVkIC5sYWJlbCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJyZW07XG5cdFx0fVxuXG5cdFx0LmxhYmVsIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblx0XHR9XG5cblx0XHQmLmFmdGVyU2VudGVuY2Uge1xuXHRcdFx0LnNlbnRlbmNlLWxpc3Qge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cdFx0XHR9XG5cblx0XHRcdC5sYWJlbCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnNlbnRlbmNlLWxpc3Qge1xuXHRcdGNsZWFyOiByaWdodDtcblx0fVxuXG5cdC53cmFwLXNlbnRlbmNlIHtcblx0XHQuc2VudGVuY2Uge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNnJlbTtcblxuXHRcdFx0LndvcmQge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogMC4xcmVtIDAuMnJlbTtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHRcdC53b3JkLWNvbnRlbnQge1xuXHRcdFx0XHRcdG1pbi13aWR0aDogMjBweDtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdFx0cGFkZGluZzogMC4ycmVtIDAuNHJlbTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM0MGFiZTM7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLm5vLXNvcnRhYmxlLFxuXHRcdFx0XHQmLndvcmQtc3RhdGljIHtcblx0XHRcdFx0XHQud29yZC1jb250ZW50IHtcblx0XHRcdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLXNlY29uZGFyeSwgMTglKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQucHVuY3R1YXRpb24ge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHRcdFx0LndvcmQtY29udGVudCB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQud29yZC1wbGFjZWhvbGRlciB7XG5cdFx0XHRcdEBleHRlbmQgLndvcmQ7XG5cblx0XHRcdFx0LndvcmQtY29udGVudCB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3Itc2Vjb25kYXJ5LCA0NSUpO1xuXHRcdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQucHVuY3R1YXRpb24ge1xuXHRcdFx0XHRwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMC4ycmVtO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcblxuXHRcdFx0XHQmLm1sLTAge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYubXItMCB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuaXMtdmFsaWQgLndvcmQ6bm90KC53b3JkLXN0YXRpYyk6bm90KC5uby1zb3J0YWJsZSkgPiAud29yZC1jb250ZW50IHtcblx0XHRcdGNvbG9yOiB0aGVtZS1jb2xvcihjb3JyZWN0KTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4odGhlbWUtY29sb3IoY29ycmVjdCwgbGlnaHQpLCA0MiUpO1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblxuXHRcdCYuaXMtaW52YWxpZCAud29yZDpub3QoLndvcmQtc3RhdGljKTpub3QoLm5vLXNvcnRhYmxlKSA+IC53b3JkLWNvbnRlbnQge1xuXHRcdFx0Y29sb3I6IHRoZW1lLWNvbG9yKGVycm9yKTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4odGhlbWUtY29sb3IoZXJyb3IsIGxpZ2h0KSwgNDIlKTtcblx0XHR9XG5cblx0XHQud3JhcHBlci1idXR0b24ge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG5cdFx0XHRAaW5jbHVkZSBtYXgtbWVkaWEoXCJ4c1wiKSB7XG5cdFx0XHRcdGZsb2F0OiB1bnNldDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0bWFyZ2luLXRvcDogMC41cmVtO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiB1bnNldDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZW5kaW5nQ29kZURpdiB7XG5cdFx0cGFkZGluZy10b3A6IDFyZW07XG5cdH1cbn1cblxuLkVuTGV2ZWxUZXN0LFxuLnBvcHVwIHtcblx0LldvcmRPcmRlckpTLFxuXHQuV29yZEluc2VydEpTIHtcblx0XHQuc2VudGVuY2UgLndvcmQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDAuMXJlbTtcblx0XHRcdG1hcmdpbi1yaWdodDogMC4xcmVtO1xuXG5cdFx0XHQmLm5vLXNvcnRhYmxlLFxuXHRcdFx0Ji53b3JkLXN0YXRpYyB7XG5cdFx0XHRcdC53b3JkLWNvbnRlbnQge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnlvdXJMZXZlbCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMS41cmVtIDA7XG5cdH1cblxuXHQuZXhlcmNpc2UtY29udHJvbHMge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG59XG5cbi5jaGFydERpdiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG5cdC5jaGFydC1sZXZlbHMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQuY2hhci1sZXZlbCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuXHRcdH1cblx0fVxuXG5cdC5wcm9ncmVzcyB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0MGRlZyxcblx0XHRcdCNjNWNhZTkgMXB4LFxuXHRcdFx0MXB4LFxuXHRcdFx0dHJhbnNwYXJlbnQgNTAlLFxuXHRcdFx0dHJhbnNwYXJlbnQgMTAwJSxcblx0XHRcdCNjNWNhZTkgMTAwJVxuXHRcdCk7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDUwcHg7XG5cblx0XHQucHJvZ3Jlc3MtYmFyIHtcblx0XHRcdHdpZHRoOiAzNSU7XG5cdFx0XHRtaW4taGVpZ2h0OiAxJTtcblx0XHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmY2MzMztcblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRoZWlnaHQ6IDFweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmRpdi5tYWluV29yZE9yZGVyRGl2IGRpdi5mcmFtZXNDb2xsZWN0aW9uIGRpdi5mcmFtZSBkaXYuc2VudGVuY2UgZGl2LmJnIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IC0zcHg7XG5cdGxlZnQ6IC00cHg7XG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuXHQtbW96LWJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5kaXYubWFpbldvcmRPcmRlckRpdiBkaXYuZnJhbWVzQ29sbGVjdGlvbiBkaXYuZnJhbWUgZGl2LnNlbnRlbmNlIGRpdi5tYXJrIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogLTI1cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuZGl2Lm1haW5Xb3JkT3JkZXJEaXZcblx0ZGl2LmZyYW1lc0NvbGxlY3Rpb25cblx0ZGl2LmZyYW1lXG5cdGRpdi5zZW50ZW5jZVxuXHRzcGFuLndvcmQuY2xvbmUge1xuXHRvcGFjaXR5OiAwO1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHkgPSAwKTtcblx0em9vbTogMTtcblx0cGFkZGluZzogMnB4IDFweDtcbn1cblxuZGl2Lm1haW5Xb3JkT3JkZXJEaXZcblx0ZGl2LmZyYW1lc0NvbGxlY3Rpb25cblx0ZGl2LmZyYW1lXG5cdGRpdi5zZW50ZW5jZVxuXHRzcGFuLndvcmQuY2xvbmUudmlzaWJsZSB7XG5cdHRvcDogLTMwcHggIWltcG9ydGFudDtcblx0b3BhY2l0eTogMTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5ID0gMTAwKTtcblx0bWluLXdpZHRoOiA0cHg7XG59XG5cbmRpdi5tYWluV29yZE9yZGVyRGl2XG5cdGRpdi5mcmFtZXNDb2xsZWN0aW9uXG5cdGRpdi5mcmFtZVxuXHRkaXYuc2VudGVuY2Vcblx0c3Bhbi53b3JkLmNsb25lLnZpc2libGVcblx0ZGl2LmFycm93IHtcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMDtcblx0Ym9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3A6IDdweCBzb2xpZCAjZDM1NDAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1hcmdpbi10b3A6IDBweDtcblx0Km1hcmdpbi10b3A6IDE4cHg7XG5cdG1hcmdpbi1sZWZ0OiAtN3B4O1xuXHRsZWZ0OiA1MCU7XG59XG5cbmRpdi5tYWluV29yZE9yZGVyRGl2XG5cdGRpdi5mcmFtZXNDb2xsZWN0aW9uXG5cdGRpdi5mcmFtZVxuXHRkaXYuc2VudGVuY2Vcblx0c3Bhbi53b3JkLmNsb25lLnZpc2libGUubWluaVxuXHRkaXYuYXJyb3cge1xuXHRib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXRvcDogNnB4IHNvbGlkICNkMzU0MDA7XG5cdG1hcmdpbi1sZWZ0OiAtNnB4O1xufVxuXG5kaXYubWFpbldvcmRPcmRlckRpdlxuXHRkaXYuZnJhbWVzQ29sbGVjdGlvblxuXHRkaXYuZnJhbWVcblx0ZGl2LnNlbnRlbmNlXG5cdHNwYW4ud29yZC5kcmFnZ2FibGUge1xuXHRjb2xvcjogIzAwMDBmMDtcbn1cblxuZGl2Lm1haW5Xb3JkT3JkZXJEaXZcblx0ZGl2LmZyYW1lc0NvbGxlY3Rpb25cblx0ZGl2LmZyYW1lXG5cdGRpdi5zZW50ZW5jZVxuXHRzcGFuLndvcmQubW92aW5nIHtcblx0em9vbTogMTtcblx0b3BhY2l0eTogMC40O1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHkgPSA0MCk7XG5cdHotaW5kZXg6IDE7XG59XG5cbmRpdi5tYWluV29yZE9yZGVyRGl2XG5cdGRpdi5mcmFtZXNDb2xsZWN0aW9uXG5cdGRpdi5mcmFtZVxuXHRkaXYuc2VudGVuY2Vcblx0c3Bhbi53b3JkLm1vdmluZzpob3ZlciB7XG5cdGJhY2tncm91bmQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuZGl2Lm1haW5Xb3JkT3JkZXJEaXYgc3Bhbi5zbGlkZXJGZWVkYmFjayB7XG5cdC8qY29sb3I6ICM4ODg7Ki9cblx0Zm9udC1zaXplOiAxMXB4O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xufVxuZGl2LnRvb2x0aXAgdWwuYW5zd2Vyc0xpc3Qge1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tdG9wOiA1cHg7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG4iLCIkbWF0ZXJpYWwtZm9udDogXCJNYXRlcmlhbCBJY29uc1wiO1xyXG5cclxuLy8gR3JpZFxyXG4kZ3JpZC1icmVha3BvaW50czogKFxyXG5cdHhzOiAwLFxyXG5cdHNtOiA1NzZweCxcclxuXHRtZDogNzY4cHgsXHJcblx0bGc6IDk5MnB4LFxyXG5cdHhsOiAxMjAwcHhcclxuKTtcclxuXHJcbi8vIE9wYWNpdHlcclxuJGJsYWNrLXByaW1hcnktb3BhY2l0eTogMC44NyAhZGVmYXVsdDtcclxuJGJsYWNrLXNlY29uZGFyeS1vcGFjaXR5OiAwLjU0ICFkZWZhdWx0O1xyXG4kYmxhY2staGludC1vcGFjaXR5OiAwLjM4ICFkZWZhdWx0O1xyXG4kYmxhY2stZGl2aWRlci1vcGFjaXR5OiAwLjEyICFkZWZhdWx0O1xyXG5cclxuJHdoaXRlLXByaW1hcnktb3BhY2l0eTogMSAhZGVmYXVsdDtcclxuJHdoaXRlLXNlY29uZGFyeS1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XHJcbiR3aGl0ZS1oaW50LW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcclxuJHdoaXRlLWRpdmlkZXItb3BhY2l0eTogMC4xMiAhZGVmYXVsdDtcclxuXHJcbi8vIGNvbG9yc1xyXG4kY29sb3ItcHJpbWFyeTogIzAwN2RjMTtcclxuJGNvbG9yLXNlY29uZGFyeTogIzYwN2Q4YjtcclxuJGNvbG9yLXdhcm5pbmc6ICNmZmMxMDc7XHJcbiRjb2xvci1mYXZvdXJpdGU6ICNmZmJmMDA7XHJcbiRjb2xvci1jb3JyZWN0OiAjMDAwMGQ5O1xyXG4kY29sb3ItZXJyb3I6ICNkOTAwMDA7XHJcblxyXG4kYmxhY2stcHJpbWFyeTogcmdiYShibGFjaywgJGJsYWNrLXByaW1hcnktb3BhY2l0eSk7XHJcbiRibGFjay1zZWNvbmRhcnk6IHJnYmEoYmxhY2ssICRibGFjay1zZWNvbmRhcnktb3BhY2l0eSk7XHJcbiRibGFjay1oaW50OiByZ2JhKGJsYWNrLCAkYmxhY2staGludC1vcGFjaXR5KTtcclxuJGJsYWNrLWRpdmlkZXI6IHJnYmEoYmxhY2ssICRibGFjay1kaXZpZGVyLW9wYWNpdHkpO1xyXG5cclxuJHdoaXRlLXByaW1hcnk6IHJnYmEod2hpdGUsICR3aGl0ZS1wcmltYXJ5LW9wYWNpdHkpO1xyXG4kd2hpdGUtc2Vjb25kYXJ5OiByZ2JhKHdoaXRlLCAkd2hpdGUtc2Vjb25kYXJ5LW9wYWNpdHkpO1xyXG4kd2hpdGUtaGludDogcmdiYSh3aGl0ZSwgJHdoaXRlLWhpbnQtb3BhY2l0eSk7XHJcbiR3aGl0ZS1kaXZpZGVyOiByZ2JhKHdoaXRlLCAkd2hpdGUtZGl2aWRlci1vcGFjaXR5KTtcclxuXHJcbiRwcmltYXJ5OiAoXHJcblx0Y29sb3I6ICRjb2xvci1wcmltYXJ5LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3ItcHJpbWFyeSwgMTAlKSxcclxuXHRsaWdodDogbGlnaHRlbigkY29sb3ItcHJpbWFyeSwgMTAlKVxyXG4pO1xyXG5cclxuJHNlY29uZGFyeTogKFxyXG5cdGNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3Itc2Vjb25kYXJ5LCAxMCUpLFxyXG5cdGxpZ2h0OiBsaWdodGVuKCRjb2xvci1zZWNvbmRhcnksIDEwJSlcclxuKTtcclxuXHJcbiRkYXJrOiAoXHJcblx0Y29sb3I6ICRibGFjay1wcmltYXJ5LFxyXG5cdGRhcms6ICRibGFjay1zZWNvbmRhcnksXHJcblx0bGlnaHQ6ICRibGFjay1oaW50XHJcbik7XHJcblxyXG4kbGlnaHQ6IChcclxuXHRjb2xvcjogI2Y1ZjVmNSxcclxuXHRkYXJrOiAjZTBlMGUwLFxyXG5cdGxpZ2h0OiAjZmFmYWZhXHJcbik7XHJcblxyXG4kd2FybmluZzogKFxyXG5cdGNvbG9yOiAkY29sb3Itd2FybmluZyxcclxuXHRkYXJrOiBkYXJrZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSksXHJcblx0bGlnaHQ6IGxpZ2h0ZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSlcclxuKTtcclxuXHJcbiRjb3JyZWN0OiAoXHJcblx0Y29sb3I6ICRjb2xvci1jb3JyZWN0LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3ItY29ycmVjdCwgMTAlKSxcclxuXHRsaWdodDogbGlnaHRlbigkY29sb3ItY29ycmVjdCwgMTAlKVxyXG4pO1xyXG5cclxuJGVycm9yOiAoXHJcblx0Y29sb3I6ICRjb2xvci1lcnJvcixcclxuXHRkYXJrOiBkYXJrZW4oJGNvbG9yLWVycm9yLCAxMCUpLFxyXG5cdGxpZ2h0OiBsaWdodGVuKCRjb2xvci1lcnJvciwgMTAlKVxyXG4pO1xyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG5cdHByaW1hcnk6ICRwcmltYXJ5LFxyXG5cdHNlY29uZGFyeTogJHNlY29uZGFyeSxcclxuXHRkYXJrOiAkZGFyayxcclxuXHRsaWdodDogJGxpZ2h0LFxyXG5cdHdhcm5pbmc6ICR3YXJuaW5nLFxyXG5cdGNvcnJlY3Q6ICRjb3JyZWN0LFxyXG5cdGVycm9yOiAkZXJyb3JcclxuKTtcclxuXHJcbiRmb250LXNpemUtYm9keTogMTRweDtcclxuJGZvbnQtc2l6ZS1iYXNlOiAwLjg3NXJlbTtcclxuXHJcbiR5aXEtY29udHJhc3RlZC10aHJlc2hvbGQ6IDE1MCAhZGVmYXVsdDtcclxuJHlpcS10ZXh0LWRhcms6ICRibGFjay1wcmltYXJ5ICFkZWZhdWx0O1xyXG4keWlxLXRleHQtbGlnaHQ6ICR3aGl0ZS1wcmltYXJ5ICFkZWZhdWx0O1xyXG4iLCJAbWl4aW4gbWF0ZXJpYWxJY29uKCkge1xyXG5cdGZvbnQtZmFtaWx5OiAkbWF0ZXJpYWwtZm9udDtcclxuXHRmb250LXNpemU6IDEyMCU7XHJcblx0Y29sb3I6IGluaGVyaXQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjb250ZW50SWNvbigkaWNvbikge1xyXG5cdEBpbmNsdWRlIG1hdGVyaWFsSWNvbigpO1xyXG5cclxuXHRjb250ZW50OiBcIiN7JGljb259XCI7XHJcbn1cclxuXHJcbkBtaXhpbiBjZW50ZXJSb3RhdGlvbigkd3JhcHBlci1zaXplLCAkc2l6ZSkge1xyXG5cdCRweXRoYWdvcmVhbjogUHl0aGFnb3JlYW5UaGVvcmVtKCRzaXplLCAkc2l6ZSk7XHJcblx0JHNpemVPdmVyZmxvdzogKCRweXRoYWdvcmVhbiAtICRzaXplKSAvIDI7XHJcblxyXG5cdCRwb3NpdGlvbjogKCR3cmFwcGVyLXNpemUgLyAyKSAtICgkcHl0aGFnb3JlYW4gLyAyKSArICRzaXplT3ZlcmZsb3c7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6ICN7JHBvc2l0aW9ufXB4O1xyXG5cdGxlZnQ6ICN7JHBvc2l0aW9ufXB4O1xyXG5cdGhlaWdodDogI3skc2l6ZX1weDtcclxuXHR3aWR0aDogI3skc2l6ZX1weDtcclxufVxyXG5cclxuQG1peGluIG1pbi1tZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdEBpZiBtYXAtaGFzLWtleSgkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAje21hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50KX0pIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbWF4LW1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0QGlmIG1hcC1oYXMta2V5KCRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xyXG5cdFx0JHByZXYtZWxlbWVudDogbWFwLWdldC1uZXh0KCRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCk7XHJcblx0XHRcclxuXHRcdEBpZiAoJHByZXYtZWxlbWVudCkge1xyXG5cdFx0XHQkd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRwcmV2LWVsZW1lbnQpIC0gMXB4O1xyXG5cclxuXHRcdFx0QG1lZGlhIChtYXgtd2lkdGg6ICN7JHdpZHRofSkge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gYXBwZWFyLWRpc2FwcGVhciB7XHJcblx0b3BhY2l0eTogMTtcclxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XHJcblxyXG5cdCYuZGlzYWJsZWQsXHJcblx0JjpkaXNhYmxlZCB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxufVxyXG4iXX0= */
