/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
body {
  line-height: 1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
a {
  text-decoration: none;
}
a:active,
a:focus,
a:hover {
  text-decoration: none;
}
* {
  outline: none;
}
html {
  height: 100%;
  min-height: 100%;
}
body {
  height: 100%;
  min-height: 650px;
  position: relative;
}
.bg {
  width: 100%;
  height: 100%;
  background: #000 url('../images/bg.jpg') no-repeat center center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
}
.video {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
article {
  width: 100%;
  height: 100%;
  padding: 40px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
article h5 {
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 23px;
  text-align: center;
  color: #fff;
  text-transform: uppercase;
  cursor: default;
}
article h5 strong {
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 700;
}
article .middle {
  width: 100%;
  height: 34px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0 40px;
  margin-top: -17px;
  position: absolute;
  top: 50%;
  left: 0;
}
article .middle:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}
article .middle .partner {
  float: left;
}
article .middle .title {
  float: right;
}
article .middle a {
  display: block;
}
article .middle a img {
  width: 200px;
  display: block;
}
article .middle h1 {
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 35px;
  color: #fff;
  cursor: default;
}
article .clock-wrapper {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 40px;
  position: absolute;
  bottom: 0;
  left: 0;
}
article .clock-wrapper #clock {
  width: 100%;
  padding: 30px 0;
  cursor: default;
}
article .clock-wrapper #clock:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}
article .clock-wrapper #clock .countdown-section {
  width: 14.28%;
  display: block;
  text-align: center;
  text-transform: uppercase;
  color: #fff;
  float: left;
}
article .clock-wrapper #clock .countdown-section .countdown-amount {
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 80px;
  padding-bottom: 10px;
  display: block;
}
article .clock-wrapper #clock .countdown-section .countdown-period {
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 35px;
}
article .clock-wrapper a {
  width: 325px;
  border-radius: 2px;
  background: #fff;
  padding: 10px;
  margin: 20px auto 0 auto;
  display: block;
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 30px;
  color: #000;
  text-align: center;
  cursor: default;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lZGlhL2xlc3MvcmVzZXQubGVzcyIsIm1lZGlhL2xlc3MvbWFpbi5sZXNzIiwibWVkaWEvbGVzcy9sb2NhbC9sZXNzaGF0Lmxlc3MiLCJtZWRpYS9sZXNzL2xvY2FsL2ZvbnRzLmxlc3MiLCJtZWRpYS9sZXNzL2xvY2FsL2Z1bmN0aW9ucy5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFLQTtBQUFNO0FBQU07QUFBSztBQUFNO0FBQVE7QUFBUTtBQUN2QztBQUFJO0FBQUk7QUFBSTtBQUFJO0FBQUk7QUFBSTtBQUFHO0FBQVk7QUFDdkM7QUFBRztBQUFNO0FBQVM7QUFBUztBQUFLO0FBQU07QUFDdEM7QUFBSztBQUFLO0FBQUk7QUFBSztBQUFLO0FBQUs7QUFBRztBQUFHO0FBQ25DO0FBQU87QUFBUTtBQUFRO0FBQUs7QUFBSztBQUFJO0FBQ3JDO0FBQUc7QUFBRztBQUFHO0FBQ1Q7QUFBSTtBQUFJO0FBQUk7QUFBSTtBQUFJO0FBQ3BCO0FBQVU7QUFBTTtBQUFPO0FBQ3ZCO0FBQU87QUFBUztBQUFPO0FBQU87QUFBTztBQUFJO0FBQUk7QUFDN0M7QUFBUztBQUFPO0FBQVE7QUFBUztBQUNqQztBQUFRO0FBQVk7QUFBUTtBQUFRO0FBQ3BDO0FBQU07QUFBSztBQUFRO0FBQU07QUFBUztBQUNsQztBQUFNO0FBQU07QUFBTztFQUNsQixTQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLHdCQUFBOzs7QUFJRDtBQUFTO0FBQU87QUFBUztBQUFZO0FBQ3JDO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBSztFQUNsQyxjQUFBOztBQUdEO0VBQ0MsY0FBQTs7QUFHRDtBQUFJO0VBQ0gsZ0JBQUE7O0FBR0Q7QUFBWTtFQUNYLFlBQUE7O0FBR0QsVUFBVTtBQUFTLFVBQVU7QUFDN0IsQ0FBQztBQUFTLENBQUM7RUFDVixTQUFTLEVBQVQ7RUFDQSxhQUFBOztBQUdEO0VBQ0MseUJBQUE7RUFDQSxpQkFBQTs7QUFHRDtFQUNDLHFCQUFBOztBQUVBLENBQUM7QUFDRCxDQUFDO0FBQ0QsQ0FBQztFQUNBLHFCQUFBOztBQ3RERjtFQUNDLGFBQUE7O0FBR0Q7RUFDQyxZQUFBO0VBQ0EsZ0JBQUE7O0FBR0Q7RUFDQyxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTs7QUFHRDtFQUNDLFdBQUE7RUFDQSxZQUFBO0VBQ0EscUJBQXFCLDJDQUFyQjtFQUNBLHNCQUFBO0VBRUEsa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFVBQUE7O0FBR0Q7RUFDQyxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBRUEsa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFVBQUE7O0FBR0Q7RUFDQyxXQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUNxUUEsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEcFFBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBOztBQVRELE9BV0M7RUV2REEsYUFBYSxvQkFBYjtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUZ1REMsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLHlCQUFBO0VBRUEsZUFBQTs7QUFsQkYsT0FXQyxHQVNDO0VFOUNELGFBQWEsb0JBQWI7RUFDQSxrQkFBQTtFQUNBLGdCQUFBOztBRndCRCxPQTZCQztFQUNDLFdBQUE7RUFDQSxZQUFBO0VDeU9ELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFRHpPQyxlQUFBO0VBQ0EsaUJBQUE7RUFFQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBOztBR2xGRCxPSHlFQSxRR3pFQztFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTs7QUh3Q0YsT0E2QkMsUUFhQztFQUNDLFdBQUE7O0FBM0NILE9BNkJDLFFBaUJDO0VBQ0MsWUFBQTs7QUEvQ0gsT0E2QkMsUUFxQkM7RUFDQyxjQUFBOztBQW5ESCxPQTZCQyxRQXFCQyxFQUdDO0VBQ0MsWUFBQTtFQUNBLGNBQUE7O0FBdkRKLE9BNkJDLFFBOEJDO0VFakdELGFBQWEsb0JBQWI7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VGaUdFLGVBQUE7RUFDQSxXQUFBO0VBRUEsZUFBQTs7QUFoRUgsT0FvRUM7RUFDQyxXQUFBO0VDbU1ELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFRG5NQyxhQUFBO0VBRUEsa0JBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTs7QUEzRUYsT0FvRUMsZUFTQztFQUNDLFdBQUE7RUFDQSxlQUFBO0VBR0EsZUFBQTs7QUc5SEYsT0hnSEEsZUFTQyxPR3pIQTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTs7QUh3Q0YsT0FvRUMsZUFTQyxPQU9DO0VBQ0MsYUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBMUZKLE9Bb0VDLGVBU0MsT0FPQyxtQkFRQztFRXhJSCxhQUFhLG9CQUFiO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFRndJSSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBQWhHTCxPQW9FQyxlQVNDLE9BT0MsbUJBY0M7RUU1SEgsYUFBYSxvQkFBYjtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUY0SEksZUFBQTs7QUFwR0wsT0FvRUMsZUFzQ0M7RUFDQyxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUVBLGFBQUE7RUFDQSx3QkFBQTtFQUNBLGNBQUE7RUU3SkYsYUFBYSxvQkFBYjtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUY4SkUsZUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUVBLGVBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0L1xuICAgdjIuMCB8IDIwMTEwMTI2XG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxuKi9cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRmb250LXNpemU6IDEwMCU7XG5cdGZvbnQ6IGluaGVyaXQ7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG5ib2R5IHtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG5cbm9sLCB1bCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGUsIHEge1xuXHRxdW90ZXM6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcblx0Y29udGVudDogbm9uZTtcbn1cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cblxuYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHQmOmFjdGl2ZSxcblx0Jjpmb2N1cyxcblx0Jjpob3ZlciB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG59IiwiQGltcG9ydCAocmVmZXJlbmNlKSBcIi4vbG9jYWwvY29sb3JzXCI7XG5AaW1wb3J0IChyZWZlcmVuY2UpIFwiLi9sb2NhbC9mb250c1wiO1xuQGltcG9ydCAocmVmZXJlbmNlKSBcIi4vbG9jYWwvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IChyZWZlcmVuY2UpIFwiLi9sb2NhbC9sZXNzaGF0XCI7XG5AaW1wb3J0IChyZWZlcmVuY2UpIFwiLi9sb2NhbC9tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcIi4vcmVzZXRcIjtcblxuKiB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbmh0bWwge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDY1MHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5iZyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICMwMDAgdXJsKCcuLi9pbWFnZXMvYmcuanBnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDU7XG59XG5cbi52aWRlbyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDE7XG59XG5cbmFydGljbGUge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwYWRkaW5nOiA0MHB4O1xuXHQuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogMTA7XG5cblx0aDUge1xuXHRcdC5yb2JvdG8tbGlnaHQoKTtcblx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0XHRzdHJvbmcge1xuXHRcdFx0LnJvYm90by1ib2xkKCk7XG5cdFx0fVxuXHR9XG5cblx0LmRlc3RpbmF0aW9uIHtcblxuXHR9XG5cblx0Lm1pZGRsZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAzNHB4O1xuXHRcdC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXHRcdHBhZGRpbmc6IDAgNDBweDtcblx0XHRtYXJnaW4tdG9wOiAtMTdweDtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiAwO1xuXG5cdFx0LmNsZWFyZml4KCk7XG5cblx0XHQucGFydG5lciB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHR9XG5cblx0XHQudGl0bGUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdHdpZHRoOiAyMDBweDtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aDEge1xuXHRcdFx0LnJvYm90by1yZWd1bGFyKCk7XG5cdFx0XHRmb250LXNpemU6IDM1cHg7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0fVxuXG5cdC5jbG9jay13cmFwcGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQuYm94LXNpemluZyhib3JkZXItYm94KTtcblx0XHRwYWRkaW5nOiA0MHB4O1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXG5cdFx0I2Nsb2NrIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMzBweCAwO1xuXHRcdFx0LmNsZWFyZml4KCk7XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0LmNvdW50ZG93bi1zZWN0aW9uIHtcblx0XHRcdFx0d2lkdGg6IDE0LjI4JTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0XHRcdC5jb3VudGRvd24tYW1vdW50IHtcblx0XHRcdFx0XHQucm9ib3RvLWxpZ2h0KCk7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiA4MHB4O1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5jb3VudGRvd24tcGVyaW9kIHtcblx0XHRcdFx0XHQucm9ib3RvLWJvbGQoKTtcblx0XHRcdFx0XHRmb250LXNpemU6IDM1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0d2lkdGg6IDMyNXB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblxuXHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHQucm9ib3RvLWxpZ2h0KCk7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblxuXHR9XG59IiwiLy8gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuLy8gIDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTU0hhdCAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuLy8gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuLy9cbi8vIE1hZGUgd2l0aCBFbmVyZ3kgZHJpbmtzIGluIFByYWd1ZSwgQ3plY2ggUmVwdWJsaWMuXG4vLyBIYW5kY3JhZnRlZCBieSBQZXRyIEJyemVrLCBsZXNzaGF0LmNvbVxuLy8gV29ya3MgZ3JlYXQgd2l0aCBDU1MgSGF0IGNzc2hhdC5jb21cblxuLy8gdmVyc2lvbjogdjMuMC4yICgyMDE0LTA2LTI2KVxuXG4vLyBUQUJMRSBPRiBNSVhJTlM6XG4vLyBhbGlnbi1jb250ZW50XG4vLyBhbGlnbi1pdGVtc1xuLy8gYWxpZ24tc2VsZlxuLy8gYW5pbWF0aW9uXG4vLyBhbmltYXRpb24tZGVsYXlcbi8vIGFuaW1hdGlvbi1kaXJlY3Rpb25cbi8vIGFuaW1hdGlvbi1kdXJhdGlvblxuLy8gYW5pbWF0aW9uLWZpbGwtbW9kZVxuLy8gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFxuLy8gYW5pbWF0aW9uLW5hbWVcbi8vIGFuaW1hdGlvbi1wbGF5LXN0YXRlXG4vLyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uXG4vLyBhcHBlYXJhbmNlXG4vLyBiYWNrZmFjZS12aXNpYmlsaXR5XG4vLyBiYWNrZ3JvdW5kLWNsaXBcbi8vIGJhY2tncm91bmQtaW1hZ2Vcbi8vIGJhY2tncm91bmQtb3JpZ2luXG4vLyBiYWNrZ3JvdW5kLXNpemVcbi8vIGJsdXJcbi8vIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXNcbi8vIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzXG4vLyBib3JkZXItaW1hZ2Vcbi8vIGJvcmRlci1yYWRpdXNcbi8vIGJvcmRlci10b3AtbGVmdC1yYWRpdXNcbi8vIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzXG4vLyBib3gtc2hhZG93XG4vLyBib3gtc2l6aW5nXG4vLyBicmlnaHRuZXNzXG4vLyBjYWxjXG4vLyBjb2x1bW4tY291bnRcbi8vIGNvbHVtbi1nYXBcbi8vIGNvbHVtbi1ydWxlXG4vLyBjb2x1bW4td2lkdGhcbi8vIGNvbHVtbnNcbi8vIGNvbnRyYXN0XG4vLyBkaXNwbGF5XG4vLyBkcm9wLXNoYWRvd1xuLy8gZmlsdGVyXG4vLyBmbGV4XG4vLyBmbGV4LWJhc2lzXG4vLyBmbGV4LWRpcmVjdGlvblxuLy8gZmxleC1ncm93XG4vLyBmbGV4LXNocmlua1xuLy8gZmxleC13cmFwXG4vLyBmb250LWZhY2Vcbi8vIGdyYXlzY2FsZVxuLy8gaHVlLXJvdGF0ZVxuLy8gaHlwaGVuc1xuLy8gaW52ZXJ0XG4vLyBqdXN0aWZ5LWNvbnRlbnRcbi8vIGtleWZyYW1lc1xuLy8gb3BhY2l0eVxuLy8gb3JkZXJcbi8vIHBlcnNwZWN0aXZlXG4vLyBwZXJzcGVjdGl2ZS1vcmlnaW5cbi8vIHBsYWNlaG9sZGVyXG4vLyByb3RhdGVcbi8vIHJvdGF0ZTNkXG4vLyByb3RhdGVYXG4vLyByb3RhdGVZXG4vLyByb3RhdGVaXG4vLyBzYXR1cmF0ZVxuLy8gc2NhbGVcbi8vIHNjYWxlM2Rcbi8vIHNjYWxlWFxuLy8gc2NhbGVZXG4vLyBzY2FsZVpcbi8vIHNlbGVjdGlvblxuLy8gc2VwaWFcbi8vIHNpemVcbi8vIHNrZXdcbi8vIHNrZXdYXG4vLyBza2V3WVxuLy8gdHJhbnNmb3JtXG4vLyB0cmFuc2Zvcm0tb3JpZ2luXG4vLyB0cmFuc2Zvcm0tc3R5bGVcbi8vIHRyYW5zaXRpb25cbi8vIHRyYW5zaXRpb24tZGVsYXlcbi8vIHRyYW5zaXRpb24tZHVyYXRpb25cbi8vIHRyYW5zaXRpb24tcHJvcGVydHlcbi8vIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4vLyB0cmFuc2xhdGVcbi8vIHRyYW5zbGF0ZTNkXG4vLyB0cmFuc2xhdGVYXG4vLyB0cmFuc2xhdGVZXG4vLyB0cmFuc2xhdGVaXG4vLyB1c2VyLXNlbGVjdFxuXG4uYWxpZ24tY29udGVudCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHIpe3JldHVybiByPXJ8fFwic3RyZXRjaFwifSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tczogfmAoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8XCJzdHJldGNoXCIsXCJmbGV4LXN0YXJ0XCI9PXQ/dD1cInN0YXJ0XCI6XCJmbGV4LWVuZFwiPT10P3Q9XCJlbmRcIjpcInNwYWNlLWJldHdlZW5cIj09dD90PVwianVzdGlmeVwiOlwic3BhY2UtYXJvdW5kXCI9PXQmJih0PVwiZGlzdHJpYnV0ZVwiKSx0fSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWFsaWduLWNvbnRlbnQ6IEBwcm9jZXNzO1xuXHQtbXMtZmxleC1saW5lLXBhY2s6IEBwcm9jZXNzX21zO1xuXHRhbGlnbi1jb250ZW50OiBAcHJvY2Vzcztcbn1cblxuLmFsaWduLWl0ZW1zKC4uLikge1xuXHRAcHJvY2Vzc19vbGRlcndlYmtpdDogfmAoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8XCJzdHJldGNoXCIsXCJmbGV4LXN0YXJ0XCI9PXQ/dD1cInN0YXJ0XCI6XCJmbGV4LWVuZFwiPT10JiYodD1cImVuZFwiKSx0fSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKHQpe3JldHVybiB0PXR8fFwic3RyZXRjaFwiLFwiZmxleC1zdGFydFwiPT10P3Q9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dCYmKHQ9XCJlbmRcIiksdH0pKChmdW5jdGlvbigpe3ZhciB0PVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHQpe3JldHVybiB0PXR8fFwic3RyZXRjaFwifSkoKGZ1bmN0aW9uKCl7dmFyIHQ9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gdD10LnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tczogfmAoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8XCJzdHJldGNoXCIsXCJmbGV4LXN0YXJ0XCI9PXQ/dD1cInN0YXJ0XCI6XCJmbGV4LWVuZFwiPT10JiYodD1cImVuZFwiKSx0fSkoKGZ1bmN0aW9uKCl7dmFyIHQ9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gdD10LnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJveC1hbGlnbjogQHByb2Nlc3Nfb2xkZXJ3ZWJraXQ7XG5cdC1tb3otYm94LWFsaWduOiBAcHJvY2Vzc19tb3o7XG5cdC13ZWJraXQtYWxpZ24taXRlbXM6IEBwcm9jZXNzO1xuXHQtbXMtZmxleC1hbGlnbjogQHByb2Nlc3NfbXM7XG5cdGFsaWduLWl0ZW1zOiBAcHJvY2Vzcztcbn1cblxuLmFsaWduLXNlbGYoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbih0KXtyZXR1cm4gdD10fHxcImF1dG9cIn0pKChmdW5jdGlvbigpe3ZhciB0PVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbXM6IH5gKGZ1bmN0aW9uKHQpe3JldHVybiB0PXR8fFwiYXV0b1wiLFwiZmxleC1zdGFydFwiPT10P3Q9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dCYmKHQ9XCJlbmRcIiksdH0pKChmdW5jdGlvbigpe3ZhciB0PVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1hbGlnbi1zZWxmOiBAcHJvY2Vzcztcblx0LW1zLWZsZXgtaXRlbS1hbGlnbjogQHByb2Nlc3NfbXM7XG5cdGFsaWduLXNlbGY6IEBwcm9jZXNzO1xufVxuXG4uYW5pbWF0aW9uKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8XCJub25lXCIsL15bXiwgXSosLy50ZXN0KHQpJiYodD10LnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHR9KSgoZnVuY3Rpb24oKXt2YXIgdD1cIkB7YXJndW1lbnRzfVwiO3JldHVybiB0PXQucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBAcHJvY2Vzcztcblx0LW1vei1hbmltYXRpb246IEBwcm9jZXNzO1xuXHQtby1hbmltYXRpb246IEBwcm9jZXNzO1xuXHRhbmltYXRpb246IEBwcm9jZXNzO1xufVxuXG4uYW5pbWF0aW9uLWRlbGF5KC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24odCl7dD10fHxcIjBcIjt2YXIgcj0vKD86XFxkKSg/Om1zfHMpL2dpLGU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHIudGVzdCh0KXx8XCIwXCI9PT10fHwodD10LnJlcGxhY2UoZSxmdW5jdGlvbih0KXtyZXR1cm4gdCs9cGFyc2VGbG9hdCh0LDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksdH0pKChmdW5jdGlvbigpe3ZhciB0PVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IEBwcm9jZXNzO1xuXHQtbW96LWFuaW1hdGlvbi1kZWxheTogQHByb2Nlc3M7XG5cdC1vLWFuaW1hdGlvbi1kZWxheTogQHByb2Nlc3M7XG5cdGFuaW1hdGlvbi1kZWxheTogQHByb2Nlc3M7XG59XG5cbi5hbmltYXRpb24tZGlyZWN0aW9uKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24ocil7cmV0dXJuIHJ8fFwibm9ybWFsXCJ9KSgoZnVuY3Rpb24oKXt2YXIgcj1cIkB7YXJndW1lbnRzfVwiO3JldHVybiByPXIucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogQHByb2Nlc3M7XG5cdC1tb3otYW5pbWF0aW9uLWRpcmVjdGlvbjogQHByb2Nlc3M7XG5cdC1vLWFuaW1hdGlvbi1kaXJlY3Rpb246IEBwcm9jZXNzO1xuXHRhbmltYXRpb24tZGlyZWN0aW9uOiBAcHJvY2Vzcztcbn1cblxuLmFuaW1hdGlvbi1kdXJhdGlvbiguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHIpe3I9cnx8XCIwXCI7dmFyIHQ9L21zfHMvZ2ksZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gdC50ZXN0KHIpfHxcIjBcIj09PXJ8fChyPXIucmVwbGFjZShlLGZ1bmN0aW9uKHIpe3JldHVybiByKz1wYXJzZUZsb2F0KHIsMTApPjEwP1wibXNcIjpcInNcIn0pKSxyfSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7XG5cdC1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOiBAcHJvY2Vzcztcblx0LW8tYW5pbWF0aW9uLWR1cmF0aW9uOiBAcHJvY2Vzcztcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiBAcHJvY2Vzcztcbn1cblxuLmFuaW1hdGlvbi1maWxsLW1vZGUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihyKXtyZXR1cm4gcnx8XCJub25lXCJ9KSgoZnVuY3Rpb24oKXt2YXIgcj1cIkB7YXJndW1lbnRzfVwiO3JldHVybiByPXIucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogQHByb2Nlc3M7XG5cdC1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTogQHByb2Nlc3M7XG5cdC1vLWFuaW1hdGlvbi1maWxsLW1vZGU6IEBwcm9jZXNzO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBAcHJvY2Vzcztcbn1cblxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihyKXtyZXR1cm4gcnx8XCIwXCJ9KSgoZnVuY3Rpb24oKXt2YXIgcj1cIkB7YXJndW1lbnRzfVwiO3JldHVybiByPXIucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQHByb2Nlc3M7XG5cdC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQHByb2Nlc3M7XG5cdC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBwcm9jZXNzO1xuXHRhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAcHJvY2Vzcztcbn1cblxuLmFuaW1hdGlvbi1uYW1lKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24ocil7cmV0dXJuIHJ8fFwibm9uZVwifSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAcHJvY2Vzcztcblx0LW1vei1hbmltYXRpb24tbmFtZTogQHByb2Nlc3M7XG5cdC1vLWFuaW1hdGlvbi1uYW1lOiBAcHJvY2Vzcztcblx0YW5pbWF0aW9uLW5hbWU6IEBwcm9jZXNzO1xufVxuXG4uYW5pbWF0aW9uLXBsYXktc3RhdGUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihyKXtyZXR1cm4gcnx8XCJydW5uaW5nXCJ9KSgoZnVuY3Rpb24oKXt2YXIgcj1cIkB7YXJndW1lbnRzfVwiO3JldHVybiByPXIucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBwcm9jZXNzO1xuXHQtbW96LWFuaW1hdGlvbi1wbGF5LXN0YXRlOiBAcHJvY2Vzcztcblx0LW8tYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBwcm9jZXNzO1xuXHRhbmltYXRpb24tcGxheS1zdGF0ZTogQHByb2Nlc3M7XG59XG5cbi5hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24ocil7cmV0dXJuIHJ8fFwiZWFzZVwifSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBwcm9jZXNzO1xuXHQtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBwcm9jZXNzO1xuXHQtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2Vzcztcblx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHByb2Nlc3M7XG59XG5cbi5hcHBlYXJhbmNlKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24ocil7cmV0dXJuIHJ8fFwibm9uZVwifSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IEBwcm9jZXNzO1xuXHQtbW96LWFwcGVhcmFuY2U6IEBwcm9jZXNzO1xuXHRhcHBlYXJhbmNlOiBAcHJvY2Vzcztcbn1cblxuLmJhY2tmYWNlLXZpc2liaWxpdHkoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihyKXtyZXR1cm4gcnx8XCJ2aXNpYmxlXCJ9KSgoZnVuY3Rpb24oKXt2YXIgcj1cIkB7YXJndW1lbnRzfVwiO3JldHVybiByPXIucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7XG5cdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7XG5cdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBAcHJvY2Vzcztcblx0LW8tYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IEBwcm9jZXNzO1xufVxuXG4uYmFja2dyb3VuZC1jbGlwKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24ocil7cmV0dXJuIHJ8fFwiYm9yZGVyLWJveFwifSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJhY2tncm91bmQtY2xpcDogQHByb2Nlc3M7XG5cdC1tb3otYmFja2dyb3VuZC1jbGlwOiBAcHJvY2Vzcztcblx0YmFja2dyb3VuZC1jbGlwOiBAcHJvY2Vzcztcbn1cblxuLmJhY2tncm91bmQtaW1hZ2UoLi4uKSB7XG5cdEBwcm9jZXNzX21zOiB+YChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlLHIsbixhLHMsaSx1LG8sZz1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XCIsYz0wLGw9MCxmPVwiXCIsZD1bXTtpZighdClyZXR1cm4gdDtkbyBlPXQuY2hhckNvZGVBdChjKyspLHI9dC5jaGFyQ29kZUF0KGMrKyksbj10LmNoYXJDb2RlQXQoYysrKSxvPWU8PDE2fHI8PDh8bixhPTYzJm8+PjE4LHM9NjMmbz4+MTIsaT02MyZvPj42LHU9NjMmbyxkW2wrK109Zy5jaGFyQXQoYSkrZy5jaGFyQXQocykrZy5jaGFyQXQoaSkrZy5jaGFyQXQodSk7d2hpbGUoYzx0Lmxlbmd0aCk7Zj1kLmpvaW4oXCJcIik7dmFyIHA9dC5sZW5ndGglMztyZXR1cm4ocD9mLnNsaWNlKDAscC0zKTpmKStcIj09PVwiLnNsaWNlKHB8fDMpfWlmKHQ9dHx8ODEyMTk5MSw4MTIxOTkxPT10KXJldHVybiB0O3ZhciByPS9saW5lYXJ8cmFkaWFsL2cudGVzdCh0KSYmdC5zcGxpdCgvLCg/PVxccyooPzpsaW5lYXJ8cmFkaWFsfHVybCkpL2cpLG49W10sYT17XCJ0byBib3R0b21cIjoneDE9XCIwJVwiIHkxPVwiMCVcIiB4Mj1cIjAlXCIgeTI9XCIxMDAlXCInLFwidG8gbGVmdFwiOid4MT1cIjEwMCVcIiB5MT1cIjAlXCIgeDI9XCIwJVwiIHkyPVwiMCVcIicsXCJ0byB0b3BcIjoneDE9XCIwJVwiIHkxPVwiMTAwJVwiIHgyPVwiMCVcIiB5Mj1cIjAlXCInLFwidG8gcmlnaHRcIjoneDE9XCIwJVwiIHkxPVwiMCVcIiB4Mj1cIjEwMCVcIiB5Mj1cIjAlXCInLGdldFwidG9wXCIoKXtyZXR1cm4gdGhpc1tcInRvIGJvdHRvbVwiXX0sZ2V0XCIxODBkZWdcIigpe3JldHVybiB0aGlzW1widG8gYm90dG9tXCJdfSxnZXRcInJpZ2h0XCIoKXtyZXR1cm4gdGhpc1tcInRvIGxlZnRcIl19LGdldFwiMjcwZGVnXCIoKXtyZXR1cm4gdGhpc1tcInRvIGxlZnRcIl19LGdldFwiYm90dG9tXCIoKXtyZXR1cm4gdGhpc1tcInRvIHRvcFwiXX0sZ2V0XCI5MGRlZ1wiKCl7cmV0dXJuIHRoaXNbXCJ0byByaWdodFwiXX0sZ2V0XCIwZGVnXCIoKXtyZXR1cm4gdGhpc1tcInRvIHRvcFwiXX0sZ2V0XCJsZWZ0XCIoKXtyZXR1cm4gdGhpc1tcInRvIHJpZ2h0XCJdfSxcIi00NWRlZ1wiOid4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMTAwJVwiIHkyPVwiMTAwJVwiJyxcIjQ1ZGVnXCI6J3gxPVwiMCVcIiB5MT1cIjEwMCVcIiB4Mj1cIjEwMCVcIiB5Mj1cIjAlXCInLFwiZWxsaXBzZSBhdCBjZW50ZXJcIjonY3g9XCI1MCVcIiBjeT1cIjUwJVwiIHI9XCI3NSVcIicsZ2V0XCIxMzVkZWdcIigpe3JldHVybiB0aGlzW1wiLTQ1ZGVnXCJdfX0scz17dXJpX2RhdGE6XCJ1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxcIix4bWw6Jzw/eG1sIHZlcnNpb249XCIxLjBcIiA/Picsc3ZnX3N0YXJ0Oic8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAxIDFcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiPicsbGluZWFyX2dyYWRpZW50X3N0YXJ0Oic8bGluZWFyR3JhZGllbnQgaWQ9XCJsZXNzaGF0LWdlbmVyYXRlZFwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiJyxyYWRpYWxfZ3JhZGllbnRfc3RhcnQ6JzxyYWRpYWxHcmFkaWVudCBpZD1cImxlc3NoYXQtZ2VuZXJhdGVkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCInLGxpbmVhcl9ncmFkaWVudF9lbmQ6XCI8L2xpbmVhckdyYWRpZW50PlwiLHJhZGlhbF9ncmFkaWVudF9lbmQ6XCI8L3JhZGlhbEdyYWRpZW50PlwiLHJlY3RfbGluZWFyOic8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiIGZpbGw9XCJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKVwiIC8+JyxyZWN0X3JhZGlhbDonPHJlY3QgeD1cIi01MFwiIHk9XCItNTBcIiB3aWR0aD1cIjEwMVwiIGhlaWdodD1cIjEwMVwiIGZpbGw9XCJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKVwiIC8+JyxzdmdfZW5kOlwiPC9zdmc+XCJ9O2lmKHIubGVuZ3RoKXtyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9e307aWYoT2JqZWN0LmtleXMoYSkuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gdC5pbmRleE9mKHIpPj0wPyhlLnN2Z19kaXJlY3Rpb249YVtyXSwhMCk6KGUuc3ZnX2RpcmVjdGlvbj0hMSx2b2lkIDApfSksL2xpbmVhci8udGVzdCh0KSllLnN2Z190eXBlPVwibGluZWFyXCI7ZWxzZSBpZigvcmFkaWFsLy50ZXN0KHQpKWUuc3ZnX3R5cGU9XCJyYWRpYWxcIjtlbHNlIGlmKCEvbGluZWFyLy50ZXN0KHQpJiYhL3JhZGlhbC8udGVzdCh0KSlyZXR1cm4gZS51cmw9dC50cmltKCksZS5zdmdfdHlwZT1cInVybFwiLGUuc3ZnX2RpcmVjdGlvbj0hMCxuLnB1c2goZSksITE7dmFyIHI9dC5tYXRjaCgvcmdifCNbYS16QS1aMC05XXxoc2wvZykubGVuZ3RoO2Uuc3ZnX3N0b3BzPVtdLHQ9dC5yZXBsYWNlKC90cmFuc3BhcmVudC9nLFwicmdiYSgwLDAsMCwwKVwiKSx0Lm1hdGNoKC8jW2EtekEtWjAtOV0vZykmJnQubWF0Y2goLygjW2EtekEtWjAtOV0rKVxccyooXFxkKyUpPy9nKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Q9dC5zcGxpdChcIiBcIiksZS5zdmdfc3RvcHMucHVzaCgnPHN0b3Agb2Zmc2V0PVwiJysodFsxXXx8ITEpKydcIiBzdG9wLWNvbG9yPVwiJyt0WzBdKydcIiBzdG9wLW9wYWNpdHk9XCIxXCIvPicpfSksdC5tYXRjaCgvcmdiYT9cXChcXGQrLFxccypcXGQrLFxccypcXGQrKD86LFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspKT9cXCkvZykmJnQucmVwbGFjZSgvcmdiYT9cXCgoXFxkKyxcXHMqXFxkKyxcXHMqXFxkKykoPzosXFxzKigwfDF8XFwuXFxkK3wwXFwuXFxkKykpP1xcKVxccyooXFxkKyUpPy9nLGZ1bmN0aW9uKHQscixuLGEpe2Uuc3ZnX3N0b3BzLnB1c2goJzxzdG9wIG9mZnNldD1cIicrKGF8fCExKSsnXCIgc3RvcC1jb2xvcj1cInJnYignK3IrJylcIiBzdG9wLW9wYWNpdHk9XCInKyhufHwxKSsnXCIvPicpfSksdC5tYXRjaCgvaHNsYT9cXCgoXFxkKyxcXHMqXFxkKyUsXFxzKlxcZCslKSxcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKVxcKS9nKSYmdC5yZXBsYWNlKC9oc2xhP1xcKChcXGQrLFxccypcXGQrJSxcXHMqXFxkKyUpLFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspXFwpXFxzKihcXGQrJSk/L2csZnVuY3Rpb24odCxyLG4sYSl7ZS5zdmdfc3RvcHMucHVzaCgnPHN0b3Agb2Zmc2V0PVwiJysoYXx8ITEpKydcIiBzdG9wLWNvbG9yPVwiaHNsKCcrcisnKVwiIHN0b3Atb3BhY2l0eT1cIicrKG58fDEpKydcIi8+Jyl9KTt2YXIgcz1NYXRoLmZsb29yKDEwMC8oci0xKSk7ZS5zdmdfc3RvcHMuZm9yRWFjaChmdW5jdGlvbih0LHIpey9vZmZzZXQ9XCJmYWxzZVwiLy50ZXN0KHQpJiYoZS5zdmdfc3RvcHNbcl09dC5yZXBsYWNlKC9vZmZzZXQ9XCJmYWxzZVwiLywnb2Zmc2V0PVwiJytzKnIrJyVcIicpKX0pLGUuc3ZnX3N0b3BzLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10Lm1hdGNoKC9vZmZzZXQ9XCIoXFxkKyklXCIvKSxlPWUubWF0Y2goL29mZnNldD1cIihcXGQrKSVcIi8pLDI9PXQubGVuZ3RoJiYyPT1lLmxlbmd0aD90WzFdLWVbMV06dm9pZCAwfSksbi5wdXNoKGUpfSk7dmFyIGk9W10sdT1uLmV2ZXJ5KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KWlmKDA9PXRbZV18fDA9PXRbZV0ubGVuZ3RoKXJldHVybiExO3JldHVybiEwfSk7aWYoIXUpcmV0dXJuIDgxMjE5OTE7bi5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7KFwibGluZWFyXCI9PXQuc3ZnX3R5cGV8fFwicmFkaWFsXCI9PXQuc3ZnX3R5cGUpJiYoaVtlXT1zLnhtbCtzLnN2Z19zdGFydCksXCJsaW5lYXJcIj09dC5zdmdfdHlwZT8oaVtlXSs9cy5saW5lYXJfZ3JhZGllbnRfc3RhcnQrXCIgXCIrdC5zdmdfZGlyZWN0aW9uK1wiPlwiLHQuc3ZnX3N0b3BzLmZvckVhY2goZnVuY3Rpb24odCl7aVtlXSs9dH0pLGlbZV0rPXMubGluZWFyX2dyYWRpZW50X2VuZCxpW2VdKz1zLnJlY3RfbGluZWFyLGlbZV0rPXMuc3ZnX2VuZCk6XCJyYWRpYWxcIj09dC5zdmdfdHlwZT8oaVtlXSs9cy5yYWRpYWxfZ3JhZGllbnRfc3RhcnQrXCIgXCIrdC5zdmdfZGlyZWN0aW9uK1wiPlwiLHQuc3ZnX3N0b3BzLmZvckVhY2goZnVuY3Rpb24odCl7aVtlXSs9dH0pLGlbZV0rPXMucmFkaWFsX2dyYWRpZW50X2VuZCxpW2VdKz1zLnJlY3RfcmFkaWFsLGlbZV0rPXMuc3ZnX2VuZCk6XCJ1cmxcIj09dC5zdmdfdHlwZSYmKGlbZV09dC51cmwpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQscil7LzxcXD94bWwgdmVyc2lvbj1cIjEuMFwiIFxcPz4vZy50ZXN0KHQpJiYoaVtyXT1zLnVyaV9kYXRhK2UodCkrXCIpXCIpfSksdD1pLmpvaW4oXCIsXCIpfXJldHVybiB0fSkoKGZ1bmN0aW9uKCl7dmFyIHI9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gcj1yLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc193ZWJraXQ6IH5gKGZ1bmN0aW9uKHQpe2lmKHQ9dHx8ODEyMTk5MSw4MTIxOTkxPT10KXJldHVybiB0O3ZhciBlPXtcInRvIGJvdHRvbVwiOlwidG9wXCIsXCJ0byBsZWZ0XCI6XCJyaWdodFwiLFwidG8gdG9wXCI6XCJib3R0b21cIixcInRvIHJpZ2h0XCI6XCJsZWZ0XCIsXCJlbGxpcHNlIGF0IGNlbnRlclwiOlwiY2VudGVyLCBlbGxpcHNlIGNvdmVyXCIsXCJjaXJjbGUgY2xvc2VzdC1zaWRlXCI6XCJjZW50ZXIgY2VudGVyLCBjaXJjbGUgY29udGFpblwiLFwiY2lyY2xlIGZhcnRoZXN0LWNvcm5lclwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvdmVyXCIsXCJjaXJjbGUgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvdmVyXCIsXCJlbGxpcHNlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb250YWluXCIsXCJlbGxpcHNlIGZhcnRoZXN0LWNvcm5lclwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1zaWRlXCI6XCJjZW50ZXIgY2VudGVyLCBlbGxpcHNlIGNvdmVyXCJ9LHI9LyhyYWRpYWwtZ3JhZGllbnRcXCgpKFthLXotIF0rKWF0XFxzKyhcXHcrJT8pXFxzKihcXHcqJT8pL2csbj1PYmplY3Qua2V5cyhlKTtyZXR1cm4gbi5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiB0LmluZGV4T2Yobik+PTA/KHQ9dC5yZXBsYWNlKG5ldyBSZWdFeHAobitcIig/IVsgYS16MC05XSlcIixcImdcIiksZVtuXSksITApOihyLnRlc3QodCkmJih0PXQucmVwbGFjZShyLGZ1bmN0aW9uKHQsZSxyLG4sYSl7cmV0dXJuIGUudHJpbSgpK24udHJpbSgpK1wiIFwiK2EudHJpbSgpK1wiLFwiK3IucmVwbGFjZSgvY2xvc2VzdC1zaWRlL2csXCJjb250YWluXCIpLnJlcGxhY2UoL2ZhcnRoZXN0LWNvcm5lci9nLFwiY292ZXJcIikudHJpbSgpfSkpLHZvaWQgMCl9KSx0PXQucmVwbGFjZSgvKFxcZCspXFxzKmRlZy9nLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIDkwLWUrXCJkZWdcIn0pLnJlcGxhY2UoLyhsaW5lYXJ8cmFkaWFsKS1ncmFkaWVudC9nLFwiLXdlYmtpdC0kMS1ncmFkaWVudFwiKX0pKChmdW5jdGlvbigpe3ZhciB0PVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbihlKXtpZihlPWV8fDgxMjE5OTEsODEyMTk5MT09ZSlyZXR1cm4gZTt2YXIgdD17XCJ0byBib3R0b21cIjpcInRvcFwiLFwidG8gbGVmdFwiOlwicmlnaHRcIixcInRvIHRvcFwiOlwiYm90dG9tXCIsXCJ0byByaWdodFwiOlwibGVmdFwiLFwiZWxsaXBzZSBhdCBjZW50ZXJcIjpcImNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiY2lyY2xlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvbnRhaW5cIixcImNpcmNsZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiY2lyY2xlIGZhcnRoZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiZWxsaXBzZSBjbG9zZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY29udGFpblwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY292ZXJcIixcImVsbGlwc2UgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwifSxyPS8ocmFkaWFsLWdyYWRpZW50XFwoKShbYS16LSBdKylhdFxccysoXFx3KyU/KVxccyooXFx3KiU/KS9nLG49T2JqZWN0LmtleXModCk7cmV0dXJuIG4uc29tZShmdW5jdGlvbihuKXtyZXR1cm4gZS5pbmRleE9mKG4pPj0wPyhlPWUucmVwbGFjZShuZXcgUmVnRXhwKG4rXCIoPyFbIGEtejAtOV0pXCIsXCJnXCIpLHRbbl0pLCEwKTooci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlLHQscixuLGEpe3JldHVybiB0LnRyaW0oKStuLnRyaW0oKStcIiBcIithLnRyaW0oKStcIixcIityLnJlcGxhY2UoL2Nsb3Nlc3Qtc2lkZS9nLFwiY29udGFpblwiKS5yZXBsYWNlKC9mYXJ0aGVzdC1jb3JuZXIvZyxcImNvdmVyXCIpLnRyaW0oKX0pKSx2b2lkIDApfSksZT1lLnJlcGxhY2UoLyhcXGQrKVxccypkZWcvZyxmdW5jdGlvbihlLHQpe3JldHVybiA5MC10K1wiZGVnXCJ9KS5yZXBsYWNlKC8obGluZWFyfHJhZGlhbCktZ3JhZGllbnQvZyxcIi1tb3otJDEtZ3JhZGllbnRcIil9KSgoZnVuY3Rpb24oKXt2YXIgdD1cIkB7YXJndW1lbnRzfVwiO3JldHVybiB0PXQucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzX29wZXJhOiB+YChmdW5jdGlvbihlKXtpZihlPWV8fDgxMjE5OTEsODEyMTk5MT09ZSlyZXR1cm4gZTt2YXIgdD17XCJ0byBib3R0b21cIjpcInRvcFwiLFwidG8gbGVmdFwiOlwicmlnaHRcIixcInRvIHRvcFwiOlwiYm90dG9tXCIsXCJ0byByaWdodFwiOlwibGVmdFwiLFwiZWxsaXBzZSBhdCBjZW50ZXJcIjpcImNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiY2lyY2xlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvbnRhaW5cIixcImNpcmNsZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiY2lyY2xlIGZhcnRoZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiZWxsaXBzZSBjbG9zZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY29udGFpblwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY292ZXJcIixcImVsbGlwc2UgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwifSxyPS8ocmFkaWFsLWdyYWRpZW50XFwoKShbYS16LSBdKylhdFxccysoXFx3KyU/KVxccyooXFx3KiU/KS9nLG49T2JqZWN0LmtleXModCk7cmV0dXJuIG4uc29tZShmdW5jdGlvbihuKXtyZXR1cm4gZS5pbmRleE9mKG4pPj0wPyhlPWUucmVwbGFjZShuZXcgUmVnRXhwKG4rXCIoPyFbIGEtejAtOV0pXCIsXCJnXCIpLHRbbl0pLCEwKTooci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlLHQscixuLGEpe3JldHVybiB0LnRyaW0oKStuLnRyaW0oKStcIiBcIithLnRyaW0oKStcIixcIityLnJlcGxhY2UoL2Nsb3Nlc3Qtc2lkZS9nLFwiY29udGFpblwiKS5yZXBsYWNlKC9mYXJ0aGVzdC1jb3JuZXIvZyxcImNvdmVyXCIpLnRyaW0oKX0pKSx2b2lkIDApfSksZT1lLnJlcGxhY2UoLyhcXGQrKVxccypkZWcvZyxmdW5jdGlvbihlLHQpe3JldHVybiA5MC10K1wiZGVnXCJ9KS5yZXBsYWNlKC8obGluZWFyfHJhZGlhbCktZ3JhZGllbnQvZyxcIi1vLSQxLWdyYWRpZW50XCIpfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7aWYoZT1lfHw4MTIxOTkxLDgxMjE5OTE9PWUpcmV0dXJuIGU7dmFyIHQ9e3RvcDpcInRvIGJvdHRvbVwiLHJpZ2h0OlwidG8gbGVmdFwiLGJvdHRvbTpcInRvIHRvcFwiLGxlZnQ6XCJ0byByaWdodFwifSxyPU9iamVjdC5rZXlzKHQpO3JldHVybiByLnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIGUuaW5kZXhPZihyKT49MCYmIW5ldyBSZWdFeHAoXCJ0b1xcXFxzK1wiK3IrXCJ8YXRcXFxccytcIityLFwiZ1wiKS50ZXN0KGUpPyhlPWUucmVwbGFjZShuZXcgUmVnRXhwKHIpLHRbcl0pLCEwKTp2b2lkIDB9KSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBAcHJvY2Vzc19tcztcblx0YmFja2dyb3VuZC1pbWFnZTogQHByb2Nlc3Nfd2Via2l0O1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBAcHJvY2Vzc19tb3o7XG5cdGJhY2tncm91bmQtaW1hZ2U6IEBwcm9jZXNzX29wZXJhO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBAcHJvY2Vzcztcbn1cblxuLmJhY2tncm91bmQtb3JpZ2luKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGV8fFwicGFkZGluZy1ib3hcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjogQHByb2Nlc3M7XG5cdC1tb3otYmFja2dyb3VuZC1vcmlnaW46IEBwcm9jZXNzO1xuXHRiYWNrZ3JvdW5kLW9yaWdpbjogQHByb2Nlc3M7XG59XG5cbi5iYWNrZ3JvdW5kLXNpemUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiYXV0byBhdXRvXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogQHByb2Nlc3M7XG5cdC1tb3otYmFja2dyb3VuZC1zaXplOiBAcHJvY2Vzcztcblx0YmFja2dyb3VuZC1zaXplOiBAcHJvY2Vzcztcbn1cblxuLmJsdXIoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciB0PS9cXGQvZ2kscj0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gdC50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1maWx0ZXI6IGJsdXIoQHByb2Nlc3MpO1xuXHQtbW96LWZpbHRlcjogYmx1cihAcHJvY2Vzcyk7XG5cdC1tcy1maWx0ZXI6IGJsdXIoQHByb2Nlc3MpO1xuXHRmaWx0ZXI6IGJsdXIoQHByb2Nlc3MpO1xufVxuXG4uYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBwcm9jZXNzOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cdC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiBAcHJvY2VzczsgLW1vei1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBwcm9jZXNzOyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG4uYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciB0PS9cXGQvZ2kscj0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QoZSkmJihlPWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksdC50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHByb2Nlc3M7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblx0LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiBAcHJvY2VzczsgLW1vei1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcHJvY2VzczsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuLmJvcmRlci1pbWFnZSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fDgxMjE5OTEsL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYm9yZGVyLWltYWdlOiBAcHJvY2Vzcztcblx0LW1vei1ib3JkZXItaW1hZ2U6IEBwcm9jZXNzO1xuXHQtby1ib3JkZXItaW1hZ2U6IEBwcm9jZXNzO1xuXHRib3JkZXItaW1hZ2U6IEBwcm9jZXNzO1xufVxuXG4uYm9yZGVyLXJhZGl1cyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IEBwcm9jZXNzOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogQHByb2Nlc3M7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuXHRib3JkZXItcmFkaXVzOiBAcHJvY2VzczsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuLmJvcmRlci10b3AtbGVmdC1yYWRpdXMoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciB0PS9cXGQvZ2kscj0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QoZSkmJihlPWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksdC50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXHQtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogQHByb2Nlc3M7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuLmJvcmRlci10b3AtcmlnaHQtcmFkaXVzKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgdD0vXFxkL2dpLHI9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHQudGVzdChlKSYmKGU9ZS5yZXBsYWNlKHIsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUmJmV8fGUrXCJweFwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEBwcm9jZXNzOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cdC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogQHByb2Nlc3M7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHByb2Nlc3M7IGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbi5ib3gtc2hhZG93KC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgdD0vXFxkL2dpLHI9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHQudGVzdChlKSYmKGU9ZS5yZXBsYWNlKHIsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUmJmV8fGUrXCJweFwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogQHByb2Nlc3M7XG5cdC1tb3otYm94LXNoYWRvdzogQHByb2Nlc3M7XG5cdGJveC1zaGFkb3c6IEBwcm9jZXNzO1xufVxuXG4uYm94LXNpemluZyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiY29udGVudC1ib3hcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBAcHJvY2Vzcztcblx0LW1vei1ib3gtc2l6aW5nOiBAcHJvY2Vzcztcblx0Ym94LXNpemluZzogQHByb2Nlc3M7XG59XG5cbi5icmlnaHRuZXNzKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCIxXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtZmlsdGVyOiBicmlnaHRuZXNzKEBwcm9jZXNzKTtcblx0LW1vei1maWx0ZXI6IGJyaWdodG5lc3MoQHByb2Nlc3MpO1xuXHQtbXMtZmlsdGVyOiBicmlnaHRuZXNzKEBwcm9jZXNzKTtcblx0ZmlsdGVyOiBicmlnaHRuZXNzKEBwcm9jZXNzKTtcbn1cblxuLmNhbGMoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQscil7dmFyIGE9XCIpO1xcblwiLGM9bi5zcGxpdChcIixcIiksaT1jWzBdK1wiOlwiK3QrXCIoXCIrKGNbMV0udHJpbSgpfHwwKSthO1wic3RhcnRcIj09cj9lPVwiMDtcXG5cIitpOmUrPWl9ZT1lfHw4MTIxOTkxO3ZhciByPVwiQHtzdGF0ZX1cIixuPWU7aWYoODEyMTk5MT09ZSlyZXR1cm4gZTtzd2l0Y2gocil7Y2FzZVwiMVwiOnQoXCItd2Via2l0LWNhbGNcIixcInN0YXJ0XCIpLHQoXCItbW96LWNhbGNcIiksdChcImNhbGNcIik7YnJlYWs7Y2FzZVwiMlwiOnQoXCItd2Via2l0LWNhbGNcIixcInN0YXJ0XCIpLHQoXCItbW96LWNhbGNcIik7YnJlYWs7Y2FzZVwiM1wiOnQoXCItd2Via2l0LWNhbGNcIixcInN0YXJ0XCIpLHQoXCJjYWxjXCIpO2JyZWFrO2Nhc2VcIjRcIjp0KFwiLXdlYmtpdC1jYWxjXCIsXCJzdGFydFwiKTticmVhaztjYXNlXCI1XCI6dChcIi1tb3otY2FsY1wiLFwic3RhcnRcIiksdChcImNhbGNcIik7YnJlYWs7Y2FzZVwiNlwiOnQoXCItbW96LWNhbGNcIixcInN0YXJ0XCIpO2JyZWFrO2Nhc2VcIjdcIjp0KFwiY2FsY1wiLFwic3RhcnRcIil9cmV0dXJuIGU9ZS5yZXBsYWNlKC87JC9nLFwiXCIpfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAc3RhdGU6IDE7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7XG5cbn1cblxuLmNvbHVtbi1jb3VudCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiYXV0b1wifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWNvbHVtbi1jb3VudDogQHByb2Nlc3M7XG5cdC1tb3otY29sdW1uLWNvdW50OiBAcHJvY2Vzcztcblx0Y29sdW1uLWNvdW50OiBAcHJvY2Vzcztcbn1cblxuLmNvbHVtbi1nYXAoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwibm9ybWFsXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiB0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWNvbHVtbi1nYXA6IEBwcm9jZXNzO1xuXHQtbW96LWNvbHVtbi1nYXA6IEBwcm9jZXNzO1xuXHRjb2x1bW4tZ2FwOiBAcHJvY2Vzcztcbn1cblxuLmNvbHVtbi1ydWxlKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIm1lZGl1bSBub25lIGJsYWNrXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWNvbHVtbi1ydWxlOiBAcHJvY2Vzcztcblx0LW1vei1jb2x1bW4tcnVsZTogQHByb2Nlc3M7XG5cdGNvbHVtbi1ydWxlOiBAcHJvY2Vzcztcbn1cblxuLmNvbHVtbi13aWR0aCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhdXRvXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiB0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWNvbHVtbi13aWR0aDogQHByb2Nlc3M7XG5cdC1tb3otY29sdW1uLXdpZHRoOiBAcHJvY2Vzcztcblx0Y29sdW1uLXdpZHRoOiBAcHJvY2Vzcztcbn1cblxuLmNvbHVtbnMoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiYXV0byBhdXRvXCI7dmFyIHQ9L15cXGQrJC87cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIiksZT1lLnNwbGl0KFwiIFwiKSksdC50ZXN0KGVbMF0pJiYoZVswXT1lWzBdK1wicHhcIiksZS5qb2luKFwiIFwiKX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1jb2x1bW5zOiBAcHJvY2Vzcztcblx0LW1vei1jb2x1bW5zOiBAcHJvY2Vzcztcblx0Y29sdW1uczogQHByb2Nlc3M7XG59XG5cbi5jb250cmFzdCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIxMDAlXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiB0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiJVwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtZmlsdGVyOiB+XCJjb250cmFzdChAe3Byb2Nlc3N9KVwiO1xuXHQtbW96LWZpbHRlcjogflwiY29udHJhc3QoQHtwcm9jZXNzfSlcIjtcblx0LW1zLWZpbHRlcjogflwiY29udHJhc3QoQHtwcm9jZXNzfSlcIjtcblx0ZmlsdGVyOiB+XCJjb250cmFzdChAe3Byb2Nlc3N9KVwiO1xufVxuXG4uZGlzcGxheSguLi4pIHtcblx0QHByb2Nlc3Nfb2xkd2Via2l0OiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1cImZsZXhcIj09ZXx8XCJpbmxpbmUtZmxleFwiPT1lP1wiLXdlYmtpdC1ib3hcIjo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPVwiZmxleFwiPT1lfHxcImlubGluZS1mbGV4XCI9PWU/XCItbW96LWJveFwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzX3dlYmtpdDogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9XCJmbGV4XCI9PWV8fFwiaW5saW5lLWZsZXhcIj09ZT9cIi13ZWJraXQtXCIrZTo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9XCJmbGV4XCI9PWU/XCItbXMtZmxleGJveFwiOlwiaW5saW5lLWZsZXhcIj09ZT9cIi1tcy1pbmxpbmUtZmxleGJveFwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm5cImZsZXhcIiE9ZSYmXCJpbmxpbmUtZmxleFwiIT1lJiYoZT04MTIxOTkxKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRkaXNwbGF5OiBAcHJvY2Vzc19vbGR3ZWJraXQ7XG5cdGRpc3BsYXk6IEBwcm9jZXNzX21vejtcblx0ZGlzcGxheTogQHByb2Nlc3Nfd2Via2l0O1xuXHRkaXNwbGF5OiBAcHJvY2Vzc19tcztcblx0ZGlzcGxheTogQHByb2Nlc3M7XG59XG5cbi5kcm9wLXNoYWRvdyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2lmKGU9ZXx8ODEyMTk5MSw4MTIxOTkxPT1lKXJldHVybiBlO3ZhciB0PS9cXGQvZ2kscj0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QoZSkmJihlPWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksdC50ZXN0KGUpJiYoZT1lLnJlcGxhY2UocixmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTtcblx0LW1vei1maWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTtcblx0LW1zLWZpbHRlcjogZHJvcC1zaGFkb3coQHByb2Nlc3MpO1xuXHRmaWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTtcbn1cblxuLmZpbHRlciguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwibm9uZVwiLC9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWZpbHRlcjogQHByb2Nlc3M7XG5cdC1tb3otZmlsdGVyOiBAcHJvY2Vzcztcblx0LW1zLWZpbHRlcjogQHByb2Nlc3M7XG5cdGZpbHRlcjogQHByb2Nlc3M7XG59XG5cbi5mbGV4KC4uLikge1xuXHRAcHJvY2Vzc19vbGRlcndlYmtpdDogfmAoZnVuY3Rpb24oZSl7cmV0dXJuL15cXGQrLy50ZXN0KGUpP2U9ZS5tYXRjaCgvXlxcZCsvKVswXTpcIlwiPT1lJiYoZT1cIjBcIiksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbihlKXtyZXR1cm4vXlxcZCsvLnRlc3QoZSk/ZT1lLm1hdGNoKC9eXFxkKy8pWzBdOlwiXCI9PWUmJihlPVwiMFwiKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCIwIDEgYXV0b1wiLC9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJveC1mbGV4OiBAcHJvY2Vzc19vbGRlcndlYmtpdDtcblx0LW1vei1ib3gtZmxleDogQHByb2Nlc3NfbW96O1xuXHQtd2Via2l0LWZsZXg6IEBwcm9jZXNzO1xuXHQtbXMtZmxleDogQHByb2Nlc3M7XG5cdGZsZXg6IEBwcm9jZXNzO1xufVxuXG4uZmxleC1iYXNpcyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhdXRvXCI7dmFyIHQ9L1xcZC9naSxyPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiB0LnRlc3QoZSkmJihlPWUucmVwbGFjZShyLGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWZsZXgtYmFzaXM6IEBwcm9jZXNzO1xuXHRmbGV4LWJhc2lzOiBAcHJvY2Vzcztcbn1cblxuLmZsZXgtZGlyZWN0aW9uKC4uLikge1xuXHRAcHJvY2Vzc19vbGRlc3R3ZWJraXQ6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPVwicm93XCI9PWV8fFwiY29sdW1uXCI9PWU/XCJub3JtYWxcIjpcInJvdy1yZXZlcnNlXCI9PWV8fFwiY29sdW1uLXJldmVyc2VcIj09ZT9cInJldmVyc2VcIjo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19vbGRlcm1vejogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9XCJyb3dcIj09ZXx8XCJjb2x1bW5cIj09ZT9cIm5vcm1hbFwiOlwicm93LXJldmVyc2VcIj09ZXx8XCJjb2x1bW4tcmV2ZXJzZVwiPT1lP1wicmV2ZXJzZVwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzX29sZGVyd2Via2l0OiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1cInJvd1wiPT1lfHxcInJvdy1yZXZlcnNlXCI9PWU/XCJob3Jpem9udGFsXCI6XCJjb2x1bW5cIj09ZXx8XCJjb2x1bW4tcmV2ZXJzZVwiPT1lP1widmVydGljYWxcIjo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPVwicm93XCI9PWV8fFwicm93LXJldmVyc2VcIj09ZT9cImhvcml6b250YWxcIjpcImNvbHVtblwiPT1lfHxcImNvbHVtbi1yZXZlcnNlXCI9PWU/XCJ2ZXJ0aWNhbFwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcInJvd1wifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWJveC1kaXJlY3Rpb246IEBwcm9jZXNzX29sZGVzdHdlYmtpdDtcblx0LW1vei1ib3gtZGlyZWN0aW9uOiBAcHJvY2Vzc19vbGRlcm1vejtcblx0LXdlYmtpdC1ib3gtb3JpZW50OiBAcHJvY2Vzc19vbGRlcndlYmtpdDtcblx0LW1vei1ib3gtb3JpZW50OiBAcHJvY2Vzc19tb3o7XG5cdC13ZWJraXQtZmxleC1kaXJlY3Rpb246IEBwcm9jZXNzO1xuXHQtbXMtZmxleC1kaXJlY3Rpb246IEBwcm9jZXNzO1xuXHRmbGV4LWRpcmVjdGlvbjogQHByb2Nlc3M7XG59XG5cbi5mbGV4LWdyb3coLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcIjBcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1mbGV4LWdyb3c6IEBwcm9jZXNzO1xuXHRmbGV4LWdyb3c6IEBwcm9jZXNzO1xufVxuXG4uZmxleC1zaHJpbmsoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcIjFcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1mbGV4LXNocmluazogQHByb2Nlc3M7XG5cdGZsZXgtc2hyaW5rOiBAcHJvY2Vzcztcbn1cblxuLmZsZXgtd3JhcCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwibm93cmFwXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtZmxleC13cmFwOiBAcHJvY2Vzcztcblx0LW1zLWZsZXgtd3JhcDogQHByb2Nlc3M7XG5cdGZsZXgtd3JhcDogQHByb2Nlc3M7XG59XG5cbi5mb250LWZhY2UoQGZvbnRuYW1lLCBAZm9udGZpbGUsIEBmb250d2VpZ2h0Om5vcm1hbCwgQGZvbnRzdHlsZTpub3JtYWwpIHtcblx0Zm9udC1mYW1pbHk6IFwiQHtmb250bmFtZX1cIjtcblx0c3JjOiB1cmwoXCJAe2ZvbnRmaWxlfS5lb3RcIik7XG5cdHNyYzogdXJsKFwiQHtmb250ZmlsZX0uZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcblx0dXJsKFwiQHtmb250ZmlsZX0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuXHR1cmwoXCJAe2ZvbnRmaWxlfS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG5cdHVybChcIkB7Zm9udGZpbGV9LnN2ZyNAe2ZvbnRuYW1lfVwiKSBmb3JtYXQoXCJzdmdcIik7XG5cdGZvbnQtd2VpZ2h0OiBAZm9udHdlaWdodDtcblx0Zm9udC1zdHlsZTogQGZvbnRzdHlsZTtcbn1cblxuLmdyYXlzY2FsZSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiJVwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoQHByb2Nlc3MpO1xuXHQtbW96LWZpbHRlcjogZ3JheXNjYWxlKEBwcm9jZXNzKTtcblx0LW1zLWZpbHRlcjogZ3JheXNjYWxlKEBwcm9jZXNzKTtcblx0ZmlsdGVyOiBncmF5c2NhbGUoQHByb2Nlc3MpO1xufVxuXG4uaHVlLXJvdGF0ZSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUoQHByb2Nlc3MpO1xuXHQtbW96LWZpbHRlcjogaHVlLXJvdGF0ZShAcHJvY2Vzcyk7XG5cdC1tcy1maWx0ZXI6IGh1ZS1yb3RhdGUoQHByb2Nlc3MpO1xuXHRmaWx0ZXI6IGh1ZS1yb3RhdGUoQHByb2Nlc3MpO1xufVxuXG4uaHlwaGVucyguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwibWFudWFsXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtaHlwaGVuczogQHByb2Nlc3M7XG5cdC1tb3otaHlwaGVuczogQHByb2Nlc3M7XG5cdC1tcy1oeXBoZW5zOiBAcHJvY2Vzcztcblx0aHlwaGVuczogQHByb2Nlc3M7XG59XG5cbi5pbnZlcnQoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMTAwJVwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcIiVcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWZpbHRlcjogaW52ZXJ0KEBwcm9jZXNzKTtcblx0LW1vei1maWx0ZXI6IGludmVydChAcHJvY2Vzcyk7XG5cdC1tcy1maWx0ZXI6IGludmVydChAcHJvY2Vzcyk7XG5cdGZpbHRlcjogaW52ZXJ0KEBwcm9jZXNzKTtcbn1cblxuLmp1c3RpZnktY29udGVudCguLi4pIHtcblx0QHByb2Nlc3Nfb2xkZXN0V2Via2l0OiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcInN0YXJ0XCIsXCJmbGV4LXN0YXJ0XCI9PWU/ZT1cInN0YXJ0XCI6XCJmbGV4LWVuZFwiPT1lP2U9XCJlbmRcIjooXCJzcGFjZS1iZXR3ZWVuXCI9PWV8fFwic3BhY2UtYXJvdW5kXCI9PWUpJiYoZT1cImp1c3RpZnlcIiksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcInN0YXJ0XCIsXCJmbGV4LXN0YXJ0XCI9PWU/ZT1cInN0YXJ0XCI6XCJmbGV4LWVuZFwiPT1lP2U9XCJlbmRcIjooXCJzcGFjZS1iZXR3ZWVuXCI9PWV8fFwic3BhY2UtYXJvdW5kXCI9PWUpJiYoZT1cImp1c3RpZnlcIiksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbXM6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwic3RhcnRcIixcImZsZXgtc3RhcnRcIj09ZT9lPVwic3RhcnRcIjpcImZsZXgtZW5kXCI9PWU/ZT1cImVuZFwiOlwic3BhY2UtYmV0d2VlblwiPT1lP2U9XCJqdXN0aWZ5XCI6XCJzcGFjZS1hcm91bmRcIj09ZSYmKGU9XCJkaXN0cmlidXRlXCIpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcImZsZXgtc3RhcnRcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1ib3gtcGFjazogQHByb2Nlc3Nfb2xkZXN0V2Via2l0O1xuXHQtbW96LWJveC1wYWNrOiBAcHJvY2Vzc19tb3o7XG5cdC1tcy1mbGV4LXBhY2s6IEBwcm9jZXNzX21zO1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogQHByb2Nlc3M7XG5cdGp1c3RpZnktY29udGVudDogQHByb2Nlc3M7XG59XG5cbi5rZXlmcmFtZXMoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsdCxjKXt2YXIgaT1cIn1cXG5cIix1PW4uc3BsaXQoLyheW2EtekEtWjAtOS1dKyksL2cpLHM9dCtcIiBcIit1WzFdK1wie1wiLG89W1wiLXdlYmtpdC1cIixcIi1tb3otXCIsXCItbXMtXCIsXCJcIl07Yz9hLmZvckVhY2goZnVuY3Rpb24ocil7LTEhPT1lLmluZGV4T2YocikmJih1WzJdPXVbMl0ucmVwbGFjZShuZXcgUmVnRXhwKHIsXCJnXCIpLGZ1bmN0aW9uKGUpe3JldHVybiBjK2V9KSl9KTp1WzJdPXVbMl0ucmVwbGFjZSgveyhbXn1dKyl9L2csZnVuY3Rpb24oZSxyKXt2YXIgdD1yLnNwbGl0KFwiO1wiKTt0LmZvckVhY2goZnVuY3Rpb24oZSxyKXthLmZvckVhY2goZnVuY3Rpb24obil7LTEhPT1lLmluZGV4T2YobikmJih0W3JdPVwiXCIsby5mb3JFYWNoKGZ1bmN0aW9uKGEpe3Rbcl0rPWUudHJpbSgpLnJlcGxhY2UobmV3IFJlZ0V4cChuLFwiZ1wiKSxmdW5jdGlvbihlKXtyZXR1cm4gYStlfSkrXCI7XCJ9KSl9KX0pO3ZhciBuPXQuam9pbihcIjtcIikucmVwbGFjZSgvOzsvZyxcIjtcIik7cmV0dXJuIGUucmVwbGFjZShyLG4pfSkscys9dVsyXStpLFwic3RhcnRcIj09cj9lPVwiMDsgfSBcXG5cIitzOlwic3RhcnRlbmRcIj09cj9lPVwiMDsgfSBcXG5cIitzLnJlcGxhY2UoaSxcIlwiKTplKz1cImVuZFwiPT1yP3MucmVwbGFjZShpLFwiXCIpOnN9ZT1lfHw4MTIxOTkxO3ZhciB0PVwiQHtzdGF0ZX1cIixuPWU7aWYoODEyMTk5MT09ZSlyZXR1cm4gZTt2YXIgYT1bXCJhbmltYXRpb25cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdO3N3aXRjaCh0KXtjYXNlXCIxXCI6cihcInN0YXJ0XCIsXCJALXdlYmtpdC1rZXlmcmFtZXNcIixcIi13ZWJraXQtXCIpLHIobnVsbCxcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIikscihudWxsLFwiQC1vLWtleWZyYW1lc1wiLFwiLW8tXCIpLHIoXCJlbmRcIixcIkBrZXlmcmFtZXNcIik7YnJlYWs7Y2FzZVwiMlwiOnIoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxyKG51bGwsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpLHIoXCJlbmRcIixcIkBrZXlmcmFtZXNcIik7YnJlYWs7Y2FzZVwiM1wiOnIoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxyKG51bGwsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpLHIoXCJlbmRcIixcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKTticmVhaztjYXNlXCI0XCI6cihcInN0YXJ0XCIsXCJALXdlYmtpdC1rZXlmcmFtZXNcIixcIi13ZWJraXQtXCIpLHIobnVsbCxcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKSxyKFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjVcIjpyKFwic3RhcnRcIixcIkAtd2Via2l0LWtleWZyYW1lc1wiLFwiLXdlYmtpdC1cIikscihcImVuZFwiLFwiQC1tb3ota2V5ZnJhbWVzXCIsXCItbW96LVwiKTticmVhaztjYXNlXCI2XCI6cihcInN0YXJ0XCIsXCJALXdlYmtpdC1rZXlmcmFtZXNcIixcIi13ZWJraXQtXCIpLHIoXCJlbmRcIixcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKTticmVhaztjYXNlXCI3XCI6cihcInN0YXJ0XCIsXCJALXdlYmtpdC1rZXlmcmFtZXNcIixcIi13ZWJraXQtXCIpLHIoXCJlbmRcIixcIkBrZXlmcmFtZXNcIik7YnJlYWs7Y2FzZVwiOFwiOnIoXCJzdGFydGVuZFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKTticmVhaztjYXNlXCI5XCI6cihcInN0YXJ0XCIsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpLHIobnVsbCxcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKSxyKFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjEwXCI6cihcInN0YXJ0XCIsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpLHIoXCJlbmRcIixcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKTticmVhaztjYXNlXCIxMVwiOnIoXCJzdGFydFwiLFwiQC1tb3ota2V5ZnJhbWVzXCIsXCItbW96LVwiKSxyKFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjEyXCI6cihcInN0YXJ0ZW5kXCIsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpO2JyZWFrO2Nhc2VcIjEzXCI6cihcInN0YXJ0XCIsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIikscihcImVuZFwiLFwiQGtleWZyYW1lc1wiKTticmVhaztjYXNlXCIxNFwiOnIoXCJzdGFydGVuZFwiLFwiQC1vLWtleWZyYW1lc1wiLFwiLW8tXCIpO2JyZWFrO2Nhc2VcIjE1XCI6cihcInN0YXJ0ZW5kXCIsXCJAa2V5ZnJhbWVzXCIpfXJldHVybiBlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAc3RhdGU6IDE7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9XG5cblxuXG59XG5cbi5vcGFjaXR5KC4uLikge1xuXHRAcHJvY2Vzc19tczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCJmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKVwiLFwiYWxwaGEob3BhY2l0eT1cIitNYXRoLmZsb29yKDEwMCplKStcIilcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHR6b29tOiAxOyBmaWx0ZXI6IEBwcm9jZXNzX21zO1xuXHQtd2Via2l0LW9wYWNpdHk6IEBwcm9jZXNzO1xuXHQtbW96LW9wYWNpdHk6IEBwcm9jZXNzO1xuXHRvcGFjaXR5OiBAcHJvY2Vzcztcbn1cblxuLm9yZGVyKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCIwXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IEBwcm9jZXNzO1xuXHQtbW96LWJveC1vcmRpbmFsLWdyb3VwOiBAcHJvY2Vzcztcblx0LW1zLWZsZXgtb3JkZXI6IEBwcm9jZXNzO1xuXHQtd2Via2l0LW9yZGVyOiBAcHJvY2Vzcztcblx0b3JkZXI6IEBwcm9jZXNzO1xufVxuXG4ucGVyc3BlY3RpdmUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwibm9uZVwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogQHByb2Nlc3M7XG5cdC1tb3otcGVyc3BlY3RpdmU6IEBwcm9jZXNzO1xuXHRwZXJzcGVjdGl2ZTogQHByb2Nlc3M7XG59XG5cbi5wZXJzcGVjdGl2ZS1vcmlnaW4oLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiNTAlIDUwJVwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QoZSkmJihlPWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcIiVcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjogQHByb2Nlc3M7XG5cdC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiBAcHJvY2Vzcztcblx0cGVyc3BlY3RpdmUtb3JpZ2luOiBAcHJvY2Vzcztcbn1cblxuLnBsYWNlaG9sZGVyKEBjb2xvcjojYWFhLCBAZWxlbWVudDogMDgxMjE5OTEpIHtcblx0LmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEBlbGVtZW50ID0gMDgxMjE5OTEpIHtcblx0XHRAe2VsZW1lbnR9Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHRcdEB7ZWxlbWVudH06LW1vei1wbGFjZWhvbGRlciB7XG5cdFx0XHRjb2xvcjogQGNvbG9yO1xuXHRcdH1cblx0XHRAe2VsZW1lbnR9OjotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHRcdEB7ZWxlbWVudH06LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHR9XG5cdC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBlbGVtZW50ID0gMDgxMjE5OTEpIHtcblx0XHQmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHRcdCY6LW1vei1wbGFjZWhvbGRlciB7XG5cdFx0XHRjb2xvcjogQGNvbG9yO1xuXHRcdH1cblx0XHQmOjotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHRcdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiBAY29sb3I7XG5cdFx0fVxuXHR9XG5cdC5pbmNlcHRpb24oQGFyZ3VtZW50cyk7XG59XG5cbi5yb3RhdGUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcImRlZ1wifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogcm90YXRlKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogcm90YXRlKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiByb3RhdGUoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZShAcHJvY2Vzcyk7XG59XG5cbi5yb3RhdGUzZCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiMCwgMCwgMCwgMFwiLGU9ZS5yZXBsYWNlKC8sXFxzKlxcZCskLyxmdW5jdGlvbihlKXtyZXR1cm4gZStcImRlZ1wifSl9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZChAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiByb3RhdGUzZChAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZTNkKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiByb3RhdGUzZChAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogcm90YXRlM2QoQHByb2Nlc3MpO1xufVxuXG4ucm90YXRlWCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogcm90YXRlWChAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpO1xufVxuXG4ucm90YXRlWSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogcm90YXRlWShAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHJvdGF0ZVkoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZVkoQHByb2Nlc3MpO1xufVxuXG4ucm90YXRlWiguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogcm90YXRlWihAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHJvdGF0ZVooQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZVooQHByb2Nlc3MpO1xufVxuXG4uc2F0dXJhdGUoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMTAwJVwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcIiVcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWZpbHRlcjogflwic2F0dXJhdGUoQHtwcm9jZXNzfSlcIjtcblx0LW1vei1maWx0ZXI6IH5cInNhdHVyYXRlKEB7cHJvY2Vzc30pXCI7XG5cdC1tcy1maWx0ZXI6IH5cInNhdHVyYXRlKEB7cHJvY2Vzc30pXCI7XG5cdGZpbHRlcjogflwic2F0dXJhdGUoQHtwcm9jZXNzfSlcIjtcbn1cblxuLnNjYWxlKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCIxXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZShAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHNjYWxlKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiBzY2FsZShAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogc2NhbGUoQHByb2Nlc3MpO1xufVxuXG4uc2NhbGUzZCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiMSwgMSwgMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZChAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZTNkKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogc2NhbGUzZChAcHJvY2Vzcyk7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUzZChAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogc2NhbGUzZChAcHJvY2Vzcyk7XG59XG5cbi5zY2FsZVgoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHxcIjFcIn0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWChAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZVgoQHByb2Nlc3MpO1xuXHQtbXMtdHJhbnNmb3JtOiBzY2FsZVgoQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHNjYWxlWChAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogc2NhbGVYKEBwcm9jZXNzKTtcbn1cblxuLnNjYWxlWSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKEBwcm9jZXNzKTtcblx0LW1vei10cmFuc2Zvcm06IHNjYWxlWShAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHNjYWxlWShAcHJvY2Vzcyk7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGVZKEBwcm9jZXNzKTtcblx0dHJhbnNmb3JtOiBzY2FsZVkoQHByb2Nlc3MpO1xufVxuXG4uc2NhbGVaKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCIxXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVooQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogc2NhbGVaKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogc2NhbGVaKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiBzY2FsZVooQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHNjYWxlWihAcHJvY2Vzcyk7XG59XG5cbi5zZWxlY3Rpb24oLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsdCl7dmFyIGE9XCJ9XFxuXCIsYz1uLnNwbGl0KFwiLFwiKSx1PShjWzFdfHxcIlwiKSt0K1wie1wiK2NbMF0rYTtcInN0YXJ0XCI9PXI/ZT1cIjA7IH0gXFxuXCIrdTpcInN0YXJ0ZW5kXCI9PXI/ZT1cIjA7IH0gXFxuXCIrdS5yZXBsYWNlKGEsXCJcIik6ZSs9XCJlbmRcIj09cj91LnJlcGxhY2UoYSxcIlwiKTp1fWU9ZXx8ODEyMTk5MTt2YXIgdD1cIkB7c3RhdGV9XCIsbj1lO2lmKDgxMjE5OTE9PWUpcmV0dXJuIGU7c3dpdGNoKHQpe2Nhc2VcIjFcIjpyKFwic3RhcnRcIixcIjo6c2VsZWN0aW9uXCIpLHIoXCJlbmRcIixcIjo6LW1vei1zZWxlY3Rpb25cIik7YnJlYWs7Y2FzZVwiMlwiOnIoXCJzdGFydGVuZFwiLFwiOjpzZWxlY3Rpb25cIik7YnJlYWs7Y2FzZVwiM1wiOnIoXCJzdGFydGVuZFwiLFwiOjotbW96LXNlbGVjdGlvblwiKX1yZXR1cm4gZT1lLnJlcGxhY2UoLzskL2csXCJcIil9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBzdGF0ZTogMTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cblxufVxuXG4uc2VwaWEoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMTAwJVwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcIiVcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LWZpbHRlcjogc2VwaWEoQHByb2Nlc3MpO1xuXHQtbW96LWZpbHRlcjogc2VwaWEoQHByb2Nlc3MpO1xuXHQtbXMtZmlsdGVyOiBzZXBpYShAcHJvY2Vzcyk7XG5cdGZpbHRlcjogc2VwaWEoQHByb2Nlc3MpO1xufVxuXG4uc2l6ZShAc3F1YXJlKSB7XG5cdEB1bml0OiAncHgnO1xuXHQucHJvY2VzcyhAc3F1YXJlKSB3aGVuIChpc3BpeGVsKEBzcXVhcmUpKSwgKGlzZW0oQHNxdWFyZSkpLCAoaXNwZXJjZW50YWdlKEBzcXVhcmUpKSwgKGlza2V5d29yZChAc3F1YXJlKSkge1xuXHRcdHdpZHRoOiBAc3F1YXJlO1xuXHRcdGhlaWdodDogQHNxdWFyZTtcblx0fVxuXG5cdC5wcm9jZXNzKEBzcXVhcmUpIHdoZW4gbm90IChpc3BpeGVsKEBzcXVhcmUpKSBhbmQgbm90IChpc2VtKEBzcXVhcmUpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHNxdWFyZSkpIGFuZCBub3QgKGlzc3RyaW5nKEBzcXVhcmUpKSBhbmQgbm90IChpc2tleXdvcmQoQHNxdWFyZSkpIHtcblx0XHR3aWR0aDogfmBAe3NxdWFyZX0gKyBAe3VuaXR9YDtcblx0XHRoZWlnaHQ6IH5gQHtzcXVhcmV9ICsgQHt1bml0fWA7XG5cdH1cblxuXHQucHJvY2VzcyhAc3F1YXJlKTtcblxufVxuXG4uc2l6ZShAd2lkdGgsIEBoZWlnaHQpIHtcblx0QHVuaXQ6ICdweCc7XG5cdC5wcm9jZXNzKEB3aWR0aCwgQGhlaWdodCkgd2hlbiAoaXNwaXhlbChAd2lkdGgpKSwgKGlzZW0oQHdpZHRoKSksIChpc3BlcmNlbnRhZ2UoQHdpZHRoKSksIChpc2tleXdvcmQoQHdpZHRoKSkge1xuXHRcdC5raXR0ZW5zKEBoZWlnaHQpIHdoZW4gKGlzcGl4ZWwoQGhlaWdodCkpLCAoaXNlbShAaGVpZ2h0KSksIChpc3BlcmNlbnRhZ2UoQGhlaWdodCkpLCAoaXNrZXl3b3JkKEBoZWlnaHQpKSB7XG5cdFx0XHR3aWR0aDogQHdpZHRoO1xuXHRcdFx0aGVpZ2h0OiBAaGVpZ2h0O1xuXHRcdH1cblx0XHQua2l0dGVucyhAaGVpZ2h0KSB3aGVuIG5vdCAoaXNwaXhlbChAaGVpZ2h0KSkgYW5kIG5vdCAoaXNlbShAaGVpZ2h0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBoZWlnaHQpKSBhbmQgbm90IChpc2tleXdvcmQoQGhlaWdodCkpIHtcblx0XHRcdHdpZHRoOiBAd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IH5gQHtoZWlnaHR9ICsgQHt1bml0fWA7XG5cdFx0fVxuXHRcdC5raXR0ZW5zKEBoZWlnaHQpO1xuXHR9XG5cblx0LnByb2Nlc3MoQHdpZHRoLCBAaGVpZ2h0KSB3aGVuIChpc3BpeGVsKEBoZWlnaHQpKSwgKGlzZW0oQGhlaWdodCkpLCAoaXNwZXJjZW50YWdlKEBoZWlnaHQpKSwgKGlza2V5d29yZChAaGVpZ2h0KSkge1xuXHRcdC5raXR0ZW5zKEB3aWR0aCkgd2hlbiAoaXNwaXhlbChAd2lkdGgpKSwgKGlzZW0oQHdpZHRoKSksIChpc3BlcmNlbnRhZ2UoQHdpZHRoKSksIChpc2tleXdvcmQoQHdpZHRoKSkge31cblx0XHQua2l0dGVucyhAd2lkdGgpIHdoZW4gbm90IChpc3BpeGVsKEB3aWR0aCkpIGFuZCBub3QgKGlzZW0oQHdpZHRoKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEB3aWR0aCkpIGFuZCBub3QgKGlza2V5d29yZChAd2lkdGgpKSB7XG5cdFx0XHR3aWR0aDogfmBAe3dpZHRofSArIEB7dW5pdH1gO1xuXHRcdFx0aGVpZ2h0OiBAaGVpZ2h0O1xuXHRcdH1cblx0XHQua2l0dGVucyhAd2lkdGgpO1xuXHR9XG5cblx0LnByb2Nlc3MoQHdpZHRoLCBAaGVpZ2h0KSB3aGVuIG5vdCAoaXNwaXhlbChAd2lkdGgpKSBhbmQgbm90IChpc2VtKEB3aWR0aCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAd2lkdGgpKSBhbmQgbm90IChpc2tleXdvcmQoQHdpZHRoKSkgYW5kIG5vdCAoaXNwaXhlbChAaGVpZ2h0KSkgYW5kIG5vdCAoaXNlbShAaGVpZ2h0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBoZWlnaHQpKSBhbmQgbm90IChpc2tleXdvcmQoQGhlaWdodCkpICB7XG5cdFx0d2lkdGg6IH5gQHt3aWR0aH0gKyBAe3VuaXR9YDtcblx0XHRoZWlnaHQ6IH5gQHtoZWlnaHR9ICsgQHt1bml0fWA7XG5cdH1cblxuXHQucHJvY2VzcyhAd2lkdGgsIEBoZWlnaHQpO1xuXG59XG5cbi5za2V3KC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgcj0vXFxkL2dpLHQ9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHIudGVzdChlKSYmKGU9ZS5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUmJmV8fGUrXCJkZWdcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiBza2V3KEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7XG5cdC1vLXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7XG59XG5cbi5za2V3WCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKEBwcm9jZXNzKTtcblx0LW1vei10cmFuc2Zvcm06IHNrZXdYKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogc2tld1goQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHNrZXdYKEBwcm9jZXNzKTtcblx0dHJhbnNmb3JtOiBza2V3WChAcHJvY2Vzcyk7XG59XG5cbi5za2V3WSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiZGVnXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHNrZXdZKEBwcm9jZXNzKTtcblx0LW1vei10cmFuc2Zvcm06IHNrZXdZKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogc2tld1koQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHNrZXdZKEBwcm9jZXNzKTtcblx0dHJhbnNmb3JtOiBza2V3WShAcHJvY2Vzcyk7XG59XG5cbi50cmFuc2Zvcm0oLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwibm9uZVwiO3ZhciByPXt0cmFuc2xhdGU6XCJweFwiLHJvdGF0ZTpcImRlZ1wiLHJvdGF0ZTNkOlwiZGVnXCIsc2tldzpcImRlZ1wifTsvXlxcdypcXCg/W2EtejAtOS5dKlxcKT8vLnRlc3QoZSkmJihlPWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSk7Zm9yKHZhciB0IGluIHIpZS5pbmRleE9mKHQpPj0wJiYoZT1lLnJlcGxhY2UobmV3IFJlZ0V4cCh0K1wiW1xcXFx3XT9cXFxcKFthLXowLTksICVdKlxcXFwpXCIpLGZ1bmN0aW9uKGUpe3ZhciBuPS8oXFxkK1xcLj9cXGQqKSg/IVxcd3wlKS9nO3JldHVyblwicm90YXRlM2RcIj09dCYmKG49LyxcXHMqXFxkKyQvKSxlLnJlcGxhY2UobixmdW5jdGlvbihlKXtyZXR1cm4gZStyW3RdfSl9KSk7cmV0dXJuIGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBAcHJvY2Vzcztcblx0LW1vei10cmFuc2Zvcm06IEBwcm9jZXNzO1xuXHQtbXMtdHJhbnNmb3JtOiBAcHJvY2Vzcztcblx0LW8tdHJhbnNmb3JtOiBAcHJvY2Vzcztcblx0dHJhbnNmb3JtOiBAcHJvY2Vzcztcbn1cblxuLnRyYW5zZm9ybS1vcmlnaW4oLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiNTAlIDUwJSAwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxyLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wiJVwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQHByb2Nlc3M7XG5cdC1tb3otdHJhbnNmb3JtLW9yaWdpbjogQHByb2Nlc3M7XG5cdC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBAcHJvY2Vzcztcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogQHByb2Nlc3M7XG5cdHRyYW5zZm9ybS1vcmlnaW46IEBwcm9jZXNzO1xufVxuXG4udHJhbnNmb3JtLXN0eWxlKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCJmbGF0XCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBAcHJvY2Vzcztcblx0LW1vei10cmFuc2Zvcm0tc3R5bGU6IEBwcm9jZXNzO1xuXHQtbXMtdHJhbnNmb3JtLXN0eWxlOiBAcHJvY2Vzcztcblx0LW8tdHJhbnNmb3JtLXN0eWxlOiBAcHJvY2Vzcztcblx0dHJhbnNmb3JtLXN0eWxlOiBAcHJvY2Vzcztcbn1cblxuLnRyYW5zaXRpb24oLi4uKSB7XG5cdEBwcm9jZXNzX3dlYmtpdDogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcImFsbCAwIGVhc2UgMFwiO3ZhciByPVtcImJhY2tncm91bmQtc2l6ZVwiLFwiYm9yZGVyLXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXNcIixcImJvcmRlci10b3AtbGVmdC1yYWRpdXNcIixcImJvcmRlci10b3AtcmlnaHQtcmFkaXVzXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHQ9XCItd2Via2l0LVwiLG49Lyg/OlxcZCkoPzptc3xzKS9naSxhPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JSkvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHIuZm9yRWFjaChmdW5jdGlvbihyKXstMSE9PWUuaW5kZXhPZihyKSYmKGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAocixcImdcIiksZnVuY3Rpb24oZSl7cmV0dXJuIHQrZX0pKX0pLG4udGVzdChlKXx8XCIwXCI9PT1lfHwoZT1lLnJlcGxhY2UoYSxmdW5jdGlvbihlKXtyZXR1cm4gZSs9cGFyc2VGbG9hdChlLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbihlKXtlPWV8fFwiYWxsIDAgZWFzZSAwXCI7dmFyIHI9W1wiYmFja2dyb3VuZC1zaXplXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHQ9XCItbW96LVwiLG49Lyg/OlxcZCkoPzptc3xzKS9naSxhPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JSkvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHIuZm9yRWFjaChmdW5jdGlvbihyKXstMSE9PWUuaW5kZXhPZihyKSYmKGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAocixcImdcIiksZnVuY3Rpb24oZSl7cmV0dXJuIHQrZX0pKX0pLG4udGVzdChlKXx8XCIwXCI9PT1lfHwoZT1lLnJlcGxhY2UoYSxmdW5jdGlvbihlKXtyZXR1cm4gZSs9cGFyc2VGbG9hdChlLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3Nfb3BlcmE6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhbGwgMCBlYXNlIDBcIjt2YXIgcj1bXCJ0cmFuc2Zvcm1cIl0sdD1cIi1vLVwiLG49Lyg/OlxcZCkoPzptc3xzKS9naSxhPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JSkvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KGUpJiYoZT1lLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHIuZm9yRWFjaChmdW5jdGlvbihyKXstMSE9PWUuaW5kZXhPZihyKSYmKGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAocixcImdcIiksZnVuY3Rpb24oZSl7cmV0dXJuIHQrZX0pKX0pLG4udGVzdChlKXx8XCIwXCI9PT1lfHwoZT1lLnJlcGxhY2UoYSxmdW5jdGlvbihlKXtyZXR1cm4gZSs9cGFyc2VGbG9hdChlLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhbGwgMCBlYXNlIDBcIjt2YXIgcj1bXCItd2Via2l0LVwiLFwiLW1vei1cIixcIi1vLVwiLFwiXCJdLHQ9W1wiY29sdW1uXCIsXCJ0cmFuc2Zvcm1cIixcImZpbHRlclwiXSxuPS8oPzpcXGQpKD86bXN8cykvZ2ksYT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCUpL2dpOy9eW14sIF0qLC8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKTt2YXIgYz1lLnNwbGl0KC8oPzosKSg/IVteKF0qXFwpKS9nKTtyZXR1cm4gYy5mb3JFYWNoKGZ1bmN0aW9uKGUsbil7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpey0xIT09ZS5pbmRleE9mKHQpJiYoY1tuXT1cIlwiLHIuZm9yRWFjaChmdW5jdGlvbihhLHUpe2Nbbl0rPWUudHJpbSgpLnJlcGxhY2UobmV3IFJlZ0V4cCh0LFwiZ1wiKSxmdW5jdGlvbihlKXtyZXR1cm4gYStlfSksdTxyLmxlbmd0aC0xJiYoY1tuXSs9XCIsXCIpfSkpfSl9KSxlPWMuam9pbihcIixcIiksbi50ZXN0KGUpfHxcIjBcIj09PWV8fChlPWUucmVwbGFjZShhLGZ1bmN0aW9uKGUpe3JldHVybiBlKz1wYXJzZUZsb2F0KGUsMTApPjEwP1wibXNcIjpcInNcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zaXRpb246IEBwcm9jZXNzX3dlYmtpdDtcblx0LW1vei10cmFuc2l0aW9uOiBAcHJvY2Vzc19tb3o7XG5cdC1vLXRyYW5zaXRpb246IEBwcm9jZXNzX29wZXJhO1xuXHR0cmFuc2l0aW9uOiBAcHJvY2Vzcztcbn1cblxuLnRyYW5zaXRpb24tZGVsYXkoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciByPS8oPzpcXGQpKD86bXN8cykvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpfHxcIjBcIj09PWV8fChlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiBlKz1wYXJzZUZsb2F0KGUsMTApPjEwP1wibXNcIjpcInNcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IEBwcm9jZXNzO1xuXHQtbW96LXRyYW5zaXRpb24tZGVsYXk6IEBwcm9jZXNzO1xuXHQtby10cmFuc2l0aW9uLWRlbGF5OiBAcHJvY2Vzcztcblx0dHJhbnNpdGlvbi1kZWxheTogQHByb2Nlc3M7XG59XG5cbi50cmFuc2l0aW9uLWR1cmF0aW9uKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgcj0vbXN8cy9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSl8fFwiMFwiPT09ZXx8KGU9ZS5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIGUrPXBhcnNlRmxvYXQoZSwxMCk+MTA/XCJtc1wiOlwic1wifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7XG5cdC1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7XG5cdC1vLXRyYW5zaXRpb24tZHVyYXRpb246IEBwcm9jZXNzO1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiBAcHJvY2Vzcztcbn1cblxuLnRyYW5zaXRpb24tcHJvcGVydHkoLi4uKSB7XG5cdEBwcm9jZXNzX3dlYmtpdDogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcImFsbFwiO3ZhciByPVtcImJhY2tncm91bmQtc2l6ZVwiLFwiYm9yZGVyLXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXNcIixcImJvcmRlci10b3AtbGVmdC1yYWRpdXNcIixcImJvcmRlci10b3AtcmlnaHQtcmFkaXVzXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHQ9XCItd2Via2l0LVwiO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24ocil7LTEhPT1lLmluZGV4T2YocikmJihlPWUucmVwbGFjZShuZXcgUmVnRXhwKHIsXCJnXCIpLGZ1bmN0aW9uKGUpe3JldHVybiB0K2V9KSl9KSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHRAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhbGxcIjt2YXIgcj1bXCJiYWNrZ3JvdW5kLXNpemVcIixcImJveC1zaGFkb3dcIixcImNvbHVtblwiLFwidHJhbnNmb3JtXCIsXCJmaWx0ZXJcIl0sdD1cIi1tb3otXCI7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihyKXstMSE9PWUuaW5kZXhPZihyKSYmKGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAocixcImdcIiksZnVuY3Rpb24oZSl7cmV0dXJuIHQrZX0pKX0pLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdEBwcm9jZXNzX29wZXJhOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiYWxsXCI7dmFyIHI9W1widHJhbnNmb3JtXCJdLHQ9XCItby1cIjtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKHIpey0xIT09ZS5pbmRleE9mKHIpJiYoZT1lLnJlcGxhY2UobmV3IFJlZ0V4cChyLFwiZ1wiKSxmdW5jdGlvbihlKXtyZXR1cm4gdCtlfSkpfSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCJhbGxcIjt2YXIgcj1bXCItd2Via2l0LVwiLFwiLW1vei1cIixcIi1vLVwiLFwiXCJdLHQ9W1wiY29sdW1uXCIsXCJ0cmFuc2Zvcm1cIixcImZpbHRlclwiXSxuPWUuc3BsaXQoLyg/OiwpKD8hW14oXSpcXCkpL2cpO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZSxhKXt0LmZvckVhY2goZnVuY3Rpb24odCl7LTEhPT1lLmluZGV4T2YodCkmJihuW2FdPVwiXCIsci5mb3JFYWNoKGZ1bmN0aW9uKGMsdSl7blthXSs9ZS50cmltKCkucmVwbGFjZShuZXcgUmVnRXhwKHQsXCJnXCIpLGZ1bmN0aW9uKGUpe3JldHVybiBjK2V9KSx1PHIubGVuZ3RoLTEmJihuW2FdKz1cIixcIil9KSl9KX0pLGU9bi5qb2luKFwiLFwiKX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAcHJvY2Vzc193ZWJraXQ7XG5cdC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogQHByb2Nlc3NfbW96O1xuXHQtby10cmFuc2l0aW9uLXByb3BlcnR5OiBAcHJvY2Vzc19vcGVyYTtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogQHByb2Nlc3M7XG59XG5cbi50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fFwiZWFzZVwifSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2Vzcztcblx0LW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHByb2Nlc3M7XG5cdC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2Vzcztcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEBwcm9jZXNzO1xufVxuXG4udHJhbnNsYXRlKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgcj0vXFxkL2dpLHQ9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHIudGVzdChlKSYmKGU9ZS5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUmJmV8fGUrXCJweFwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZShAcHJvY2Vzcyk7XG59XG5cbi50cmFuc2xhdGUzZCguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwLCAwLCAwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpO1xuXHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAcHJvY2Vzcyk7XG5cdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEBwcm9jZXNzKTtcbn1cblxuLnRyYW5zbGF0ZVgoLi4uKSB7XG5cdEBwcm9jZXNzOiB+YChmdW5jdGlvbihlKXtlPWV8fFwiMFwiO3ZhciByPS9cXGQvZ2ksdD0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gci50ZXN0KGUpJiYoZT1lLnJlcGxhY2UodCxmdW5jdGlvbihlKXtyZXR1cm4gMD09ZSYmZXx8ZStcInB4XCJ9KSksZX0pKChmdW5jdGlvbigpe3ZhciBlPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoQHByb2Nlc3MpO1xuXHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWChAcHJvY2Vzcyk7XG5cdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoQHByb2Nlc3MpO1xuXHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoQHByb2Nlc3MpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoQHByb2Nlc3MpO1xufVxuXG4udHJhbnNsYXRlWSguLi4pIHtcblx0QHByb2Nlc3M6IH5gKGZ1bmN0aW9uKGUpe2U9ZXx8XCIwXCI7dmFyIHI9L1xcZC9naSx0PS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiByLnRlc3QoZSkmJihlPWUucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiAwPT1lJiZlfHxlK1wicHhcIn0pKSxlfSkoKGZ1bmN0aW9uKCl7dmFyIGU9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gZT1lLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWShAcHJvY2Vzcyk7XG5cdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKEBwcm9jZXNzKTtcblx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWShAcHJvY2Vzcyk7XG5cdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWShAcHJvY2Vzcyk7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWShAcHJvY2Vzcyk7XG59XG5cbi50cmFuc2xhdGVaKC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7ZT1lfHxcIjBcIjt2YXIgcj0vXFxkL2dpLHQ9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHIudGVzdChlKSYmKGU9ZS5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUmJmV8fGUrXCJweFwifSkpLGV9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTtcblx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooQHByb2Nlc3MpO1xuXHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTtcblx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTtcbn1cblxuLnVzZXItc2VsZWN0KC4uLikge1xuXHRAcHJvY2VzczogfmAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8XCJhdXRvXCJ9KSgoZnVuY3Rpb24oKXt2YXIgZT1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBlPWUucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IEBwcm9jZXNzO1xuXHQtbW96LXVzZXItc2VsZWN0OiBAcHJvY2Vzcztcblx0LW1zLXVzZXItc2VsZWN0OiBAcHJvY2Vzcztcblx0dXNlci1zZWxlY3Q6IEBwcm9jZXNzO1xufVxuXG4iLCIucm9ib3RvLWxpZ2h0KCkge1xuXHRmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7O1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi5yb2JvdG8tcmVndWxhcigpIHtcblx0Zm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOztcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogNDAwO1xufVxuXG4ucm9ib3RvLW1lZGl1bSgpIHtcblx0Zm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOztcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogNTAwO1xufVxuXG4ucm9ib3RvLWJvbGQoKSB7XG5cdGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjs7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnJvYm90by1ibGFjaygpIHtcblx0Zm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOztcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogOTAwO1xufSIsIi5jbGVhcmZpeCAoKSB7XG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG59Il19 */