/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*! TOYOTA REVAMP v2021 | Convertium Pte Ltd */*{-webkit-box-sizing:border-box;box-sizing:border-box}::-moz-selection{color:#fff;background-color:rgba(88,89,91,.6);text-shadow:none}::selection{color:#fff;background-color:rgba(88,89,91,.6);text-shadow:none}body,html{overflow-x:hidden}@media screen and (prefers-reduced-motion:no-preference){body,html{scroll-behavior:smooth}}html main:before{height:100vh;height:calc(var(--vh,1vh) * 100);content:"";background-color:rgba(0,0,0,0);-webkit-transition:background-color .3s;transition:background-color .3s;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;pointer-events:none}html.cpl-no-scroll{height:100%;overflow-y:hidden}html.cpl-no-scroll body{min-height:100%;height:auto;overflow-y:hidden}html.cpl-no-scroll main:before{background-color:rgba(0,0,0,.75);pointer-events:all}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){html.cpl-no-scroll main:before{background-color:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(.3em);backdrop-filter:blur(.3em)}}body{color:#000;background-color:#fff}a{text-decoration:none}a:focus{outline:0}picture{display:block}img{max-width:100%;image-rendering:-webkit-optimize-contrast;image-rendering:optimizeQuality}img,img[data-src],img[data-srcset]{display:block}img:not([src]):not([srcset]){visibility:hidden}img.cpl-lazy{opacity:.5;-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,transform .5s;transition:opacity .5s,transform .5s,-webkit-transform .5s;will-change:opacity,transform}img.cpl-lazy.loaded{opacity:1}.cpl-sec-wrapper{width:100%;max-width:1280px;margin:0 auto;position:relative;z-index:1}@media (max-width:599px){.cpl-sec-wrapper{padding-top:16px;padding-bottom:24px}}@media (min-width:600px) and (max-width:1023px){.cpl-sec-wrapper{padding-top:16px;padding-bottom:40px}}@media (min-width:1024px){.cpl-sec-wrapper{padding-top:20px;padding-bottom:40px}}.cpl-sec-cont.no-pad-top{padding-top:0}@media (max-width:599px){.cpl-sec-cont{padding:16px}}@media (min-width:600px) and (max-width:1023px){.cpl-sec-cont{padding:24px}}@media (min-width:1024px){.cpl-sec-cont{padding:40px}}.cpl-height-full{height:100vh;height:calc(var(--vh,1vh) * 100)}.cpl-icon-play{cursor:pointer}.cpl-icon-play picture:after{width:80px;height:80px;content:"";background:url(../img/resources/play.svg);opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:50%;left:50%}@media screen and (max-width:768px){.cpl-icon-play picture:after{width:56px;height:56px}}.cpl-icon-play img{-webkit-transform:scale(1,1);transform:scale(1,1);will-change:opacity,transform;pointer-events:none}.cpl-icon-play:hover picture:after{opacity:.75}.cpl-icon-play:hover img{-webkit-transform:scale(1.06,1.06);transform:scale(1.06,1.06)}.cpl-link-txt{color:inherit;-webkit-box-shadow:inset 0 -1px 0 transparent;box-shadow:inset 0 -1px 0 transparent;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s}.cpl-sec-bg-black .cpl-link-txt{-webkit-box-shadow:inset 0 -1px 0 rgba(255,255,255,0);box-shadow:inset 0 -1px 0 rgba(255,255,255,0)}.cpl-link-txt:after{width:8px;height:8px;content:"";border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;-webkit-transform:rotate(-45deg) translateY(-.15em);transform:rotate(-45deg) translateY(-.15em);margin-left:.35em;display:inline-block;vertical-align:baseline}.cpl-link-txt:hover{-webkit-box-shadow:inset 0 -1px 0 #000;box-shadow:inset 0 -1px 0 #000}.cpl-sec-bg-black .cpl-link-txt:hover{-webkit-box-shadow:inset 0 -1px 0 #fff;box-shadow:inset 0 -1px 0 #fff}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Light.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Light.woff) format("woff");font-weight:200}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Book.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Book.woff) format("woff");font-weight:300}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Regular.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Regular.woff) format("woff");font-weight:400}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Semibold.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Semibold.woff) format("woff");font-weight:600}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Bold.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Bold.woff) format("woff");font-weight:700}@font-face{font-family:ToyotaType;font-display:swap;font-style:normal;src:url(../fonts/toyota-type/resources/ToyotaType-Black.woff2) format("woff2"),url(../fonts/toyota-type/resources/ToyotaType-Black.woff) format("woff");font-weight:900}.cpl-parallax{-webkit-transform:translateY(var(--translateY));transform:translateY(var(--translateY));-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;will-change:transform}.cpl-parallax-bg{-webkit-transform:translateY(var(--translateY));transform:translateY(var(--translateY));-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;will-change:transform}.cpl-parallax-bg img{width:100%}@-webkit-keyframes growIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes growIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.cpl-animated--grow-in{-webkit-animation:growIn .2s transform cubic-bezier(.18,1.25,.4,1),opacity cubic-bezier(0,1,.4,1);animation:growIn .2s transform cubic-bezier(.18,1.25,.4,1),opacity cubic-bezier(0,1,.4,1)}.cpl-hide{display:none!important}.cpl-invisible{position:absolute;top:-10000px;left:-9999px;visibility:hidden}@media (max-width:599px){.cpl-show-on-sml-up{display:none!important}}@media (min-width:600px){.cpl-show-on-sml-up{display:block!important}}@media (max-width:1023px){.cpl-show-on-med-up{display:none!important}}@media (min-width:1024px){.cpl-show-on-med-up{display:block!important}}.cpl-grid{margin:0 auto}@media (max-width:599px){.cpl-grid{padding:16px}}@media (min-width:600px) and (max-width:1023px){.cpl-grid{padding:32px}}@media (min-width:1024px){.cpl-grid{padding:40px}}.cpl-grid.no-pad-top{padding-top:0}.cpl-grid-inner{display:grid;grid-template-rows:auto}.cpl-grid-inner _:-ms-fullscreen,:root .cpl-grid-inner{margin-right:-32px;margin-left:-32px;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.cpl-grid-inner _:-ms-fullscreen>div,:root .cpl-grid-inner>div{padding-right:32px;padding-left:32px}@media (max-width:599px){.cpl-grid-inner{grid-gap:24px 16px;grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-inner{grid-gap:32px 40px;grid-template-columns:repeat(8,minmax(0,1fr))}}@media (min-width:1024px){.cpl-grid-inner{grid-gap:48px 64px;grid-template-columns:repeat(12,minmax(0,1fr))}}.cpl-grid-cell-3{width:auto}.cpl-grid-cell-3 _:-ms-fullscreen,:root .cpl-grid-cell-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}@media (max-width:599px){.cpl-grid-cell-3{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-3{grid-column-end:span 2}}@media (min-width:1024px){.cpl-grid-cell-3{grid-column-end:span 3}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-3+.cpl-grid-cell-9{grid-column:3/span 6}}@media (min-width:1024px){.cpl-grid-cell-3+.cpl-grid-cell-9{-ms-grid-column:4;-ms-grid-column-span:9}}.cpl-grid-cell-4{width:auto}.cpl-grid-cell-4 _:-ms-fullscreen,:root .cpl-grid-cell-4{max-width:33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%}@media (max-width:599px){.cpl-grid-cell-4{grid-column-end:span 4}.cpl-grid-cell-4.cpl-sm-item{grid-column-end:span 2}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-4{grid-column-end:span 4}}@media (min-width:1024px){.cpl-grid-cell-4{grid-column-end:span 4}}.cpl-grid-cell-6{width:auto}.cpl-grid-cell-6 _:-ms-fullscreen,:root .cpl-grid-cell-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}@media (max-width:599px){.cpl-grid-cell-6{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-6{grid-column-end:span 4}}@media (min-width:1024px){.cpl-grid-cell-6{grid-column-end:span 6}}@media (min-width:1024px){.cpl-grid-cell-6+.cpl-grid-cell-6{-ms-grid-column:7;-ms-grid-column-span:6}}.cpl-grid-cell-7{width:auto}.cpl-grid-cell-7 _:-ms-fullscreen,:root .cpl-grid-cell-7{max-width:58.33333%;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%}@media (max-width:599px){.cpl-grid-cell-7{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-7{grid-column-end:span 4}}@media (min-width:1024px){.cpl-grid-cell-7{grid-column-end:1 7}}@media (min-width:1024px){.cpl-grid-cell-7+.cpl-grid-cell-5{grid-column-start:8;grid-column-end:span 12}}.cpl-grid-cell-9{width:auto}.cpl-grid-cell-9 _:-ms-fullscreen,:root .cpl-grid-cell-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}@media (max-width:599px){.cpl-grid-cell-9{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-9{grid-column-end:span 6}}@media (min-width:1024px){.cpl-grid-cell-9{grid-column-end:span 9}}.cpl-grid-cell-9+.cpl-grid-cell-3{width:auto}@media (max-width:599px){.cpl-grid-cell-9+.cpl-grid-cell-3{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-9+.cpl-grid-cell-3{grid-column-end:span 2}}@media (min-width:1024px){.cpl-grid-cell-9+.cpl-grid-cell-3{grid-column:10/span 3}}.cpl-grid-cell-10{width:auto;grid-column-end:span 4}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-10{grid-column-end:span 6}}@media (min-width:1024px){.cpl-grid-cell-10{grid-column-end:span 10}}.cpl-grid-cell-10 _:-ms-fullscreen,:root .cpl-grid-cell-10{max-width:83.33333%;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%}.cpl-grid-cell-12{width:auto}.cpl-grid-cell-12 _:-ms-fullscreen,:root .cpl-grid-cell-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}@media (max-width:599px){.cpl-grid-cell-12{grid-column-end:span 4}}@media (min-width:600px) and (max-width:1023px){.cpl-grid-cell-12{grid-column-end:span 8}}@media (min-width:1024px){.cpl-grid-cell-12{grid-column-end:span 12}}.cpl-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.cpl-flex-just-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mdc-touch-target-wrapper{display:inline}.mdc-button{font-family:Roboto,sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:2.25rem;font-weight:500;letter-spacing:.08929em;text-decoration:none;text-transform:uppercase;padding:0 20px 0 20px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;border-radius:4px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:0}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{background-color:transparent;color:rgba(0,0,0,.37);cursor:default;pointer-events:none}.mdc-button .mdc-button__ripple{border-radius:4px}.mdc-button:not(:disabled){background-color:transparent}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;width:18px;height:18px;font-size:18px;vertical-align:top}.mdc-button .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button .mdc-button__icon{margin-left:8px;margin-right:0}.mdc-button .mdc-button__touch{position:absolute;top:50%;right:0;left:0;height:48px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mdc-button:not(:disabled){color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}.mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button__label+.mdc-button__icon{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--outlined .mdc-button__icon,.mdc-button--raised .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon{margin-left:-4px;margin-right:8px}.mdc-button--outlined .mdc-button__icon[dir=rtl],.mdc-button--raised .mdc-button__icon[dir=rtl],.mdc-button--unelevated .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__icon,[dir=rtl] .mdc-button--raised .mdc-button__icon,[dir=rtl] .mdc-button--unelevated .mdc-button__icon{margin-left:8px;margin-right:-4px}.mdc-button--outlined .mdc-button__label+.mdc-button__icon,.mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:-4px}.mdc-button--outlined .mdc-button__label+.mdc-button__icon[dir=rtl],.mdc-button--raised .mdc-button__label+.mdc-button__icon[dir=rtl],.mdc-button--unelevated .mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__label+.mdc-button__icon,[dir=rtl] .mdc-button--raised .mdc-button__label+.mdc-button__icon,[dir=rtl] .mdc-button--unelevated .mdc-button__label+.mdc-button__icon{margin-left:-4px;margin-right:8px}.mdc-button--raised,.mdc-button--unelevated{padding:0 21px 0 21px}.mdc-button--raised:disabled,.mdc-button--unelevated:disabled{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.37)}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:#6200ee}@supports not (-ms-ime-align:auto){.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:var(--mdc-theme-primary,#6200ee)}}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.mdc-button--raised{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-transition:-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mdc-button--raised:focus,.mdc-button--raised:hover{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mdc-button--raised:active{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdc-button--raised:disabled{-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mdc-button--outlined{border-style:solid;padding:0 20px 0 20px;border-width:1px}.mdc-button--outlined:disabled{border-color:rgba(0,0,0,.37)}.mdc-button--outlined .mdc-button__ripple{top:-1px;left:-1px;border:1px solid transparent}.mdc-button--outlined:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee)}.mdc-button--touch{margin-top:-1px;margin-bottom:-1px}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity,0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity,0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity,0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity,0)}to{opacity:0}}.mdc-ripple-surface--test-edge-var-bug{--mdc-ripple-surface-test-edge-var:1px solid #000;visibility:hidden}.mdc-ripple-surface--test-edge-var-bug::before{border:var(--mdc-ripple-surface-test-edge-var)}.mdc-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent}.mdc-button .mdc-button__ripple::after,.mdc-button .mdc-button__ripple::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-button .mdc-button__ripple::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-button.mdc-ripple-upgraded--unbounded .mdc-button__ripple::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-button.mdc-ripple-upgraded--foreground-activation .mdc-button__ripple::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-button.mdc-ripple-upgraded--foreground-deactivation .mdc-button__ripple::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-button .mdc-button__ripple::after,.mdc-button .mdc-button__ripple::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-button .mdc-button__ripple::after,.mdc-button .mdc-button__ripple::before{background-color:#6200ee}@supports not (-ms-ime-align:auto){.mdc-button .mdc-button__ripple::after,.mdc-button .mdc-button__ripple::before{background-color:var(--mdc-theme-primary,#6200ee)}}.mdc-button:hover .mdc-button__ripple::before{opacity:.04}.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12}.mdc-button:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-button:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12}.mdc-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:0.12}.mdc-button .mdc-button__ripple{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;overflow:hidden}.mdc-button:not(.mdc-button--outlined) .mdc-button__ripple{top:0;left:0}.mdc-button--raised .mdc-button__ripple::after,.mdc-button--raised .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before{background-color:#fff}@supports not (-ms-ime-align:auto){.mdc-button--raised .mdc-button__ripple::after,.mdc-button--raised .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before{background-color:var(--mdc-theme-on-primary,#fff)}}.mdc-button--raised:hover .mdc-button__ripple::before,.mdc-button--unelevated:hover .mdc-button__ripple::before{opacity:.08}.mdc-button--raised.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--raised:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before,.mdc-button--unelevated.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24}.mdc-button--raised:not(.mdc-ripple-upgraded) .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-button--raised:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24}.mdc-button--raised.mdc-ripple-upgraded,.mdc-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:0.24}.mdc-button{height:50px}.mdc-button{font-size:1rem;font-weight:700;border-radius:0}.mdc-button:not(:disabled){background-color:#eb0a1e;border-color:#eb0a1e;-webkit-transition:background-color .25s;transition:background-color .25s}.mdc-button:not(:disabled) .mdc-button__label{color:#fff}.mdc-button:not(:disabled):hover{background-color:#d1091b}.mdc-button:not(:disabled).mdc-button--outlined{background-color:rgba(0,0,0,0);border-color:#000}.mdc-button:not(:disabled).mdc-button--outlined .mdc-button__label{color:#000}.mdc-button:not(:disabled).mdc-button--outlined:hover{background-color:#000}.mdc-button:not(:disabled).mdc-button--outlined:hover .mdc-button__label{color:#fff}.mdc-button.cpl-link-external:after{margin-top:-.1em;z-index:2}.mdc-button__label{color:#000;opacity:1;-webkit-transition:color .25s,opacity .25s;transition:color .25s,opacity .25s;margin-top:-.1em;z-index:2}p .mdc-button{margin-top:1.5rem}.mdc-button .mdc-button__ripple{border-radius:0}.mdc-button .mdc-button__ripple:after,.mdc-button .mdc-button__ripple:before{content:none}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCJjcGwtZ2xvYmFsLmNzcyIsImNwbC1nbG9iYWwuc2NzcyIsInN0eWxlcy9mcmFtZXdvcmsuc2NzcyIsInN0eWxlcy9taXhpbnMuc2NzcyIsInN0eWxlcy9mb250cy5zY3NzIiwic3R5bGVzL2FuaW1hdGlvbi5zY3NzIiwic3R5bGVzL2hlbHBlcnMuc2NzcyIsImNvbXBvbmVudHMvY3BsLWxheW91dC1ncmlkLnNjc3MiLCJjb21wb25lbnRzL2NwbC1sYXlvdXQtZmxleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90b3VjaC10YXJnZXQvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9idXR0b24vX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90eXBvZ3JhcGh5L19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvc2hhcGUvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90aGVtZS9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3J0bC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2VsZXZhdGlvbi9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3JpcHBsZS9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3JpcHBsZS9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL2J1dHRvbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFVQSxLQUNFLFlBQUEsS0FDQSx5QkFBQSxLQVVGLEtBQ0UsT0FBQSxFQU9GLEtBQ0UsUUFBQSxN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QUNBLFlBQUEsSUFDQSxjQUFBLEVBSkYsMkJBT0ksaUJBQUEsUUFDQSxhQUFBLFFBQ0EsbUJBQUEsaUJBQUEsS0FBQSxXQUFBLGlCQUFBLEtBVEosOENBWU0sTUFBQSxLQVpOLGlDQWdCTSxpQkFBQSxRQWhCTixnREFvQk0saUJBQUEsY0FDQSxhQUFBLEtBckJOLG1FQXdCUSxNQUFBLEtBeEJSLHNEQTRCUSxpQkFBQSxLQTVCUix5RUErQlUsTUFBQSxLQS9CVixvQ0F1Q00sV0FBQSxNQUNBLFFBQUEsRUFJSixtQkFDRSxNQUFBLEtBQ0EsUUFBQSxFQUNBLG1CQUFBLE1BQUEsSUFBQSxDQUFBLFFBQUEsS0FBQSxXQUFBLE1BQUEsSUFBQSxDQUFBLFFBQUEsS0FDQSxXQUFBLE1BQ0EsUUFBQSxFQUdGLGNBQ0UsV0FBQSxPQXJESixnQ0F5REksY0FBQSxFQXpESixzQ0FBQSx1Q0E2RE0sUUFBQSIsImZpbGUiOiJjcGwtZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyohIFRPWU9UQSBSRVZBTVAgdjIwMjEgfCBDb252ZXJ0aXVtIFB0ZSBMdGQgKi9cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbjo6c2VsZWN0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODgsIDg5LCA5MSwgMC42KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuaHRtbCxcbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICBodG1sLFxuICAgIGJvZHkge1xuICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0gfVxuXG5odG1sIG1haW46YmVmb3JlIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuaHRtbC5jcGwtbm8tc2Nyb2xsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgaHRtbC5jcGwtbm8tc2Nyb2xsIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuICBodG1sLmNwbC1uby1zY3JvbGwgbWFpbjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgIEBzdXBwb3J0cyAoYmFja2Ryb3AtZmlsdGVyOiBub25lKSB7XG4gICAgICBodG1sLmNwbC1uby1zY3JvbGwgbWFpbjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjNlbSk7IH0gfVxuXG5ib2R5IHtcbiAgY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbnBpY3R1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZVF1YWxpdHk7IH1cbiAgaW1nLCBpbWdbZGF0YS1zcmNdLCBpbWdbZGF0YS1zcmNzZXRdIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICBpbWc6bm90KFtzcmNdKTpub3QoW3NyY3NldF0pIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgaW1nLmNwbC1sYXp5IHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cywgdHJhbnNmb3JtIC41cztcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtOyB9XG4gICAgaW1nLmNwbC1sYXp5LmxvYWRlZCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG5cbi5jcGwtc2VjLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNwbC1zZWMtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLmNwbC1zZWMtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtc2VjLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfSB9XG5cbi5jcGwtc2VjLWNvbnQubm8tcGFkLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY3BsLXNlYy1jb250IHtcbiAgICBwYWRkaW5nOiAxNnB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jcGwtc2VjLWNvbnQge1xuICAgIHBhZGRpbmc6IDI0cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5jcGwtc2VjLWNvbnQge1xuICAgIHBhZGRpbmc6IDQwcHg7IH0gfVxuXG4uY3BsLWhlaWdodC1mdWxsIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTsgfVxuXG4uY3BsLWljb24tcGxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuY3BsLWljb24tcGxheSBwaWN0dXJlOmFmdGVyIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3Jlc291cmNlcy9wbGF5LnN2Zyk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5jcGwtaWNvbi1wbGF5IHBpY3R1cmU6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogNTZweDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4OyB9IH1cbiAgLmNwbC1pY29uLXBsYXkgaW1nIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmNwbC1pY29uLXBsYXk6aG92ZXIgcGljdHVyZTphZnRlciB7XG4gICAgb3BhY2l0eTogLjc1OyB9XG4gIC5jcGwtaWNvbi1wbGF5OmhvdmVyIGltZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2LCAxLjA2KTsgfVxuXG4uY3BsLWxpbmstdHh0IHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yNXM7IH1cbiAgLmNwbC1zZWMtYmctYmxhY2sgLmNwbC1saW5rLXR4dCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsgfVxuICAuY3BsLWxpbmstdHh0OmFmdGVyIHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVZKC0wLjE1ZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjM1ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuICAuY3BsLWxpbmstdHh0OmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCBibGFjazsgfVxuICAgIC5jcGwtc2VjLWJnLWJsYWNrIC5jcGwtbGluay10eHQ6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgd2hpdGU7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlRveW90YVR5cGVcIjtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvdG95b3RhLXR5cGUvcmVzb3VyY2VzL1RveW90YVR5cGUtTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3RveW90YS10eXBlL3Jlc291cmNlcy9Ub3lvdGFUeXBlLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1Cb29rLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1Cb29rLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1TZW1pYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvdG95b3RhLXR5cGUvcmVzb3VyY2VzL1RveW90YVR5cGUtU2VtaWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJUb3lvdGFUeXBlXCI7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RveW90YS10eXBlL3Jlc291cmNlcy9Ub3lvdGFUeXBlLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3RveW90YS10eXBlL3Jlc291cmNlcy9Ub3lvdGFUeXBlLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJUb3lvdGFUeXBlXCI7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RveW90YS10eXBlL3Jlc291cmNlcy9Ub3lvdGFUeXBlLUJsYWNrLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90b3lvdGEtdHlwZS9yZXNvdXJjZXMvVG95b3RhVHlwZS1CbGFjay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLmNwbC1wYXJhbGxheCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGVZKSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gIC5jcGwtcGFyYWxsYXgtYmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGVZKSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXM7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAgIC5jcGwtcGFyYWxsYXgtYmcgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG5cbkBrZXlmcmFtZXMgZ3Jvd0luIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbi5jcGwtYW5pbWF0ZWQtLWdyb3ctaW4ge1xuICBhbmltYXRpb246IGdyb3dJbiAyMDBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKC4xOCwgMS4yNSwgLjQsIDEpLCBvcGFjaXR5IGN1YmljLWJlemllcigwLCAxLCAuNCwgMSk7IH1cblxuLmNwbC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jcGwtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMDAwMHB4O1xuICBsZWZ0OiAtOTk5OXB4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5jcGwtc2hvdy1vbi1zbWwtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuY3BsLXNob3ctb24tc21sLXVwIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuY3BsLXNob3ctb24tbWVkLXVwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5jcGwtc2hvdy1vbi1tZWQtdXAge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uY3BsLWdyaWQge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY3BsLWdyaWQge1xuICAgICAgcGFkZGluZzogMTZweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5jcGwtZ3JpZCB7XG4gICAgICBwYWRkaW5nOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZCB7XG4gICAgICBwYWRkaW5nOiA0MHB4OyB9IH1cbiAgLmNwbC1ncmlkLm5vLXBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5jcGwtZ3JpZC1pbm5lciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87IH1cbiAgICAuY3BsLWdyaWQtaW5uZXIgXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgLmNwbC1ncmlkLWlubmVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTMycHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTMycHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAgICAgLmNwbC1ncmlkLWlubmVyIF86LW1zLWZ1bGxzY3JlZW4gPiBkaXYsIDpyb290IC5jcGwtZ3JpZC1pbm5lciA+IGRpdiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzJweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmNwbC1ncmlkLWlubmVyIHtcbiAgICAgICAgZ3JpZC1nYXA6IDI0cHggMTZweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIC5jcGwtZ3JpZC1pbm5lciB7XG4gICAgICAgIGdyaWQtZ2FwOiAzMnB4IDQwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDgsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLmNwbC1ncmlkLWlubmVyIHtcbiAgICAgICAgZ3JpZC1nYXA6IDQ4cHggNjRweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG5cbi5jcGwtZ3JpZC1jZWxsLTMge1xuICB3aWR0aDogYXV0bzsgfVxuICAuY3BsLWdyaWQtY2VsbC0zIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290IC5jcGwtZ3JpZC1jZWxsLTMge1xuICAgIG1heC13aWR0aDogMjUlO1xuICAgIGZsZXg6IDAgMCAyNSU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNwbC1ncmlkLWNlbGwtMyB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTMge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmNwbC1ncmlkLWNlbGwtMyB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTMgKyAuY3BsLWdyaWQtY2VsbC05IHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiA2OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTMgKyAuY3BsLWdyaWQtY2VsbC05IHtcbiAgICAgIC1tcy1ncmlkLWNvbHVtbjogNDtcbiAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiA5OyB9IH1cblxuLmNwbC1ncmlkLWNlbGwtNCB7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIC5jcGwtZ3JpZC1jZWxsLTQgXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgLmNwbC1ncmlkLWNlbGwtNCB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC00IHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9XG4gICAgICAuY3BsLWdyaWQtY2VsbC00LmNwbC1zbS1pdGVtIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC00IHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTQge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuXG4uY3BsLWdyaWQtY2VsbC02IHtcbiAgd2lkdGg6IGF1dG87IH1cbiAgLmNwbC1ncmlkLWNlbGwtNiBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAuY3BsLWdyaWQtY2VsbC02IHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBmbGV4OiAwIDAgNTAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTYge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC02IHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTYge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDY7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmNwbC1ncmlkLWNlbGwtNiArIC5jcGwtZ3JpZC1jZWxsLTYge1xuICAgICAgLW1zLWdyaWQtY29sdW1uOiA3O1xuICAgICAgLW1zLWdyaWQtY29sdW1uLXNwYW46IDY7IH0gfVxuXG4uY3BsLWdyaWQtY2VsbC03IHtcbiAgd2lkdGg6IGF1dG87IH1cbiAgLmNwbC1ncmlkLWNlbGwtNyBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAuY3BsLWdyaWQtY2VsbC03IHtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTcge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC03IHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTcge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiAxIDc7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmNwbC1ncmlkLWNlbGwtNyArIC5jcGwtZ3JpZC1jZWxsLTUge1xuICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDg7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTI7IH0gfVxuXG4uY3BsLWdyaWQtY2VsbC05IHtcbiAgd2lkdGg6IGF1dG87IH1cbiAgLmNwbC1ncmlkLWNlbGwtOSBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAuY3BsLWdyaWQtY2VsbC05IHtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICBmbGV4OiAwIDAgNzUlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTkge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC05IHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA2OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jcGwtZ3JpZC1jZWxsLTkge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDk7IH0gfVxuICAuY3BsLWdyaWQtY2VsbC05ICsgLmNwbC1ncmlkLWNlbGwtMyB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jcGwtZ3JpZC1jZWxsLTkgKyAuY3BsLWdyaWQtY2VsbC0zIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgLmNwbC1ncmlkLWNlbGwtOSArIC5jcGwtZ3JpZC1jZWxsLTMge1xuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLmNwbC1ncmlkLWNlbGwtOSArIC5jcGwtZ3JpZC1jZWxsLTMge1xuICAgICAgICBncmlkLWNvbHVtbjogMTAgLyBzcGFuIDM7IH0gfVxuXG4uY3BsLWdyaWQtY2VsbC0xMCB7XG4gIHdpZHRoOiBhdXRvO1xuICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC0xMCB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC0xMCB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTA7IH0gfVxuICAuY3BsLWdyaWQtY2VsbC0xMCBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAuY3BsLWdyaWQtY2VsbC0xMCB7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTsgfVxuXG4uY3BsLWdyaWQtY2VsbC0xMiB7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIC5jcGwtZ3JpZC1jZWxsLTEyIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290IC5jcGwtZ3JpZC1jZWxsLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNwbC1ncmlkLWNlbGwtMTIge1xuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC0xMiB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuY3BsLWdyaWQtY2VsbC0xMiB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTI7IH0gfVxuXG4uY3BsLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcGwtZmxleC1qdXN0LWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLm1kYy10b3VjaC10YXJnZXQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4ubWRjLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5MjllbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwIDIwcHggMCAyMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiA2NHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGMtYnV0dG9uOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAubWRjLWJ1dHRvbjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZGMtYnV0dG9uOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3RvdWNoIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbnN2Zy5tZGMtYnV0dG9uX19pY29uIHtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9faWNvbixcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9faWNvbixcbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogLTRweDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAtNHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgcGFkZGluZzogMCAyMXB4IDAgMjFweDsgfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOmRpc2FibGVkLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCg6ZGlzYWJsZWQpLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KDpkaXNhYmxlZCksXG4gICAgICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpub3QoOmRpc2FibGVkKSxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmZmYpOyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpob3ZlciwgLm1kYy1idXR0b24tLXJhaXNlZDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOmRpc2FibGVkIHtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1idXR0b24tLW91dGxpbmVkIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgcGFkZGluZzogMCAyMHB4IDAgMjBweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7IH1cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkOmRpc2FibGVkIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19yaXBwbGUge1xuICAgIHRvcDogLTFweDtcbiAgICBsZWZ0OiAtMXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZDpub3QoOmRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLWJ1dHRvbi0tdG91Y2gge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4OyB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4ge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0LCAwKSkgc2NhbGUoMSk7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IHZhcigtLW1kYy1yaXBwbGUtZmctb3BhY2l0eSwgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5tZGMtcmlwcGxlLXN1cmZhY2UtLXRlc3QtZWRnZS12YXItYnVnIHtcbiAgLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcjogMXB4IHNvbGlkICMwMDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS10ZXN0LWVkZ2UtdmFyLWJ1Zzo6YmVmb3JlIHtcbiAgICBib3JkZXI6IHZhcigtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyKTsgfVxuXG4ubWRjLWJ1dHRvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbiAgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsXG4gIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgLm1kYy1idXR0b246aG92ZXIgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKSAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmUgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtYnV0dG9uLS1vdXRsaW5lZCkgLm1kYy1idXR0b25fX3JpcHBsZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyLFxuICAgIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbiAgICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZik7IH0gfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOmhvdmVyIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOmhvdmVyIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZSAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlcixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1idXR0b24ge1xuICBoZWlnaHQ6IDUwcHg7IH1cblxuLm1kYy1idXR0b24ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYjBhMWU7XG4gICAgYm9yZGVyLWNvbG9yOiAjZWIwYTFlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXM7IH1cbiAgICAubWRjLWJ1dHRvbjpub3QoOmRpc2FibGVkKSAubWRjLWJ1dHRvbl9fbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAubWRjLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDEwOTFiOyB9XG4gICAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzAwMDsgfVxuICAgICAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAgIC5tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLm1kYy1idXR0b24tLW91dGxpbmVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IH1cbiAgICAgICAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkubWRjLWJ1dHRvbi0tb3V0bGluZWQ6aG92ZXIgLm1kYy1idXR0b25fX2xhYmVsIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAubWRjLWJ1dHRvbi5jcGwtbGluay1leHRlcm5hbDphZnRlciB7XG4gICAgbWFyZ2luLXRvcDogLTAuMWVtO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLm1kYy1idXR0b25fX2xhYmVsIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzLCBvcGFjaXR5IDAuMjVzO1xuICAgIG1hcmdpbi10b3A6IC0wLjFlbTtcbiAgICB6LWluZGV4OiAyOyB9XG4gIHAgLm1kYy1idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gICAgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZTpiZWZvcmUsIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5AaW1wb3J0IFwibm9ybWFsaXplLmNzcy9ub3JtYWxpemVcIjtcclxuXHJcbi8qISBUT1lPVEEgUkVWQU1QIHYyMDIxIHwgQ29udmVydGl1bSBQdGUgTHRkICovXHJcblxyXG5AaW1wb3J0IFwic3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJzdHlsZXMvbWl4aW5zLnNjc3NcIjtcclxuQGltcG9ydCBcInN0eWxlcy9mcmFtZXdvcmsuc2Nzc1wiO1xyXG5AaW1wb3J0IFwic3R5bGVzL2ZvbnRzLnNjc3NcIjtcclxuLy8gQGltcG9ydCBcInN0eWxlcy90eXBvZ3JhcGh5LnNjc3NcIjtcclxuLy8gQGltcG9ydCBcInN0eWxlcy9jb2xvcnMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwic3R5bGVzL2FuaW1hdGlvbi5zY3NzXCI7XHJcbkBpbXBvcnQgXCJzdHlsZXMvaGVscGVycy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NwbC1sYXlvdXQtZ3JpZC5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NwbC1sYXlvdXQtZmxleC5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnMuc2Nzc1wiO1xyXG4iLCJAaW1wb3J0IFwic3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJzdHlsZXMvbWl4aW5zLnNjc3NcIjtcclxuXHJcbioge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbjo6c2VsZWN0aW9uIHtcclxuICBjb2xvcjogJHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGdyYXktODAsIC42KTtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuaHRtbCxcclxuYm9keSB7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xyXG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbiAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICBtYWluIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxhY2ssIDApO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHotaW5kZXg6IDk5O1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY3BsLW5vLXNjcm9sbCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XHJcblxyXG4gICAgYm9keSB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIG1haW4ge1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxhY2ssIC43NSk7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuXHJcbiAgICAgICAgQHN1cHBvcnRzIChiYWNrZHJvcC1maWx0ZXI6IG5vbmUpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAuNik7XHJcbiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoLjNlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICBjb2xvcjogJGJsYWNrO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuYSB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBhcnRpY2xlICYge1xyXG4gIC8vICAgJjpub3QoLm1kYy1idXR0b24pOm5vdCguY3BsLW5vLXR4dC1saW5rKSB7XHJcbiAgLy8gICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gIC8vICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAvLyAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAkYmxhY2s7XHJcblxyXG4gIC8vICAgICAmOmhvdmVyIHtcclxuICAvLyAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRzeWktZ29sZDtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxufVxyXG5cclxucGljdHVyZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcclxuICBpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplUXVhbGl0eTtcclxuXHJcbiAgJixcclxuICAmW2RhdGEtc3JjXSxcclxuICAmW2RhdGEtc3Jjc2V0XSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICY6bm90KFtzcmNdKTpub3QoW3NyY3NldF0pIHtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYuY3BsLWxhenkge1xyXG4gICAgb3BhY2l0eTogLjU7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cywgdHJhbnNmb3JtIC41cztcclxuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XHJcblxyXG4gICAgJi5sb2FkZWQge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8tLS0gTGF5b3V0XHJcblxyXG4uY3BsLXNlYyB7XHJcbiAgJi13cmFwcGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAkd2lkdGhfY29udGVudDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGxfYW5kX2Rvd259IHtcclxuICAgICAgcGFkZGluZy10b3A6ICRwYWRfc2l6ZV8yO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZF9zaXplXzM7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogJHBhZF9zaXplXzI7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkX3NpemVfNTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogKCRwYWRfc2l6ZV81IC8gMik7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkX3NpemVfNTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtY29udCB7XHJcbiAgICAmLm5vLXBhZC10b3Age1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGxfYW5kX2Rvd259IHtcclxuICAgICAgcGFkZGluZzogJHBhZF9zaXplXzI7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBwYWRkaW5nOiAkcGFkX3NpemVfMztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBwYWRkaW5nOiAkcGFkX3NpemVfNTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jcGwtaGVpZ2h0LWZ1bGwge1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcclxufVxyXG5cclxuLy8tLS0gTWVkaWFcclxuXHJcbi5jcGwtaWNvbi1wbGF5IHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIHBpY3R1cmUge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIGljb25fcGxheTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xyXG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBwaWN0dXJlIHtcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgb3BhY2l0eTogLjc1O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2LCAxLjA2KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLS0tIExpbmtzXHJcblxyXG4uY3BsLWxpbmstdHh0IHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKCRibGFjaywgMCk7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cztcclxuXHJcbiAgLmNwbC1zZWMtYmctYmxhY2sgJiB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKCR3aGl0ZSwgMCk7XHJcbiAgfVxyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIHdpZHRoOiA4cHg7XHJcbiAgICBoZWlnaHQ6IDhweDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWSgtMC4xNWVtKTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwLjM1ZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoJGJsYWNrLCAxKTtcclxuXHJcbiAgICAuY3BsLXNlYy1iZy1ibGFjayAmIHtcclxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgkd2hpdGUsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0IFwic3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCI7XHJcblxyXG4vLyBBbmltYXRpb24gbWl4aW5cclxuXHJcbkBtaXhpbiBrZXlmcmFtZSgkYW5pbWF0aW9uLW5hbWUpIHtcclxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJHN0cikge1xyXG4gIGFuaW1hdGlvbjogI3skc3RyfTtcclxufVxyXG5cclxuLy8gR3JhZGllbnQgbWl4aW5cclxuXHJcbkBtaXhpbiBncmFkaWVudF9ibGFja18yIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICB0byB0b3AsXHJcbiAgICBoc2woMCwgMCUsIDAlKSAwJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjczOCkgMTklLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuNTQxKSAzNCUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4zODIpIDQ3JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjI3OCkgNTYuNSUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4xOTQpIDY1JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjEyNikgNzMlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMDc1KSA4MC4yJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjA0MikgODYuMSUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4wMjEpIDkxJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjAwOCkgOTUuMiUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4wMDIpIDk4LjIlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDApIDEwMCVcclxuICApO1xyXG59XHJcbiVncmFkaWVudF9ibGFja18yIHtcclxuICBAaW5jbHVkZSBncmFkaWVudF9ibGFja18yO1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnRfYmxhY2tfMyB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgdG8gcmlnaHQsXHJcbiAgICBoc2woMCwgMCUsIDAlKSAwJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjczOCkgMTklLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuNTQxKSAzNCUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4zODIpIDQ3JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjI3OCkgNTYuNSUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4xOTQpIDY1JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjEyNikgNzMlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMDc1KSA4MC4yJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjA0MikgODYuMSUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4wMjEpIDkxJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjAwOCkgOTUuMiUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4wMDIpIDk4LjIlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDApIDEwMCVcclxuICApO1xyXG59XHJcbiVncmFkaWVudF9ibGFja18zIHtcclxuICBAaW5jbHVkZSBncmFkaWVudF9ibGFja18zO1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnRfYmxhY2tfNCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgdG8gbGVmdCxcclxuICAgIGhzbCgwLCAwJSwgMCUpIDAlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuNzM4KSAxOSUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC41NDEpIDM0JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjM4MikgNDclLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMjc4KSA1Ni41JSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjE5NCkgNjUlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMTI2KSA3MyUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMC4wNzUpIDgwLjIlLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMDQyKSA4Ni4xJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjAyMSkgOTElLFxyXG4gICAgaHNsYSgwLCAwJSwgMCUsIDAuMDA4KSA5NS4yJSxcclxuICAgIGhzbGEoMCwgMCUsIDAlLCAwLjAwMikgOTguMiUsXHJcbiAgICBoc2xhKDAsIDAlLCAwJSwgMCkgMTAwJVxyXG4gICk7XHJcbn1cclxuJWdyYWRpZW50X2JsYWNrXzQge1xyXG4gIEBpbmNsdWRlIGdyYWRpZW50X2JsYWNrXzQ7XHJcbn1cclxuLy8gSWNvbnMgbWl4aW5cclxuXHJcbkBtaXhpbiBpY29uX2Nsb3NlX3dycCB7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgICB3aWR0aDogMy4zMzNyZW07XHJcbiAgICBoZWlnaHQ6IDMuMzMzcmVtO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuICAlaWNvbl9jbG9zZV93cnAge1xyXG4gICAgQGluY2x1ZGUgaWNvbl9jbG9zZV93cnA7XHJcbiAgfVxyXG4gIEBtaXhpbiBpY29uX2Nsb3NlIHtcclxuICAgICY6YmVmb3JlLFxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGhlaWdodDogMi4yMjJyZW07XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHdoaXRlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogLjU1NXJlbTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAycHgpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gICVpY29uX2Nsb3NlIHtcclxuICAgIEBpbmNsdWRlIGljb25fY2xvc2U7XHJcbiAgfVxyXG4gIEBtaXhpbiBpY29uX3BsYXkge1xyXG4gICAgd2lkdGg6IDgwcHg7XHJcbiAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9yZXNvdXJjZXMvcGxheS5zdmcpO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgLy8gdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpe1xyXG4gICAgICB3aWR0aDogNTZweDtcclxuICAgICAgaGVpZ2h0OiA1NnB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAlaWNvbl9wbGF5IHtcclxuICAgIEBpbmNsdWRlIGljb25fcGxheTtcclxuICB9XHJcbiIsIi8vIFRveW90YSBUeXBlIC0gaHR0cHM6Ly93d3cudG95b3RhLmNvbS9icmFuZGd1aWRlbGluZXMvdHlwb2dyYXBoeS9cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgc3JjOiB1cmwoJyN7JHRveW90YS1mb250LXBhdGh9VG95b3RhVHlwZS1MaWdodC53b2ZmMicpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgICAgICB1cmwoJyN7JHRveW90YS1mb250LXBhdGh9VG95b3RhVHlwZS1MaWdodC53b2ZmJykgZm9ybWF0KFwid29mZlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbiAgfVxyXG5cclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlRveW90YVR5cGVcIjtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIHNyYzogdXJsKCcjeyR0b3lvdGEtZm9udC1wYXRofVRveW90YVR5cGUtQm9vay53b2ZmMicpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgICAgICB1cmwoJyN7JHRveW90YS1mb250LXBhdGh9VG95b3RhVHlwZS1Cb29rLndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICB9XHJcblxyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgc3JjOiB1cmwoJyN7JHRveW90YS1mb250LXBhdGh9VG95b3RhVHlwZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICAgICAgIHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLVJlZ3VsYXIud29mZicpIGZvcm1hdChcIndvZmZcIik7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gIH1cclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJUb3lvdGFUeXBlXCI7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBzcmM6IHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLVNlbWlib2xkLndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICAgICAgIHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLVNlbWlib2xkLndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcblxyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiVG95b3RhVHlwZVwiO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgc3JjOiB1cmwoJyN7JHRveW90YS1mb250LXBhdGh9VG95b3RhVHlwZS1Cb2xkLndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICAgICAgIHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLUJvbGQud29mZicpIGZvcm1hdChcIndvZmZcIik7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gIH1cclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJUb3lvdGFUeXBlXCI7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBzcmM6IHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLUJsYWNrLndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICAgICAgIHVybCgnI3skdG95b3RhLWZvbnQtcGF0aH1Ub3lvdGFUeXBlLUJsYWNrLndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICB9XHJcbiIsIkBpbXBvcnQgXCJtaXhpbnMuc2Nzc1wiO1xyXG5cclxuLmNwbC1wYXJhbGxheCB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXRyYW5zbGF0ZVkpKTtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG5cclxuICAmLWJnIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGVZKSk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcclxuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQGluY2x1ZGUga2V5ZnJhbWUoZ3Jvd0luKSB7XHJcbiAgMCUge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICB9XHJcbn1cclxuXHJcbi5jcGwtYW5pbWF0ZWQtLWdyb3ctaW4ge1xyXG4gIEBpbmNsdWRlIGFuaW1hdGlvbihcclxuICAgIFwiZ3Jvd0luIDIwMG1zIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoLjE4LCAxLjI1LCAuNCwgMSksIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAsIDEsIC40LCAxKVwiXHJcbiAgKTtcclxufVxyXG4iLCIuY3BsLWhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmNwbC1pbnZpc2libGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMTAwMDBweDtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAuY3BsLXNob3ctb24tc21sLXVwIHtcclxuICAgIEBtZWRpYSAjeyRzbWFsbF9hbmRfZG93bn0ge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGxfYW5kX3VwfSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY3BsLXNob3ctb24tbWVkLXVwIHtcclxuICAgIEBtZWRpYSAjeyRtZWRpdW1fYW5kX2Rvd259IHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JG1lZGl1bV9hbmRfdXB9IHtcclxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbiIsIkBpbXBvcnQgXCIuLi9zdHlsZXMvdmFyaWFibGVzXCI7XHJcblxyXG4uY3BsLWdyaWQge1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICBAbWVkaWEgI3skc21hbGxfYW5kX2Rvd259IHtcclxuICAgIHBhZGRpbmc6ICRwYWRfc2l6ZV8yO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgcGFkZGluZzogJHBhZF9zaXplXzQ7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgcGFkZGluZzogJHBhZF9zaXplXzU7XHJcbiAgfVxyXG5cclxuICAmLm5vLXBhZC10b3Age1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAmLWlubmVyIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XHJcblxyXG4gICAgXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgJiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLSgkcGFkX3NpemVfNCk7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtKCRwYWRfc2l6ZV80KTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuXHJcbiAgICAgID4gZGl2IHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkX3NpemVfNDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRfc2l6ZV80O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX2FuZF9kb3dufSB7XHJcbiAgICAgIGdyaWQtZ2FwOiAkcGFkX3NpemVfMyAkcGFkX3NpemVfMjtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbF90b19tZWRpdW19IHtcclxuICAgICAgZ3JpZC1nYXA6ICRwYWRfc2l6ZV80ICRwYWRfc2l6ZV81O1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bV9hbmRfdXB9IHtcclxuICAgICAgZ3JpZC1nYXA6ICRwYWRfc2l6ZV82ICRwYWRfc2l6ZV84O1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNwbC1ncmlkLWNlbGwge1xyXG4gICYtMyB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuXHJcbiAgICBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAmIHtcclxuICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvNCk7XHJcbiAgICAgIGZsZXg6IDAgMCBwZXJjZW50YWdlKDEvNCk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX2FuZF9kb3dufSB7XHJcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbF90b19tZWRpdW19IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bV9hbmRfdXB9IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDM7XHJcbiAgICB9XHJcblxyXG4gICAgKyAuY3BsLWdyaWQtY2VsbC05IHtcclxuICAgICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiA2O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbjogNDtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogOTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICAmLTQge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcblxyXG4gICAgXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgJiB7XHJcbiAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzMpO1xyXG4gICAgICBmbGV4OiAwIDAgcGVyY2VudGFnZSgxLzMpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbF9hbmRfZG93bn0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDtcclxuXHJcbiAgICAgICYuY3BsLXNtLWl0ZW0ge1xyXG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDtcclxuICAgIH1cclxuXHJcbiAgICAvLyArIC5jcGwtZ3JpZC1jZWxsLTQge1xyXG4gICAgLy8gICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgLy8gICAgIC1tcy1ncmlkLWNvbHVtbjogNTtcclxuICAgIC8vICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogNDtcclxuXHJcbiAgICAvLyAgICAgKyAuY3BsLWdyaWQtY2VsbC00IHtcclxuICAgIC8vICAgICAgIC1tcy1ncmlkLWNvbHVtbjogOTtcclxuICAgIC8vICAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiA0O1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgJi02IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG5cclxuICAgIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290ICYge1xyXG4gICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcclxuICAgICAgZmxleDogMCAwIHBlcmNlbnRhZ2UoMS8yKTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGxfYW5kX2Rvd259IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjtcclxuICAgIH1cclxuXHJcbiAgICArIC5jcGwtZ3JpZC1jZWxsLTYge1xyXG4gICAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbjogNztcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogNjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290ICYge1xyXG4gICAgLy8gICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgIC8vICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkX3NpemVfNDtcclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vICAgJjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgLy8gICAgIHBhZGRpbmctbGVmdDogJHBhZF9zaXplXzQ7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICB9XHJcbiAgJi03IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG5cclxuICAgIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290ICYge1xyXG4gICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoNy8xMik7XHJcbiAgICAgIGZsZXg6IDAgMCBwZXJjZW50YWdlKDcvMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbF9hbmRfZG93bn0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGxfdG9fbWVkaXVtfSB7XHJcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRtZWRpdW1fYW5kX3VwfSB7XHJcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogMSA3O1xyXG4gICAgfVxyXG5cclxuICAgICsgLmNwbC1ncmlkLWNlbGwtNSB7XHJcbiAgICAgIEBtZWRpYSAjeyRtZWRpdW1fYW5kX3VwfSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDg7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgJiB7XHJcbiAgICAvLyAgICY6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgLy8gICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRfc2l6ZV80O1xyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gICAmOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICAvLyAgICAgcGFkZGluZy1sZWZ0OiAkcGFkX3NpemVfNDtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgJi05IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG5cclxuICAgIF86LW1zLWZ1bGxzY3JlZW4sIDpyb290ICYge1xyXG4gICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMy80KTtcclxuICAgICAgZmxleDogMCAwIHBlcmNlbnRhZ2UoMy80KTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGxfYW5kX2Rvd259IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gOTtcclxuICAgIH1cclxuXHJcbiAgICArIC5jcGwtZ3JpZC1jZWxsLTMge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuXHJcbiAgICAgIEBtZWRpYSAjeyRzbWFsbF9hbmRfZG93bn0ge1xyXG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgI3skc21hbGxfdG9fbWVkaXVtfSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAjeyRtZWRpdW1fYW5kX3VwfSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEwIC8gc3BhbiAzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLTEwIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX3RvX21lZGl1bX0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtX2FuZF91cH0ge1xyXG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTA7XHJcbiAgICB9XHJcblxyXG4gICAgXzotbXMtZnVsbHNjcmVlbiwgOnJvb3QgJiB7XHJcbiAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSg1LzYpO1xyXG4gICAgICBmbGV4OiAwIDAgcGVyY2VudGFnZSg1LzYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0xMiB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuXHJcbiAgICBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAmIHtcclxuICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMSk7XHJcbiAgICAgIGZsZXg6IDAgMCBwZXJjZW50YWdlKDEvMSk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsX2FuZF9kb3dufSB7XHJcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbF90b19tZWRpdW19IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bV9hbmRfdXB9IHtcclxuICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0IFwiLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xyXG5cclxuLmNwbC1mbGV4IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAmLWp1c3QtY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8vIFN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQncyB0b3VjaCB0YXJnZXQgd3JhcHBlciBlbGVtZW50LlxuQG1peGluIG1kYy10b3VjaC10YXJnZXQtd3JhcHBlcigkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy10b3VjaC10YXJnZXQtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIEVuc3VyZSB0aGF0IHN0eWxlcyBhcmUgb25seSBlbWl0dGVkIG9uY2UgYWNyb3NzIGFsbCBjb21wb25lbnRzIHRoYXRcbiAgICAgIC8vIGhhdmUgaW5jcmVhc2VkIHRvdWNoIHRhcmdldHMuXG4gICAgICBAaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtdG91Y2gtdGFyZ2V0L3dyYXBwZXJcIikge1xuICAgICAgICAvLyBOT1RFOiBXaWxsIGNoYW5nZSB0byBgaW5saW5lLWJsb2NrYCBpbiB0aGUgZnV0dXJlLCBidXQga2VlcGluZyBhcyBpc1xuICAgICAgICAvLyB0ZW1wb3JhcmlseSBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkuXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQncyBpbm5lciB0b3VjaCB0YXJnZXQgZWxlbWVudC5cbkBtaXhpbiBtZGMtdG91Y2gtdGFyZ2V0KCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogJG1kYy10b3VjaC10YXJnZXQtaGVpZ2h0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxufVxuXG4vLy8gU3R5bGVzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBpbmNyZWFzZWQgdG91Y2ggdGFyZ2V0LlxuQG1peGluIG1kYy10b3VjaC10YXJnZXQtY29tcG9uZW50KCRjb21wb25lbnQtaGVpZ2h0LCAkY29tcG9uZW50LXdpZHRoOiBudWxsLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJHZlcnRpY2FsLW1hcmdpbi12YWx1ZTogKCRtZGMtdG91Y2gtdGFyZ2V0LWhlaWdodCAtICRjb21wb25lbnQtaGVpZ2h0KSAvIDI7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBtYXJnaW4tdG9wOiAkdmVydGljYWwtbWFyZ2luLXZhbHVlO1xuICAgIG1hcmdpbi1ib3R0b206ICR2ZXJ0aWNhbC1tYXJnaW4tdmFsdWU7XG4gIH1cblxuICBAaWYgJGNvbXBvbmVudC13aWR0aCB7XG4gICAgJGhvcml6b250YWwtbWFyZ2luLXZhbHVlOiAoJG1kYy10b3VjaC10YXJnZXQtd2lkdGggLSAkY29tcG9uZW50LXdpZHRoKSAvIDI7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkaG9yaXpvbnRhbC1tYXJnaW4tdmFsdWU7XG4gICAgICBtYXJnaW4tbGVmdDogJGhvcml6b250YWwtbWFyZ2luLXZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RvdWNoLXRhcmdldC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbiRtZGMtYnV0dG9uLXJpcHBsZS10YXJnZXQ6IFwiLm1kYy1idXR0b25fX3JpcHBsZVwiO1xuXG5AbWl4aW4gbWRjLWJ1dHRvbi1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1idXR0b24tdGhlbWUtYmFzZWxpbmUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1kZW5zaXR5KCRtZGMtYnV0dG9uLWRlbnNpdHktc2NhbGUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBidXR0b24gc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtYnV0dG9uLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtdG91Y2gtdGFyZ2V0LXdyYXBwZXIoJHF1ZXJ5KTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBidXR0b25cbiAgLm1kYy1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tYmFzZV8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLXNoYXBlLXJhZGl1cyhzbWFsbCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeSk7XG5cbiAgICAvLyBUaGUgaWNvbiBDU1MgY2xhc3Mgb3ZlcnJpZGVzIHN0eWxlcyBkZWZpbmVkIGluIHRoZSAubWF0ZXJpYWwtaWNvbnMgQ1NTXG4gICAgLy8gY2xhc3MsIHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90XG4gICAgLy8gZ3VhcmFudGVlZC4gVGhlcmVmb3JlLCBpbmNyZWFzZSBzcGVjaWZpdHkgYnkgbmVzdGluZyB0aGlzIGNsYXNzIHRvIGVuc3VyZVxuICAgIC8vIG92ZXJyaWRlcyBhcHBseS5cbiAgICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWJ1dHRvbl9fdG91Y2gge1xuICAgICAgQGluY2x1ZGUgbWRjLXRvdWNoLXRhcmdldCgkcXVlcnkpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tdHJhaWxpbmdfO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgc3ZnLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLXN2Z187XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQsXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gICAgLm1kYy1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gSWNvbnMgaW5zaWRlIGNvbnRhaW5lZCBidXR0b25zIGhhdmUgZGlmZmVyZW50IHN0eWxlcyBkdWUgdG8gaW5jcmVhc2VkIGJ1dHRvbiBwYWRkaW5nXG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZC10cmFpbGluZ187XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLWZpbGxlZF8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3Iob24tcHJpbWFyeSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLXJhaXNlZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tb3V0bGluZWRfKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1vdXRsaW5lLXdpZHRoKCRtZGMtYnV0dG9uLW91dGxpbmVkLWJvcmRlci13aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLXRvdWNoIHtcbiAgICBAaW5jbHVkZSBtZGMtdG91Y2gtdGFyZ2V0LWNvbXBvbmVudChcbiAgICAgICRjb21wb25lbnQtaGVpZ2h0OiAkbWRjLWJ1dHRvbi1oZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBidXR0b24gc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtYnV0dG9uLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1idXR0b24tcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkbWRjLWJ1dHRvbi1yaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKFxuICAgICAgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkbWRjLWJ1dHRvbi1yaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKFxuICAgICAgJGNvbG9yOiBwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRtZGMtYnV0dG9uLXJpcHBsZS10YXJnZXQpO1xuXG4gICAgI3skbWRjLWJ1dHRvbi1yaXBwbGUtdGFyZ2V0fSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8vIFJpcHBsZSBuZWVkcyBjb250ZW50LWJveCBhcyB0aGUgYm94IHNpemluZyBhbmQgYm94LXNpemluZzogYm9yZGVyLWJveFxuICAgICAgICAvLyBpcyBvZnRlbiBzZXQgYXMgYSBkZWZhdWx0LCBzbyB3ZSBvdmVycmlkZSB0aGF0IGhlcmUuXG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJpcHBsZSB0YXJnZXRzIGluc2lkZSBvdXRsaW5lZCBidXR0b25zIHNldCB0aGVpciBvd24gYHRvcGAvYGxlZnRgLFxuICAgIC8vIGRlcGVuZGluZyBvbiB0aGUgYm9yZGVyIHdpZHRoLlxuICAgICY6bm90KC5tZGMtYnV0dG9uLS1vdXRsaW5lZCkgI3skbWRjLWJ1dHRvbi1yaXBwbGUtdGFyZ2V0fSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoXG4gICAgICAkY29sb3I6IG9uLXByaW1hcnksICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJG1kYy1idXR0b24tcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tZmlsbGVkLWFjY2Vzc2libGUoJGNvbnRhaW5lci1maWxsLWNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb250YWluZXItZmlsbC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkY29udGFpbmVyLWZpbGwtY29sb3IsICRxdWVyeSk7XG5cbiAgQGlmICgkZmlsbC10b25lID09IFwiZGFya1wiKSB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhcbiAgICAgICRjb2xvcjogdGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJG1kYy1idXR0b24tcmlwcGxlLXRhcmdldCk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKFxuICAgICAgJGNvbG9yOiB0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJG1kYy1idXR0b24tcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIDpub3QoOmRpc2FibGVkKSBpcyB1c2VkIHRvIHN1cHBvcnQgbGluayBzdHlsZWQgYXMgYnV0dG9uXG4gIC8vIGFzIGxpbmsgZG9lcyBub3Qgc3VwcG9ydCA6ZW5hYmxlZCBzdHlsZVxuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1pY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24taW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBkZW5zaXR5IHNjYWxlIGZvciBidXR0b24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGRlbnNpdHktc2NhbGUgLSBEZW5zaXR5IHNjYWxlIHZhbHVlIGZvciBjb21wb25lbnQuIFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlIHZhbHVlcyBgLTNgLFxuLy8vICAgICBgLTJgLCBgLTFgLCBgMGAuXG4vLy9cbkBtaXhpbiBtZGMtYnV0dG9uLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcblxuICAkaGVpZ2h0OiBtZGMtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogJG1kYy1idXR0b24tZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHQsXG4gICk7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpZiAkZGVuc2l0eS1zY2FsZSAhPSAwIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLXRvdWNoLXRhcmdldC1yZXNldF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFJlc2V0cyB0b3VjaCB0YXJnZXQtcmVsYXRlZCBzdHlsZXMuIFRoaXMgaXMgY2FsbGVkIGZyb20gdGhlIGRlbnNpdHkgbWl4aW4gdG9cbi8vLyBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgaW5jcmVhc2VkIHRvdWNoIHRhcmdldCwgc2luY2UgZGVuc2UgY29tcG9uZW50c1xuLy8vIGRvbid0IGhhdmUgdGhlIHNhbWUgZGVmYXVsdCBhMTF5IHJlcXVpcmVtZW50cy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIG1kYy1idXR0b24tdG91Y2gtdGFyZ2V0LXJlc2V0XygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fdG91Y2gge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1zaGFwZS1yYWRpdXMoJHJhZGl1cyxcbiRydGwtcmVmbGV4aXZlOiBmYWxzZSxcbiRkZW5zaXR5LXNjYWxlOiAkbWRjLWJ1dHRvbi1kZW5zaXR5LXNjYWxlLFxuJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuXG4gICRoZWlnaHQ6IG1kYy1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiAkbWRjLWJ1dHRvbi1kZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcbiAgJHJlc29sdmVkLXJhZGl1czogbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJGhlaWdodCwgJHJhZGl1cyk7XG5cbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmVzb2x2ZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICN7JG1kYy1idXR0b24tcmlwcGxlLXRhcmdldH0ge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmcsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vICRwYWRkaW5nIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZTsgZW5mb3JjZSBpdCBieSBzcGVjaWZ5aW5nIGFsbCA0IHNpZGVzIGluIHRoZSBvdXRwdXRcbiAgICBwYWRkaW5nOiAwICRwYWRkaW5nIDAgJHBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tb3V0bGluZS13aWR0aChcbiAgJG91dGxpbmUtd2lkdGgsXG4gICRwYWRkaW5nOiAkbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgLy8gTm90ZTogQWRqdXN0IHBhZGRpbmcgdG8gbWFpbnRhaW4gY29uc2lzdGVudCB3aWR0aCB3aXRoIG5vbi1vdXRsaW5lZCBidXR0b25zXG4gICRwYWRkaW5nLXZhbHVlOiBtYXgoJHBhZGRpbmcgLSAkb3V0bGluZS13aWR0aCwgMCk7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmctdmFsdWUsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItd2lkdGg6ICRvdXRsaW5lLXdpZHRoO1xuICB9XG5cbiAgI3skbWRjLWJ1dHRvbi1yaXBwbGUtdGFyZ2V0fSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRvcDogLSRvdXRsaW5lLXdpZHRoO1xuICAgICAgbGVmdDogLSRvdXRsaW5lLXdpZHRoO1xuICAgICAgYm9yZGVyOiAkb3V0bGluZS13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tYmFzZV8oJHF1ZXJ5KSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJ1dHRvbiwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDY0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvLyBFdmVuIHRob3VnaCBgdmlzaWJsZWAgaXMgdGhlIGRlZmF1bHQsIElFIDExIGNvbXB1dGVzIHRoZSBwcm9wZXJ0eSBhc1xuICAgIC8vIGBoaWRkZW5gIGluIHNvbWUgY2FzZXMsIHVubGVzcyBpdCdzIGV4cGxpY2l0bHkgZGVmaW5lZCBoZXJlLlxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7XG5cbiAgICAgIGNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbl8ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tdHJhaWxpbmdfIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tc3ZnXyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgLTRweCwgOHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkLXRyYWlsaW5nXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgOHB4LCAtNHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b24tLW91dGxpbmVkXygkcXVlcnkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1maWxsZWRfKCRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnkpO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMik7XG4gICAgICBjb2xvcjogJG1kYy1idXR0b24tZGlzYWJsZWQtaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tcmFpc2VkXygkcXVlcnkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigyLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDAsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLXR5cG9ncmFwaHkge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2UoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGVhY2ggJHN0eWxlIGluIG1hcC1rZXlzKCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMpIHtcbiAgICAubWRjLXR5cG9ncmFwaHktLSN7JHN0eWxlfSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeSgkc3R5bGUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2UoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC10eXBvZ3JhcGh5OiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtZGMtdHlwb2dyYXBoeS1iYXNlIHtcbiAgICAgICN7JGtleX06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5KCRzdHlsZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSwgJGV4Y2x1ZGUtcHJvcHM6ICgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcbiAgJHN0eWxlLXByb3BzOiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgI3skc3R5bGV9IGRvZXNuJ3QgZXhpc3QuIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLXR5cG9ncmFwaHktc3R5bGVzKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkc3R5bGUtcHJvcHMge1xuICAgICAgQGlmIGluZGV4KCRleGNsdWRlLXByb3BzLCAka2V5KSA9PSBudWxsIHtcbiAgICAgICAgI3ska2V5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBFbGVtZW50IG11c3QgYmUgYGRpc3BsYXk6IGJsb2NrYCBvciBgZGlzcGxheTogaW5saW5lLWJsb2NrYCBmb3IgdGhpcyB0byB3b3JrLlxuQG1peGluIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRkaXN0YW5jZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkZGlzdGFuY2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbi1ib3R0b206IC0xICogJGRpc3RhbmNlO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKTtcblxuICAgICAgdmVydGljYWwtYWxpZ246IC0xICogJGRpc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6ICRkaXN0YW5jZTtcbiAgY29udGVudDogXCJcIjtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLy8gRXZlbiBpZiAkcnRsLXJlZmxleGl2ZSBpcyB0cnVlLCBvbmx5IGVtaXQgUlRMIHN0eWxlcyBpZiB3ZSBjYW4ndCBlYXNpbHkgdGVsbCB0aGF0IHRoZSBnaXZlbiByYWRpdXMgaXMgc3ltbWV0cmljYWxcbiAgICAkbmVlZHMtZmxpcDogJHJ0bC1yZWZsZXhpdmUgYW5kIGxlbmd0aCgkcmFkaXVzKSA+IDE7XG5cbiAgICBAaWYgKCRuZWVkcy1mbGlwKSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgfVxuXG4gICAgYm9yZGVyLXJhZGl1czogbWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cyk7XG5cbiAgICBAaWYgKCRuZWVkcy1mbGlwKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiBtZGMtc2hhcGUtZmxpcC1yYWRpdXMobWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuQG1peGluIG1kYy10aGVtZS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIDpyb290IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAZWFjaCAkc3R5bGUgaW4gbWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpIHtcbiAgICAgICAgLS1tZGMtdGhlbWUtI3skc3R5bGV9OiAje21hcC1nZXQoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSl9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRzdHlsZSBpbiBtYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcykge1xuICAgIEBpZiAkc3R5bGUgIT0gXCJiYWNrZ3JvdW5kXCIgYW5kICRzdHlsZSAhPSBcInN1cmZhY2VcIiB7XG4gICAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0ge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRzdHlsZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIC5tZGMtdGhlbWUtLSN7JHN0eWxlfSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkc3R5bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ1NTIHJ1bGVzIGZvciB1c2luZyBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgKHBsdXMgbGlnaHQvZGFyayB2YXJpYW50cykgYXMgYmFja2dyb3VuZCBjb2xvcnMuXG4gIEBlYWNoICRzdHlsZSBpbiAoXCJwcmltYXJ5XCIsIFwic2Vjb25kYXJ5XCIpIHtcbiAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0tYmcge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkc3R5bGUsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IHRoZW1lIGNvbG9yIHN0eWxlIHRvIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuXG4vLyAkcHJvcGVydHkgaXMgdHlwaWNhbGx5IGNvbG9yIG9yIGJhY2tncm91bmQtY29sb3IsIGJ1dCBjYW4gYmUgYW55IENTUyBwcm9wZXJ0eSB0aGF0IGFjY2VwdHMgY29sb3IgdmFsdWVzLlxuLy8gJHN0eWxlIHNob3VsZCBiZSBvbmUgb2YgdGhlIG1hcCBrZXlzIGluICRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzIChfdmFyaWFibGVzLnNjc3MpLCBvciBhIGNvbG9yIHZhbHVlLlxuLy8gJGVkZ2VPcHRPdXQgY29udHJvbHMgd2hldGhlciB0byBmZWF0dXJlLWRldGVjdCBhcm91bmQgRWRnZSB0byBhdm9pZCBlbWl0dGluZyBDU1MgdmFyaWFibGVzIGZvciBpdCxcbi8vIGludGVuZGVkIGZvciB1c2UgaW4gY2FzZXMgd2hlcmUgaW50ZXJhY3Rpb25zIHdpdGggcHNldWRvLWVsZW1lbnQgc3R5bGVzIGNhdXNlIHByb2JsZW1zIGR1ZSB0byBFZGdlIGJ1Z3MuXG5AbWl4aW4gbWRjLXRoZW1lLXByb3AoJHByb3BlcnR5LCAkc3R5bGUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkZWRnZU9wdE91dDogZmFsc2UpIHtcbiAgQGlmIG1kYy10aGVtZS1pcy12YXItd2l0aC1mYWxsYmFja18oJHN0eWxlKSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtZ2V0LXZhci1mYWxsYmFja18oJHN0eWxlKSAhaW1wb3J0YW50O1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtdmFyXygkc3R5bGUpICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1kYy10aGVtZS1nZXQtdmFyLWZhbGxiYWNrXygkc3R5bGUpO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtdmFyXygkc3R5bGUpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiAkc3R5bGUgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHN0eWxlO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKSB7XG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlOiAnI3skc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyl9XCI7XG4gICAgfVxuXG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xuXG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWUgIWltcG9ydGFudDtcblxuICAgICAgQGlmICRlZGdlT3B0T3V0IHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgIC8vIElFIDExIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGlzIHN5bnRheCBhbmQgaWdub3JlcyB0aGUgZW50aXJlIGJsb2NrLlxuICAgICAgICAgIC8vIEVkZ2UgdW5kZXJzdGFuZHMgdGhpcyBzeW50YXggYW5kIHNraXBzIHRoZSBlbnRpcmUgYmxvY2sgdG8gYXZvaWQgYSBuYXN0eSA6YmVmb3JlLzphZnRlciBwc2V1ZG8tZWxlbWVudCBidWcuXG4gICAgICAgICAgLy8gQWxsIG90aGVyIGJyb3dzZXJzIGFwcGx5IHRoZSBzdHlsZXMgd2l0aGluIHRoZSBibG9jay5cbiAgICAgICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuXG4gICAgICBAaWYgJGVkZ2VPcHRPdXQge1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgICBAYXQtcm9vdCB7XG4gICAgICAgICAgLy8gSUUgMTEgZG9lc24ndCB1bmRlcnN0YW5kIHRoaXMgc3ludGF4IGFuZCBpZ25vcmVzIHRoZSBlbnRpcmUgYmxvY2suXG4gICAgICAgICAgLy8gRWRnZSB1bmRlcnN0YW5kcyB0aGlzIHN5bnRheCBhbmQgc2tpcHMgdGhlIGVudGlyZSBibG9jayB0byBhdm9pZCBhIG5hc3R5IDpiZWZvcmUvOmFmdGVyIHBzZXVkby1lbGVtZW50IGJ1Zy5cbiAgICAgICAgICAvLyBBbGwgb3RoZXIgYnJvd3NlcnMgYXBwbHkgdGhlIHN0eWxlcyB3aXRoaW4gdGhlIGJsb2NrLlxuICAgICAgICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIENyZWF0ZXMgYSBydWxlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gYW4gTURDIFdlYiBjb21wb25lbnQgaXMgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFuIFJUTCBsYXlvdXQuXG4vL1xuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIGxlZnQ6IGF1dG87XG4vLyAgICAgcmlnaHQ6IDA7XG4vLyAgIH1cbi8vXG4vLyAgICZfX2JhciB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbi8vICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1mb29cIikge1xuLy8gICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyAubWRjLWZvby0tbW9kIHtcbi8vICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBwYWRkaW5nLWxlZnQ6IGF1dG87XG4vLyAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBtaXhpbiB3b3JrcyBieSBjaGVja2luZyBmb3IgYW4gYW5jZXN0b3IgZWxlbWVudCB3aXRoIGBbZGlyPVwicnRsXCJdYC5cbi8vIEFzIGEgcmVzdWx0LCBuZXN0ZWQgYGRpcmAgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkOlxuLy9cbi8vIGBgYGh0bWxcbi8vIDxodG1sIGRpcj1cInJ0bFwiPlxuLy8gICA8IS0tIC4uLiAtLT5cbi8vICAgPGRpdiBkaXI9XCJsdHJcIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwibWRjLWZvb1wiPlN0eWxlZCBpbmNvcnJlY3RseSBhcyBSVEwhPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy8gPC9odG1sPlxuLy8gYGBgXG4vL1xuLy8gSW4gdGhlIGZ1dHVyZSwgc2VsZWN0b3JzIHN1Y2ggYXMgdGhlIGA6ZGlyYCBwc2V1ZG8tY2xhc3MgKGh0dHA6Ly9tZG4uaW8vY3NzLzpkaXIpIHdpbGwgaGVscCB1cyBtaXRpZ2F0ZSB0aGlzLlxuQG1peGluIG1kYy1ydGwoJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmICgkbWRjLXJ0bC1pbmNsdWRlKSB7XG4gICAgQGlmICgkcm9vdC1zZWxlY3Rvcikge1xuICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAjeyRyb290LXNlbGVjdG9yfVtkaXI9XCJydGxcIl0gJixcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAjeyRyb290LXNlbGVjdG9yfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgW2Rpcj1cInJ0bFwiXSAmLFxuICAgICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGFrZXMgYSBiYXNlIGJveC1tb2RlbCBwcm9wZXJ0eSBuYW1lIChgbWFyZ2luYCwgYGJvcmRlcmAsIGBwYWRkaW5nYCwgZXRjLikgYWxvbmcgd2l0aCBhXG4vLyBkZWZhdWx0IGRpcmVjdGlvbiAoYGxlZnRgIG9yIGByaWdodGApIGFuZCB2YWx1ZSwgYW5kIGVtaXRzIHJ1bGVzIHdoaWNoIGFwcGx5IHRoZSBnaXZlbiB2YWx1ZSB0byB0aGVcbi8vIHNwZWNpZmllZCBkaXJlY3Rpb24gYnkgZGVmYXVsdCBhbmQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBpbiBSVEwuXG4vL1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4vLyAgIG1hcmdpbi1yaWdodDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8gICAgIG1hcmdpbi1yaWdodDogOHB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyB3aGVyZWFzOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDA7XG4vLyAgIG1hcmdpbi1yaWdodDogOHB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIFlvdSBjYW4gYWxzbyBwYXNzIGFuIG9wdGlvbmFsIDR0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGBtZGMtcnRsYCxcbi8vIGUuZy4gYEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCwgXCIubWRjLWNvbXBvbmVudFwiKWAuXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBhbHdheXMgemVybyBvdXQgdGhlIG9yaWdpbmFsIHZhbHVlIGluIGFuIFJUTCBjb250ZXh0LlxuLy8gSWYgeW91J3JlIHRyeWluZyB0byBmbGlwIHRoZSB2YWx1ZXMsIHVzZSBgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoKWAgaW5zdGVhZC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZS1ib3goJGJhc2UtcHJvcGVydHksICRkZWZhdWx0LWRpcmVjdGlvbiwgJHZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICBAaWYgKGluZGV4KChyaWdodCwgbGVmdCksICRkZWZhdWx0LWRpcmVjdGlvbikgPT0gbnVsbCkge1xuICAgIEBlcnJvciBcIkludmFsaWQgZGVmYXVsdCBkaXJlY3Rpb246ICcjeyRkZWZhdWx0LWRpcmVjdGlvbn0nLiBQbGVhc2Ugc3BlY2lmaXkgZWl0aGVyICdyaWdodCcgb3IgJ2xlZnQnLlwiO1xuICB9XG5cbiAgJGxlZnQtdmFsdWU6ICR2YWx1ZTtcbiAgJHJpZ2h0LXZhbHVlOiAwO1xuXG4gIEBpZiAoJGRlZmF1bHQtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgJGxlZnQtdmFsdWU6IDA7XG4gICAgJHJpZ2h0LXZhbHVlOiAkdmFsdWU7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgkYmFzZS1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBhIGJhc2UgcHJvcGVydHkgYW5kIGVtaXRzIHJ1bGVzIHRoYXQgYXNzaWduIDxiYXNlLXByb3BlcnR5Pi1sZWZ0IHRvIDxsZWZ0LXZhbHVlPiBhbmRcbi8vIDxiYXNlLXByb3BlcnR5Pi1yaWdodCB0byA8cmlnaHQtdmFsdWU+IGluIGEgTFRSIGNvbnRleHQsIGFuZCB2aWNlIHZlcnNhIGluIGEgUlRMIGNvbnRleHQuXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgYXV0bywgMTJweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgIG1hcmdpbi1yaWdodDogMTJweDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgNHRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgY2FuIGJlIGdpdmVuLCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoJGJhc2UtcHJvcGVydHksICRsZWZ0LXZhbHVlLCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gICRwcm9wLWxlZnQ6ICN7JGJhc2UtcHJvcGVydHl9LWxlZnQ7XG4gICRwcm9wLXJpZ2h0OiAjeyRiYXNlLXByb3BlcnR5fS1yaWdodDtcblxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZSgkcHJvcC1sZWZ0LCAkbGVmdC12YWx1ZSwgJHByb3AtcmlnaHQsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgaG9yaXpvbnRhbCBwb3NpdGlvbiBwcm9wZXJ0eSAoZWl0aGVyIFwibGVmdFwiIG9yIFwicmlnaHRcIikgYXMgd2VsbFxuLy8gYXMgYSB2YWx1ZSwgYW5kIGFwcGxpZXMgdGhhdCB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIGEgTFRSIGNvbnRleHQsIGFuZCBmbGlwcyBpdCBpbiBhXG4vLyBSVEwgY29udGV4dC4gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAwKTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBsZWZ0OiAwO1xuLy8gICByaWdodDogaW5pdGlhbDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIGxlZnQ6IGluaXRpYWw7XG4vLyAgICAgcmlnaHQ6IDA7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIHRoaXJkICRyb290LXNlbGVjdG9yIGFyZ3VtZW50IG1heSBhbHNvIGJlIGdpdmVuLCB3aGljaCBpcyBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKCRwb3NpdGlvbi1wcm9wZXJ0eSwgJHZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICBAaWYgKGluZGV4KChyaWdodCwgbGVmdCksICRwb3NpdGlvbi1wcm9wZXJ0eSkgPT0gbnVsbCkge1xuICAgIEBlcnJvciBcIkludmFsaWQgcG9zaXRpb24gI3twb3NpdGlvbi1wcm9wZXJ0eX0uIFBsZWFzZSBzcGVjaWZpeSBlaXRoZXIgcmlnaHQgb3IgbGVmdFwiO1xuICB9XG5cbiAgLy8gVE9ETzogXCJpbml0aWFsXCIgaXMgbm90IHN1cHBvcnRlZCBpbiBJRSAxMS4gaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtaW5pdGlhbC12YWx1ZVxuICAkbGVmdC12YWx1ZTogJHZhbHVlO1xuICAkcmlnaHQtdmFsdWU6IGluaXRpYWw7XG5cbiAgQGlmICgkcG9zaXRpb24tcHJvcGVydHkgPT0gcmlnaHQpIHtcbiAgICAkcmlnaHQtdmFsdWU6ICR2YWx1ZTtcbiAgICAkbGVmdC12YWx1ZTogaW5pdGlhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsICRsZWZ0LXZhbHVlLCByaWdodCwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIHBhaXIgb2YgcHJvcGVydGllcyB3aXRoIHZhbHVlcyBhcyBhcmd1bWVudHMgYW5kIGZsaXBzIGl0IGluIFJUTCBjb250ZXh0LlxuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShsZWZ0LCAycHgsIHJpZ2h0LCA1cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIGxlZnQ6IDJweDtcbi8vICAgcmlnaHQ6IDVweDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIHJpZ2h0OiAycHg7XG4vLyAgICAgbGVmdDogNXB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCBmaWZ0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IG1heSBhbHNvIGJlIGdpdmVuLCB3aGljaCBpcyBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlKFxuICAkbGVmdC1wcm9wZXJ0eSxcbiAgJGxlZnQtdmFsdWUsXG4gICRyaWdodC1wcm9wZXJ0eSxcbiAgJHJpZ2h0LXZhbHVlLFxuICAkcm9vdC1zZWxlY3RvcjogbnVsbFxuKSB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcHJvcGVydHlfKCRsZWZ0LXByb3BlcnR5LCAkbGVmdC12YWx1ZSk7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcHJvcGVydHlfKCRyaWdodC1wcm9wZXJ0eSwgJHJpZ2h0LXZhbHVlKTtcblxuICBAaW5jbHVkZSBtZGMtcnRsKCRyb290LXNlbGVjdG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1wcm9wZXJ0eV8oJGxlZnQtcHJvcGVydHksICRyaWdodC12YWx1ZSk7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1wcm9wZXJ0eV8oJHJpZ2h0LXByb3BlcnR5LCAkbGVmdC12YWx1ZSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQWRkcyBgQG5vZmxpcGAgYW5ub3RhdGlvbiB3aGVuIGAkbWRjLXJ0bC1pbmNsdWRlYCBpcyB0cnVlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIG1kYy1ydGwtcHJvcGVydHlfKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBpZiAkbWRjLXJ0bC1pbmNsdWRlIHtcbiAgICAvKiBAbm9mbGlwICovXG4gIH1cblxuICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1lbGV2YXRpb24tY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBmb3IgJHotdmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC5tZGMtZWxldmF0aW9uLS16I3skei12YWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigkei12YWx1ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZWxldmF0aW9uLXRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lsbC1jaGFuZ2U6ICRtZGMtZWxldmF0aW9uLXByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IENTUyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHotdmFsdWUuXG4vLyBUaGUgJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LlxuLy8gSWYgJGNvbG9yIGhhcyBhbiBhbHBoYSBjaGFubmVsLCBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kIG92ZXJyaWRkZW4uIFRvIGluY3JlYXNlIHRoZSBvcGFjaXR5IG9mIHRoZSBzaGFkb3csIHVzZVxuLy8gJG9wYWNpdHktYm9vc3QuXG5AbWl4aW4gbWRjLWVsZXZhdGlvbigkei12YWx1ZSwgJGNvbG9yOiAkbWRjLWVsZXZhdGlvbi1iYXNlbGluZS1jb2xvciwgJG9wYWNpdHktYm9vc3Q6IDAsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGlmIHR5cGUtb2YoJHotdmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHotdmFsdWUpIHtcbiAgICBAZXJyb3IgXCIkei12YWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyLCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgQGlmICR6LXZhbHVlIDwgMCBvciAkei12YWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgXCIkei12YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQsIGJ1dCByZWNlaXZlZCAnI3skei12YWx1ZX0nXCI7XG4gIH1cblxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAkY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcik7XG5cbiAgJHVtYnJhLXotdmFsdWU6IG1hcC1nZXQoJG1kYy1lbGV2YXRpb24tdW1icmEtbWFwLCAkei12YWx1ZSk7XG4gICRwZW51bWJyYS16LXZhbHVlOiBtYXAtZ2V0KCRtZGMtZWxldmF0aW9uLXBlbnVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkYW1iaWVudC16LXZhbHVlOiBtYXAtZ2V0KCRtZGMtZWxldmF0aW9uLWFtYmllbnQtbWFwLCAkei12YWx1ZSk7XG5cbiAgJHVtYnJhLWNvbG9yOiByZ2JhKCRjb2xvciwgJG1kYy1lbGV2YXRpb24tdW1icmEtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcbiAgJHBlbnVtYnJhLWNvbG9yOiByZ2JhKCRjb2xvciwgJG1kYy1lbGV2YXRpb24tcGVudW1icmEtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcbiAgJGFtYmllbnQtY29sb3I6IHJnYmEoJGNvbG9yLCAkbWRjLWVsZXZhdGlvbi1hbWJpZW50LW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAje1wiI3skdW1icmEtei12YWx1ZX0gI3skdW1icmEtY29sb3J9XCJ9LFxuICAgICAgI3tcIiN7JHBlbnVtYnJhLXotdmFsdWV9ICN7JHBlbnVtYnJhLWNvbG9yfVwifSxcbiAgICAgICN7JGFtYmllbnQtei12YWx1ZX0gJGFtYmllbnQtY29sb3I7XG4gIH1cbn1cblxuLy8gUmV0dXJucyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGFzIHRoZSB2YWx1ZSBmb3IgYSBgdHJhbnNpdGlvbmAgcHJvcGVydHkgZm9yIGVsZXZhdGlvbi5cbi8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSBpcyB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIGNvbXBvbmVudCBuZWVkcyB0byB0cmFuc2l0aW9uXG4vLyBtb3JlIHRoYW4gb25lIHByb3BlcnR5LlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5mb28ge1xuLy8gICB0cmFuc2l0aW9uOiBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoKSwgb3BhY2l0eSAxMDBtcyBlYXNlO1xuLy8gICB3aWxsLWNoYW5nZTogJG1kYy1lbGV2YXRpb24tcHJvcGVydHksIG9wYWNpdHk7XG4vLyB9XG4vLyBgYGBcbkBmdW5jdGlvbiBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoXG4gICRkdXJhdGlvbjogJG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGVhc2luZzogJG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cbikge1xuICBAcmV0dXJuICN7JG1kYy1lbGV2YXRpb24tcHJvcGVydHl9ICN7JGR1cmF0aW9ufSAjeyRlYXNpbmd9O1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIE1EQyBSaXBwbGUga2V5ZnJhbWVzIGFyZSBzcGxpdCBpbnRvIHRoZWlyIG93biBmaWxlIHNvIHRoYXQgX21peGlucy5zY3NzIGNhbiByZWx5IG9uIHRoZW0uXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtcmlwcGxlLWtleWZyYW1lc18ge1xuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIC8vIE5PVEU6IEZvciB0aGVzZSBrZXlmcmFtZXMsIHdlIGRvIG5vdCBuZWVkIGN1c3RvbSBwcm9wZXJ0eSBmYWxsYmFja3MgYmVjYXVzZSB0aGV5IGFyZSBvbmx5XG4gICAgICAvLyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYC5tZGMtcmlwcGxlLXVwZ3JhZGVkYC4gU2luY2UgTURDUmlwcGxlRm91bmRhdGlvbiBjaGVja3MgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IGN1c3RvbSBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQgd2l0aGluIHRoZSBicm93c2VyIGJlZm9yZSBhZGRpbmcgdGhpcyBjbGFzcywgd2UgY2FuXG4gICAgICAvLyBzYWZlbHkgdXNlIHRoZW0gd2l0aG91dCBhIGZhbGxiYWNrLlxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQsIDApKSBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4ge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4va2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yaXBwbGUtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSByaXBwbGUtc3VyZmFjZVxuXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgJi0tYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdHlsZXMgbmVlZGVkIGJ5IGFueSBjb21wb25lbnQgdXNpbmcgTURDIFJpcHBsZSBhcmUgZW1pdHRlZCwgYnV0IG9ubHkgb25jZS5cbiAgLy8gKEV2ZXJ5IGNvbXBvbmVudCB1c2luZyBNREMgUmlwcGxlIGltcG9ydHMgdGhlc2UgbWl4aW5zLCBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBpbXBvcnRcbiAgLy8gbWRjLXJpcHBsZS5zY3NzLilcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vbi9hbmltYXRpb25cIikge1xuICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1rZXlmcmFtZXNfO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLXJpcHBsZS9jb21tb24vc3RydWN0dXJlXCIpIHtcbiAgICAgIC8vIFN0eWxlcyB1c2VkIHRvIGRldGVjdCBidWdneSBiZWhhdmlvciBvZiBDU1MgY3VzdG9tIHByb3BlcnRpZXMgaW4gRWRnZS5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTE0OTU0NDgvXG4gICAgICAvLyBUaGlzIGlzIGluY2x1ZGVkIGluIF9taXhpbnMuc2NzcyByYXRoZXIgdGhhbiBtZGMtcmlwcGxlLnNjc3Mgc28gdGhhdCBpdCB3aWxsIGJlXG4gICAgICAvLyBwcmVzZW50IGZvciBvdGhlciBjb21wb25lbnRzIHdoaWNoIHJlbHkgb24gcmlwcGxlIGFzIHdlbGwgYXMgbWRjLXJpcHBsZSBpdHNlbGYuXG4gICAgICAubWRjLXJpcHBsZS1zdXJmYWNlLS10ZXN0LWVkZ2UtdmFyLWJ1ZyB7XG4gICAgICAgIC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXI6IDFweCBzb2xpZCAjMDAwO1xuXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlcjogdmFyKC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIC8vICEhRE8gTk9UIFJFTU9WRSEhIG1kYy1yaXBwbGUtd2lsbC1jaGFuZ2UtcmVwbGFjZXJcbiAgfVxuXG4gICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUsXG4gICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIC8vIEFsc28gdHJhbnNpdGlvbiBiYWNrZ3JvdW5kLWNvbG9yIHRvIGF2b2lkIHVubmF0dXJhbCBjb2xvciBmbGFzaGVzIHdoZW4gdG9nZ2xpbmcgYWN0aXZhdGVkL3NlbGVjdGVkIHN0YXRlXG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICBvcGFjaXR5ICRtZGMtc3RhdGVzLXdhc2gtZHVyYXRpb24gbGluZWFyLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRtZGMtc3RhdGVzLXdhc2gtZHVyYXRpb24gbGluZWFyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB6LWluZGV4OiAxOyAvLyBFbnN1cmUgdGhhdCB0aGUgcmlwcGxlIHdhc2ggZm9yIGhvdmVyL2ZvY3VzIHN0YXRlcyBpcyBkaXNwbGF5ZWQgb24gdG9wIG9mIHBvc2l0aW9uZWQgY2hpbGQgZWxlbWVudHNcbiAgICB9XG4gIH1cblxuICAvLyBDb21tb24gc3R5bGVzIGZvciB1cGdyYWRlZCBzdXJmYWNlcyAoc29tZSBvZiB0aGVzZSBkZXBlbmQgb24gY3VzdG9tIHByb3BlcnRpZXMgc2V0IHZpYSBKUyBvciBvdGhlciBtaXhpbnMpXG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZCB7XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb24ge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICBhbmltYXRpb246XG4gICAgICAgICAgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gJG1kYy1yaXBwbGUtdHJhbnNsYXRlLWR1cmF0aW9uIGZvcndhcmRzLFxuICAgICAgICAgIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiAkbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uIGZvcndhcmRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb24ge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgJG1kYy1yaXBwbGUtZmFkZS1vdXQtZHVyYXRpb247XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8vIFJldGFpbiB0cmFuc2Zvcm0gZnJvbSBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiBhY3RpdmF0aW9uXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcihcbiAgJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaWYgYWxwaGEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSkgPiAwIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yLCAkZWRnZU9wdE91dDogdHJ1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgYSBjb2xvciB3aXRoIDAgYWxwaGEgaXMgc3BlY2lmaWVkLCBkb24ndCByZW5kZXIgdGhlIHJpcHBsZSBwc2V1ZG8tZWxlbWVudHMgYXQgYWxsLlxuICAgICAgICAvLyBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSB0cmFuc2l0aW9ucyBhbmQgb3ZlcmZsb3cuXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgcmlwcGxlIG9wYWNpdGllcyBpbiBgaG92ZXJgLCBgZm9jdXNgLCBvciBgcHJlc3NgIHN0YXRlc1xuLy8vIEBwYXJhbSB7bWFwfSAkb3BhY2l0eS1tYXAgLSBtYXAgc3BlY2lmeWluZyBjdXN0b20gb3BhY2l0eSBvZiB6ZXJvIG9yIG1vcmUgc3RhdGVzXG4vLy8gQHBhcmFtIHtib29sfSAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCAtIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBjb250YWlucyBhIGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSByb290XG4vLy9cbkBtaXhpbiBtZGMtc3RhdGVzLW9wYWNpdGllcygkb3BhY2l0eS1tYXA6ICgpLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gRW5zdXJlIHN1ZmZpY2llbnQgc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgYmFzZSBzdGF0ZSBvcGFjaXRpZXNcbiAgQGlmIG1hcC1oYXMta2V5KCRvcGFjaXR5LW1hcCwgaG92ZXIpIHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkobWFwLWdldCgkb3BhY2l0eS1tYXAsIGhvdmVyKSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRvcGFjaXR5LW1hcCwgZm9jdXMpIHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkobWFwLWdldCgkb3BhY2l0eS1tYXAsIGZvY3VzKSwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpZiBtYXAtaGFzLWtleSgkb3BhY2l0eS1tYXAsIHByZXNzKSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KG1hcC1nZXQoJG9wYWNpdHktbWFwLCBwcmVzcyksICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KFxuICAkb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIEJhY2tncm91bmQgd2FzaCBzdHlsZXMsIGZvciBib3RoIENTUy1vbmx5IGFuZCB1cGdyYWRlZCBzdGF0ZWZ1bCBzdXJmYWNlc1xuICAmOmhvdmVyIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkoXG4gICRvcGFjaXR5LFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCksXG4gICRyaXBwbGUtdGFyZ2V0OiBcIiZcIikge1xuXG4gIC8vIEZvY3VzIG92ZXJyaWRlcyBob3ZlciBieSByZXVzaW5nIHRoZSA6OmJlZm9yZSBwc2V1ZG8tZWxlbWVudC5cbiAgLy8gOmZvY3VzLXdpdGhpbiBnZW5lcmFsbHkgd29ya3Mgb24gbm9uLU1TIGJyb3dzZXJzIGFuZCBtYXRjaGVzIHdoZW4gYSAqY2hpbGQqIG9mIHRoZSBlbGVtZW50IGhhcyBmb2N1cy5cbiAgLy8gSXQgaXMgdXNlZnVsIGZvciBjYXNlcyB3aGVyZSBhIGNvbXBvbmVudCBoYXMgYSBmb2N1c2FibGUgZWxlbWVudCB3aXRoaW4gdGhlIHJvb3Qgbm9kZSwgZS5nLiB0ZXh0IGZpZWxkLFxuICAvLyBidXQgdW5kZXNpcmFibGUgaW4gZ2VuZXJhbCBpbiBjYXNlIG9mIG5lc3RlZCBzdGF0ZWZ1bCBjb21wb25lbnRzLlxuICAvLyBXZSB1c2UgYSBtb2RpZmllciBjbGFzcyBmb3IgSlMtZW5hYmxlZCBzdXJmYWNlcyB0byBzdXBwb3J0IGFsbCB1c2UgY2FzZXMgaW4gYWxsIGJyb3dzZXJzLlxuICBAaWYgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQge1xuICAgIC8vIEpTLWVuYWJsZWQgc2VsZWN0b3JzLlxuICAgICYubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLFxuICAgICYubWRjLXJpcHBsZS11cGdyYWRlZDpmb2N1cy13aXRoaW4sXG4gICAgLy8gQ1NTLW9ubHkgc2VsZWN0b3JzLlxuICAgICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyxcbiAgICAmOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMtd2l0aGluIHtcbiAgICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHktcHJvcGVydGllc18oXG4gICAgICAgICAgJG9wYWNpdHk6ICRvcGFjaXR5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBKUy1lbmFibGVkIHNlbGVjdG9ycy5cbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCxcbiAgICAvLyBDU1Mtb25seSBzZWxlY3RvcnMuXG4gICAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIHtcbiAgICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHktcHJvcGVydGllc18oXG4gICAgICAgICAgJG9wYWNpdHk6ICRvcGFjaXR5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHktcHJvcGVydGllc18oJG9wYWNpdHksICRxdWVyeSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIGR1cmF0aW9uIGlzIG9ubHkgZWZmZWN0aXZlIG9uIGZvY3VzLCBub3QgYmx1clxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIFN0eWxlcyBmb3Igbm9uLXVwZ3JhZGVkIChDU1Mtb25seSkgc3RhdGVmdWwgc3VyZmFjZXNcblxuICAmOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkge1xuICAgIC8vIEFwcGx5IHByZXNzIGFkZGl0aXZlbHkgYnkgdXNpbmcgdGhlIDo6YWZ0ZXIgcHNldWRvLWVsZW1lbnRcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3BhY2l0eSBmYWxscyB1bmRlciBjb2xvciBiZWNhdXNlIHRoZSBjaG9zZW4gb3BhY2l0eSBpcyBjb2xvci1kZXBlbmRlbnQgaW4gdHlwaWNhbCB1c2FnZVxuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAjeyRvcGFjaXR5fTtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBiYXNlIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMoXG4gICRjb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiLFxuKSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgICAkY29sb3I6ICRjb2xvcixcbiAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBhY3RpdmF0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcy1hY3RpdmF0ZWQoXG4gICRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRhY3RpdmF0ZWQtb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgYWN0aXZhdGVkKTtcblxuICAmLS1hY3RpdmF0ZWQge1xuICAgIC8vIFN0eWxlbGludCBzZWVtcyB0byB0aGluayB0aGF0ICcmJyBxdWFsaWZpZXMgYXMgYSB0eXBlIHNlbGVjdG9yIGhlcmU/XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJGFjdGl2YXRlZC1vcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgICAgICRjb2xvcjogJGNvbG9yLFxuICAgICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6ICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgICAgJG9wYWNpdHktbW9kaWZpZXI6ICRhY3RpdmF0ZWQtb3BhY2l0eSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5LFxuICAgICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIHNlbGVjdGVkIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMtc2VsZWN0ZWQoXG4gICRjb2xvcixcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpLFxuICAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRzZWxlY3RlZC1vcGFjaXR5OiBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBzZWxlY3RlZCk7XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgLy8gT3BhY2l0eSBmYWxscyB1bmRlciBjb2xvciBiZWNhdXNlIHRoZSBjaG9zZW4gb3BhY2l0eSBpcyBjb2xvci1kZXBlbmRlbnQuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRzZWxlY3RlZC1vcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgICAgICRjb2xvcjogJGNvbG9yLFxuICAgICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6ICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgICAgJG9wYWNpdHktbW9kaWZpZXI6ICRzZWxlY3RlZC1vcGFjaXR5LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgICAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKFxuICAkcmFkaXVzOiAxMDAlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUsXG4gICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgdG9wOiBjYWxjKDUwJSAtICN7JHJhZGl1c30pO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRyYWRpdXN9KTtcbiAgICAgIHdpZHRoOiAkcmFkaXVzICogMjtcbiAgICAgIGhlaWdodDogJHJhZGl1cyAqIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKFxuICAkcmFkaXVzOiAxMDAlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUsXG4gICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgdG9wOiBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pO1xuICAgICAgd2lkdGg6ICRyYWRpdXM7XG4gICAgICBoZWlnaHQ6ICRyYWRpdXM7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlLFxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAkY29sb3IsXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAkb3BhY2l0eS1tb2RpZmllcjogMCxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiLFxuKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtdGFyZ2V0LXNlbGVjdG9yKCRyaXBwbGUtdGFyZ2V0KSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eShcbiAgICAkb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgaG92ZXIpICsgJG9wYWNpdHktbW9kaWZpZXIsXG4gICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KFxuICAgICRvcGFjaXR5OiBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBmb2N1cykgKyAkb3BhY2l0eS1tb2RpZmllcixcbiAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0LFxuICApO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkoXG4gICAgJG9wYWNpdHk6IG1kYy1zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIHByZXNzKSArICRvcGFjaXR5LW1vZGlmaWVyLFxuICAgICRxdWVyeTogJHF1ZXJ5LFxuICAgICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG59XG5cbi8vIFdyYXBzIGNvbnRlbnQgaW4gdGhlIGByaXBwbGUtdGFyZ2V0YCBzZWxlY3RvciBpZiBpdCBleGlzdHMuXG5AbWl4aW4gbWRjLXJpcHBsZS10YXJnZXQtc2VsZWN0b3IoJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gIEBpZiAkcmlwcGxlLXRhcmdldCA9PSBcIiZcIiB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2Uge1xuICAgICN7JHJpcHBsZS10YXJnZXR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBDb21tb24gc3R5bGVzIGZvciBhIHJpcHBsZSB0YXJnZXQgZWxlbWVudC5cbi8vIFVzZWQgZm9yIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSBhbiBpbm5lciByaXBwbGUgdGFyZ2V0IGVsZW1lbnQuXG5AbWl4aW4gbWRjLXJpcHBsZS10YXJnZXQtY29tbW9uKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBjbGlja3Mgb24gb3RoZXIgaW5uZXIgZWxlbWVudHMgKGUuZy4gY2xvc2UgaWNvbiBpbiBjaGlwKVxuICAgIC8vIHRvIGdvIHRocm91Z2guXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9zdHlsZXMvdmFyaWFibGVzXCI7XHJcblxyXG4kYmxhY2s6IHJnYigyNiwgMjYsIDI2KSAhZGVmYXVsdDsgLy8gIzFhMWExYVxyXG4kcmVkOiByZ2IoMjA5LCA5LCAyNykgIWRlZmF1bHQ7IC8vICNkMTA5MWJcclxuJGdyYXktbGlnaHQ6IHJnYigyNDUsIDI0NSwgMjQ1KSAhZGVmYXVsdDsgLy8gI2Y1ZjVmNVxyXG5cclxuJG1kYy1idXR0b24taGVpZ2h0OiA1MHB4ICFkZWZhdWx0O1xyXG4kbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDIwcHggIWRlZmF1bHQ7XHJcbiRtZGMtYnV0dG9uLWNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmc6IDIxcHggIWRlZmF1bHQ7XHJcbiRtZGMtYnV0dG9uLW1pbmltdW0taGVpZ2h0OiA1MHB4ICFkZWZhdWx0O1xyXG5cclxuQGltcG9ydCBcIkBtYXRlcmlhbC9idXR0b24vbWRjLWJ1dHRvblwiO1xyXG5cclxuLm1kYy1idXR0b24ge1xyXG4vLyAgIGZvbnQtZmFtaWx5OiBcIlRveW90YVR5cGVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuXHJcbiAgJjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cztcclxuXHJcbiAgICAubWRjLWJ1dHRvbl9fbGFiZWwge1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDEwOTFiO1xyXG4gICAgfVxyXG5cclxuICAgICYubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgMCk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrO1xyXG5cclxuICAgICAgLm1kYy1idXR0b25fX2xhYmVsIHtcclxuICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgMSk7XHJcblxyXG4gICAgICAgIC5tZGMtYnV0dG9uX19sYWJlbCB7XHJcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jcGwtbGluay1leHRlcm5hbCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTAuMWVtO1xyXG4gICAgICB6LWluZGV4OiAyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgY29sb3I6ICRibGFjaztcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cywgb3BhY2l0eSAwLjI1cztcclxuICAgIG1hcmdpbi10b3A6IC0wLjFlbTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgfVxyXG5cclxuICBwICYge1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1idXR0b25fX3JpcHBsZSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG5cclxuICAgICY6YmVmb3JlLFxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */
