diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index 14e919e871..103ada86f7 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -10,7 +10,6 @@ - Kubernetes - {{ title }} diff --git a/_layouts/headerfooter.html b/_layouts/headerfooter.html index 33c069c22d..6547f5d926 100644 --- a/_layouts/headerfooter.html +++ b/_layouts/headerfooter.html @@ -6,7 +6,6 @@ - diff --git a/_sass/_base.sass b/_sass/_base.sass new file mode 100644 index 0000000000..32ee023989 --- /dev/null +++ b/_sass/_base.sass @@ -0,0 +1,878 @@ + + + +@import "reset" + +// TEXT +$h1-font-size: 40px +$h1-line-height: 50px + +$h2-font-size: 42px +$h2-line-height: 60px + +$h3-font-size: 26px +$h3-line-height: 32px + +$h4-font-size: 26px +$h4-line-height: 40px + +$h5-font-size: 18px +$h5-line-height: 36px + +$p-font-size: 16px +$p-line-height: 22px + + +// header +$full-width-paddingX: 20px + +$main-width: 100% +$main-max-width: 100% + +$header-height: 80px + +$logo-width: 120px + +$nav-buttons-margin-left: 30px + +$hamburger-size: 50px + + +// main nav +$main-nav-padding: 140px 0 30px +$main-nav-h5-margin-bottom: 1em +$main-nav-h3-margin-bottom: 0.6em +$nav-box-width: 20% +$nav-box-sibling-margin-left: calc(20% / 3) +$main-nav-main-sibling-margin-top: 60px +$main-nav-left-button-size: 50px +$main-nav-left-button-font-size: 18px + + +// hero +$hero-padding-top: 80px +$headline-wrapper-margin-bottom: 40px +$quickstart-button-padding: 0 50px +$vendor-strip-height: 60px +$vendor-strip-font-size: 18px + +@import "size" + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +body + background-color: white + +section + position: relative + background-color: white + min-width: 1024px + +section, header, footer + main + position: relative + margin: auto + min-width: 850px + +.button + display: inline-block + border-radius: 6px + padding: 0 20px + line-height: 40px + color: white + background-color: $blue + text-decoration: none + +#cellophane + position: fixed + top: 0 + left: 0 + width: 100% + height: 100% + display: none + + +// HEADER +header + position: fixed + top: 0 + left: 0 + width: 100% + z-index: 8888 + background-color: transparent + box-shadow: 0 0 0 transparent + overflow: hidden + transition: 0.3s + +.logo + float: left + background-image: url(../images/nav_logo.svg) + background-size: contain + background-position: center center + background-repeat: no-repeat + +.nav-buttons + float: right + +#hamburger + display: inline-block + position: relative + vertical-align: middle + padding: 0 + border: 0 + background: none + + div, &:before, &:after + position: absolute + left: 15% + width: 70% + height: 2px + background-color: $blue + transition: 0.3s + content: "" + + div + top: calc(50% - 1px) + + &:before + top: 24% + + &:after + bottom: 24% + + &:hover + div, &:before, &:after + background-color: white + +#mainNav + h5 + color: $blue + font-weight: normal + + main + white-space: nowrap + overflow: hidden + clear: both + + .nav-box + float: left + white-space: normal + + h3 + a + color: $blue + text-decoration: none + +// FLIP NAV +.flip-nav + header + background-color: white + + +// OPEN NAV +.open-nav + body + overflow: hidden + + #cellophane + display: block + z-index: 9998 + + header + background-color: $light-grey + z-index: 9999 + + #hamburger + div + opacity: 0 + + &:before, &:after + left: 12px + transform-origin: 0 1px + + &:before + transform: rotate(45deg) + + &:after + transform: rotate(-45deg) + +.open-nav, .y-enough + #tryKubernetes + width: 160px + + +.flip-nav, .open-nav + header + box-shadow: 0 1px 2px $medium-grey + + .logo + background-image: url(../images/nav_logo2.svg) + + #viewDocs + border-color: $dark-grey + color: $dark-grey + + &:hover + border-color: $blue + background-color: $blue + color: white + + #hamburger:hover + div, &:before, &:after + background-color: $dark-grey + + + +// HERO +#hero + background-image: url(../images/texture.png) + background-color: $dark-grey + text-align: center + padding-left: 0 + padding-right: 0 + +// VENDOR STRIP +#vendorStrip + background-color: transparentize(white, 0.9) + font-weight: 100 + white-space: nowrap + text-align: left + + div + vertical-align: middle + height: 100% + display: inline-block + +// FOOTER +footer + width: 100% + background-image: url(../images/texture.png) + background-color: $dark-grey + + main + padding: 40px 0 + + nav + white-space: nowrap + + a + width: 25% + text-align: center + display: inline-block + font-size: 32px + font-weight: 300 + color: white + text-decoration: none + + .social + position: relative + margin: 80px 0 60px + + label + float: right + display: inline-block + height: 50px + line-height: 50px + font-weight: 100 + white-space: nowrap + + input + margin-left: 8px + width: 300px + + +#search, #wishField + background-color: transparent + padding: 10px + font-size: 16px + font-weight: 100 + color: white + border: 1px solid white + transition: 0.3s + + &:focus + background-color: $light-grey + color: $dark-grey + +.social a + display: inline-block + background-image: url(../images/social_sprite.png) + background-repeat: no-repeat + background-size: auto + width: 50px + height: 50px + border-radius: 5px + margin-right: 30px + + &:hover + background-color: #fff + + span + position: absolute + display: block + height: 0 + overflow: hidden + +a.twitter + background-position: 0 0 + + &:hover + background-position: 0 100% + +a.stack-overflow + background-position: -50px 0 + + &:hover + background-position: -50px 100% + +a.slack + background-position: -100px 0 + + &:hover + background-position: -100px 100% + +a.github + background-position: -150px 0 + + &:hover + background-position: -150px 100% + +a.mailing-list + background-position: -200px 0 + + &:hover + background-position: -200px 100% + +#viewDocs + display: none + +section + background-color: white + +#hero + background-color: $dark-grey + + h5 + margin-bottom: 40px + +#vendorStrip + position: relative + white-space: nowrap + + ul + float: left + + li + display: inline-block + height: 100% + + a + display: block + height: 100% + color: white + + li + li, #search + margin-left: 60px + + #search + position: relative + float: right + width: 24% + min-width: 250px + padding: 0 10px + margin: 10px 30px 0 0 + height: 40px + line-height: 40px + border: 1px solid $light-grey + font-size: 16px + vertical-align: middle + + .dropdown + position: relative + float: right + height: 60px + font-size: 20px + color: white + line-height: 60px + cursor: pointer + overflow: hidden + z-index: 5000 + + &.on + overflow: visible + + .readout + padding-left: 10px + padding-right: 40px + transition: 0.3s + + &:after + content: "" + position: absolute + top: 30px + right: 10px + width: 0 + height: 0 + border-style: solid + border-width: 6px 6px 0 6px + border-color: white transparent transparent transparent + transition: 0.3s + + .readout:hover + background-color: transparentize(white, 0.9) + + &.on .readout + background-color: $light-grey + color: $dark-grey + + &.on .readout:after + border-top-color: $dark-grey + + .wrapper + position: absolute + top: 100% + left: 0 + width: 100% + + a + display: block + width: 100% + height: 30px + line-height: 30px + padding: 0 10px + font-size: 16px + font-weight: 300 + background-color: $light-grey + color: $dark-grey + opacity: 0 + transition: 0.3s + + &:hover + background-color: #cccccc + + &.on a + opacity: 1 + +#encyclopedia + position: relative + padding: 50px + overflow: hidden + + & > div + height: 100% + +#docsToc + float: left + width: 350px + padding: 0 20px 0 0 + + .yah + & > .title + background-color: $light-grey + border-left: 3px solid $blue + padding: 7.5px 10px 7.5px 18px + margin-left: -21px + color: $blue + + +.pi-accordion + margin-left: -20px + + .container + padding-left: 20px + + .item + overflow: hidden + + .title + color: $dark-grey + position: relative + padding: 7.5px 10px 7.5px 18px + cursor: pointer + transition: 0.3s + + &:hover + color: $blue + + a.item > .title + color: black + padding-left: 0 + + &:hover + color: $blue + + div.item > .title + &:before + content: "" + position: absolute + top: 9px + left: 2px + border-style: solid + border-width: 5px 0 5px 8px + border-color: transparent transparent transparent $blue + transform: rotate(0deg) + transition: 0.3s + + .wrapper + position: relative + width: 100% + transition: height 0.3s + + .content + padding-left: 20px + opacity: 0 + transition: 0.3s + padding-bottom: 20px + + .item.on + & > .title:before + transform: rotate(90deg) + + & > .wrapper > .content + opacity: 1 + + +#docsContent + position: relative + float: right + width: calc(100% - 400px) + + $toc-margin: 15px + $header-clearance: 40px + + * + h2, * + h3, * + h4, * + h5, * + h6 + margin-top: 30px + + h1, h2, h3, h4, h5, h6 + line-height: normal + font-weight: 500 + margin-bottom: 30px + padding-bottom: 10px + border-bottom: 1px solid #cccccc + + &:before + content: '' + display: block + height: 100px + margin-top: -100px + background-color: red + visibility: hidden + + h1 + font-size: 32px + padding-right: 60px + + h2 + font-size: 28px + + h3 + font-size: 24px + + h4 + font-size: 20px + + h5, h6 + font-size: 16px + + p + font-size: 16px + font-weight: 300 + line-height: 1.25em + overflow: auto + + p + p + margin-top: 10px + + code + white-space: pre-wrap + background-color: $light-grey + color: $dark-grey + font-family: $mono-font + line-height: 32px + overflow: auto + font-size: 14px + font-weight: bold + padding: 2px 4px + + &::-webkit-scrollbar + background-color: transparent + + pre .pi, pre .s + margin: 0 + padding: 0 + + .highlight code span, code, pre code + font-family: "Roboto Mono", monospace + + code, pre code + color: #303030 + + pre code + padding: 0 + + pre + background-color: #f7f7f7 + display: block + white-space: pre-wrap + margin: 20px 0 + padding: 15px + overflow: auto + + pre::-webkit-scrollbar + background-color: transparent + + ul li + list-style: disc + + ol li + list-style: decimal + + ul, ol + padding-left: 30px + + li + margin-bottom: 1em + + #editPageButton + position: absolute + top: -25px + right: -25px + width: 50px + height: 50px + line-height: 50px + border-radius: 50% + white-space: nowrap + text-indent: 50px + overflow: hidden + background: $blue url(../images/pencil.png) no-repeat + background-position: 1px 1px + background-size: auto + + #markdown-toc + margin-bottom: 20px + + ul, li + list-style: disc + color: $blue + + ul + padding: 0 15px + + li + padding: 0 + line-height: 1.5em + margin-bottom: 0 + + a + position: relative + color: $blue + font-weight: 700 + +.fixed footer + position: fixed + bottom: 0 + + +/* Default gh-pages-blog css from https://github.com/thedereck/gh-pages-blog/blob/master/css/syntax.css */ +.highlight br + display: none + +.highlight + background: #ffffff + +.highlight .c + color: #999988 + font-style: italic + +.highlight .err + color: #a61717 + background-color: #e3d2d2 + +.highlight .k + font-weight: bold + +.highlight .o + font-weight: bold + +.highlight .cm + color: #999988 + font-style: italic + +.highlight .cp + color: #999999 + font-weight: bold + +.highlight .c1 + color: #999988 + font-style: italic + +.highlight .cs + color: #999999 + font-weight: bold + font-style: italic + +.highlight .gd + color: #000000 + background-color: #ffdddd + +.highlight .gd .x + color: #000000 + background-color: #ffaaaa + +.highlight .ge + font-style: italic + +.highlight .gr + color: #aa0000 + +.highlight .gh + color: #999999 + +.highlight .gi + color: #000000 + background-color: #ddffdd + +.highlight .gi .x + color: #000000 + background-color: #aaffaa + +.highlight .go + color: #888888 + +.highlight .gp + color: #555555 + +.highlight .gs + font-weight: bold + +.highlight .gu + color: #aaaaaa + +.highlight .gt + color: #aa0000 + +.highlight .kc + font-weight: bold + +.highlight .kd + font-weight: bold + +.highlight .kp + font-weight: bold + +.highlight .kr + font-weight: bold + +.highlight .kt + color: #445588 + font-weight: bold + +.highlight .m + color: #009999 + +.highlight .s + color: #d14 + +.highlight .na + color: #008080 + +.highlight .nb + color: #0086B3 + +.highlight .nc + color: #445588 + font-weight: bold + +.highlight .no + color: #008080 + +.highlight .ni + color: #800080 + +.highlight .ne + color: #990000 + font-weight: bold + +.highlight .nf + color: #990000 + font-weight: bold + +.highlight .nn + color: #555555 + +.highlight .nt + color: #000080 + +.highlight .nv + color: #008080 + +.highlight .ow + font-weight: bold + +.highlight .w + color: #bbbbbb + +.highlight .mf + color: #009999 + +.highlight .mh + color: #009999 + +.highlight .mi + color: #009999 + +.highlight .mo + color: #009999 + +.highlight .sb + color: #d14 + +.highlight .sc + color: #d14 + +.highlight .sd + color: #d14 + +.highlight .s2 + color: #d14 + +.highlight .se + color: #d14 + +.highlight .sh + color: #d14 + +.highlight .si + color: #d14 + +.highlight .sx + color: #d14 + +.highlight .sr + color: #009926 + +.highlight .s1 + color: #d14 + +.highlight .ss + color: #990073 + +.highlight .bp + color: #999999 + +.highlight .vc + color: #008080 + +.highlight .vg + color: #008080 + +.highlight .vi + color: #008080 + +.highlight .il + color: #009999 + + + diff --git a/css/overrides.css b/_sass/_desktop.sass similarity index 100% rename from css/overrides.css rename to _sass/_desktop.sass diff --git a/_sass/_reset.sass b/_sass/_reset.sass new file mode 100755 index 0000000000..e296246969 --- /dev/null +++ b/_sass/_reset.sass @@ -0,0 +1,53 @@ +html, body + margin: 0 + padding: 0 + + +input, button + outline: none + +button + cursor: pointer + +ul, li + list-style: none + +ul + margin: 0 + padding: 0 + +a + text-decoration: none + +// CONVENIENCE +.clear + display: block + clear: both + +.light-text + color: white + +.right + float: right + +.left + float: left + +.center + text-align: center + + +//mixins +@mixin pureCenter($left: 50%, $top: 50%) + position: absolute + top: $top + left: $left + transform: translate(-50%, -50%) + + +@mixin maintain-aspect-ratio ($width-factor: 16, $height-factor: 9, $target-width: 80vw, $target-height: 80vh) + width: $target-width + height: $target-width * ($height-factor / $width-factor) + max-width: $target-height * ($width-factor / $height-factor) + max-height: $target-height + diff --git a/_sass/_size.sass b/_sass/_size.sass new file mode 100644 index 0000000000..669783ac6c --- /dev/null +++ b/_sass/_size.sass @@ -0,0 +1,90 @@ +h1 + font-size: $h1-font-size + line-height: $h1-line-height + +h2 + font-size: $h2-font-size + line-height: $h2-line-height + +h3 + font-size: $h3-font-size + line-height: $h3-line-height + +h4 + font-size: $h4-font-size + line-height: $h4-line-height + +h5 + font-size: $h5-font-size + line-height: $h5-line-height + +p + font-size: $p-font-size + line-height: $p-line-height + +section, header, footer, #vendorStrip + padding-left: $full-width-paddingX + padding-right: $full-width-paddingX + + main + width: $main-width + max-width: $main-max-width + +header + height: $header-height + +.logo + width: $logo-width + height: $header-height + +.nav-buttons + height: $header-height + line-height: $header-height + + .button + * + margin-left: $nav-buttons-margin-left + +#hamburger + width: $hamburger-size + height: $hamburger-size + +#mainNav + padding: $main-nav-padding + + h5 + margin-bottom: $main-nav-h5-margin-bottom + + h3 + margin-bottom: $main-nav-h3-margin-bottom + + .nav-box + width: $nav-box-width + + .nav-box + .nav-box + margin-left: $nav-box-sibling-margin-left + + main + main + margin-top: $main-nav-main-sibling-margin-top + + .left .button + height: $main-nav-left-button-size + line-height: $main-nav-left-button-size + font-size: $main-nav-left-button-font-size + +.open-nav, .y-enough + #tryKubernetes + margin-left: $nav-buttons-margin-left + +#hero + padding-top: $hero-padding-top + +#docs + #hero + h1, h5 + padding-left: $full-width-paddingX + padding-right: $full-width-paddingX + +#vendorStrip + height: $vendor-strip-height + line-height: $vendor-strip-height + font-size: $vendor-strip-font-size diff --git a/_sass/_skin.sass b/_sass/_skin.sass new file mode 100755 index 0000000000..d1a5eb3445 --- /dev/null +++ b/_sass/_skin.sass @@ -0,0 +1,24 @@ +$blue: #3371e3 +$light-grey: #f7f7f7 +$dark-grey: #303030 +$medium-grey: #4c4c4c + +$base-font: 'Roboto', sans-serif +$mono-font: 'Roboto Mono', monospace + + +*, .button + box-sizing: border-box + font-family: $base-font + background: none + margin: 0 + border: 0 + +body + font-family: $base-font + +h1, h2, h5, p + font-weight: 300 + +h3, h4 + font-weight: 400 diff --git a/_sass/_tablet.sass b/_sass/_tablet.sass new file mode 100644 index 0000000000..4fcd97c647 --- /dev/null +++ b/_sass/_tablet.sass @@ -0,0 +1,70 @@ +// TEXT +$h1-font-size: 60px +$h1-line-height: 80px + +$h2-font-size: 42px +$h2-line-height: 60px + +$h3-font-size: 26px +$h3-line-height: 32px + +$h4-font-size: 26px +$h4-line-height: 40px + +$h5-font-size: 18px +$h5-line-height: 36px + +$p-font-size: 20px +$p-line-height: 28px + + +// header +$full-width-paddingX: 20px + +$main-width: 100% +$main-max-width: 100% + +$header-height: 80px + +$logo-width: 180px + +$nav-buttons-margin-left: 30px + +$hamburger-size: 50px + + +// main nav +$main-nav-padding: 140px 0 30px +$main-nav-h5-margin-bottom: 1em +$main-nav-h3-margin-bottom: 0.6em +$nav-box-width: 20% +$nav-box-sibling-margin-left: calc(20% / 3) +$main-nav-main-sibling-margin-top: 60px +$main-nav-left-button-size: 50px +$main-nav-left-button-font-size: 18px + + +// hero +$hero-padding-top: 80px +$headline-wrapper-margin-bottom: 40px +$quickstart-button-padding: 0 50px +$vendor-strip-height: 60px +$vendor-strip-font-size: 18px + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +@media screen and (min-width: 750px) + @import "size" + + #docs #hero + h1, h5 + text-align: left + + #viewDocs, #tryKubernetes + display: inline-block + + #vendorStrip + display: block diff --git a/css/styles.css b/css/styles.css deleted file mode 100755 index 06ce6fb1d7..0000000000 --- a/css/styles.css +++ /dev/null @@ -1,1128 +0,0 @@ -html, body { - margin: 0; - padding: 0; } - -input, button { - outline: none; } - -button { - cursor: pointer; } - -ul, li { - list-style: none; } - -ul { - margin: 0; - padding: 0; } - -a { - text-decoration: none; } - -.clear { - display: block; - clear: both; } - -.light-text { - color: white; } - -.right { - float: right; } - -.left { - float: left; } - -.center { - text-align: center; } - -*, .button { - box-sizing: border-box; - font-family: "Roboto", sans-serif; - background: none; - margin: 0; - border: 0; } - -body { - font-family: "Roboto", sans-serif; } - -h1, h2, h5, p { - font-weight: 300; } - -h3, h4 { - font-weight: 400; } - -body.overlay-on { - overflow: hidden; } - -.pi-modal-close-button { - position: absolute; - top: 50px; - right: 50px; - width: 36px; - height: 36px; - border: 0; } - .pi-modal-close-button:before, .pi-modal-close-button:after { - content: ""; - position: absolute; - top: 0; - width: 50.91169px; - height: 2px; - background-color: white; } - .pi-modal-close-button:before { - left: 0; - -webkit-transform-origin: top left; - -ms-transform-origin: top left; - transform-origin: top left; - -webkit-transform: rotateZ(45deg); - -ms-transform: rotate(45deg); - transform: rotateZ(45deg); } - .pi-modal-close-button:after { - right: 0; - -webkit-transform-origin: top right; - -ms-transform-origin: top right; - transform-origin: top right; - -webkit-transform: rotateZ(-45deg); - -ms-transform: rotate(-45deg); - transform: rotateZ(-45deg); } - -.pi-modal-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - color: white; - background-color: rgba(0, 0, 0, 0.8); - display: none; - opacity: 0; - transition: 0.3s; } - .pi-modal-overlay.on { - opacity: 1; } - -.pi-multi-frame-display { - position: relative; - width: 80vw; - height: 80vh; - margin: 10vh auto; } - .pi-multi-frame-display .item-wrapper { - position: relative; - width: 100%; - height: 100%; } - .pi-multi-frame-display .item { - position: absolute; - top: 50%; - left: 50%; - -webkit-transform: translate(-50%, -50%); - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - display: none; } - .pi-multi-frame-display .item.on { - display: block; } - .pi-multi-frame-display .pager { - position: absolute; - bottom: 10%; - left: 0; - width: 100%; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; } - .pi-multi-frame-display .pager .pager-button { - width: 20px; - height: 20px; - border-radius: 50%; - background-color: black; - border: 0; - margin: 0 10px; - transition: 0.3s; } - .pi-multi-frame-display .pager .pager-button.yah { - background-color: #00ff99; } - .pi-multi-frame-display .prev-button, .pi-multi-frame-display .next-button { - position: absolute; - top: 50%; - width: 30px; - height: 30px; - border: 0; - border-color: #00ff99; - z-index: 3; - -webkit-transform: translateY(-50%) rotateZ(45deg); - -ms-transform: translateY(-50%) rotate(45deg); - transform: translateY(-50%) rotateZ(45deg); - transition: 0.3s; } - .pi-multi-frame-display .prev-button:hover, .pi-multi-frame-display .next-button:hover { - border-color: red; } - .pi-multi-frame-display .prev-button { - left: 30px; - border-bottom: 1px solid; - border-left: 1px solid; } - .pi-multi-frame-display .next-button { - right: 30px; - border-top: 1px solid; - border-right: 1px solid; } - -.pi-accordion { - margin-left: -20px; } - .pi-accordion .container { - padding-left: 20px; } - .pi-accordion .item { - overflow: hidden; } - .pi-accordion .title { - color: #303030; - position: relative; - padding: 7.5px 10px 7.5px 18px; - cursor: pointer; - transition: 0.3s; } - .pi-accordion .title:hover { - color: #3371e3; } - .pi-accordion a.item > .title { - color: black; - padding-left: 0; } - .pi-accordion a.item > .title:hover { - color: #3371e3; } - .pi-accordion div.item > .title:before { - content: ""; - position: absolute; - top: 9px; - left: 2px; - border-style: solid; - border-width: 5px 0 5px 8px; - border-color: transparent transparent transparent #3371e3; - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); - transition: 0.3s; } - .pi-accordion .wrapper { - position: relative; - width: 100%; - transition: height 0.3s; } - .pi-accordion .content { - padding-left: 20px; - opacity: 0; - transition: 0.3s; - padding-bottom: 20px; } - .pi-accordion .item.on > .title:before { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); } - .pi-accordion .item.on > .wrapper > .content { - opacity: 1; } - -.pi-pushmenu { - display: none; - position: fixed; - top: 0; - width: 100%; - height: 100%; - opacity: 0; - transition: opacity 0.3s; } - .pi-pushmenu.on { - opacity: 1; } - .pi-pushmenu .overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); } - .pi-pushmenu .sled { - position: absolute; - top: 0; - width: 0; - height: 100%; - background-color: white; - overflow: auto; - transition: width 0.3s; } - .pi-pushmenu.on .sled { - width: 100vw; } - .pi-pushmenu .top-bar { - height: 0; - line-height: 60px; - background-color: #444; } - .pi-pushmenu .pi-modal-close-button { - position: absolute; - top: 10px; - right: 10px; - z-index: 1; } - .pi-pushmenu .pi-modal-close-button:before, .pi-pushmenu .pi-modal-close-button:after { - background-color: #222222; } - .pi-pushmenu ul { - padding: 0 60px 0 20px; } - .pi-pushmenu li { - position: relative; - display: block; - width: 100%; - min-height: 44px; } - .pi-pushmenu a { - display: inline-block; - width: 100%; - height: 44px; - line-height: 44px; - font-weight: bold; - font-size: 20px; - color: #3371e3; } - .pi-pushmenu .button { - background: none; - padding: 0; } - .pi-pushmenu ul ul { - padding: 0 20px; } - .pi-pushmenu ul ul li { - min-height: 40px; } - .pi-pushmenu ul ul a { - height: 40px; - line-height: 40px; - font-size: 18px; - color: #555555; } - -html, body { - margin: 0; - padding: 0; } - -input, button { - outline: none; } - -button { - cursor: pointer; } - -ul, li { - list-style: none; } - -ul { - margin: 0; - padding: 0; } - -a { - text-decoration: none; } - -.clear { - display: block; - clear: both; } - -.light-text { - color: white; } - -.right { - float: right; } - -.left { - float: left; } - -.center { - text-align: center; } - -h1 { - font-size: 40px; - line-height: 50px; } - -h2 { - font-size: 42px; - line-height: 60px; } - -h3 { - font-size: 26px; - line-height: 32px; } - -h4 { - font-size: 26px; - line-height: 40px; } - -h5 { - font-size: 18px; - line-height: 36px; } - -p { - font-size: 16px; - line-height: 22px; } - -section, header, footer, #vendorStrip { - padding-left: 20px; - padding-right: 20px; } - section main, header main, footer main, #vendorStrip main { - width: 100%; - max-width: 100%; } - -header { - height: 80px; } - -.logo { - width: 120px; - height: 80px; } - -.nav-buttons { - height: 80px; - line-height: 80px; } - .nav-buttons .button + * { - margin-left: 30px; } - -#hamburger { - width: 50px; - height: 50px; } - -#mainNav { - padding: 140px 0 30px; } - #mainNav h5 { - margin-bottom: 1em; } - #mainNav h3 { - margin-bottom: 0.6em; } - #mainNav .nav-box { - width: 20%; } - #mainNav .nav-box + .nav-box { - margin-left: calc(20% / 3); } - #mainNav main + main { - margin-top: 60px; } - #mainNav .left .button { - height: 50px; - line-height: 50px; - font-size: 18px; } - -.open-nav #tryKubernetes, .y-enough #tryKubernetes { - margin-left: 30px; } - -#hero { - padding-top: 80px; } - -#docs #hero h1, #docs #hero h5 { - padding-left: 20px; - padding-right: 20px; } - -#vendorStrip { - height: 60px; - line-height: 60px; - font-size: 18px; } - -body { - background-color: white; } - -section { - position: relative; - background-color: white; - min-width: 1024px; } - -section main, header main, footer main { - position: relative; - margin: auto; - min-width: 850px; } - -.button { - display: inline-block; - border-radius: 6px; - padding: 0 20px; - line-height: 40px; - color: white; - background-color: #3371e3; - text-decoration: none; } - -#cellophane { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: none; } - -header { - position: fixed; - top: 0; - left: 0; - width: 100%; - z-index: 8888; - background-color: transparent; - box-shadow: 0 0 0 transparent; - overflow: hidden; - transition: 0.3s; } - -.logo { - float: left; - background-image: url(/images/nav_logo.svg); - background-size: contain; - background-position: center center; - background-repeat: no-repeat; } - -.nav-buttons { - float: right; } - -#hamburger { - display: inline-block; - position: relative; - vertical-align: middle; - padding: 0; - border: 0; - background: none; } - #hamburger div, #hamburger:before, #hamburger:after { - position: absolute; - left: 15%; - width: 70%; - height: 2px; - background-color: #3371e3; - transition: 0.3s; - content: ""; } - #hamburger div { - top: calc(50% - 1px); } - #hamburger:before { - top: 24%; } - #hamburger:after { - bottom: 24%; } - #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { - background-color: white; } - -#mainNav h5 { - color: #3371e3; - font-weight: normal; } - -#mainNav main { - white-space: nowrap; - overflow: hidden; - clear: both; } - -#mainNav .nav-box { - float: left; - white-space: normal; } - -#mainNav h3 a { - color: #3371e3; - text-decoration: none; } - -.flip-nav header { - background-color: white; } - -.open-nav body { - overflow: hidden; } - -.open-nav #cellophane { - display: block; - z-index: 9998; } - -.open-nav header { - background-color: #f7f7f7; - z-index: 9999; } - -.open-nav #hamburger div { - opacity: 0; } - -.open-nav #hamburger:before, .open-nav #hamburger:after { - left: 12px; - -webkit-transform-origin: 0 1px; - -ms-transform-origin: 0 1px; - transform-origin: 0 1px; } - -.open-nav #hamburger:before { - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); } - -.open-nav #hamburger:after { - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); } - -.open-nav #tryKubernetes, .y-enough #tryKubernetes { - width: 160px; } - -.flip-nav header, .open-nav header { - box-shadow: 0 1px 2px #4c4c4c; } - .flip-nav header .logo, .open-nav header .logo { - background-image: url(/images/nav_logo2.svg); } - -.flip-nav #viewDocs, .open-nav #viewDocs { - border-color: #303030; - color: #303030; } - .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { - border-color: #3371e3; - background-color: #3371e3; - color: white; } - -.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { - background-color: #303030; } - -#hero { - background-image: url(/images/texture.png); - background-color: #303030; - text-align: center; - padding-left: 0; - padding-right: 0; } - -#vendorStrip { - background-color: rgba(255, 255, 255, 0.1); - font-weight: 100; - white-space: nowrap; - text-align: left; } - #vendorStrip div { - vertical-align: middle; - height: 100%; - display: inline-block; } - -footer { - width: 100%; - background-image: url(/images/texture.png); - background-color: #303030; } - footer main { - padding: 40px 0; } - footer nav { - white-space: nowrap; } - footer nav a { - width: 25%; - text-align: center; - display: inline-block; - font-size: 32px; - font-weight: 300; - color: white; - text-decoration: none; } - footer .social { - position: relative; - margin: 80px 0 60px; } - footer .social label { - float: right; - display: inline-block; - height: 50px; - line-height: 50px; - font-weight: 100; - white-space: nowrap; } - footer .social label input { - margin-left: 8px; - width: 300px; } - -#search, #wishField { - background-color: transparent; - padding: 10px; - font-size: 16px; - font-weight: 100; - color: white; - border: 1px solid white; - transition: 0.3s; } - #search:focus, #wishField:focus { - background-color: #f7f7f7; - color: #303030; } - -.social a { - display: inline-block; - background-image: url(/images/social_sprite.png); - background-repeat: no-repeat; - background-size: auto; - width: 50px; - height: 50px; - border-radius: 5px; - margin-right: 30px; } - .social a:hover { - background-color: #fff; } - .social a span { - position: absolute; - display: block; - height: 0; - overflow: hidden; } - -a.twitter { - background-position: 0 0; } - a.twitter:hover { - background-position: 0 100%; } - -a.stack-overflow { - background-position: -50px 0; } - a.stack-overflow:hover { - background-position: -50px 100%; } - -a.slack { - background-position: -100px 0; } - a.slack:hover { - background-position: -100px 100%; } - -a.github { - background-position: -150px 0; } - a.github:hover { - background-position: -150px 100%; } - -a.mailing-list { - background-position: -200px 0; } - a.mailing-list:hover { - background-position: -200px 100%; } - -#viewDocs { - display: none; } - -section { - background-color: white; } - -#hero { - background-color: #303030; } - #hero h5 { - margin-bottom: 40px; } - -#vendorStrip { - position: relative; - white-space: nowrap; } - #vendorStrip ul { - float: left; } - #vendorStrip li { - display: inline-block; - height: 100%; } - #vendorStrip a { - display: block; - height: 100%; - color: white; } - #vendorStrip li + li, #vendorStrip #search { - margin-left: 60px; } - #vendorStrip #search { - position: relative; - float: right; - width: 24%; - min-width: 250px; - padding: 0 10px; - margin: 10px 30px 0 0; - height: 40px; - line-height: 40px; - border: 1px solid #f7f7f7; - font-size: 16px; - vertical-align: middle; } - #vendorStrip .dropdown { - position: relative; - float: right; - height: 60px; - font-size: 20px; - color: white; - line-height: 60px; - cursor: pointer; - overflow: hidden; - z-index: 5000; } - #vendorStrip .dropdown.on { - overflow: visible; } - #vendorStrip .dropdown .readout { - padding-left: 10px; - padding-right: 40px; - transition: 0.3s; } - #vendorStrip .dropdown .readout:after { - content: ""; - position: absolute; - top: 30px; - right: 10px; - width: 0; - height: 0; - border-style: solid; - border-width: 6px 6px 0 6px; - border-color: white transparent transparent transparent; - transition: 0.3s; } - #vendorStrip .dropdown .readout:hover { - background-color: rgba(255, 255, 255, 0.1); } - #vendorStrip .dropdown.on .readout { - background-color: #f7f7f7; - color: #303030; } - #vendorStrip .dropdown.on .readout:after { - border-top-color: #303030; } - #vendorStrip .dropdown .wrapper { - position: absolute; - top: 100%; - left: 0; - width: 100%; } - #vendorStrip .dropdown a { - display: block; - width: 100%; - height: 30px; - line-height: 30px; - padding: 0 10px; - font-size: 16px; - font-weight: 300; - background-color: #f7f7f7; - color: #303030; - opacity: 0; - transition: 0.3s; } - #vendorStrip .dropdown a:hover { - background-color: #cccccc; } - #vendorStrip .dropdown.on a { - opacity: 1; } - -#encyclopedia { - position: relative; - padding: 50px; - overflow: hidden; } - #encyclopedia > div { - height: 100%; } - -#docsToc { - float: left; - width: 350px; - padding: 0 20px 0 0; } - #docsToc .yah > .title { - background-color: #f7f7f7; - border-left: 3px solid #3371e3; - padding: 7.5px 10px 7.5px 18px; - margin-left: -21px; - color: #3371e3; } - -#docsContent { - position: relative; - float: right; - width: calc(100% - 400px); } - #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { - margin-top: 30px; } - #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { - line-height: normal; - font-weight: 500; - margin-bottom: 30px; - padding-bottom: 10px; - border-bottom: 1px solid #cccccc; } - #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { - content: ''; - display: block; - height: 100px; - margin-top: -100px; - background-color: red; - visibility: hidden; } - #docsContent h1 { - font-size: 32px; - padding-right: 60px; } - #docsContent h2 { - font-size: 28px; } - #docsContent h3 { - font-size: 24px; } - #docsContent h4 { - font-size: 20px; } - #docsContent h5, #docsContent h6 { - font-size: 16px; } - #docsContent p { - font-size: 16px; - font-weight: 300; - line-height: 1.25em; } - #docsContent p + p { - margin-top: 10px; } - #docsContent code { - white-space: pre-wrap; - background-color: #f7f7f7; - color: #303030; - font-family: "Roboto Mono", monospace; - line-height: 32px; - overflow: auto; - font-size: 14px; - font-weight: bold; - padding: 2px 4px; } - #docsContent code::-webkit-scrollbar { - background-color: transparent; } - #docsContent pre .pi, #docsContent pre .s { - margin: 0; - padding: 0; } - #docsContent .highlight code span, #docsContent code, #docsContent pre code { - font-family: "Roboto Mono", monospace; } - #docsContent code, #docsContent pre code { - color: #303030; } - #docsContent pre code { - padding: 0; } - #docsContent pre { - background-color: #f7f7f7; - display: block; - white-space: pre-wrap; - margin: 20px 0; - padding: 15px; - overflow: auto; } - #docsContent pre::-webkit-scrollbar { - background-color: transparent; } - #docsContent ul li { - list-style: disc; } - #docsContent ol li { - list-style: decimal; } - #docsContent ul, #docsContent ol { - padding-left: 30px; } - #docsContent li { - margin-bottom: 1em; } - #docsContent #editPageButton { - position: absolute; - top: -25px; - right: -25px; - width: 50px; - height: 50px; - line-height: 50px; - border-radius: 50%; - white-space: nowrap; - text-indent: 50px; - overflow: hidden; - background: #3371e3 url(/images/pencil.png) no-repeat; - background-position: 1px 1px; - background-size: auto; } - #docsContent #markdown-toc { - margin-bottom: 20px; } - #docsContent #markdown-toc ul, #docsContent #markdown-toc li { - list-style: disc; - color: #3371e3; } - #docsContent #markdown-toc ul { - padding: 0 15px; } - #docsContent #markdown-toc li { - padding: 0; - line-height: 1.5em; - margin-bottom: 0; } - #docsContent #markdown-toc a { - position: relative; - color: #3371e3; - font-weight: 700; } - -.fixed footer { - position: fixed; - bottom: 0; } - -/* Default gh-pages-blog css from https://github.com/thedereck/gh-pages-blog/blob/master/css/syntax.css */ -.highlight br { - display: none; } - -.highlight { - background: #ffffff; } - -.highlight .c { - color: #999988; - font-style: italic; } - -.highlight .err { - color: #a61717; - background-color: #e3d2d2; } - -.highlight .k { - font-weight: bold; } - -.highlight .o { - font-weight: bold; } - -.highlight .cm { - color: #999988; - font-style: italic; } - -.highlight .cp { - color: #999999; - font-weight: bold; } - -.highlight .c1 { - color: #999988; - font-style: italic; } - -.highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - -.highlight .gd { - color: #000000; - background-color: #ffdddd; } - -.highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - -.highlight .ge { - font-style: italic; } - -.highlight .gr { - color: #aa0000; } - -.highlight .gh { - color: #999999; } - -.highlight .gi { - color: #000000; - background-color: #ddffdd; } - -.highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - -.highlight .go { - color: #888888; } - -.highlight .gp { - color: #555555; } - -.highlight .gs { - font-weight: bold; } - -.highlight .gu { - color: #aaaaaa; } - -.highlight .gt { - color: #aa0000; } - -.highlight .kc { - font-weight: bold; } - -.highlight .kd { - font-weight: bold; } - -.highlight .kp { - font-weight: bold; } - -.highlight .kr { - font-weight: bold; } - -.highlight .kt { - color: #445588; - font-weight: bold; } - -.highlight .m { - color: #009999; } - -.highlight .s { - color: #d14; } - -.highlight .na { - color: #008080; } - -.highlight .nb { - color: #0086B3; } - -.highlight .nc { - color: #445588; - font-weight: bold; } - -.highlight .no { - color: #008080; } - -.highlight .ni { - color: #800080; } - -.highlight .ne { - color: #990000; - font-weight: bold; } - -.highlight .nf { - color: #990000; - font-weight: bold; } - -.highlight .nn { - color: #555555; } - -.highlight .nt { - color: #000080; } - -.highlight .nv { - color: #008080; } - -.highlight .ow { - font-weight: bold; } - -.highlight .w { - color: #bbbbbb; } - -.highlight .mf { - color: #009999; } - -.highlight .mh { - color: #009999; } - -.highlight .mi { - color: #009999; } - -.highlight .mo { - color: #009999; } - -.highlight .sb { - color: #d14; } - -.highlight .sc { - color: #d14; } - -.highlight .sd { - color: #d14; } - -.highlight .s2 { - color: #d14; } - -.highlight .se { - color: #d14; } - -.highlight .sh { - color: #d14; } - -.highlight .si { - color: #d14; } - -.highlight .sx { - color: #d14; } - -.highlight .sr { - color: #009926; } - -.highlight .s1 { - color: #d14; } - -.highlight .ss { - color: #990073; } - -.highlight .bp { - color: #999999; } - -.highlight .vc { - color: #008080; } - -.highlight .vg { - color: #008080; } - -.highlight .vi { - color: #008080; } - -.highlight .il { - color: #009999; } - -@media screen and (min-width: 750px) { - h1 { - font-size: 60px; - line-height: 80px; } - h2 { - font-size: 42px; - line-height: 60px; } - h3 { - font-size: 26px; - line-height: 32px; } - h4 { - font-size: 26px; - line-height: 40px; } - h5 { - font-size: 18px; - line-height: 36px; } - p { - font-size: 20px; - line-height: 28px; } - section, header, footer, #vendorStrip { - padding-left: 20px; - padding-right: 20px; } - section main, header main, footer main, #vendorStrip main { - width: 100%; - max-width: 100%; } - header { - height: 80px; } - .logo { - width: 180px; - height: 80px; } - .nav-buttons { - height: 80px; - line-height: 80px; } - .nav-buttons .button + * { - margin-left: 30px; } - #hamburger { - width: 50px; - height: 50px; } - #mainNav { - padding: 140px 0 30px; } - #mainNav h5 { - margin-bottom: 1em; } - #mainNav h3 { - margin-bottom: 0.6em; } - #mainNav .nav-box { - width: 20%; } - #mainNav .nav-box + .nav-box { - margin-left: calc(20% / 3); } - #mainNav main + main { - margin-top: 60px; } - #mainNav .left .button { - height: 50px; - line-height: 50px; - font-size: 18px; } - .open-nav #tryKubernetes, .y-enough #tryKubernetes { - margin-left: 30px; } - #hero { - padding-top: 80px; } - #docs #hero h1, #docs #hero h5 { - padding-left: 20px; - padding-right: 20px; } - #vendorStrip { - height: 60px; - line-height: 60px; - font-size: 18px; } - #docs #hero h1, #docs #hero h5 { - text-align: left; } - #viewDocs, #tryKubernetes { - display: inline-block; } - #vendorStrip { - display: block; } } - -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnRpYWxzL19yZXNldC5zYXNzIiwicGFydGlhbHMvX3NraW4uc2FzcyIsIi4uL2Jhc2VDb21wb25lbnRzL1/PgC1iYXNlQ29tcG9uZW50cy5zYXNzIiwiLi4vbW9kdWxlcy/PgC1hY2NvcmRpb24vX8+ALWFjY29yZGlvbi5zYXNzIiwiLi4vbW9kdWxlcy/PgC1wdXNobWVudS9fz4AtcHVzaG1lbnUuc2FzcyIsInBhcnRpYWxzL19zaXplLnNhc3MiLCJtZWRpYVF1ZXJpZXMvX2Jhc2Uuc2FzcyIsIm1lZGlhUXVlcmllcy9fdGFibGV0LnNhc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDQyxVQUFVO0VBQ1YsV0FBVyxFQUFHOztBQUdmO0VBQ0MsY0FBYyxFQUFHOztBQUVsQjtFQUNDLGdCQUFnQixFQUFHOztBQUVwQjtFQUNDLGlCQUFpQixFQUFHOztBQUVyQjtFQUNDLFVBQVU7RUFDVixXQUFXLEVBQUc7O0FBRWY7RUFDQyxzQkFBc0IsRUFBRzs7QUFHMUI7RUFDQyxlQUFlO0VBQ2YsWUFBWSxFQUFHOztBQUVoQjtFQUNDLGFBQWEsRUFBRzs7QUFFakI7RUFDQyxhQUFhLEVBQUc7O0FBRWpCO0VBQ0MsWUFBWSxFQUFHOztBQUVoQjtFQUNDLG1CQUFtQixFQUFHOztBQzNCdkI7RUFDQyx1QkFBdUI7RUFDdkIsa0NBTitCO0VBTy9CLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsVUFBVSxFQUFHOztBQUVkO0VBQ0Msa0NBWitCLEVBWUw7O0FBRTNCO0VBQ0MsaUJBQWlCLEVBQUc7O0FBRXJCO0VBQ0MsaUJBQWlCLEVBQUc7O0FDdkJyQjtFQUNDLGlCQUFpQixFQUFHOztBQU1yQjtFQUlDLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsWUFBWTtFQUNaLFlBTnlCO0VBT3pCLGFBUHlCO0VBUXpCLFVBQVUsRUFrQnNCO0VBM0JqQztJQVlFLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsT0FBTztJQUNQLGtCQWJzQztJQWN0QyxZQUFZO0lBQ1osd0JBQXdC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S2tCO0VESmxCLGtCQ0tvQixFRExXOztBQUVoQztFQUNDLGdCQ0lrQjtFREhsQixrQkNJb0IsRURKVzs7QUFFaEM7RUFDQyxnQkNHa0I7RURGbEIsa0JDR29CLEVESFc7O0FBRWhDO0VBQ0MsZ0JDRWtCO0VERGxCLGtCQ0VvQixFREZXOztBQUVoQztFQUNDLGdCQ0NrQjtFREFsQixrQkNDb0IsRUREVzs7QUFFaEM7RUFDQyxnQkNBaUI7RURDakIsa0JDQW1CLEVEQVc7O0FBRS9CO0VBQ0MsbUJDQ3lCO0VEQXpCLG9CQ0F5QixFRElPO0VBTmpDO0lBS0UsWUNEZTtJREVmLGdCQ0RtQixFRENVOztBQUUvQjtFQUNDLGFDRm1CLEVERU07O0FBRTFCO0VBQ0MsYUNIaUI7RURJakIsYUNObUIsRURNTTs7QUFFMUI7RUFDQyxhQ1RtQjtFRFVuQixrQkNWbUIsRURhd0I7RUFMNUM7SUFLRSxrQkNUNEIsRURTWTs7QUFFMUM7RUFDQyxZQ1ZvQjtFRFdwQixhQ1hvQixFRFdNOztBQUUzQjtFQUNDLHNCQ1Y4QixFRDhCa0I7RUFyQmpEO0lBSUUsbUJDWjZCLEVEWWU7RUFKOUM7SUFPRSxxQkNkK0IsRURjYTtFQVA5QztJQVVFLFdDaEJpQixFRGdCTztFQVYxQjtJQWFFLDJCQ2xCZ0MsRURrQlk7RUFiOUM7SUFnQkUsaUJDcEJxQyxFRG9CVztFQWhCbEQ7SUFtQkUsYUN0QjhCO0lEdUI5QixrQkN2QjhCO0lEd0I5QixnQkN2Qm1DLEVEdUJVOztBQUUvQztFQUVFLGtCQ3hDNEIsRUR3Q1k7O0FBRTFDO0VBQ0Msa0JDMUJzQixFRDBCVzs7QUFFbEM7RUFHRyxtQkN6RHVCO0VEMER2QixvQkMxRHVCLEVEMERlOztBQUV6QztFQUNDLGFDaEN5QjtFRGlDekIsa0JDakN5QjtFRGtDekIsZ0JDakM0QixFRGlDUzs7QUN6QnRDO0VBQ0Msd0JBQXdCLEVBQUc7O0FBRTVCO0VBQ0MsbUJBQW1CO0VBQ25CLHdCQUF3QjtFQUN4QixrQkFBa0IsRUFBRzs7QUFFdEI7RUFFRSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLGlCQUFpQixF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QztJQUNDLGtCRS9Cc0IsRUYrQlc7RUFFbEM7SUFHRyxtQkU5RHVCO0lGK0R2QixvQkUvRHVCLEVGK0RlO0VBRXpDO0lBQ0MsYUVyQ3lCO0lGc0N6QixrQkV0Q3lCO0lGdUN6QixnQkV0QzRCLEVGc0NTO0VFNUJyQztJQUVFLGlCQUFpQixFQUFHO0VBRXRCO0lBQ0Msc0JBQXNCLEVBQUc7RUFFMUI7SUFDQyxlQUFlLEVBQUcsRUFBQSIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaHRtbCwgYm9keSB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDsgfVxuXG5cbmlucHV0LCBidXR0b24ge1xuXHRvdXRsaW5lOiBub25lOyB9XG5cbmJ1dHRvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjsgfVxuXG51bCwgbGkge1xuXHRsaXN0LXN0eWxlOiBub25lOyB9XG5cbnVsIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwOyB9XG5cbmEge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLy8gQ09OVkVOSUVOQ0Vcbi5jbGVhciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjbGVhcjogYm90aDsgfVxuXG4ubGlnaHQtdGV4dCB7XG5cdGNvbG9yOiB3aGl0ZTsgfVxuXG4ucmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7IH1cblxuLmxlZnQge1xuXHRmbG9hdDogbGVmdDsgfVxuXG4uY2VudGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyOyB9XG5cblxuLy9taXhpbnNcbkBtaXhpbiBwdXJlQ2VudGVyKCRsZWZ0OiA1MCUsICR0b3A6IDUwJSkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogJHRvcDtcblx0bGVmdDogJGxlZnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cblxuQG1peGluIG1haW50YWluLWFzcGVjdC1yYXRpbyAoJHdpZHRoLWZhY3RvcjogMTYsICRoZWlnaHQtZmFjdG9yOiA5LCAkdGFyZ2V0LXdpZHRoOiA4MHZ3LCAkdGFyZ2V0LWhlaWdodDogODB2aCkge1xuXHR3aWR0aDogJHRhcmdldC13aWR0aDtcblx0aGVpZ2h0OiAkdGFyZ2V0LXdpZHRoICogKCRoZWlnaHQtZmFjdG9yIC8gJHdpZHRoLWZhY3Rvcik7XG5cdG1heC13aWR0aDogJHRhcmdldC1oZWlnaHQgKiAoJHdpZHRoLWZhY3RvciAvICRoZWlnaHQtZmFjdG9yKTtcblx0bWF4LWhlaWdodDogJHRhcmdldC1oZWlnaHQ7IH1cblxuIiwiJGJsdWU6ICMzMzcxZTM7XG4kbGlnaHQtZ3JleTogI2Y3ZjdmNztcbiRkYXJrLWdyZXk6ICMzMDMwMzA7XG4kbWVkaXVtLWdyZXk6ICM0YzRjNGM7XG5cbiRiYXNlLWZvbnQ6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuJG1vbm8tZm9udDogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuXG5cbiosIC5idXR0b24ge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRmb250LWZhbWlseTogJGJhc2UtZm9udDtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IDA7IH1cblxuYm9keSB7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250OyB9XG5cbmgxLCBoMiwgaDUsIHAge1xuXHRmb250LXdlaWdodDogMzAwOyB9XG5cbmgzLCBoNCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiIsImJvZHkub3ZlcmxheS1vbiB7XG5cdG92ZXJmbG93OiBoaWRkZW47IH1cblxuXG4kYXdlc29tZS1ncmVlbjogIzAwZmY5OTtcblxuLy8gbW9kYWwgY2xvc2UgYnV0dG9uXG4ucGktbW9kYWwtY2xvc2UtYnV0dG9uIHtcblx0JGJ1dHRvbi1zaWRlLWxlbmd0aDogMzZweDtcblx0JGh5cG90ZW51c2UtbGVuZ3RoOiA1MC45MTE2ODgyNDU0MzE0MnB4O1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MHB4O1xuXHRyaWdodDogNTBweDtcblx0d2lkdGg6ICRidXR0b24tc2lkZS1sZW5ndGg7XG5cdGhlaWdodDogJGJ1dHRvbi1zaWRlLWxlbmd0aDtcblx0Ym9yZGVyOiAwO1xuXG5cdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0d2lkdGg6ICRoeXBvdGVudXNlLWxlbmd0aDtcblx0XHRoZWlnaHQ6IDJweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG5cdCY6YmVmb3JlIHtcblx0XHRsZWZ0OiAwO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7IH1cblxuXHQmOmFmdGVyIHtcblx0XHRyaWdodDogMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZyk7IH0gfVxuXG4vLyBtb2RhbCBvdmVybGF5XG4ucGktbW9kYWwtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcblx0ZGlzcGxheTogbm9uZTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogMC4zcztcblxuXHQmLm9uIHtcblx0XHRvcGFjaXR5OiAxOyB9IH1cblxuLy8gbXVsdGlGcmFtZURpc3BsYXlcbi5waS1tdWx0aS1mcmFtZS1kaXNwbGF5IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogODB2dztcblx0aGVpZ2h0OiA4MHZoO1xuXHRtYXJnaW46IDEwdmggYXV0bztcblxuXHQuaXRlbS13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlOyB9XG5cblx0Lml0ZW0ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdCYub24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7IH0gfVxuXG5cdC5wYWdlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMTAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRcdC5wYWdlci1idXR0b24ge1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdG1hcmdpbjogMCAxMHB4O1xuXHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0Ji55YWgge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYXdlc29tZS1ncmVlbjsgfSB9IH1cblxuXHQkcHJldi1uZXh0LWJvcmRlci1zdHlsZTogMXB4IHNvbGlkO1xuXHQucHJldi1idXR0b24sIC5uZXh0LWJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHdpZHRoOiAzMHB4O1xuXHRcdGhlaWdodDogMzBweDtcblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkYXdlc29tZS1ncmVlbjtcblx0XHR6LWluZGV4OiAzO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGVaKDQ1ZGVnKTtcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHJlZDsgfSB9XG5cblx0LnByZXYtYnV0dG9uIHtcblx0XHRsZWZ0OiAzMHB4O1xuXHRcdGJvcmRlci1ib3R0b206ICRwcmV2LW5leHQtYm9yZGVyLXN0eWxlO1xuXHRcdGJvcmRlci1sZWZ0OiAkcHJldi1uZXh0LWJvcmRlci1zdHlsZTsgfVxuXG5cdC5uZXh0LWJ1dHRvbiB7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHByZXYtbmV4dC1ib3JkZXItc3R5bGU7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAkcHJldi1uZXh0LWJvcmRlci1zdHlsZTsgfSB9XG5cbiIsIi5waS1hY2NvcmRpb24ge1xuXHRtYXJnaW4tbGVmdDogLTIwcHg7XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuIH1cdFx0Ly9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEpXG5cblx0Lml0ZW0ge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47IH1cblxuXHQudGl0bGUge1xuXHRcdGNvbG9yOiAkZGFyay1ncmV5O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nOiA3LjVweCAxMHB4IDcuNXB4IDE4cHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkYmx1ZTsgfSB9XG5cblx0YS5pdGVtID4gLnRpdGxlIHtcblx0XHRjb2xvcjogYmxhY2s7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsdWU7IH0gfVxuXG5cdGRpdi5pdGVtID4gLnRpdGxlIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA5cHg7XG5cdFx0XHRsZWZ0OiAycHg7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiA1cHggMCA1cHggOHB4O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkYmx1ZTtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXHRcdFx0dHJhbnNpdGlvbjogMC4zczsgfSB9XG5cblx0LndyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0cmFuc2l0aW9uOiBoZWlnaHQgMC4zczsgfVxuXG5cdC5jb250ZW50IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cblx0Lml0ZW0ub24ge1xuXHRcdCYgPiAudGl0bGU6YmVmb3JlIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG5cdFx0JiA+IC53cmFwcGVyID4gLmNvbnRlbnQge1xuXHRcdFx0b3BhY2l0eTogMTsgfSB9IH1cbiIsIi5waS1wdXNobWVudSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG5cblx0Ji5vbiB7XG5cdFx0b3BhY2l0eTogMTsgfVxuXG5cdC5vdmVybGF5IHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgfVxuXG5cdC5zbGVkIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAwLjNzOyB9XG5cblx0Ji5vbiAuc2xlZCB7XG5cdFx0d2lkdGg6IDEwMHZ3OyB9XG5cblx0LnRvcC1iYXIge1xuXHRcdGhlaWdodDogMDtcblx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OyB9XG5cblx0LnBpLW1vZGFsLWNsb3NlLWJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTBweDtcblx0XHRyaWdodDogMTBweDtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzIyMjIyMjsgfSB9XG5cblxuXHR1bCB7XG5cdFx0cGFkZGluZzogMCA2MHB4IDAgMjBweDsgfVxuXHRsaSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi1oZWlnaHQ6IDQ0cHg7IH1cblxuXHRhIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA0NHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRjb2xvcjogJGJsdWU7IH1cblxuXHQuYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7IH1cblxuXG5cblx0dWwgdWwge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblxuXHRcdGxpIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDQwcHg7IH1cblxuXHRcdGEge1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRjb2xvcjogbGlnaHRlbigjMjIyMjIyLCAyMCUpOyB9IH0gfVxuIiwiaDEge1xuXHRmb250LXNpemU6ICRoMS1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkaDEtbGluZS1oZWlnaHQ7IH1cblxuaDIge1xuXHRmb250LXNpemU6ICRoMi1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkaDItbGluZS1oZWlnaHQ7IH1cblxuaDMge1xuXHRmb250LXNpemU6ICRoMy1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkaDMtbGluZS1oZWlnaHQ7IH1cblxuaDQge1xuXHRmb250LXNpemU6ICRoNC1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkaDQtbGluZS1oZWlnaHQ7IH1cblxuaDUge1xuXHRmb250LXNpemU6ICRoNS1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkaDUtbGluZS1oZWlnaHQ7IH1cblxucCB7XG5cdGZvbnQtc2l6ZTogJHAtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJHAtbGluZS1oZWlnaHQ7IH1cblxuc2VjdGlvbiwgaGVhZGVyLCBmb290ZXIsICN2ZW5kb3JTdHJpcCB7XG5cdHBhZGRpbmctbGVmdDogJGZ1bGwtd2lkdGgtcGFkZGluZ1g7XG5cdHBhZGRpbmctcmlnaHQ6ICRmdWxsLXdpZHRoLXBhZGRpbmdYO1xuXG5cdG1haW4ge1xuXHRcdHdpZHRoOiAkbWFpbi13aWR0aDtcblx0XHRtYXgtd2lkdGg6ICRtYWluLW1heC13aWR0aDsgfSB9XG5cbmhlYWRlciB7XG5cdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7IH1cblxuLmxvZ28ge1xuXHR3aWR0aDogJGxvZ28td2lkdGg7XG5cdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7IH1cblxuLm5hdi1idXR0b25zIHtcblx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblx0bGluZS1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXG5cdC5idXR0b24gKyAqIHtcblx0XHRtYXJnaW4tbGVmdDogJG5hdi1idXR0b25zLW1hcmdpbi1sZWZ0OyB9IH1cblxuI2hhbWJ1cmdlciB7XG5cdHdpZHRoOiAkaGFtYnVyZ2VyLXNpemU7XG5cdGhlaWdodDogJGhhbWJ1cmdlci1zaXplOyB9XG5cbiNtYWluTmF2IHtcblx0cGFkZGluZzogJG1haW4tbmF2LXBhZGRpbmc7XG5cblx0aDUge1xuXHRcdG1hcmdpbi1ib3R0b206ICRtYWluLW5hdi1oNS1tYXJnaW4tYm90dG9tOyB9XG5cblx0aDMge1xuXHRcdG1hcmdpbi1ib3R0b206ICRtYWluLW5hdi1oMy1tYXJnaW4tYm90dG9tOyB9XG5cblx0Lm5hdi1ib3gge1xuXHRcdHdpZHRoOiAkbmF2LWJveC13aWR0aDsgfVxuXG5cdC5uYXYtYm94ICsgLm5hdi1ib3gge1xuXHRcdG1hcmdpbi1sZWZ0OiAkbmF2LWJveC1zaWJsaW5nLW1hcmdpbi1sZWZ0OyB9XG5cblx0bWFpbiArIG1haW4ge1xuXHRcdG1hcmdpbi10b3A6ICRtYWluLW5hdi1tYWluLXNpYmxpbmctbWFyZ2luLXRvcDsgfVxuXG5cdC5sZWZ0IC5idXR0b24ge1xuXHRcdGhlaWdodDogJG1haW4tbmF2LWxlZnQtYnV0dG9uLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6ICRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1zaXplO1xuXHRcdGZvbnQtc2l6ZTogJG1haW4tbmF2LWxlZnQtYnV0dG9uLWZvbnQtc2l6ZTsgfSB9XG5cbi5vcGVuLW5hdiwgLnktZW5vdWdoIHtcblx0I3RyeUt1YmVybmV0ZXMge1xuXHRcdG1hcmdpbi1sZWZ0OiAkbmF2LWJ1dHRvbnMtbWFyZ2luLWxlZnQ7IH0gfVxuXG4jaGVybyB7XG5cdHBhZGRpbmctdG9wOiAkaGVyby1wYWRkaW5nLXRvcDsgfVxuXG4jZG9jcyB7XG5cdCNoZXJvIHtcblx0XHRoMSwgaDUge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkZnVsbC13aWR0aC1wYWRkaW5nWDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRmdWxsLXdpZHRoLXBhZGRpbmdYOyB9IH0gfVxuXG4jdmVuZG9yU3RyaXAge1xuXHRoZWlnaHQ6ICR2ZW5kb3Itc3RyaXAtaGVpZ2h0O1xuXHRsaW5lLWhlaWdodDogJHZlbmRvci1zdHJpcC1oZWlnaHQ7XG5cdGZvbnQtc2l6ZTogJHZlbmRvci1zdHJpcC1mb250LXNpemU7IH1cbiIsIlxuXG5cbkBpbXBvcnQgXCIuLi9wYXJ0aWFscy9yZXNldFwiO1xuXG4vLyBURVhUXG4kaDEtZm9udC1zaXplOiA0MHB4O1xuJGgxLWxpbmUtaGVpZ2h0OiA1MHB4O1xuXG4kaDItZm9udC1zaXplOiA0MnB4O1xuJGgyLWxpbmUtaGVpZ2h0OiA2MHB4O1xuXG4kaDMtZm9udC1zaXplOiAyNnB4O1xuJGgzLWxpbmUtaGVpZ2h0OiAzMnB4O1xuXG4kaDQtZm9udC1zaXplOiAyNnB4O1xuJGg0LWxpbmUtaGVpZ2h0OiA0MHB4O1xuXG4kaDUtZm9udC1zaXplOiAxOHB4O1xuJGg1LWxpbmUtaGVpZ2h0OiAzNnB4O1xuXG4kcC1mb250LXNpemU6IDE2cHg7XG4kcC1saW5lLWhlaWdodDogMjJweDtcblxuXG4vLyBoZWFkZXJcbiRmdWxsLXdpZHRoLXBhZGRpbmdYOiAyMHB4O1xuXG4kbWFpbi13aWR0aDogMTAwJTtcbiRtYWluLW1heC13aWR0aDogMTAwJTtcblxuJGhlYWRlci1oZWlnaHQ6IDgwcHg7XG5cbiRsb2dvLXdpZHRoOiAxMjBweDtcblxuJG5hdi1idXR0b25zLW1hcmdpbi1sZWZ0OiAzMHB4O1xuXG4kaGFtYnVyZ2VyLXNpemU6IDUwcHg7XG5cblxuLy8gbWFpbiBuYXZcbiRtYWluLW5hdi1wYWRkaW5nOiAxNDBweCAwIDMwcHg7XG4kbWFpbi1uYXYtaDUtbWFyZ2luLWJvdHRvbTogMWVtO1xuJG1haW4tbmF2LWgzLW1hcmdpbi1ib3R0b206IDAuNmVtO1xuJG5hdi1ib3gtd2lkdGg6IDIwJTtcbiRuYXYtYm94LXNpYmxpbmctbWFyZ2luLWxlZnQ6IGNhbGMoMjAlIC8gMyk7XG4kbWFpbi1uYXYtbWFpbi1zaWJsaW5nLW1hcmdpbi10b3A6IDYwcHg7XG4kbWFpbi1uYXYtbGVmdC1idXR0b24tc2l6ZTogNTBweDtcbiRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1mb250LXNpemU6IDE4cHg7XG5cblxuLy8gaGVyb1xuJGhlcm8tcGFkZGluZy10b3A6IDgwcHg7XG4kaGVhZGxpbmUtd3JhcHBlci1tYXJnaW4tYm90dG9tOiA0MHB4O1xuJHF1aWNrc3RhcnQtYnV0dG9uLXBhZGRpbmc6IDAgNTBweDtcbiR2ZW5kb3Itc3RyaXAtaGVpZ2h0OiA2MHB4O1xuJHZlbmRvci1zdHJpcC1mb250LXNpemU6IDE4cHg7XG5cbkBpbXBvcnQgXCIuLi9wYXJ0aWFscy9zaXplXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbnNlY3Rpb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRtaW4td2lkdGg6IDEwMjRweDsgfVxuXG5zZWN0aW9uLCBoZWFkZXIsIGZvb3RlciB7XG5cdG1haW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IGF1dG87XG5cdFx0bWluLXdpZHRoOiA4NTBweDsgfSB9XG5cbi5idXR0b24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblx0cGFkZGluZzogMCAyMHB4O1xuXHRsaW5lLWhlaWdodDogNDBweDtcblx0Y29sb3I6IHdoaXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbiNjZWxsb3BoYW5lIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vLyBIRUFERVJcbmhlYWRlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogODg4ODtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJveC1zaGFkb3c6IDAgMCAwIHRyYW5zcGFyZW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0cmFuc2l0aW9uOiAwLjNzOyB9XG5cbi5sb2dvIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvbmF2X2xvZ28uc3ZnKTtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5uYXYtYnV0dG9ucyB7XG5cdGZsb2F0OiByaWdodDsgfVxuXG4jaGFtYnVyZ2VyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRkaXYsICY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMTUlO1xuXHRcdHdpZHRoOiA3MCU7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG5cdFx0dHJhbnNpdGlvbjogMC4zcztcblx0XHRjb250ZW50OiBcIlwiOyB9XG5cblx0ZGl2IHtcblx0XHR0b3A6IGNhbGMoNTAlIC0gMXB4KTsgfVxuXG5cdCY6YmVmb3JlIHtcblx0XHR0b3A6IDI0JTsgfVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGJvdHRvbTogMjQlOyB9XG5cblx0Jjpob3ZlciB7XG5cdFx0ZGl2LCAmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfSB9IH1cblxuI21haW5OYXYge1xuXHRoNSB7XG5cdFx0Y29sb3I6ICRibHVlO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuXHRtYWluIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0Y2xlYXI6IGJvdGg7IH1cblxuXHQubmF2LWJveCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG5cdGgzIHtcblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfSB9IH1cblxuLy8gRkxJUCBOQVZcbi5mbGlwLW5hdiB7XG5cdGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH0gfVxuXG5cbi8vIE9QRU4gTkFWXG4ub3Blbi1uYXYge1xuXHRib2R5IHtcblx0XHRvdmVyZmxvdzogaGlkZGVuOyB9XG5cblx0I2NlbGxvcGhhbmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHotaW5kZXg6IDk5OTg7IH1cblxuXHRoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdHotaW5kZXg6IDk5OTk7IH1cblxuXHQjaGFtYnVyZ2VyIHtcblx0XHRkaXYge1xuXHRcdFx0b3BhY2l0eTogMDsgfVxuXG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0bGVmdDogMTJweDtcblx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDAgMXB4OyB9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfSB9IH1cblxuLm9wZW4tbmF2LCAueS1lbm91Z2gge1xuXHQjdHJ5S3ViZXJuZXRlcyB7XG5cdFx0d2lkdGg6IDE2MHB4OyB9IH1cblxuXG4uZmxpcC1uYXYsIC5vcGVuLW5hdiB7XG5cdGhlYWRlciB7XG5cdFx0Ym94LXNoYWRvdzogMCAxcHggMnB4ICRtZWRpdW0tZ3JleTtcblxuXHRcdC5sb2dvIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvbmF2X2xvZ28yLnN2Zyk7IH0gfVxuXG5cdCN2aWV3RG9jcyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkZGFyay1ncmV5O1xuXHRcdGNvbG9yOiAkZGFyay1ncmV5O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRibHVlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG5cdFx0XHRjb2xvcjogd2hpdGU7IH0gfVxuXG5cdCNoYW1idXJnZXI6aG92ZXIge1xuXHRcdGRpdiwgJjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTsgfSB9IH1cblxuXG5cbi8vIEhFUk9cbiNoZXJvIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy90ZXh0dXJlLnBuZyk7XG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8vIFZFTkRPUiBTVFJJUFxuI3ZlbmRvclN0cmlwIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuOSk7XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0ZGl2IHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4vLyBGT09URVJcbmZvb3RlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL3RleHR1cmUucG5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTtcblxuXHRtYWluIHtcblx0XHRwYWRkaW5nOiA0MHB4IDA7IH1cblxuXHRuYXYge1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHRhIHtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lOyB9IH1cblxuXHQuc29jaWFsIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luOiA4MHB4IDAgNjBweDtcblxuXHRcdGxhYmVsIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGhlaWdodDogNTBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDEwMDtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDhweDtcblx0XHRcdFx0d2lkdGg6IDMwMHB4OyB9IH0gfSB9XG5cblxuI3NlYXJjaCwgI3dpc2hGaWVsZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7XG5cdHRyYW5zaXRpb246IDAuM3M7XG5cblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cdFx0Y29sb3I6ICRkYXJrLWdyZXk7IH0gfVxuXG4uc29jaWFsIGEge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvc29jaWFsX3Nwcml0ZS5wbmcpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuXHRzcGFuIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47IH0gfVxuXG5hLnR3aXR0ZXIge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB9IH1cblxuYS5zdGFjay1vdmVyZmxvdyB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4IDA7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggMTAwJTsgfSB9XG5cbmEuc2xhY2sge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMTAwJTsgfSB9XG5cbmEuZ2l0aHViIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE1MHB4IDA7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE1MHB4IDEwMCU7IH0gfVxuXG5hLm1haWxpbmctbGlzdCB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IC0yMDBweCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0yMDBweCAxMDAlOyB9IH1cblxuI3ZpZXdEb2NzIHtcblx0ZGlzcGxheTogbm9uZTsgfVxuXG5zZWN0aW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuI2hlcm8ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuXG5cdGg1IHtcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cblxuI3ZlbmRvclN0cmlwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdHVsIHtcblx0XHRmbG9hdDogbGVmdDsgfVxuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0aGVpZ2h0OiAxMDAlOyB9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGNvbG9yOiB3aGl0ZTsgfVxuXG5cdGxpICsgbGksICNzZWFyY2gge1xuXHRcdG1hcmdpbi1sZWZ0OiA2MHB4OyB9XG5cblx0I3NlYXJjaCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogMjQlO1xuXHRcdG1pbi13aWR0aDogMjUwcHg7XG5cdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdG1hcmdpbjogMTBweCAzMHB4IDAgMDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuXHQuZHJvcGRvd24ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0bGluZS1oZWlnaHQ6IDYwcHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ei1pbmRleDogNTAwMDtcblxuXHRcdCYub24ge1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7IH1cblxuXHRcdC5yZWFkb3V0IHtcblx0XHRcdHBhZGRpbmctbGVmdDogMTBweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDQwcHg7XG5cdFx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDMwcHg7XG5cdFx0XHRcdHJpZ2h0OiAxMHB4O1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDZweCA2cHggMCA2cHg7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogd2hpdGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7IH0gfVxuXG5cdFx0LnJlYWRvdXQ6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuOSk7IH1cblxuXHRcdCYub24gLnJlYWRvdXQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cdFx0XHRjb2xvcjogJGRhcmstZ3JleTsgfVxuXG5cdFx0Ji5vbiAucmVhZG91dDphZnRlciB7XG5cdFx0XHRib3JkZXItdG9wLWNvbG9yOiAkZGFyay1ncmV5OyB9XG5cblx0XHQud3JhcHBlciB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7IH1cblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdFx0Y29sb3I6ICRkYXJrLWdyZXk7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7IH0gfVxuXG5cdFx0Ji5vbiBhIHtcblx0XHRcdG9wYWNpdHk6IDE7IH0gfSB9XG5cbiNlbmN5Y2xvcGVkaWEge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDUwcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JiA+IGRpdiB7XG5cdFx0aGVpZ2h0OiAxMDAlOyB9IH1cblxuI2RvY3NUb2Mge1xuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6IDM1MHB4O1xuXHRwYWRkaW5nOiAwIDIwcHggMCAwO1xuXG5cdC55YWgge1xuXHRcdCYgPiAudGl0bGUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cdFx0XHRib3JkZXItbGVmdDogM3B4IHNvbGlkICRibHVlO1xuXHRcdFx0cGFkZGluZzogNy41cHggMTBweCA3LjVweCAxOHB4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMXB4O1xuXHRcdFx0Y29sb3I6ICRibHVlOyB9IH0gfVxuXG4jZG9jc0NvbnRlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZsb2F0OiByaWdodDtcblx0d2lkdGg6IGNhbGMoMTAwJSAtIDQwMHB4KTtcblxuXHQkdG9jLW1hcmdpbjogMTVweDtcblx0JGhlYWRlci1jbGVhcmFuY2U6IDQwcHg7XG5cblx0KiArIGgyLCAqICsgaDMsICogKyBoNCwgKiArIGg1LCAqICsgaDYge1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7IH1cblxuXHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYztcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogLTEwMHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmVkO1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuOyB9IH1cblxuXHRoMSB7XG5cdFx0Zm9udC1zaXplOiAzMnB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDYwcHg7IH1cblxuXHRoMiB7XG5cdFx0Zm9udC1zaXplOiAyOHB4OyB9XG5cblx0aDMge1xuXHRcdGZvbnQtc2l6ZTogMjRweDsgfVxuXG5cdGg0IHtcblx0XHRmb250LXNpemU6IDIwcHg7IH1cblxuXHRoNSwgaDYge1xuXHRcdGZvbnQtc2l6ZTogMTZweDsgfVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI1ZW07IH1cblxuXHRwICsgcCB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDsgfVxuXG5cdGNvZGUge1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0XHRmb250LWZhbWlseTogJG1vbm8tZm9udDtcblx0XHRsaW5lLWhlaWdodDogMzJweDtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogMnB4IDRweDtcblxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cblxuXHRwcmUgLnBpLCBwcmUgLnMge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwOyB9XG5cblx0LmhpZ2hsaWdodCBjb2RlIHNwYW4sIGNvZGUsIHByZSBjb2RlIHtcblx0XHRmb250LWZhbWlseTogXCJSb2JvdG8gTW9ub1wiLCBtb25vc3BhY2U7IH1cblxuXHRjb2RlLCBwcmUgY29kZSB7XG5cdFx0Y29sb3I6ICMzMDMwMzA7IH1cblxuXHRwcmUgY29kZSB7XG5cdFx0cGFkZGluZzogMDsgfVxuXG5cdHByZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdFx0bWFyZ2luOiAyMHB4IDA7XG5cdFx0cGFkZGluZzogMTVweDtcblx0XHRvdmVyZmxvdzogYXV0bzsgfVxuXG5cdHByZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cblx0dWwgbGkge1xuXHRcdGxpc3Qtc3R5bGU6IGRpc2M7IH1cblxuXHRvbCBsaSB7XG5cdFx0bGlzdC1zdHlsZTogZGVjaW1hbDsgfVxuXG5cdHVsLCBvbCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG5cdCNlZGl0UGFnZUJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogLTI1cHg7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdHdpZHRoOiA1MHB4O1xuXHRcdGhlaWdodDogNTBweDtcblx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR0ZXh0LWluZGVudDogNTBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGJhY2tncm91bmQ6ICRibHVlIHVybCguLi8uLi9pbWFnZXMvcGVuY2lsLnBuZykgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvOyB9XG5cblx0I21hcmtkb3duLXRvYyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdHVsLCBsaSB7XG5cdFx0XHRsaXN0LXN0eWxlOiBkaXNjO1xuXHRcdFx0Y29sb3I6ICRibHVlOyB9XG5cblx0XHR1bCB7XG5cdFx0XHRwYWRkaW5nOiAwIDE1cHg7IH1cblxuXHRcdGxpIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwOyB9XG5cblx0XHRhIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7IH0gfSB9XG5cbi5maXhlZCBmb290ZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDsgfVxuXG5cbi8qIERlZmF1bHQgZ2gtcGFnZXMtYmxvZyBjc3MgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdGhlZGVyZWNrL2doLXBhZ2VzLWJsb2cvYmxvYi9tYXN0ZXIvY3NzL3N5bnRheC5jc3MgKi9cbi5oaWdobGlnaHQgYnIge1xuXHRkaXNwbGF5OiBub25lOyB9XG5cbi5oaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG5cbi5oaWdobGlnaHQgLmMge1xuXHRjb2xvcjogIzk5OTk4ODtcblx0Zm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5oaWdobGlnaHQgLmVyciB7XG5cdGNvbG9yOiAjYTYxNzE3O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTNkMmQyOyB9XG5cbi5oaWdobGlnaHQgLmsge1xuXHRmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGlnaGxpZ2h0IC5vIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmhpZ2hsaWdodCAuY20ge1xuXHRjb2xvcjogIzk5OTk4ODtcblx0Zm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5oaWdobGlnaHQgLmNwIHtcblx0Y29sb3I6ICM5OTk5OTk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLmMxIHtcblx0Y29sb3I6ICM5OTk5ODg7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4uaGlnaGxpZ2h0IC5jcyB7XG5cdGNvbG9yOiAjOTk5OTk5O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5oaWdobGlnaHQgLmdkIHtcblx0Y29sb3I6ICMwMDAwMDA7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmRkZGQ7IH1cblxuLmhpZ2hsaWdodCAuZ2QgLngge1xuXHRjb2xvcjogIzAwMDAwMDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmYWFhYTsgfVxuXG4uaGlnaGxpZ2h0IC5nZSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4uaGlnaGxpZ2h0IC5nciB7XG5cdGNvbG9yOiAjYWEwMDAwOyB9XG5cbi5oaWdobGlnaHQgLmdoIHtcblx0Y29sb3I6ICM5OTk5OTk7IH1cblxuLmhpZ2hsaWdodCAuZ2kge1xuXHRjb2xvcjogIzAwMDAwMDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2RkZmZkZDsgfVxuXG4uaGlnaGxpZ2h0IC5naSAueCB7XG5cdGNvbG9yOiAjMDAwMDAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYWFmZmFhOyB9XG5cbi5oaWdobGlnaHQgLmdvIHtcblx0Y29sb3I6ICM4ODg4ODg7IH1cblxuLmhpZ2hsaWdodCAuZ3Age1xuXHRjb2xvcjogIzU1NTU1NTsgfVxuXG4uaGlnaGxpZ2h0IC5ncyB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLmd1IHtcblx0Y29sb3I6ICNhYWFhYWE7IH1cblxuLmhpZ2hsaWdodCAuZ3Qge1xuXHRjb2xvcjogI2FhMDAwMDsgfVxuXG4uaGlnaGxpZ2h0IC5rYyB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLmtkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmhpZ2hsaWdodCAua3Age1xuXHRmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGlnaGxpZ2h0IC5rciB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLmt0IHtcblx0Y29sb3I6ICM0NDU1ODg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLm0ge1xuXHRjb2xvcjogIzAwOTk5OTsgfVxuXG4uaGlnaGxpZ2h0IC5zIHtcblx0Y29sb3I6ICNkMTQ7IH1cblxuLmhpZ2hsaWdodCAubmEge1xuXHRjb2xvcjogIzAwODA4MDsgfVxuXG4uaGlnaGxpZ2h0IC5uYiB7XG5cdGNvbG9yOiAjMDA4NkIzOyB9XG5cbi5oaWdobGlnaHQgLm5jIHtcblx0Y29sb3I6ICM0NDU1ODg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLm5vIHtcblx0Y29sb3I6ICMwMDgwODA7IH1cblxuLmhpZ2hsaWdodCAubmkge1xuXHRjb2xvcjogIzgwMDA4MDsgfVxuXG4uaGlnaGxpZ2h0IC5uZSB7XG5cdGNvbG9yOiAjOTkwMDAwO1xuXHRmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGlnaGxpZ2h0IC5uZiB7XG5cdGNvbG9yOiAjOTkwMDAwO1xuXHRmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGlnaGxpZ2h0IC5ubiB7XG5cdGNvbG9yOiAjNTU1NTU1OyB9XG5cbi5oaWdobGlnaHQgLm50IHtcblx0Y29sb3I6ICMwMDAwODA7IH1cblxuLmhpZ2hsaWdodCAubnYge1xuXHRjb2xvcjogIzAwODA4MDsgfVxuXG4uaGlnaGxpZ2h0IC5vdyB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oaWdobGlnaHQgLncge1xuXHRjb2xvcjogI2JiYmJiYjsgfVxuXG4uaGlnaGxpZ2h0IC5tZiB7XG5cdGNvbG9yOiAjMDA5OTk5OyB9XG5cbi5oaWdobGlnaHQgLm1oIHtcblx0Y29sb3I6ICMwMDk5OTk7IH1cblxuLmhpZ2hsaWdodCAubWkge1xuXHRjb2xvcjogIzAwOTk5OTsgfVxuXG4uaGlnaGxpZ2h0IC5tbyB7XG5cdGNvbG9yOiAjMDA5OTk5OyB9XG5cbi5oaWdobGlnaHQgLnNiIHtcblx0Y29sb3I6ICNkMTQ7IH1cblxuLmhpZ2hsaWdodCAuc2Mge1xuXHRjb2xvcjogI2QxNDsgfVxuXG4uaGlnaGxpZ2h0IC5zZCB7XG5cdGNvbG9yOiAjZDE0OyB9XG5cbi5oaWdobGlnaHQgLnMyIHtcblx0Y29sb3I6ICNkMTQ7IH1cblxuLmhpZ2hsaWdodCAuc2Uge1xuXHRjb2xvcjogI2QxNDsgfVxuXG4uaGlnaGxpZ2h0IC5zaCB7XG5cdGNvbG9yOiAjZDE0OyB9XG5cbi5oaWdobGlnaHQgLnNpIHtcblx0Y29sb3I6ICNkMTQ7IH1cblxuLmhpZ2hsaWdodCAuc3gge1xuXHRjb2xvcjogI2QxNDsgfVxuXG4uaGlnaGxpZ2h0IC5zciB7XG5cdGNvbG9yOiAjMDA5OTI2OyB9XG5cbi5oaWdobGlnaHQgLnMxIHtcblx0Y29sb3I6ICNkMTQ7IH1cblxuLmhpZ2hsaWdodCAuc3Mge1xuXHRjb2xvcjogIzk5MDA3MzsgfVxuXG4uaGlnaGxpZ2h0IC5icCB7XG5cdGNvbG9yOiAjOTk5OTk5OyB9XG5cbi5oaWdobGlnaHQgLnZjIHtcblx0Y29sb3I6ICMwMDgwODA7IH1cblxuLmhpZ2hsaWdodCAudmcge1xuXHRjb2xvcjogIzAwODA4MDsgfVxuXG4uaGlnaGxpZ2h0IC52aSB7XG5cdGNvbG9yOiAjMDA4MDgwOyB9XG5cbi5oaWdobGlnaHQgLmlsIHtcblx0Y29sb3I6ICMwMDk5OTk7IH1cblxuXG5cbiIsIi8vIFRFWFRcbiRoMS1mb250LXNpemU6IDYwcHg7XG4kaDEtbGluZS1oZWlnaHQ6IDgwcHg7XG5cbiRoMi1mb250LXNpemU6IDQycHg7XG4kaDItbGluZS1oZWlnaHQ6IDYwcHg7XG5cbiRoMy1mb250LXNpemU6IDI2cHg7XG4kaDMtbGluZS1oZWlnaHQ6IDMycHg7XG5cbiRoNC1mb250LXNpemU6IDI2cHg7XG4kaDQtbGluZS1oZWlnaHQ6IDQwcHg7XG5cbiRoNS1mb250LXNpemU6IDE4cHg7XG4kaDUtbGluZS1oZWlnaHQ6IDM2cHg7XG5cbiRwLWZvbnQtc2l6ZTogMjBweDtcbiRwLWxpbmUtaGVpZ2h0OiAyOHB4O1xuXG5cbi8vIGhlYWRlclxuJGZ1bGwtd2lkdGgtcGFkZGluZ1g6IDIwcHg7XG5cbiRtYWluLXdpZHRoOiAxMDAlO1xuJG1haW4tbWF4LXdpZHRoOiAxMDAlO1xuXG4kaGVhZGVyLWhlaWdodDogODBweDtcblxuJGxvZ28td2lkdGg6IDE4MHB4O1xuXG4kbmF2LWJ1dHRvbnMtbWFyZ2luLWxlZnQ6IDMwcHg7XG5cbiRoYW1idXJnZXItc2l6ZTogNTBweDtcblxuXG4vLyBtYWluIG5hdlxuJG1haW4tbmF2LXBhZGRpbmc6IDE0MHB4IDAgMzBweDtcbiRtYWluLW5hdi1oNS1tYXJnaW4tYm90dG9tOiAxZW07XG4kbWFpbi1uYXYtaDMtbWFyZ2luLWJvdHRvbTogMC42ZW07XG4kbmF2LWJveC13aWR0aDogMjAlO1xuJG5hdi1ib3gtc2libGluZy1tYXJnaW4tbGVmdDogY2FsYygyMCUgLyAzKTtcbiRtYWluLW5hdi1tYWluLXNpYmxpbmctbWFyZ2luLXRvcDogNjBweDtcbiRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1zaXplOiA1MHB4O1xuJG1haW4tbmF2LWxlZnQtYnV0dG9uLWZvbnQtc2l6ZTogMThweDtcblxuXG4vLyBoZXJvXG4kaGVyby1wYWRkaW5nLXRvcDogODBweDtcbiRoZWFkbGluZS13cmFwcGVyLW1hcmdpbi1ib3R0b206IDQwcHg7XG4kcXVpY2tzdGFydC1idXR0b24tcGFkZGluZzogMCA1MHB4O1xuJHZlbmRvci1zdHJpcC1oZWlnaHQ6IDYwcHg7XG4kdmVuZG9yLXN0cmlwLWZvbnQtc2l6ZTogMThweDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1MHB4KSB7XG5cdEBpbXBvcnQgXCIuLi9wYXJ0aWFscy9zaXplXCI7XG5cblx0I2RvY3MgI2hlcm8ge1xuXHRcdGgxLCBoNSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cblxuXHQjdmlld0RvY3MsICN0cnlLdWJlcm5ldGVzIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuXHQjdmVuZG9yU3RyaXAge1xuXHRcdGRpc3BsYXk6IGJsb2NrOyB9IH1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */ diff --git a/css/styles.sass b/css/styles.sass new file mode 100755 index 0000000000..f0d475d12e --- /dev/null +++ b/css/styles.sass @@ -0,0 +1,12 @@ +--- +--- + +@import "../_sass/reset" +@import "../_sass/skin" + +// media queries +@import "../_sass/base" +@import "../_sass/tablet" +@import "../_sass/desktop" + + diff --git a/js/script.js b/js/script.js index 8f3517bc61..3bc042620d 100755 --- a/js/script.js +++ b/js/script.js @@ -15,10 +15,6 @@ function booleanAttributeValue(element, attribute, defaultValue){ } -var π, π1, πd; -(function(){ - return; -})(); // end π //modal close button (function(){ //π.modalCloseButton = function(closingFunction){ @@ -475,11 +471,9 @@ var kub = (function () { yahLink.onclick = function(e){e.preventDefault();}; }); } - - //π.mods.push(init); })(); // TODO: scrollintoview in-page TOC -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsZi5qcyIsIs+ALmpzIiwiz4AtYmFzZUNvbXBvbmVudHMuanMiLCLPgC1hY2NvcmRpb24vz4AtYWNjb3JkaW9uLmpzIiwiz4AtcHVzaG1lbnUvz4AtcHVzaG1lbnUuanMiLCJzY3JpcHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDTkE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDMUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhZG9yYWJsZSBsaXR0bGUgZnVuY3Rpb25zXG5mdW5jdGlvbiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWxlbWVudCwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpe1xuXHQvLyByZXR1cm5zIHRydWUgaWYgYW4gYXR0cmlidXRlIGlzIHByZXNlbnQgd2l0aCBubyB2YWx1ZVxuXHQvLyBlLmcuIGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbGVtZW50LCAnZGF0YS1tb2RhbCcsIGZhbHNlKTtcblx0aWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpIHtcblx0XHR2YXIgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICd0cnVlJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBkZWZhdWx0VmFsdWU7XG59XG5cbiIsInZhciDPgCwgz4AxLCDPgGQ7XG4oZnVuY3Rpb24oKXtcblx0cmV0dXJuO1xufSkoKTsgIC8vIGVuZCDPgCIsIiAvL21vZGFsIGNsb3NlIGJ1dHRvblxuKGZ1bmN0aW9uKCl7XG5cdC8vz4AubW9kYWxDbG9zZUJ1dHRvbiA9IGZ1bmN0aW9uKGNsb3NpbmdGdW5jdGlvbil7XG5cdC8vXHRyZXR1cm4gz4AuYnV0dG9uKCdwaS1tb2RhbC1jbG9zZS1idXR0b24nLCBudWxsLCBudWxsLCBjbG9zaW5nRnVuY3Rpb24pO1xuXHQvL307XG59KSgpO1xuIiwiIiwiLy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIM+ALXB1c2htZW51LmpzXG4vLyAvLyBUT0RPOiAgVVNBR0UgQU5EIEFQSSBSRUZFUkVOQ0Vcbi8vIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbi8vIERFUEVOREVOQ0lFUzpcbi8vXG4vLyBIQUwuanNcbi8vXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4vLyBEQVRBIEFUVFJJQlVURVM6XG4vL1xuLy8gc2lkZTogW1wibGVmdFwiLCBcInJpZ2h0XCJdXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4vLyBNQVJLVVAgQU5EIERFRkFVTFRTOlxuLy9cbi8vXHQ8ZGl2IGNsYXNzPVwicGktcHVzaG1lbnVcIiBpZD1cIm15UHVzaE1lbnVcIj5cbi8vXHRcdCA8dWw+XG4vL1x0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5mb288L2E+PC9saT5cbi8vXHRcdFx0IDxsaT48YSBocmVmPVwiI1wiPmJhcjwvYT48L2xpPlxuLy9cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+Z3Jvbms8L2E+PC9saT5cbi8vXHRcdFx0IDxsaT48YSBocmVmPVwiI1wiPmZsZWVibGVzPC9hPjwvbGk+XG4vL1x0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5zZXB1bHZlZGE8L2E+PC9saT5cbi8vXHRcdCA8L3VsPlxuLy9cdDwvZGl2PlxuLy9cbi8vZWxzZXdoZXJlLi4uXG4vL1xuLy8gPGJ1dHRvbiBvbmNsaWNrPVwiz4AtcHVzaG1lbnUuc2hvdygnbXlQdXNoTWVudScpXCI+c2hvdyBtZW51PC9idXR0b24+XG4vL1xuLy8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuLy8gR0VORVJBVEVEIEhUTUw6XG4vL1xuLy9cbi8vIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbi8vIEFQSVxuLy9cbi8vXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vL1xuLy/PgC5wdXNobWVudSA9IChmdW5jdGlvbigpe1xuLy9cdHZhciBhbGxQdXNoTWVudXMgPSB7fTtcbi8vXG4vL1x0ZnVuY3Rpb24gaW5pdCgpe1xuLy9cdFx0z4AoJ1tkYXRhLWF1dG8tYnVyZ2VyXScpLmZvckVhY2goZnVuY3Rpb24oY29udGFpbmVyKXtcbi8vXHRcdFx0dmFyIGlkID0gY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1hdXRvLWJ1cmdlcicpO1xuLy9cbi8vXHRcdFx0dmFyIGF1dG9CdXJnZXIgPSDPgGQoaWQpIHx8IM+ALmRpdigncGktcHVzaG1lbnUnLCBpZCk7XG4vL1x0XHRcdHZhciB1bCA9IGF1dG9CdXJnZXIuz4AxKCd1bCcpIHx8IM+ALnVsKCk7XG4vL1xuLy9cdFx0XHRjb250YWluZXIuz4AoJ2FbaHJlZl0sIGJ1dHRvbicpLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xuLy9cdFx0XHRcdGlmICghYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKG9iaiwgJ2RhdGEtYXV0by1idXJnZXItZXhjbHVkZScsIGZhbHNlKSkge1xuLy9cdFx0XHRcdFx0dmFyIGNsb25lID0gb2JqLmNsb25lTm9kZSh0cnVlKTtcbi8vXHRcdFx0XHRcdGNsb25lLmlkID0gJyc7XG4vL1xuLy9cdFx0XHRcdFx0aWYgKGNsb25lLnRhZ05hbWUgPT0gXCJCVVRUT05cIikge1xuLy9cdFx0XHRcdFx0XHR2YXIgYVRhZyA9IM+ALnNyY0VsZW1lbnQoJ2EnKTtcbi8vXHRcdFx0XHRcdFx0YVRhZy5ocmVmID0gJyc7XG4vL1x0XHRcdFx0XHRcdGFUYWcuaW5uZXJIVE1MID0gY2xvbmUuaW5uZXJIVE1MO1xuLy9cdFx0XHRcdFx0XHRhVGFnLm9uY2xpY2sgPSBjbG9uZS5vbmNsaWNrO1xuLy9cdFx0XHRcdFx0XHRjbG9uZSA9IGFUYWc7XG4vL1x0XHRcdFx0XHR9XG4vL1x0XHRcdFx0XHR1bC5hZGQoz4AubGkoMCwgMCwgY2xvbmUpKTtcbi8vXHRcdFx0XHR9XG4vL1x0XHRcdH0pO1xuLy9cbi8vXHRcdFx0YXV0b0J1cmdlci5hZGQodWwpO1xuLy9cdFx0XHTPgDEoJ2JvZHknKS5hZGQoYXV0b0J1cmdlcik7XG4vL1x0XHR9KTtcbi8vXG4vL1x0XHTPgChcIi5waS1wdXNobWVudVwiKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtcbi8vXHRcdFx0YWxsUHVzaE1lbnVzW2VsLmlkXSA9IFB1c2hNZW51KGVsKTtcbi8vXHRcdH0pO1xuLy9cbi8vXHRcdM+ALnNldFRyaWdnZXJzKCdwdXNobWVudScsIM+ALnB1c2htZW51KTtcbi8vXHR9XG4vL1xuLy9cdGZ1bmN0aW9uIHNob3cob2JqSWQpIHtcbi8vXHRcdGFsbFB1c2hNZW51c1tvYmpJZF0uZXhwb3NlKCk7XG4vL1x0fVxuLy9cbi8vXHQvLyBUT0RPOiBkaXNtaXNzIG9uIGNsaWNrP1xuLy9cdC8vIHRoaXMgd29ya3M6XG4vL1xuLy9cdC8vz4AoJy5waS1wdXNobWVudSBsaSBhJykuZm9yRWFjaChmdW5jdGlvbihhKXtcbi8vXHQvL1x0YS5vbmNsaWNrID0gZnVuY3Rpb24oKXtcbi8vXHQvL1x0XHR0aGlzLnBhcmVudCgnLnBpLXB1c2htZW51Jykuz4AxKCcucGktbW9kYWwtY2xvc2UtYnV0dG9uJykuY2xpY2soKTtcbi8vXHQvL1x0XHRjb25zb2xlLmxvZyhcIm1lc3NhZ2VcIik7XG4vL1x0Ly9cdH07XG4vL1x0Ly99KTtcbi8vXG4vL1xuLy9cdGZ1bmN0aW9uIFB1c2hNZW51KGVsKSB7XG4vL1x0XHR2YXIgaHRtbCA9IM+AMSgnaHRtbCcpO1xuLy9cdFx0dmFyIGJvZHkgPSDPgDEoJ2JvZHknKTtcbi8vXG4vL1x0XHR2YXIgb3ZlcmxheSA9IM+ALmRpdihcIm92ZXJsYXlcIik7XG4vL1x0XHR2YXIgY29udGVudCA9IM+ALmRpdignY29udGVudCcsIG51bGwsIGVsLs+AMSgnKicpKTtcbi8vXG4vL1x0XHR2YXIgc2lkZSA9IGVsLmdldEF0dHJpYnV0ZShcImRhdGEtc2lkZVwiKSB8fCBcInJpZ2h0XCI7XG4vL1xuLy9cdFx0dmFyIHNsZWQgPSDPgC5kaXYoXCJzbGVkXCIpO1xuLy9cdFx0c2xlZC5jc3Moc2lkZSwgMCk7XG4vL1xuLy9cdFx0dmFyIHRvcEJhciA9IM+ALmRpdihcInRvcC1iYXJcIik7XG4vL1xuLy9cdFx0dG9wQmFyLmZpbGwoz4AubW9kYWxDbG9zZUJ1dHRvbihjbG9zZU1lKSk7XG4vL1x0XHRzbGVkLmZpbGwoW3RvcEJhciwgY29udGVudF0pO1xuLy9cbi8vXHRcdG92ZXJsYXkuZmlsbChzbGVkKTtcbi8vXHRcdGVsLmZpbGwob3ZlcmxheSk7XG4vL1xuLy9cdFx0c2xlZC5vbmNsaWNrID0gZnVuY3Rpb24oZSl7XG4vL1x0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4vL1x0XHR9O1xuLy9cbi8vXHRcdG92ZXJsYXkub25jbGljayA9IGNsb3NlTWU7XG4vL1xuLy9cdFx0z4AubGlzdGVuKGNsb3NlTWUsICdyZXNpemUnKTtcbi8vXG4vL1x0XHRmdW5jdGlvbiBjbG9zZU1lKGUpIHtcbi8vXHRcdFx0dmFyIHQgPSBlLnRhcmdldDtcbi8vXHRcdFx0aWYgKHQgPT0gc2xlZCB8fCB0ID09IHRvcEJhcikgcmV0dXJuO1xuLy9cbi8vXHRcdFx0ZWwua2lsbENsYXNzKFwib25cIik7XG4vL1x0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbi8vXHRcdFx0XHRlbC5jc3Moe2Rpc3BsYXk6IFwibm9uZVwifSk7XG4vL1xuLy9cdFx0XHRcdGJvZHkua2lsbENsYXNzKFwib3ZlcmxheS1vblwiKTtcbi8vXHRcdFx0fSwgMzAwKTtcbi8vXHRcdH1cbi8vXG4vL1x0XHRmdW5jdGlvbiBleHBvc2VNZSgpe1xuLy9cdFx0XHRib2R5LmFkZENsYXNzKFwib3ZlcmxheS1vblwiKTsgLy8gaW4gdGhlIGRlZmF1bHQgY29uZmlnLCBraWxscyBib2R5IHNjcm9sbGluZ1xuLy9cbi8vXHRcdFx0ZWwuY3NzKHtcbi8vXHRcdFx0XHRkaXNwbGF5OiBcImJsb2NrXCIsXG4vL1x0XHRcdFx0ekluZGV4OiDPgC5oaWdoZXN0WigpXG4vL1x0XHRcdH0pO1xuLy9cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4vL1x0XHRcdFx0ZWwuYWRkQ2xhc3MoXCJvblwiKTtcbi8vXHRcdFx0fSwgMTApO1xuLy9cdFx0fVxuLy9cbi8vXHRcdHJldHVybiB7XG4vL1x0XHRcdGV4cG9zZTogZXhwb3NlTWVcbi8vXHRcdH07XG4vL1x0fVxuLy9cbi8vXHQvL8+ALm1vZHMucHVzaChpbml0KTtcbi8vXG4vL1x0cmV0dXJuIHtcbi8vXHRcdHNob3c6IHNob3dcbi8vXHR9O1xuLy99KSgpO1xuIiwiLy8gZ2xvYmFsc1xudmFyIGJvZHk7XG5cbi8vaGVscGVyIGZ1bmN0aW9uc1xuZnVuY3Rpb24gY2xhc3NPbkNvbmRpdGlvbihlbGVtZW50LCBjbGFzc05hbWUsIGNvbmRpdGlvbikge1xuXHRpZiAoY29uZGl0aW9uKVxuXHRcdCQoZWxlbWVudCkuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcblx0ZWxzZVxuXHRcdCQoZWxlbWVudCkucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbn1cblxuZnVuY3Rpb24gcHgobil7XG5cdHJldHVybiBuICsgJ3B4Jztcbn1cblxuZnVuY3Rpb24gbmV3RE9NRWxlbWVudCh0YWcsIGNsYXNzTmFtZSwgaWQpe1xuXHR2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG5cblx0aWYgKGNsYXNzTmFtZSkgZWwuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXHRpZiAoaWQpIGVsLmlkID0gaWQ7XG5cblx0cmV0dXJuIGVsO1xufVxuXG5cbnZhciBrdWIgPSAoZnVuY3Rpb24gKCkge1xuXHR2YXIgSEVBREVSX0hFSUdIVDtcblx0dmFyIGh0bWwsIGhlYWRlciwgbWFpbk5hdiwgcXVpY2tzdGFydEJ1dHRvbiwgaGVybywgZW5jeWNsb3BlZGlhLCBmb290ZXIsIHdpc2hGaWVsZDtcblxuXHQkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG5cdFx0aHRtbCA9ICQoJ2h0bWwnKTtcblx0XHRib2R5ID0gJCgnYm9keScpO1xuXHRcdGhlYWRlciA9ICQoJ2hlYWRlcicpO1xuXHRcdG1haW5OYXYgPSAkKCcjbWFpbk5hdicpO1xuXHRcdHdpc2hGaWVsZCA9ICQoJyN3aXNoRmllbGQnKTtcblx0XHRxdWlja3N0YXJ0QnV0dG9uID0gJCgnI3F1aWNrc3RhcnRCdXR0b24nKTtcblx0XHRoZXJvID0gJCgnI2hlcm8nKTtcblx0XHRlbmN5Y2xvcGVkaWEgPSAkKCcjZW5jeWNsb3BlZGlhJyk7XG5cdFx0Zm9vdGVyID0gJCgnZm9vdGVyJyk7XG5cdFx0SEVBREVSX0hFSUdIVCA9IGhlYWRlci5vdXRlckhlaWdodCgpO1xuXG5cdFx0cmVzZXRUaGVWaWV3KCk7XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzZXRUaGVWaWV3KTtcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcmVzZXRUaGVWaWV3KTtcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleXN0cm9rZXMpO1xuXHRcdHdpc2hGaWVsZFswXS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5c3Ryb2tlcyk7XG5cblx0XHRkb2N1bWVudC5vbnVubG9hZCA9IGZ1bmN0aW9uKCl7XG5cdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzZXRUaGVWaWV3KTtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCByZXNldFRoZVZpZXcpO1xuXHRcdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlzdHJva2VzKTtcblx0XHRcdHdpc2hGaWVsZFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5c3Ryb2tlcyk7XG5cdFx0fTtcblxuXHRcdCQoJy5kcm9wZG93bicpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0dmFyIGRyb3Bkb3duID0gJCh0aGlzKTtcblx0XHRcdHZhciByZWFkb3V0ID0gZHJvcGRvd24uZmluZCgnLnJlYWRvdXQnKTtcblxuXHRcdFx0cmVhZG91dC5odG1sKGRyb3Bkb3duLmZpbmQoJ2EnKVswXS5pbm5lckhUTUwpO1xuXHRcdFx0cmVhZG91dC5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGRyb3Bkb3duLnRvZ2dsZUNsYXNzKCdvbicpO1xuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZU9wZW5Ecm9wZG93bik7XG5cblx0XHRcdFx0ZnVuY3Rpb24gY2xvc2VPcGVuRHJvcGRvd24oZSkge1xuXHRcdFx0XHRcdGlmIChkcm9wZG93bi5oYXNDbGFzcygnb24nKSAmJiAhKGRyb3Bkb3duV2FzQ2xpY2tlZChlKSkpIHtcblx0XHRcdFx0XHRcdGRyb3Bkb3duLnJlbW92ZUNsYXNzKCdvbicpO1xuXHRcdFx0XHRcdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VPcGVuRHJvcGRvd24pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZ1bmN0aW9uIGRyb3Bkb3duV2FzQ2xpY2tlZChlKSB7XG5cdFx0XHRcdFx0cmV0dXJuICQoZS50YXJnZXQpLnBhcmVudHMoJy5kcm9wZG93bicpLmxlbmd0aDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRzZXRJbnRlcnZhbChzZXRGb290ZXJUeXBlLCAxMCk7XG5cdH0pO1xuXG5cdGZ1bmN0aW9uIHNldEZvb3RlclR5cGUoKSB7XG5cdFx0aWYgKGh0bWxbMF0uaWQgPT0gXCJkb2NzXCIpIHtcblx0XHRcdHZhciBib2R5SGVpZ2h0ID0gaGVyby5vdXRlckhlaWdodCgpICsgZW5jeWNsb3BlZGlhLm91dGVySGVpZ2h0KCk7XG5cdFx0XHR2YXIgZm9vdGVySGVpZ2h0ID0gZm9vdGVyLm91dGVySGVpZ2h0KCk7XG5cblx0XHRcdGNsYXNzT25Db25kaXRpb24oYm9keSwgJ2ZpeGVkJywgd2luZG93LmlubmVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0ID4gYm9keUhlaWdodCk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gcmVzZXRUaGVWaWV3KCkge1xuXHRcdGlmIChodG1sLmhhc0NsYXNzKCdvcGVuLW5hdicpKSB7XG5cdFx0XHR0b2dnbGVNZW51KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdEhFQURFUl9IRUlHSFQgPSBoZWFkZXIub3V0ZXJIZWlnaHQoKTtcblx0XHR9XG5cblx0XHRjbGFzc09uQ29uZGl0aW9uKGh0bWwsICdmbGlwLW5hdicsIHdpbmRvdy5wYWdlWU9mZnNldCA+IDApO1xuXHR9XG5cblx0ZnVuY3Rpb24gdG9nZ2xlTWVudSgpIHtcblx0XHRpZiAod2luZG93LmlubmVyV2lkdGggPCA4MDApIHtcblx0XHRcdM+ALnB1c2htZW51LnNob3coJ3ByaW1hcnknKTtcblx0XHR9XG5cblx0XHRlbHNlIHtcblx0XHRcdHZhciBuZXdIZWlnaHQgPSBIRUFERVJfSEVJR0hUO1xuXG5cdFx0XHRpZiAoIWh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIHtcblx0XHRcdFx0bmV3SGVpZ2h0ID0gbWFpbk5hdi5vdXRlckhlaWdodCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRoZWFkZXIuY3NzKHtoZWlnaHQ6IHB4KG5ld0hlaWdodCl9KTtcblx0XHRcdGh0bWwudG9nZ2xlQ2xhc3MoJ29wZW4tbmF2Jyk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gc3VibWl0V2lzaCh0ZXh0ZmllbGQpIHtcblx0XHR3aW5kb3cubG9jYXRpb24ucmVwbGFjZShcImh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2t1YmVybmV0ZXMuZ2l0aHViLmlvL2lzc3Vlcy9uZXc/dGl0bGU9SSUyMHdpc2glMjBcIiArXG5cdFx0XHR3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBcIiUyMFwiICsgdGV4dGZpZWxkLnZhbHVlICsgXCImYm9keT1JJTIwd2lzaCUyMFwiICtcblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIFwiJTIwXCIgKyB0ZXh0ZmllbGQudmFsdWUpO1xuXG5cdFx0dGV4dGZpZWxkLnZhbHVlID0gJyc7XG5cdFx0dGV4dGZpZWxkLmJsdXIoKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGhhbmRsZUtleXN0cm9rZXMoZSkge1xuXHRcdHN3aXRjaCAoZS53aGljaCkge1xuXHRcdFx0Y2FzZSAxMzoge1xuXHRcdFx0XHRpZiAoZS5jdXJyZW50VGFyZ2V0ID09PSB3aXNoRmllbGQpIHtcblx0XHRcdFx0XHRzdWJtaXRXaXNoKHdpc2hGaWVsZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgMjc6IHtcblx0XHRcdFx0aWYgKGh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIHtcblx0XHRcdFx0XHR0b2dnbGVNZW51KCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR0b2dnbGVNZW51OiB0b2dnbGVNZW51XG5cdH07XG59KSgpO1xuXG5cbi8vIGFjY29yZGlvblxuKGZ1bmN0aW9uKCl7XG5cdHZhciB5YWggPSB0cnVlO1xuXHR2YXIgbW92aW5nID0gZmFsc2U7XG5cdHZhciBDU1NfQlJPV1NFUl9IQUNLX0RFTEFZID0gMjU7XG5cblx0JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcblx0XHQvLyBTYWZhcmkgY2hva2VzIG9uIHRoZSBhbmltYXRpb24gaGVyZSwgc28uLi5cblx0XHRpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA9PSAtMSAmJiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1NhZmFyaScpICE9IC0xKXtcblx0XHRcdHZhciBoYWNrU3R5bGUgPSBuZXdET01FbGVtZW50KCdzdHlsZScpO1xuXHRcdFx0aGFja1N0eWxlLmlubmVySFRNTCA9ICcucGktYWNjb3JkaW9uIC53cmFwcGVye3RyYW5zaXRpb246IG5vbmV9Jztcblx0XHRcdGJvZHkuYXBwZW5kKGhhY2tTdHlsZSk7XG5cdFx0fVxuXHRcdC8vIEdyb3NzLlxuXG5cdFx0JCgnLnBpLWFjY29yZGlvbicpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0dmFyIGFjY29yZGlvbiA9IHRoaXM7XG5cdFx0XHR2YXIgY29udGVudCA9IHRoaXMuaW5uZXJIVE1MO1xuXHRcdFx0dmFyIGNvbnRhaW5lciA9IG5ld0RPTUVsZW1lbnQoJ2RpdicsICdjb250YWluZXInKTtcblx0XHRcdGNvbnRhaW5lci5pbm5lckhUTUwgPSBjb250ZW50O1xuXHRcdFx0JChhY2NvcmRpb24pLmVtcHR5KCk7XG5cdFx0XHRhY2NvcmRpb24uYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcblx0XHRcdENvbGxhcHNlQm94KCQoY29udGFpbmVyKSk7XG5cdFx0fSk7XG5cblx0XHRzZXRZQUgoKTtcblxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0eWFoID0gZmFsc2U7XG5cdFx0fSwgNTAwKTtcblx0fSk7XG5cblx0ZnVuY3Rpb24gQ29sbGFwc2VCb3goY29udGFpbmVyKXtcblx0XHRjb250YWluZXIuY2hpbGRyZW4oJy5pdGVtJykuZWFjaChmdW5jdGlvbigpe1xuXHRcdFx0Ly8gYnVpbGQgdGhlIFRPQyBET01cblx0XHRcdC8vIHRoZSBhbmltYXRlZCBvcGVuL2Nsb3NlIGlzIGVuYWJsZWQgYnkgaGF2aW5nIGVhY2ggaXRlbSdzIGNvbnRlbnQgZXhpc3QgaW4gdGhlIGZsb3csIGF0IGl0cyBuYXR1cmFsIGhlaWdodCxcblx0XHRcdC8vIGVuY2xvc2VkIGluIGEgd3JhcHBlciB3aXRoIGhlaWdodCA9IDAgd2hlbiBjbG9zZWQsIGFuZCBoZWlnaHQgPSBjb250ZW50SGVpZ2h0IHdoZW4gb3Blbi5cblx0XHRcdHZhciBpdGVtID0gdGhpcztcblxuXHRcdFx0Ly8gb25seSBhZGQgY29udGVudCB3cmFwcGVycyB0byBjb250YWluZXJzLCBub3QgdG8gbGlua3Ncblx0XHRcdHZhciBpc0NvbnRhaW5lciA9IGl0ZW0udGFnTmFtZSA9PT0gJ0RJVic7XG5cblx0XHRcdHZhciB0aXRsZVRleHQgPSBpdGVtLmdldEF0dHJpYnV0ZSgnZGF0YS10aXRsZScpO1xuXHRcdFx0dmFyIHRpdGxlID0gbmV3RE9NRWxlbWVudCgnZGl2JywgJ3RpdGxlJyk7XG5cdFx0XHR0aXRsZS5pbm5lckhUTUwgPSB0aXRsZVRleHQ7XG5cblx0XHRcdHZhciB3cmFwcGVyLCBjb250ZW50O1xuXG5cdFx0XHRpZiAoaXNDb250YWluZXIpIHtcblx0XHRcdFx0d3JhcHBlciA9IG5ld0RPTUVsZW1lbnQoJ2RpdicsICd3cmFwcGVyJyk7XG5cdFx0XHRcdGNvbnRlbnQgPSBuZXdET01FbGVtZW50KCdkaXYnLCAnY29udGVudCcpO1xuXHRcdFx0XHRjb250ZW50LmlubmVySFRNTCA9IGl0ZW0uaW5uZXJIVE1MO1xuXHRcdFx0XHR3cmFwcGVyLmFwcGVuZENoaWxkKGNvbnRlbnQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpdGVtLmlubmVySFRNTCA9ICcnO1xuXHRcdFx0aXRlbS5hcHBlbmRDaGlsZCh0aXRsZSk7XG5cblx0XHRcdGlmICh3cmFwcGVyKSB7XG5cdFx0XHRcdGl0ZW0uYXBwZW5kQ2hpbGQod3JhcHBlcik7XG5cdFx0XHRcdCQod3JhcHBlcikuY3NzKHtoZWlnaHQ6IDB9KTtcblx0XHRcdH1cblxuXG5cdFx0XHQkKHRpdGxlKS5jbGljayhmdW5jdGlvbigpe1xuXHRcdFx0XHRpZiAoIXlhaCkge1xuXHRcdFx0XHRcdGlmIChtb3ZpbmcpIHJldHVybjtcblx0XHRcdFx0XHRtb3ZpbmcgPSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGNvbnRhaW5lclswXS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2luZ2xlJykpIHtcblx0XHRcdFx0XHR2YXIgb3BlblNpYmxpbmdzID0gaXRlbS5zaWJsaW5ncygpLmZpbHRlcihmdW5jdGlvbihzaWIpe3JldHVybiBzaWIuaGFzQ2xhc3MoJ29uJyk7fSk7XG5cdFx0XHRcdFx0b3BlblNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24oc2libGluZyl7XG5cdFx0XHRcdFx0XHR0b2dnbGVJdGVtKHNpYmxpbmcpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdGlmICghaXNDb250YWluZXIpIHtcblx0XHRcdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0b2dnbGVJdGVtKGl0ZW0pO1xuXHRcdFx0XHR9LCBDU1NfQlJPV1NFUl9IQUNLX0RFTEFZKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRmdW5jdGlvbiB0b2dnbGVJdGVtKHRoaXNJdGVtKXtcblx0XHRcdFx0dmFyIHRoaXNXcmFwcGVyID0gJCh0aGlzSXRlbSkuZmluZCgnLndyYXBwZXInKS5lcSgwKTtcblxuXHRcdFx0XHRpZiAoIXRoaXNXcmFwcGVyKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIGNvbnRlbnRIZWlnaHQgPSB0aGlzV3JhcHBlci5maW5kKCcuY29udGVudCcpLmVxKDApLmlubmVySGVpZ2h0KCkgKyAncHgnO1xuXG5cdFx0XHRcdGlmICgkKHRoaXNJdGVtKS5oYXNDbGFzcygnb24nKSkge1xuXHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiBjb250ZW50SGVpZ2h0fSk7XG5cdFx0XHRcdFx0JCh0aGlzSXRlbSkucmVtb3ZlQ2xhc3MoJ29uJyk7XG5cblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0XHR0aGlzV3JhcHBlci5jc3Moe2hlaWdodDogMH0pO1xuXHRcdFx0XHRcdFx0bW92aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0fSwgQ1NTX0JST1dTRVJfSEFDS19ERUxBWSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JChpdGVtKS5hZGRDbGFzcygnb24nKTtcblx0XHRcdFx0XHR0aGlzV3JhcHBlci5jc3Moe2hlaWdodDogY29udGVudEhlaWdodH0pO1xuXG5cdFx0XHRcdFx0dmFyIGR1cmF0aW9uID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRoaXNXcmFwcGVyWzBdKS50cmFuc2l0aW9uRHVyYXRpb24pICogMTAwMDtcblxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiAnJ30pO1xuXHRcdFx0XHRcdFx0bW92aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0fSwgZHVyYXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChjb250ZW50KSB7XG5cdFx0XHRcdHZhciBpbm5lckNvbnRhaW5lcnMgPSAkKGNvbnRlbnQpLmNoaWxkcmVuKCcuY29udGFpbmVyJyk7XG5cdFx0XHRcdGlmIChpbm5lckNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGlubmVyQ29udGFpbmVycy5lYWNoKGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0XHRDb2xsYXBzZUJveCgkKHRoaXMpKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0ZnVuY3Rpb24gc2V0WUFIKCkge1xuXHRcdHZhciBwYXRobmFtZSA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJyMnKVswXTsgLy8gb24gcGFnZSBsb2FkLCBtYWtlIHN1cmUgdGhlIHBhZ2UgaXMgWUFIIGV2ZW4gaWYgdGhlcmUncyBhIGhhc2hcblx0XHR2YXIgY3VycmVudExpbmtzID0gW107XG5cblx0XHQkKCcucGktYWNjb3JkaW9uIGEnKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmIChwYXRobmFtZSA9PT0gdGhpcy5ocmVmKSBjdXJyZW50TGlua3MucHVzaCh0aGlzKTtcblx0XHR9KTtcblxuXHRcdGN1cnJlbnRMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uICh5YWhMaW5rKSB7XG5cdFx0XHQkKHlhaExpbmspLnBhcmVudHMoJy5pdGVtJykuZWFjaChmdW5jdGlvbigpe1xuXHRcdFx0XHQkKHRoaXMpLmFkZENsYXNzKCdvbicpO1xuXHRcdFx0XHQkKHRoaXMpLmZpbmQoJy53cmFwcGVyJykuZXEoMCkuY3NzKHtoZWlnaHQ6ICdhdXRvJ30pO1xuXHRcdFx0XHQkKHRoaXMpLmZpbmQoJy5jb250ZW50JykuZXEoMCkuY3NzKHtvcGFjaXR5OiAxfSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0JCh5YWhMaW5rKS5hZGRDbGFzcygneWFoJyk7XG5cdFx0XHR5YWhMaW5rLm9uY2xpY2sgPSBmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7fTtcblx0XHR9KTtcblx0fVxuXG5cdC8vz4AubW9kcy5wdXNoKGluaXQpO1xufSkoKTtcblxuXG5cbi8vIFRPRE86IHNjcm9sbGludG92aWV3IGluLXBhZ2UgVE9DIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsZi5qcyIsIs+ALWJhc2VDb21wb25lbnRzLmpzIiwiz4AtYWNjb3JkaW9uL8+ALWFjY29yZGlvbi5qcyIsIs+ALXB1c2htZW51L8+ALXB1c2htZW51LmpzIiwic2NyaXB0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMxSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYWRvcmFibGUgbGl0dGxlIGZ1bmN0aW9uc1xuZnVuY3Rpb24gYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsZW1lbnQsIGF0dHJpYnV0ZSwgZGVmYXVsdFZhbHVlKXtcblx0Ly8gcmV0dXJucyB0cnVlIGlmIGFuIGF0dHJpYnV0ZSBpcyBwcmVzZW50IHdpdGggbm8gdmFsdWVcblx0Ly8gZS5nLiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWxlbWVudCwgJ2RhdGEtbW9kYWwnLCBmYWxzZSk7XG5cdGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGUpKSB7XG5cdFx0dmFyIHZhbHVlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcblx0XHRpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSAndHJ1ZScpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0gZWxzZSBpZiAodmFsdWUgPT09ICdmYWxzZScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZGVmYXVsdFZhbHVlO1xufVxuXG4iLCIgLy9tb2RhbCBjbG9zZSBidXR0b25cbihmdW5jdGlvbigpe1xuXHQvL8+ALm1vZGFsQ2xvc2VCdXR0b24gPSBmdW5jdGlvbihjbG9zaW5nRnVuY3Rpb24pe1xuXHQvL1x0cmV0dXJuIM+ALmJ1dHRvbigncGktbW9kYWwtY2xvc2UtYnV0dG9uJywgbnVsbCwgbnVsbCwgY2xvc2luZ0Z1bmN0aW9uKTtcblx0Ly99O1xufSkoKTtcbiIsIiIsIi8vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyDPgC1wdXNobWVudS5qc1xuLy8gLy8gVE9ETzogIFVTQUdFIEFORCBBUEkgUkVGRVJFTkNFXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4vLyBERVBFTkRFTkNJRVM6XG4vL1xuLy8gSEFMLmpzXG4vL1xuLy8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuLy8gREFUQSBBVFRSSUJVVEVTOlxuLy9cbi8vIHNpZGU6IFtcImxlZnRcIiwgXCJyaWdodFwiXVxuLy8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuLy8gTUFSS1VQIEFORCBERUZBVUxUUzpcbi8vXG4vL1x0PGRpdiBjbGFzcz1cInBpLXB1c2htZW51XCIgaWQ9XCJteVB1c2hNZW51XCI+XG4vL1x0XHQgPHVsPlxuLy9cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+Zm9vPC9hPjwvbGk+XG4vL1x0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5iYXI8L2E+PC9saT5cbi8vXHRcdFx0IDxsaT48YSBocmVmPVwiI1wiPmdyb25rPC9hPjwvbGk+XG4vL1x0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5mbGVlYmxlczwvYT48L2xpPlxuLy9cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+c2VwdWx2ZWRhPC9hPjwvbGk+XG4vL1x0XHQgPC91bD5cbi8vXHQ8L2Rpdj5cbi8vXG4vL2Vsc2V3aGVyZS4uLlxuLy9cbi8vIDxidXR0b24gb25jbGljaz1cIs+ALXB1c2htZW51LnNob3coJ215UHVzaE1lbnUnKVwiPnNob3cgbWVudTwvYnV0dG9uPlxuLy9cbi8vIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbi8vIEdFTkVSQVRFRCBIVE1MOlxuLy9cbi8vXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4vLyBBUElcbi8vXG4vL1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLy9cbi8vz4AucHVzaG1lbnUgPSAoZnVuY3Rpb24oKXtcbi8vXHR2YXIgYWxsUHVzaE1lbnVzID0ge307XG4vL1xuLy9cdGZ1bmN0aW9uIGluaXQoKXtcbi8vXHRcdM+AKCdbZGF0YS1hdXRvLWJ1cmdlcl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGNvbnRhaW5lcil7XG4vL1x0XHRcdHZhciBpZCA9IGNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXV0by1idXJnZXInKTtcbi8vXG4vL1x0XHRcdHZhciBhdXRvQnVyZ2VyID0gz4BkKGlkKSB8fCDPgC5kaXYoJ3BpLXB1c2htZW51JywgaWQpO1xuLy9cdFx0XHR2YXIgdWwgPSBhdXRvQnVyZ2VyLs+AMSgndWwnKSB8fCDPgC51bCgpO1xuLy9cbi8vXHRcdFx0Y29udGFpbmVyLs+AKCdhW2hyZWZdLCBidXR0b24nKS5mb3JFYWNoKGZ1bmN0aW9uIChvYmopIHtcbi8vXHRcdFx0XHRpZiAoIWJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShvYmosICdkYXRhLWF1dG8tYnVyZ2VyLWV4Y2x1ZGUnLCBmYWxzZSkpIHtcbi8vXHRcdFx0XHRcdHZhciBjbG9uZSA9IG9iai5jbG9uZU5vZGUodHJ1ZSk7XG4vL1x0XHRcdFx0XHRjbG9uZS5pZCA9ICcnO1xuLy9cbi8vXHRcdFx0XHRcdGlmIChjbG9uZS50YWdOYW1lID09IFwiQlVUVE9OXCIpIHtcbi8vXHRcdFx0XHRcdFx0dmFyIGFUYWcgPSDPgC5zcmNFbGVtZW50KCdhJyk7XG4vL1x0XHRcdFx0XHRcdGFUYWcuaHJlZiA9ICcnO1xuLy9cdFx0XHRcdFx0XHRhVGFnLmlubmVySFRNTCA9IGNsb25lLmlubmVySFRNTDtcbi8vXHRcdFx0XHRcdFx0YVRhZy5vbmNsaWNrID0gY2xvbmUub25jbGljaztcbi8vXHRcdFx0XHRcdFx0Y2xvbmUgPSBhVGFnO1xuLy9cdFx0XHRcdFx0fVxuLy9cdFx0XHRcdFx0dWwuYWRkKM+ALmxpKDAsIDAsIGNsb25lKSk7XG4vL1x0XHRcdFx0fVxuLy9cdFx0XHR9KTtcbi8vXG4vL1x0XHRcdGF1dG9CdXJnZXIuYWRkKHVsKTtcbi8vXHRcdFx0z4AxKCdib2R5JykuYWRkKGF1dG9CdXJnZXIpO1xuLy9cdFx0fSk7XG4vL1xuLy9cdFx0z4AoXCIucGktcHVzaG1lbnVcIikuZm9yRWFjaChmdW5jdGlvbihlbCl7XG4vL1x0XHRcdGFsbFB1c2hNZW51c1tlbC5pZF0gPSBQdXNoTWVudShlbCk7XG4vL1x0XHR9KTtcbi8vXG4vL1x0XHTPgC5zZXRUcmlnZ2VycygncHVzaG1lbnUnLCDPgC5wdXNobWVudSk7XG4vL1x0fVxuLy9cbi8vXHRmdW5jdGlvbiBzaG93KG9iaklkKSB7XG4vL1x0XHRhbGxQdXNoTWVudXNbb2JqSWRdLmV4cG9zZSgpO1xuLy9cdH1cbi8vXG4vL1x0Ly8gVE9ETzogZGlzbWlzcyBvbiBjbGljaz9cbi8vXHQvLyB0aGlzIHdvcmtzOlxuLy9cbi8vXHQvL8+AKCcucGktcHVzaG1lbnUgbGkgYScpLmZvckVhY2goZnVuY3Rpb24oYSl7XG4vL1x0Ly9cdGEub25jbGljayA9IGZ1bmN0aW9uKCl7XG4vL1x0Ly9cdFx0dGhpcy5wYXJlbnQoJy5waS1wdXNobWVudScpLs+AMSgnLnBpLW1vZGFsLWNsb3NlLWJ1dHRvbicpLmNsaWNrKCk7XG4vL1x0Ly9cdFx0Y29uc29sZS5sb2coXCJtZXNzYWdlXCIpO1xuLy9cdC8vXHR9O1xuLy9cdC8vfSk7XG4vL1xuLy9cbi8vXHRmdW5jdGlvbiBQdXNoTWVudShlbCkge1xuLy9cdFx0dmFyIGh0bWwgPSDPgDEoJ2h0bWwnKTtcbi8vXHRcdHZhciBib2R5ID0gz4AxKCdib2R5Jyk7XG4vL1xuLy9cdFx0dmFyIG92ZXJsYXkgPSDPgC5kaXYoXCJvdmVybGF5XCIpO1xuLy9cdFx0dmFyIGNvbnRlbnQgPSDPgC5kaXYoJ2NvbnRlbnQnLCBudWxsLCBlbC7PgDEoJyonKSk7XG4vL1xuLy9cdFx0dmFyIHNpZGUgPSBlbC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNpZGVcIikgfHwgXCJyaWdodFwiO1xuLy9cbi8vXHRcdHZhciBzbGVkID0gz4AuZGl2KFwic2xlZFwiKTtcbi8vXHRcdHNsZWQuY3NzKHNpZGUsIDApO1xuLy9cbi8vXHRcdHZhciB0b3BCYXIgPSDPgC5kaXYoXCJ0b3AtYmFyXCIpO1xuLy9cbi8vXHRcdHRvcEJhci5maWxsKM+ALm1vZGFsQ2xvc2VCdXR0b24oY2xvc2VNZSkpO1xuLy9cdFx0c2xlZC5maWxsKFt0b3BCYXIsIGNvbnRlbnRdKTtcbi8vXG4vL1x0XHRvdmVybGF5LmZpbGwoc2xlZCk7XG4vL1x0XHRlbC5maWxsKG92ZXJsYXkpO1xuLy9cbi8vXHRcdHNsZWQub25jbGljayA9IGZ1bmN0aW9uKGUpe1xuLy9cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuLy9cdFx0fTtcbi8vXG4vL1x0XHRvdmVybGF5Lm9uY2xpY2sgPSBjbG9zZU1lO1xuLy9cbi8vXHRcdM+ALmxpc3RlbihjbG9zZU1lLCAncmVzaXplJyk7XG4vL1xuLy9cdFx0ZnVuY3Rpb24gY2xvc2VNZShlKSB7XG4vL1x0XHRcdHZhciB0ID0gZS50YXJnZXQ7XG4vL1x0XHRcdGlmICh0ID09IHNsZWQgfHwgdCA9PSB0b3BCYXIpIHJldHVybjtcbi8vXG4vL1x0XHRcdGVsLmtpbGxDbGFzcyhcIm9uXCIpO1xuLy9cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4vL1x0XHRcdFx0ZWwuY3NzKHtkaXNwbGF5OiBcIm5vbmVcIn0pO1xuLy9cbi8vXHRcdFx0XHRib2R5LmtpbGxDbGFzcyhcIm92ZXJsYXktb25cIik7XG4vL1x0XHRcdH0sIDMwMCk7XG4vL1x0XHR9XG4vL1xuLy9cdFx0ZnVuY3Rpb24gZXhwb3NlTWUoKXtcbi8vXHRcdFx0Ym9keS5hZGRDbGFzcyhcIm92ZXJsYXktb25cIik7IC8vIGluIHRoZSBkZWZhdWx0IGNvbmZpZywga2lsbHMgYm9keSBzY3JvbGxpbmdcbi8vXG4vL1x0XHRcdGVsLmNzcyh7XG4vL1x0XHRcdFx0ZGlzcGxheTogXCJibG9ja1wiLFxuLy9cdFx0XHRcdHpJbmRleDogz4AuaGlnaGVzdFooKVxuLy9cdFx0XHR9KTtcbi8vXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuLy9cdFx0XHRcdGVsLmFkZENsYXNzKFwib25cIik7XG4vL1x0XHRcdH0sIDEwKTtcbi8vXHRcdH1cbi8vXG4vL1x0XHRyZXR1cm4ge1xuLy9cdFx0XHRleHBvc2U6IGV4cG9zZU1lXG4vL1x0XHR9O1xuLy9cdH1cbi8vXG4vL1x0Ly/PgC5tb2RzLnB1c2goaW5pdCk7XG4vL1xuLy9cdHJldHVybiB7XG4vL1x0XHRzaG93OiBzaG93XG4vL1x0fTtcbi8vfSkoKTtcbiIsIi8vIGdsb2JhbHNcbnZhciBib2R5O1xuXG4vL2hlbHBlciBmdW5jdGlvbnNcbmZ1bmN0aW9uIGNsYXNzT25Db25kaXRpb24oZWxlbWVudCwgY2xhc3NOYW1lLCBjb25kaXRpb24pIHtcblx0aWYgKGNvbmRpdGlvbilcblx0XHQkKGVsZW1lbnQpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG5cdGVsc2Vcblx0XHQkKGVsZW1lbnQpLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG59XG5cbmZ1bmN0aW9uIHB4KG4pe1xuXHRyZXR1cm4gbiArICdweCc7XG59XG5cbmZ1bmN0aW9uIG5ld0RPTUVsZW1lbnQodGFnLCBjbGFzc05hbWUsIGlkKXtcblx0dmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuXG5cdGlmIChjbGFzc05hbWUpIGVsLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblx0aWYgKGlkKSBlbC5pZCA9IGlkO1xuXG5cdHJldHVybiBlbDtcbn1cblxuXG52YXIga3ViID0gKGZ1bmN0aW9uICgpIHtcblx0dmFyIEhFQURFUl9IRUlHSFQ7XG5cdHZhciBodG1sLCBoZWFkZXIsIG1haW5OYXYsIHF1aWNrc3RhcnRCdXR0b24sIGhlcm8sIGVuY3ljbG9wZWRpYSwgZm9vdGVyLCB3aXNoRmllbGQ7XG5cblx0JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuXHRcdGh0bWwgPSAkKCdodG1sJyk7XG5cdFx0Ym9keSA9ICQoJ2JvZHknKTtcblx0XHRoZWFkZXIgPSAkKCdoZWFkZXInKTtcblx0XHRtYWluTmF2ID0gJCgnI21haW5OYXYnKTtcblx0XHR3aXNoRmllbGQgPSAkKCcjd2lzaEZpZWxkJyk7XG5cdFx0cXVpY2tzdGFydEJ1dHRvbiA9ICQoJyNxdWlja3N0YXJ0QnV0dG9uJyk7XG5cdFx0aGVybyA9ICQoJyNoZXJvJyk7XG5cdFx0ZW5jeWNsb3BlZGlhID0gJCgnI2VuY3ljbG9wZWRpYScpO1xuXHRcdGZvb3RlciA9ICQoJ2Zvb3RlcicpO1xuXHRcdEhFQURFUl9IRUlHSFQgPSBoZWFkZXIub3V0ZXJIZWlnaHQoKTtcblxuXHRcdHJlc2V0VGhlVmlldygpO1xuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2V0VGhlVmlldyk7XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHJlc2V0VGhlVmlldyk7XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlzdHJva2VzKTtcblx0XHR3aXNoRmllbGRbMF0uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleXN0cm9rZXMpO1xuXG5cdFx0ZG9jdW1lbnQub251bmxvYWQgPSBmdW5jdGlvbigpe1xuXHRcdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2V0VGhlVmlldyk7XG5cdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcmVzZXRUaGVWaWV3KTtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5c3Ryb2tlcyk7XG5cdFx0XHR3aXNoRmllbGRbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleXN0cm9rZXMpO1xuXHRcdH07XG5cblx0XHQkKCcuZHJvcGRvd24nKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdHZhciBkcm9wZG93biA9ICQodGhpcyk7XG5cdFx0XHR2YXIgcmVhZG91dCA9IGRyb3Bkb3duLmZpbmQoJy5yZWFkb3V0Jyk7XG5cblx0XHRcdHJlYWRvdXQuaHRtbChkcm9wZG93bi5maW5kKCdhJylbMF0uaW5uZXJIVE1MKTtcblx0XHRcdHJlYWRvdXQuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRkcm9wZG93bi50b2dnbGVDbGFzcygnb24nKTtcblx0XHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VPcGVuRHJvcGRvd24pO1xuXG5cdFx0XHRcdGZ1bmN0aW9uIGNsb3NlT3BlbkRyb3Bkb3duKGUpIHtcblx0XHRcdFx0XHRpZiAoZHJvcGRvd24uaGFzQ2xhc3MoJ29uJykgJiYgIShkcm9wZG93bldhc0NsaWNrZWQoZSkpKSB7XG5cdFx0XHRcdFx0XHRkcm9wZG93bi5yZW1vdmVDbGFzcygnb24nKTtcblx0XHRcdFx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlT3BlbkRyb3Bkb3duKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmdW5jdGlvbiBkcm9wZG93bldhc0NsaWNrZWQoZSkge1xuXHRcdFx0XHRcdHJldHVybiAkKGUudGFyZ2V0KS5wYXJlbnRzKCcuZHJvcGRvd24nKS5sZW5ndGg7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0c2V0SW50ZXJ2YWwoc2V0Rm9vdGVyVHlwZSwgMTApO1xuXHR9KTtcblxuXHRmdW5jdGlvbiBzZXRGb290ZXJUeXBlKCkge1xuXHRcdGlmIChodG1sWzBdLmlkID09IFwiZG9jc1wiKSB7XG5cdFx0XHR2YXIgYm9keUhlaWdodCA9IGhlcm8ub3V0ZXJIZWlnaHQoKSArIGVuY3ljbG9wZWRpYS5vdXRlckhlaWdodCgpO1xuXHRcdFx0dmFyIGZvb3RlckhlaWdodCA9IGZvb3Rlci5vdXRlckhlaWdodCgpO1xuXG5cdFx0XHRjbGFzc09uQ29uZGl0aW9uKGJvZHksICdmaXhlZCcsIHdpbmRvdy5pbm5lckhlaWdodCAtIGZvb3RlckhlaWdodCA+IGJvZHlIZWlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHJlc2V0VGhlVmlldygpIHtcblx0XHRpZiAoaHRtbC5oYXNDbGFzcygnb3Blbi1uYXYnKSkge1xuXHRcdFx0dG9nZ2xlTWVudSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRIRUFERVJfSEVJR0hUID0gaGVhZGVyLm91dGVySGVpZ2h0KCk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NPbkNvbmRpdGlvbihodG1sLCAnZmxpcC1uYXYnLCB3aW5kb3cucGFnZVlPZmZzZXQgPiAwKTtcblx0fVxuXG5cdGZ1bmN0aW9uIHRvZ2dsZU1lbnUoKSB7XG5cdFx0aWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgODAwKSB7XG5cdFx0XHTPgC5wdXNobWVudS5zaG93KCdwcmltYXJ5Jyk7XG5cdFx0fVxuXG5cdFx0ZWxzZSB7XG5cdFx0XHR2YXIgbmV3SGVpZ2h0ID0gSEVBREVSX0hFSUdIVDtcblxuXHRcdFx0aWYgKCFodG1sLmhhc0NsYXNzKCdvcGVuLW5hdicpKSB7XG5cdFx0XHRcdG5ld0hlaWdodCA9IG1haW5OYXYub3V0ZXJIZWlnaHQoKTtcblx0XHRcdH1cblxuXHRcdFx0aGVhZGVyLmNzcyh7aGVpZ2h0OiBweChuZXdIZWlnaHQpfSk7XG5cdFx0XHRodG1sLnRvZ2dsZUNsYXNzKCdvcGVuLW5hdicpO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHN1Ym1pdFdpc2godGV4dGZpZWxkKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uLnJlcGxhY2UoXCJodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rdWJlcm5ldGVzLmdpdGh1Yi5pby9pc3N1ZXMvbmV3P3RpdGxlPUklMjB3aXNoJTIwXCIgK1xuXHRcdFx0d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgXCIlMjBcIiArIHRleHRmaWVsZC52YWx1ZSArIFwiJmJvZHk9SSUyMHdpc2glMjBcIiArXG5cdFx0XHR3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBcIiUyMFwiICsgdGV4dGZpZWxkLnZhbHVlKTtcblxuXHRcdHRleHRmaWVsZC52YWx1ZSA9ICcnO1xuXHRcdHRleHRmaWVsZC5ibHVyKCk7XG5cdH1cblxuXHRmdW5jdGlvbiBoYW5kbGVLZXlzdHJva2VzKGUpIHtcblx0XHRzd2l0Y2ggKGUud2hpY2gpIHtcblx0XHRcdGNhc2UgMTM6IHtcblx0XHRcdFx0aWYgKGUuY3VycmVudFRhcmdldCA9PT0gd2lzaEZpZWxkKSB7XG5cdFx0XHRcdFx0c3VibWl0V2lzaCh3aXNoRmllbGQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRjYXNlIDI3OiB7XG5cdFx0XHRcdGlmIChodG1sLmhhc0NsYXNzKCdvcGVuLW5hdicpKSB7XG5cdFx0XHRcdFx0dG9nZ2xlTWVudSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7XG5cdFx0dG9nZ2xlTWVudTogdG9nZ2xlTWVudVxuXHR9O1xufSkoKTtcblxuXG4vLyBhY2NvcmRpb25cbihmdW5jdGlvbigpe1xuXHR2YXIgeWFoID0gdHJ1ZTtcblx0dmFyIG1vdmluZyA9IGZhbHNlO1xuXHR2YXIgQ1NTX0JST1dTRVJfSEFDS19ERUxBWSA9IDI1O1xuXG5cdCQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XG5cdFx0Ly8gU2FmYXJpIGNob2tlcyBvbiB0aGUgYW5pbWF0aW9uIGhlcmUsIHNvLi4uXG5cdFx0aWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignQ2hyb21lJykgPT0gLTEgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdTYWZhcmknKSAhPSAtMSl7XG5cdFx0XHR2YXIgaGFja1N0eWxlID0gbmV3RE9NRWxlbWVudCgnc3R5bGUnKTtcblx0XHRcdGhhY2tTdHlsZS5pbm5lckhUTUwgPSAnLnBpLWFjY29yZGlvbiAud3JhcHBlcnt0cmFuc2l0aW9uOiBub25lfSc7XG5cdFx0XHRib2R5LmFwcGVuZChoYWNrU3R5bGUpO1xuXHRcdH1cblx0XHQvLyBHcm9zcy5cblxuXHRcdCQoJy5waS1hY2NvcmRpb24nKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdHZhciBhY2NvcmRpb24gPSB0aGlzO1xuXHRcdFx0dmFyIGNvbnRlbnQgPSB0aGlzLmlubmVySFRNTDtcblx0XHRcdHZhciBjb250YWluZXIgPSBuZXdET01FbGVtZW50KCdkaXYnLCAnY29udGFpbmVyJyk7XG5cdFx0XHRjb250YWluZXIuaW5uZXJIVE1MID0gY29udGVudDtcblx0XHRcdCQoYWNjb3JkaW9uKS5lbXB0eSgpO1xuXHRcdFx0YWNjb3JkaW9uLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG5cdFx0XHRDb2xsYXBzZUJveCgkKGNvbnRhaW5lcikpO1xuXHRcdH0pO1xuXG5cdFx0c2V0WUFIKCk7XG5cblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdHlhaCA9IGZhbHNlO1xuXHRcdH0sIDUwMCk7XG5cdH0pO1xuXG5cdGZ1bmN0aW9uIENvbGxhcHNlQm94KGNvbnRhaW5lcil7XG5cdFx0Y29udGFpbmVyLmNoaWxkcmVuKCcuaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcblx0XHRcdC8vIGJ1aWxkIHRoZSBUT0MgRE9NXG5cdFx0XHQvLyB0aGUgYW5pbWF0ZWQgb3Blbi9jbG9zZSBpcyBlbmFibGVkIGJ5IGhhdmluZyBlYWNoIGl0ZW0ncyBjb250ZW50IGV4aXN0IGluIHRoZSBmbG93LCBhdCBpdHMgbmF0dXJhbCBoZWlnaHQsXG5cdFx0XHQvLyBlbmNsb3NlZCBpbiBhIHdyYXBwZXIgd2l0aCBoZWlnaHQgPSAwIHdoZW4gY2xvc2VkLCBhbmQgaGVpZ2h0ID0gY29udGVudEhlaWdodCB3aGVuIG9wZW4uXG5cdFx0XHR2YXIgaXRlbSA9IHRoaXM7XG5cblx0XHRcdC8vIG9ubHkgYWRkIGNvbnRlbnQgd3JhcHBlcnMgdG8gY29udGFpbmVycywgbm90IHRvIGxpbmtzXG5cdFx0XHR2YXIgaXNDb250YWluZXIgPSBpdGVtLnRhZ05hbWUgPT09ICdESVYnO1xuXG5cdFx0XHR2YXIgdGl0bGVUZXh0ID0gaXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGl0bGUnKTtcblx0XHRcdHZhciB0aXRsZSA9IG5ld0RPTUVsZW1lbnQoJ2RpdicsICd0aXRsZScpO1xuXHRcdFx0dGl0bGUuaW5uZXJIVE1MID0gdGl0bGVUZXh0O1xuXG5cdFx0XHR2YXIgd3JhcHBlciwgY29udGVudDtcblxuXHRcdFx0aWYgKGlzQ29udGFpbmVyKSB7XG5cdFx0XHRcdHdyYXBwZXIgPSBuZXdET01FbGVtZW50KCdkaXYnLCAnd3JhcHBlcicpO1xuXHRcdFx0XHRjb250ZW50ID0gbmV3RE9NRWxlbWVudCgnZGl2JywgJ2NvbnRlbnQnKTtcblx0XHRcdFx0Y29udGVudC5pbm5lckhUTUwgPSBpdGVtLmlubmVySFRNTDtcblx0XHRcdFx0d3JhcHBlci5hcHBlbmRDaGlsZChjb250ZW50KTtcblx0XHRcdH1cblxuXHRcdFx0aXRlbS5pbm5lckhUTUwgPSAnJztcblx0XHRcdGl0ZW0uYXBwZW5kQ2hpbGQodGl0bGUpO1xuXG5cdFx0XHRpZiAod3JhcHBlcikge1xuXHRcdFx0XHRpdGVtLmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuXHRcdFx0XHQkKHdyYXBwZXIpLmNzcyh7aGVpZ2h0OiAwfSk7XG5cdFx0XHR9XG5cblxuXHRcdFx0JCh0aXRsZSkuY2xpY2soZnVuY3Rpb24oKXtcblx0XHRcdFx0aWYgKCF5YWgpIHtcblx0XHRcdFx0XHRpZiAobW92aW5nKSByZXR1cm47XG5cdFx0XHRcdFx0bW92aW5nID0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChjb250YWluZXJbMF0uZ2V0QXR0cmlidXRlKCdkYXRhLXNpbmdsZScpKSB7XG5cdFx0XHRcdFx0dmFyIG9wZW5TaWJsaW5ncyA9IGl0ZW0uc2libGluZ3MoKS5maWx0ZXIoZnVuY3Rpb24oc2liKXtyZXR1cm4gc2liLmhhc0NsYXNzKCdvbicpO30pO1xuXHRcdFx0XHRcdG9wZW5TaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKHNpYmxpbmcpe1xuXHRcdFx0XHRcdFx0dG9nZ2xlSXRlbShzaWJsaW5nKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0XHRpZiAoIWlzQ29udGFpbmVyKSB7XG5cdFx0XHRcdFx0XHRtb3ZpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dG9nZ2xlSXRlbShpdGVtKTtcblx0XHRcdFx0fSwgQ1NTX0JST1dTRVJfSEFDS19ERUxBWSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0ZnVuY3Rpb24gdG9nZ2xlSXRlbSh0aGlzSXRlbSl7XG5cdFx0XHRcdHZhciB0aGlzV3JhcHBlciA9ICQodGhpc0l0ZW0pLmZpbmQoJy53cmFwcGVyJykuZXEoMCk7XG5cblx0XHRcdFx0aWYgKCF0aGlzV3JhcHBlcikgcmV0dXJuO1xuXG5cdFx0XHRcdHZhciBjb250ZW50SGVpZ2h0ID0gdGhpc1dyYXBwZXIuZmluZCgnLmNvbnRlbnQnKS5lcSgwKS5pbm5lckhlaWdodCgpICsgJ3B4JztcblxuXHRcdFx0XHRpZiAoJCh0aGlzSXRlbSkuaGFzQ2xhc3MoJ29uJykpIHtcblx0XHRcdFx0XHR0aGlzV3JhcHBlci5jc3Moe2hlaWdodDogY29udGVudEhlaWdodH0pO1xuXHRcdFx0XHRcdCQodGhpc0l0ZW0pLnJlbW92ZUNsYXNzKCdvbicpO1xuXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6IDB9KTtcblx0XHRcdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH0sIENTU19CUk9XU0VSX0hBQ0tfREVMQVkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCQoaXRlbSkuYWRkQ2xhc3MoJ29uJyk7XG5cdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6IGNvbnRlbnRIZWlnaHR9KTtcblxuXHRcdFx0XHRcdHZhciBkdXJhdGlvbiA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzV3JhcHBlclswXSkudHJhbnNpdGlvbkR1cmF0aW9uKSAqIDEwMDA7XG5cblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0XHR0aGlzV3JhcHBlci5jc3Moe2hlaWdodDogJyd9KTtcblx0XHRcdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH0sIGR1cmF0aW9uKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY29udGVudCkge1xuXHRcdFx0XHR2YXIgaW5uZXJDb250YWluZXJzID0gJChjb250ZW50KS5jaGlsZHJlbignLmNvbnRhaW5lcicpO1xuXHRcdFx0XHRpZiAoaW5uZXJDb250YWluZXJzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRpbm5lckNvbnRhaW5lcnMuZWFjaChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdFx0Q29sbGFwc2VCb3goJCh0aGlzKSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGZ1bmN0aW9uIHNldFlBSCgpIHtcblx0XHR2YXIgcGF0aG5hbWUgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCcjJylbMF07IC8vIG9uIHBhZ2UgbG9hZCwgbWFrZSBzdXJlIHRoZSBwYWdlIGlzIFlBSCBldmVuIGlmIHRoZXJlJ3MgYSBoYXNoXG5cdFx0dmFyIGN1cnJlbnRMaW5rcyA9IFtdO1xuXG5cdFx0JCgnLnBpLWFjY29yZGlvbiBhJykuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRpZiAocGF0aG5hbWUgPT09IHRoaXMuaHJlZikgY3VycmVudExpbmtzLnB1c2godGhpcyk7XG5cdFx0fSk7XG5cblx0XHRjdXJyZW50TGlua3MuZm9yRWFjaChmdW5jdGlvbiAoeWFoTGluaykge1xuXHRcdFx0JCh5YWhMaW5rKS5wYXJlbnRzKCcuaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcblx0XHRcdFx0JCh0aGlzKS5hZGRDbGFzcygnb24nKTtcblx0XHRcdFx0JCh0aGlzKS5maW5kKCcud3JhcHBlcicpLmVxKDApLmNzcyh7aGVpZ2h0OiAnYXV0byd9KTtcblx0XHRcdFx0JCh0aGlzKS5maW5kKCcuY29udGVudCcpLmVxKDApLmNzcyh7b3BhY2l0eTogMX0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdCQoeWFoTGluaykuYWRkQ2xhc3MoJ3lhaCcpO1xuXHRcdFx0eWFoTGluay5vbmNsaWNrID0gZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO307XG5cdFx0fSk7XG5cdH1cbn0pKCk7XG5cblxuXG4vLyBUT0RPOiBzY3JvbGxpbnRvdmlldyBpbi1wYWdlIFRPQyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==