.wrapper{padding:0 1.2rem}@media (min-width:37.5em){.wrapper{padding:0 2.4rem}}@media (min-width:64em){.wrapper{max-width:102.4rem;margin:0 auto;position:relative;z-index:2}}@media (min-width:37.5em){.l{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;margin-left:-1.2rem;margin-right:-1.2rem}.l>[class*=l__]{padding-left:1.2rem;padding-right:1.2rem}}@media (min-width:37.5em){.l__lap-1of1{width:100%}}@media (min-width:37.5em){.l__lap-1of2{width:48.71795%}}@media (min-width:64em){.l__desk-1of2{width:49.15254%}}@media (min-width:64em){.l__desk-1of4{width:23.72881%}}@media (min-width:64em){.l__desk-2of5{width:37.5%}}@media (min-width:64em){.l__desk-3of5{width:58.33333%}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.s{overflow:hidden}.s--circular{position:relative;width:50%;height:0;border:.1rem solid #f0ecec;border-radius:50%;padding-bottom:49%;box-shadow:0 2px 3px rgba(51,41,41,.2);background:#fff}@media (min-width:30em){.s--circular{padding-bottom:30%;width:30%}}@media (min-width:37.5em){.s--circular{padding-bottom:50%;width:50%}}.s__img{max-width:none}.media{margin:0}.media .media__bd{overflow:hidden;_overflow:visible;zoom:1}.media .media__img{float:left;margin-right:1.2rem}.media .media__img img{display:block}.media .media__img--rev{float:right;margin-left:1.2rem}.how,.jobs,.service,.tp,.tz,.who{border-top:0 dotted #ede7de;border-top-width:.2rem;padding-top:4.8rem}img{max-width:100%}picture img{max-width:none}.img__caption{font-size:1.275rem;line-height:1.5;text-align:center}blockquote{font-style:italic;font-size:1.7rem;line-height:1.5}blockquote p:last-child{margin-bottom:0}.blockquote--shifted{margin:0;margin-left:2.4rem}@media (min-width:37.5em){.blockquote--shifted{margin-left:3.2rem}}.blockquote--shifted blockquote{position:relative;margin-bottom:1.2rem}.blockquote--shifted blockquote:before{content:"\201C";font-size:3.74rem;position:absolute;display:block;left:-2.6rem;top:-1.5rem}@media (min-width:37.5em){.blockquote--shifted blockquote:before{font-size:5.1rem;left:-3.4rem;top:-2.4rem}}@media (min-width:37.5em){.blockquote--bubble{margin-bottom:4.8rem}}.blockquote--bubble blockquote{position:relative;padding:1.7rem;margin:0 0 2.4rem;background:#ede7de;box-shadow:0 2px 3px rgba(51,41,41,.2);border-radius:.2rem}.blockquote--has-source blockquote{position:relative;filter:saturate(.7) brightness(1.04)}.blockquote--has-source blockquote:after{content:"";top:100%;height:0;width:0;position:absolute;pointer-events:none;left:20%;border:1rem solid;border-color:transparent transparent #ede7de #ede7de;transform-origin:0 0;transform:rotate(-45deg);box-shadow:-2px 2px 3px rgba(51,41,41,.2)}.blockquote--has-source figcaption{text-align:left;padding:0 2.4rem}figcaption small{color:#806565;display:block}#commentform button[type=submit],.btn,.btn-dropdown .btn-dropdown__toggle,.btn-group .btn-group__btn,.form button[type=submit],.wpcf7 button[type=submit]{display:inline-block;border-color:transparent;outline:none;vertical-align:baseline;border:0 solid #246eb2;border-width:.1rem;border-radius:.6rem;background:#246eb2;background-image:linear-gradient(180deg,#246eb2,#246eb2);text-align:center;color:#fff;font-family:heading,Helvetica Neue,Arial,sans-serif;font-weight:400;font-size:1.7rem;text-transform:uppercase;transition:all .1s;cursor:pointer}#commentform button[type=submit]:hover,.btn-dropdown .btn-dropdown__toggle:hover,.btn-group .btn-group__btn:hover,.btn:hover,.form button[type=submit]:hover,.wpcf7 button[type=submit]:hover{background-image:linear-gradient(180deg,#287bc7,#20619d);box-shadow:0 1px 1px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.2);color:#fff}#commentform button[type=submit]:active,#commentform button[type=submit]:focus,.btn-dropdown .btn-dropdown__toggle:active,.btn-dropdown .btn-dropdown__toggle:focus,.btn-group .btn-group__btn:active,.btn-group .btn-group__btn:focus,.btn:active,.btn:focus,.form button[type=submit]:active,.form button[type=submit]:focus,.wpcf7 button[type=submit]:active,.wpcf7 button[type=submit]:focus{background-image:linear-gradient(180deg,#246eb2,#246eb2);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn--with-icon [class*=icon-]{margin-right:.6rem;font-size:1.7rem}.btn--large{padding:2.9rem 2.4rem;font-size:1.2rem}.btn--huge{padding:8.9rem 4.8rem;font-size:1.6rem;line-height:9rem}.btn--right-aligned{margin-right:0}.btn--primary{border-color:#b63434;background:#cc3d3d;background-image:linear-gradient(180deg,#cc3d3d,#c63434);color:#fff}.btn--primary:hover{background-image:linear-gradient(180deg,#ce4545,#be3232);box-shadow:0 1px 3px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2);text-shadow:0 1px 1px rgba(0,0,0,.3);color:#fff}.btn--primary:active{background-image:linear-gradient(180deg,#c63434,#cc3d3d);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn--success{border-color:#b3d844;background:#bfe05a;background-image:linear-gradient(180deg,#bfe05a,#bade4d);color:#332929}.btn--success:hover{background-image:linear-gradient(180deg,#c2e263,#b7dc45);box-shadow:0 1px 3px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2);text-shadow:0 1px 1px hsla(0,0%,100%,.5);color:#332929}.btn--success:active{background-image:linear-gradient(180deg,#bade4d,#bfe05a);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}#commentform button[type=submit]:disabled,.btn--disabled,.form button[type=submit]:disabled,.wpcf7 button[type=submit]:disabled{background:#fff;border-color:#f7f5f5;box-shadow:none;color:#cec0c0;text-shadow:none}#commentform button[type=submit]:active:disabled,#commentform button[type=submit]:hover:disabled,.btn--disabled:active,.btn--disabled:hover,.form button[type=submit]:active:disabled,.form button[type=submit]:hover:disabled,.wpcf7 button[type=submit]:active:disabled,.wpcf7 button[type=submit]:hover:disabled{background:#fff;box-shadow:none;color:#cec0c0;text-shadow:none;cursor:not-allowed}.btn-group .btn-group__btn{border-radius:0;margin-right:0;float:left}.btn-group .btn-group__btn:first-child{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem;border-right-width:0}.btn-group .btn-group__btn:last-child{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem;margin-right:1.2rem;border-left-width:0}.btn-dropdown{position:relative;display:inline-block}.btn-dropdown .btn-dropdown__menu{display:none;position:absolute;top:100%;left:0;z-index:1000;margin-top:-2.4rem;padding:2.9rem 0;border:0 solid #f0ecec;border-width:.1rem;background:#fff;vertical-align:baseline;box-shadow:1px 2px 1px rgba(0,0,0,.1);list-style:none}.btn-dropdown .btn-dropdown__menu a{display:block;cursor:pointer;padding:0 1.2rem}.open>.btn-dropdown__menu{display:block}@keyframes ($spinner-rotate-right){0%{transform:rotate(0deg)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(1turn)}to{transform:rotate(1turn)}}@keyframes ($spinner-rotate-left){0%{transform:rotate(0deg)}25%{transform:rotate(0deg)}50%{transform:rotate(180deg)}75%{transform:rotate(180deg)}to{transform:rotate(1turn)}}.spinner{position:relative;border-radius:100%;width:2.4rem;height:2.4rem;background:#fff;margin-bottom:2.4rem}.spinner .spinner__side{width:50%;height:100%;overflow:hidden;position:absolute}.spinner .spinner__side .spinner__fill{border-radius:999px;position:absolute;width:100%;height:100%;background:#246eb2;opacity:.8;animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:3s;will-change:transform}.spinner .spinner__side.spinner--left{left:0}.spinner .spinner__side.spinner--left .spinner__fill{left:100%;border-top-left-radius:0;border-bottom-left-radius:0;animation-name:spinner-rotate-left;transform-origin:0 50%;will-change:transform}.spinner .spinner__side.spinner--right{left:50%}.spinner .spinner__side.spinner--right .spinner__fill{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;animation-name:spinner-rotate-right;transform-origin:100% 50%;will-change:transform}.spinner:after{content:"";background:transparent;position:absolute;width:1px;height:1px;border-radius:50%;top:0;left:0;display:block}.spinner--has-hole .spinner{position:relative;border-radius:100%;width:2.4rem;height:2.4rem;background:#fff;margin-bottom:2.4rem}.spinner--has-hole .spinner .spinner__side{width:50%;height:100%;overflow:hidden;position:absolute}.spinner--has-hole .spinner .spinner__side .spinner__fill{border-radius:999px;position:absolute;width:100%;height:100%;background:#246eb2;opacity:.8;animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:3s;will-change:transform}.spinner--has-hole .spinner .spinner__side.spinner--left{left:0}.spinner--has-hole .spinner .spinner__side.spinner--left .spinner__fill{left:100%;border-top-left-radius:0;border-bottom-left-radius:0;animation-name:spinner-rotate-left;transform-origin:0 50%;will-change:transform}.spinner--has-hole .spinner .spinner__side.spinner--right{left:50%}.spinner--has-hole .spinner .spinner__side.spinner--right .spinner__fill{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;animation-name:spinner-rotate-right;transform-origin:100% 50%;will-change:transform}.spinner--has-hole .spinner:after{content:"";background:#fff;position:absolute;width:1px;height:1px;border-radius:50%;top:0;left:0;display:block}a.top{width:4.2rem;height:4.2rem;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;cursor:pointer;font-size:2rem;color:#fff;text-align:center;background:#246eb2;border-radius:50%;transition:opacity .3s;margin:2.4rem auto 0;opacity:.1}@media (min-width:37.5em){a.top{display:none}}a.top .icon{margin-top:-.3rem}a.top:active,a.top:hover{opacity:.25}.grid{margin-left:1.2rem;margin-right:1.2rem}@media (min-width:37.5em){.grid{margin-left:0;margin-right:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}@supports ((display:-ms-grid) or (display:grid)){.grid{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;grid-gap:2.4rem}}}@media (min-width:64em){.grid{-ms-grid-columns:(1fr)[3];grid-template-columns:repeat(3,1fr)}}.grid__item{box-shadow:0 2px 3px rgba(51,41,41,.2);border-radius:.2rem;border:.1rem solid #f0ecec;background:#fff;position:relative;margin-bottom:2.4rem}@media (min-width:37.5em){.grid__item{width:calc(50% - 1.2rem);margin-right:2.4rem}.grid__item:nth-child(2n){margin-right:0}}@media (min-width:64em){.grid__item{width:calc(33.33333% - 1.6rem)}.grid__item:nth-child(2n){margin-right:2.4rem}.grid__item:nth-child(3n){margin-right:0}}@supports ((display:-ms-grid) or (display:grid)){@media (min-width:37.5em){.grid__item{width:100%;margin-right:0;margin-bottom:0}}}.grid__item:before{content:"";display:block;position:absolute;top:0;left:0;width:100%;height:12rem;background-color:hsla(36,29%,90%,.25);mix-blend-mode:multiply}.grid__item-img{width:100%;display:block;max-height:12rem;object-fit:cover}.wfm .grid__item-img{object-position:top}.siemens .grid__item-img{object-position:100% 85%}.grid__item-caption{box-shadow:inset 0 15px 15px -20px rgba(51,41,41,.5);padding:2.4rem 1.2rem}@media (min-width:37.5em){.grid__item-caption{padding:2.4rem}}.grid__item-caption__title{text-align:left;margin-bottom:1.2rem}@media (min-width:37.5em){.grid__item-caption__title{margin-bottom:2.4rem}}.grid__item-caption__body{display:none}@media (min-width:37.5em){.grid__item-caption__logo{margin-bottom:1.8rem;width:50%}.tfc .grid__item-caption__logo,.wfm .grid__item-caption__logo{width:15%}.academics .grid__item-caption__logo{width:60%}}.grid__item-caption__logo img{width:100%}@media (min-width:37.5em){.grid__item-caption__testimonial .media__img{width:30%;padding-bottom:30%}.grid__item-caption__testimonial .media__img img{max-width:105%}}@media (min-width:64em){.grid__item-caption__testimonial .media__img{width:40%;padding-bottom:40%}}#commentform,.form,.wpcf7{padding:1.2rem 1.2rem 2.4rem;background:#fff;border:.1rem solid #f0ecec;border-radius:.2rem;box-shadow:0 2px 3px rgba(51,41,41,.2)}#commentform label,.form label,.wpcf7 label{font-family:heading,Helvetica Neue,Arial,sans-serif;font-weight:700;letter-spacing:.03rem;margin-bottom:1.2rem;display:block}#commentform input[type=email],#commentform input[type=text],#commentform textarea,.form input[type=email],.form input[type=text],.form textarea,.wpcf7 input[type=email],.wpcf7 input[type=text],.wpcf7 textarea{-webkit-appearance:none;border-radius:0;background:transparent;outline:none;display:block;width:100%;max-width:100%;margin:0 0 .6rem;padding:0;border:0 none;border-bottom:0 solid #ede7de;border-bottom-width:.1rem;font-family:copy,Arial,serif;color:#332929;font-size:1.7rem;line-height:3rem}#commentform textarea,.form textarea,.wpcf7 textarea{border:0 none;background:url(../_images/textarea_bg.png) 0 0 repeat transparent;line-height:3.6rem;resize:none}#commentform button[type=submit],.form button[type=submit],.wpcf7 button[type=submit]{display:block;height:4.8rem;margin:0 auto;width:100%;max-width:50rem}#commentform .screen-reader-response,.form .screen-reader-response,.wpcf7 .screen-reader-response{display:none}#commentform .wpcf7-form-control-wrap,.form .wpcf7-form-control-wrap,.wpcf7 .wpcf7-form-control-wrap{position:relative;display:block!important}#commentform .wpcf7-not-valid-tip,.form .wpcf7-not-valid-tip,.wpcf7 .wpcf7-not-valid-tip{display:block;font-family:heading,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#cc3d3d;font-size:1.275rem;line-height:1.8rem;margin-bottom:2.4rem}#commentform .wpcf7-not-valid-tip.invisible,.form .wpcf7-not-valid-tip.invisible,.wpcf7 .wpcf7-not-valid-tip.invisible{margin-bottom:1.8rem}#commentform__status,.form__status,.wpcf7__status{margin:2.4rem 0 0}#commentform .error,#commentform .wpcf7-response-output,.form .error,.form .wpcf7-response-output,.wpcf7 .error,.wpcf7 .wpcf7-response-output{color:#cc3d3d}#commentform .success,#commentform .wpcf7-mail-sent-ok,.form .success,.form .wpcf7-mail-sent-ok,.wpcf7 .success,.wpcf7 .wpcf7-mail-sent-ok{color:#82a227}#commentform .loading,.form .loading,.wpcf7 .loading{position:relative;display:inline-block}#commentform .loading.invisible,.form .loading.invisible,.wpcf7 .loading.invisible{visibility:hidden}#commentform .loading .spinner,.form .loading .spinner,.wpcf7 .loading .spinner{margin-bottom:-.8rem}#commentform label{margin:0}@media (min-width:64em){#commentform label{margin-bottom:1.2rem}}#commentform input[type=email],#commentform input[type=text],#commentform textarea{margin-bottom:2.4rem}#commentform button[type=submit]{max-width:none}.section{padding:0 0 9.6rem;background:url(../_images/separator@1x.png) 0 100% repeat-x transparent}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.section{background:url(../_images/separator@2x.png) 0 100% repeat-x transparent;background-size:.4rem 8.4rem}}@media (min-width:37.5em){.section{padding:5.4rem 0 12rem}}@media (min-width:64em){.section{position:relative;overflow:hidden}}@media (min-width:37.5em){.section__title{margin-bottom:7.2rem}}.section:last-of-type{padding-bottom:4.8rem}.privacy .section{background:none}@media (min-width:64em){.services{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/02_services/services_bg.svg) 0 100px repeat-x transparent;background-size:4px 84px,985px 433px}.no-cssanimations .services{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/02_services/services_clouds_bg@1x.png) 0 100px repeat-x,url(../_images/02_services/services_bg@1x.png) 0 100px repeat-x transparent;background-size:4px 84px,985px 433px,985px 433px}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.services{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/02_services/services_bg.svg) 0 100px repeat-x transparent;background-size:4px 84px,985px 433px}.no-cssanimations .services{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/02_services/services_clouds_bg@2x.png) 0 100px repeat-x,url(../_images/02_services/services_bg@2x.png) 0 100px repeat-x transparent;background-size:4px 84px,985px 433px,985px 433px}}.service--plain{border:0 none;padding:0}@media (min-width:37.5em){.service{padding:0;border:0 none;margin-bottom:4.8rem}}.service__img{display:block}.service__img img{width:100%}.service .s--circular{margin:0 auto 3rem}@media (min-width:64em){.service .s--circular{position:static;background:none;height:auto;padding-bottom:0;border:none;box-shadow:none;margin-top:9.6rem;width:100%}}.s__img--design,.s__img--develop,.s__img--grow,.s__img--understand{width:400%;max-width:400%}.s__img--design,.s__img--develop,.s__img--grow{margin-top:10%}@media (min-width:64em){.s__img--design,.s__img--develop,.s__img--grow{margin-top:0}}.s__img--design{margin-left:-90%}@media (min-width:64em){.s__img--design{margin-left:-100%}}.s__img--develop{margin-left:-190%}@media (min-width:64em){.s__img--develop{margin-left:-200%}}.s__img--grow{margin-left:-290%}@media (min-width:64em){.s__img--grow{margin-left:-300%}}.tool{display:-ms-flexbox;display:flex;padding-top:1.2rem}@media (min-width:37.5em){.tool{border-top:0 dotted #ede7de;border-top-width:.2rem;padding:2.2rem 0 2.4rem}}.tool:first-child{padding-top:0}@media (min-width:37.5em){.tool:first-child{border:0 none}}.tool__img{font-size:3.4rem;line-height:1;width:15.25424%;display:block}@media (min-width:37.5em){.tool__img{width:6.77966%}}@media (min-width:64em){.tool__img{font-size:4.25rem}}.tool__desc{width:83.05085%;margin-bottom:0}@media (min-width:37.5em){.tool__desc{padding-left:5.26316%;width:91.52542%}}.work{overflow-x:hidden}@media (min-width:64em){.work{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/03_work/work_bg@1x.png) 0 190px repeat-x transparent}.no-cssanimations .work{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/03_work/work_plane_bg@1x.png) 2% 560px no-repeat,url(../_images/03_work/work_bg@1x.png) 0 190px repeat-x transparent;background-size:4px 84px,117px 62px,1440px 675px}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.work{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/03_work/work_bg@2x.png) 0 190px repeat-x transparent;background-size:4px 84px,1440px 675px}.no-cssanimations .work{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/03_work/work_plane_bg@2x.png) 2% 560px no-repeat,url(../_images/03_work/work_bg@2x.png) 0 190px repeat-x transparent;background-size:4px 84px,117px 62px,1440px 675px}}.work h2{text-align:center}.s__img--logo{position:relative;width:1800%;max-width:1800%}.s--references{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;margin-left:1.2rem;margin-right:1.2rem;margin-bottom:0}@supports ((display:-ms-grid) or (display:grid)){.s--references{display:-ms-grid;display:grid;-ms-grid-columns:(minmax(130px,1fr))[auto-fit];grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.s--references.cf:after,.s--references.cf:before{display:none}}@media (min-width:37.5em){.s--references{-ms-grid-columns:(1fr)[3];grid-template-columns:repeat(3,1fr)}}@media (min-width:64em){.s--references{-ms-grid-columns:(1fr)[6];grid-template-columns:repeat(6,1fr)}}.s--references__item{width:49%}@supports ((display:-ms-grid) or (display:grid)){.s--references__item{width:100%}}@media (min-width:37.5em){.s--references__item{width:33%}@supports ((display:-ms-grid) or (display:grid)){.s--references__item{width:75%}}}@media (min-width:64em){.s--references__item{width:16%}@supports ((display:-ms-grid) or (display:grid)){.s--references__item{width:100%}}}.s--references__item:nth-child(2) .s__img--logo{left:-100%}.s--references__item:nth-child(3) .s__img--logo{left:-200%}.s--references__item:nth-child(4) .s__img--logo{left:-300%}.s--references__item:nth-child(5) .s__img--logo{left:-400%}.s--references__item:nth-child(6) .s__img--logo{left:-500%}.s--references__item:nth-child(7) .s__img--logo{left:-600%}.s--references__item:nth-child(8) .s__img--logo{left:-700%}.s--references__item:nth-child(9) .s__img--logo{left:-800%}.s--references__item:nth-child(10) .s__img--logo{left:-900%}.s--references__item:nth-child(11) .s__img--logo{left:-1000%}.s--references__item:nth-child(12) .s__img--logo{left:-1100%}.s--references__item:nth-child(13) .s__img--logo{left:-1200%}.s--references__item:nth-child(14) .s__img--logo{left:-1300%}.s--references__item:nth-child(15) .s__img--logo{left:-1400%}.s--references__item:nth-child(16) .s__img--logo{left:-1500%}.s--references__item:nth-child(17) .s__img--logo{left:-1600%}.s--references__item:nth-child(18) .s__img--logo{left:-1700%}.l--about{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (min-width:64em){.about{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/04_about/about_city_bg@1x.png) calc(50% + 140px) 130px repeat-x transparent}.no-cssanimations .about{background:url(../_images/separator@1x.png) 0 100% repeat-x,url(../_images/04_about/about_zeppelin_bg@1x.png) 90% 160px no-repeat,url(../_images/04_about/about_city_bg@1x.png) calc(50% + 140px) 130px repeat-x transparent;background-size:4px 84px,69px 39px,2000px 390px}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.about{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/04_about/about_city_bg@2x.png) calc(50% + 140px) 130px repeat-x transparent;background-size:4px 84px,2000px 390px}.no-cssanimations .about{background:url(../_images/separator@2x.png) 0 100% repeat-x,url(../_images/04_about/about_zeppelin_bg@2x.png) 90% 160px no-repeat,url(../_images/04_about/about_city_bg@2x.png) calc(50% + 140px) 130px repeat-x transparent;background-size:4px 84px,69px 39px,2000px 390px}}@media (min-width:64em){.team{margin:0 auto 4.8rem;width:60%}}.team__img{width:100%}@media (min-width:37.5em){.how,.jobs,.tp,.tz,.who{padding:0;border:0 none}}@media (min-width:64em){.how,.jobs,.tp,.tz,.who{padding:2.4rem 1.2rem 0;border-radius:.6rem}}.tp{-ms-flex-order:3;order:3}@media (min-width:64em){.tp{-ms-flex-order:1;order:1}}.tz{-ms-flex-order:4;order:4}@media (min-width:64em){.tz{-ms-flex-order:2;order:2}}.jobs{-ms-flex-order:5;order:5}@media (min-width:64em){.jobs{-ms-flex-order:3;order:3}}.who{border:0 none;padding-top:0;-ms-flex-order:1;order:1}@media (min-width:64em){.who{-ms-flex-order:4;order:4;padding-top:2.4rem}}.how{-ms-flex-order:2;order:2}@media (min-width:64em){.how{-ms-flex-order:5;order:5}}@media (min-width:64em){.jobs,.tp,.tz{width:32.20339%;position:relative;background:transparent;transition:background .3s linear}.jobs:before,.tp:before,.tz:before{content:"";position:absolute;width:100%;height:50%;top:-6rem;left:0;z-index:99;opacity:0;transition:opacity .3s linear}.jobs:hover,.tp:hover,.tz:hover{cursor:pointer;background:#f0ecec}.jobs:hover:before,.tp:hover:before,.tz:hover:before{background:url(../_images/04_about/about_arrows@1x.png) 0 0 no-repeat transparent;opacity:1}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.jobs:hover:before,.tp:hover:before,.tz:hover:before{background:url(../_images/04_about/about_arrows@2x.png) 0 0 no-repeat transparent;background-size:984px 85px}}@media (min-width:64em){.tz:hover:before{background-position:-328px 0}}@media (min-width:64em){.jobs:hover:before{background-position:-656px 0}}.jobs .s--circular,.tp .s--circular,.tz .s--circular{margin:0 auto 3rem}@media (min-width:64em){.tp .s,.tz .s{border-radius:0;border:0 none;padding:0;margin:0;box-shadow:none;background:0 none;position:absolute;width:13.1rem;height:13.1rem}}@media (min-width:64em){.tp .s{top:-57.1rem;left:28.3rem}}@media (min-width:64em){.tz .s{top:-48.4rem;left:10.7rem}}.s__img--jobs,.s__img--tp,.s__img--tz{width:100%;max-width:100%;position:relative;top:1.6rem}.s__img--linkedin,.s__img--twitter,.s__img--xing{width:300%;max-width:300%;position:relative;filter:grayscale(100%) brightness(70%) contrast(2);transition:filter .3s linear}.s__img--linkedin:hover,.s__img--twitter:hover,.s__img--xing:hover{filter:none}.s__img--xing{left:-100%}.s__img--linkedin{left:-200%}.s__img--dribbble{left:-300%}.sm{display:block;text-align:center}.sm__item{display:inline-block;margin-right:1.2rem;width:4.8rem;height:4.8rem;overflow:hidden}@media (min-width:37.5em){.sm__item{width:3.6rem;height:3.6rem}}@media (min-width:64em){.l-contact{margin-top:19.2rem}[lang|=en] .l-contact{margin-top:24rem}.l-contact>*{-ms-flex:0 0 auto;flex:0 0 auto}}.l__deck-chair{display:none}@media (min-width:64em){.l__deck-chair{display:block;-ms-flex-order:1;order:1}}@media (min-width:64em){.l__contact-form{-ms-flex-order:2;order:2}}@media (min-width:64em){.l__address{-ms-flex-order:3;order:3}}@media (min-width:64em){.l__map{-ms-flex-order:4;order:4}}@media (min-width:64em){.l__imprint{margin-top:-14.4rem;-ms-flex-order:5;order:5}}.contact{background:none}@media (min-width:64em){.contact{background-image:url(../_images/05_contact/contact_sky@1x.png),url(../_images/05_contact/contact_bg@1x.png);background-position:30px 190px;background-size:989px 134px,1440px 433px;background-repeat:no-repeat,repeat-x;background-color:transparent}.no-cssanimations .contact{background-image:url(../_images/05_contact/contact_sky@1x.png),url(../_images/05_contact/contact_boat@1x.png),url(../_images/05_contact/contact_bg@1x.png);background-position:30px 190px,140px 390px,30px 190px;background-size:989px 134px,100px 100px,1440px 433px;background-repeat:no-repeat,no-repeat,repeat-x}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.contact{background-image:url(../_images/05_contact/contact_sky@2x.png),url(../_images/05_contact/contact_bg@2x.png)}.no-cssanimations .contact{background-image:url(../_images/05_contact/contact_sky@2x.png),url(../_images/05_contact/contact_boat@2x.png),url(../_images/05_contact/contact_bg@2x.png)}}.contact h2{text-align:center}@media (min-width:64em){.contact h2{text-align:left}}.contact-form,.imprint,.vcard{margin-bottom:4.8rem}.vcard{font-style:normal}.org-ext{display:block}.deck-chair-img{display:none}@media (min-width:64em){.deck-chair-img{display:block;text-align:center}}.map_canvas{margin-bottom:4.8rem}.map_canvas a:first-child{display:block;padding:.3rem;background:#fff;border:.1rem solid #f0ecec;border-radius:.2rem;box-shadow:0 2px 3px rgba(51,41,41,.2);margin-bottom:.5rem}.map_canvas a:first-child img{display:block;filter:sepia(.07)}.footer{text-align:center;background-color:#332929;padding:2.4rem 0;color:#f0ecec}.footer svg{max-width:4.8rem;fill:currentColor}.footer__link,.footer__txt{font-family:heading,Helvetica Neue,Arial,sans-serif;font-weight:400;font-size:1.275rem}.footer__txt{margin-bottom:0}.footer__txt a,.footer__txt a:active,.footer__txt a:hover{color:#f0ecec}@keyframes clouds{0%{transform:translateX(-50%)}to{transform:translateX(50%)}}@keyframes plane{0%{transform:translateX(0) translateY(0) rotate(-5deg)}65%{transform:translateX(68%) translateY(-120px) rotate(5deg)}to{transform:translateX(110%) translateY(0) rotate(-10deg)}}@keyframes sheep{0%{transform:translateX(0) translateY(0) rotate(0)}25%{transform:translateX(-29%) translateY(50px) rotate(0)}50%{transform:translateX(-58%) translateY(-50px) rotate(0)}65%{transform:translateX(-75%) translateY(0) rotate(0)}85%{transform:translateX(-75%) translateY(0) rotate(1turn)}to{transform:translateX(-105%) translateY(0) rotate(1turn)}}@keyframes boat{0%{transform:translateX(0) translateY(0)}50%{transform:translateX(5px) translateY(3px)}to{transform:translateX(10px) translateY(0)}}@media (min-width:64em){.about-animation,.contact-animation,.services-animation,.work-animation{display:block;will-change:transform;z-index:1}.services-animation{position:absolute;width:300%;height:10rem;top:20rem;left:-50%;background:url(../_images/02_services/services_clouds.svg) 0 0 repeat-x;animation:clouds 500s infinite linear}.work-animation{position:absolute;width:100%;height:6.2rem;top:45rem;left:-10%;background:url(../_images/03_work/work_plane_bg@1x.png) 0 0 no-repeat;animation:plane 10s infinite linear;transform-origin:53px 31px}.about-animation{position:absolute;width:100%;height:3.9rem;top:22rem;left:100%;background:url(../_images/04_about/about_zeppelin_bg@1x.png) 0 0 no-repeat;animation:sheep 20s infinite linear;transform-origin:35px -50px}.contact-animation{position:absolute;width:9rem;height:9rem;top:40rem;left:14rem;background:url(../_images/05_contact/contact_boat@1x.png) 0 0 no-repeat;animation:boat 2s infinite linear alternate}}@media (min-width:64em) and (-webkit-min-device-pixel-ratio:2),(min-width:64em) and (min-resolution:192dpi){.about-animation,.contact-animation,.services-animation,.work-animation{display:block}.work-animation{background:url(../_images/03_work/work_plane_bg@2x.png) 0 0 no-repeat;background-size:117px 62px}.about-animation{background:url(../_images/04_about/about_zeppelin_bg@2x.png) 0 0 no-repeat;background-size:69px 39px}.contact-animation{background:url(../_images/05_contact/contact_boat@2x.png) 0 0 no-repeat;background-size:90px 90px}}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcG9ydHMvbGF5b3V0L19icmVha3BvaW50cy5zY3NzIiwiaW1wb3J0cy9fZnVuY3Rpb25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYnJlYWtwb2ludC1wbHVnaW4uc2NzcyIsImltcG9ydHMvbGF5b3V0L19sYXlvdXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCJpbXBvcnRzL3V0aWxzL19jbGVhcmZpeC5zY3NzIiwiaW1wb3J0cy91dGlscy9fc3ByaXRlcy5zY3NzIiwiaW1wb3J0cy9fdmFyaWFibGVzLnNjc3MiLCJpbXBvcnRzL3V0aWxzL19tZWRpYS5zY3NzIiwiaW1wb3J0cy91dGlscy9fcGxhY2Vob2xkZXJzLnNjc3MiLCJpbXBvcnRzL2Jhc2UvX2ltYWdlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vZHVsYXJzY2FsZS1zYXNzL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX2NhbGMuc2NzcyIsImltcG9ydHMvZWxlbWVudHMvX2Jsb2NrcXVvdGUuc2NzcyIsImltcG9ydHMvX21peGlucy5zY3NzIiwiaW1wb3J0cy9lbGVtZW50cy9fYnV0dG9uLnNjc3MiLCJpbXBvcnRzL2VsZW1lbnRzL19zcGlubmVyLnNjc3MiLCJpbXBvcnRzL2VsZW1lbnRzL190b3AtbGluay5zY3NzIiwiaW1wb3J0cy9lbGVtZW50cy9fdGVzdGltb25pYWwtZ3JpZC5zY3NzIiwiaW1wb3J0cy9lbGVtZW50cy9fZm9ybS5zY3NzIiwiaW1wb3J0cy9zZWN0aW9ucy9fc2VjdGlvbi5zY3NzIiwiaW1wb3J0cy9zZWN0aW9ucy9fc2VydmljZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ndXR0ZXJzLnNjc3MiLCJpbXBvcnRzL3NlY3Rpb25zL193b3JrLnNjc3MiLCJpbXBvcnRzL3NlY3Rpb25zL19hYm91dC5zY3NzIiwiaW1wb3J0cy9zZWN0aW9ucy9fY29udGFjdC5zY3NzIiwiYmFzZS5jc3MiLCJpbXBvcnRzL3NlY3Rpb25zL19mb290ZXIuc2NzcyIsImltcG9ydHMvbW90aW9uL19rZXlmcmFtZXMtYmFja2dyb3VuZC5zY3NzIiwiaW1wb3J0cy9tb3Rpb24vX2FuaW1hdGlvbnMtYmFja2dyb3VuZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFFQSxTQUNDLGdCQ2hFYSxDRDJFYixBRS9CRywwQkZtQkosU0FJRSxnQkNuRVksQ0QyRWIsQ0FBQSxBRS9CRyx3QkZtQkosU0FPRSxtQkFBb0IsQUFDcEIsY0FBZSxBQUNmLGtCQUFtQixBQUNuQixTQUFXLENBRVosQ0FBQSxBRS9CRywwQkNsREosR0FFRSxvQkFBQSxBQUFjLGFBQUEsQUFDZCxtQkFBQSxBQUFnQixlQUFBLEFBQ2hCLHNCQUFBLEFBQStCLDhCQUFBLEFBQy9CLG9CQUFpQyxBQUNqQyxvQkFBa0MsQ0F1RG5DLEFBN0RELGdCQVNHLG9CRkhXLEFFSVgsb0JGSlcsQ0VLWCxDQUFBLEFEdUNDLDBCQ2xESixhQWdCRyxVQzJJcUIsQ0R6SXRCLENBQUEsQURnQ0UsMEJDbERKLGFBc0JHLGVDcUlxQixDRG5JdEIsQ0FBQSxBRDBCRSx3QkNsREosY0EyQ0csZUNnSHFCLENEOUd0QixDQUFBLEFES0Usd0JDbERKLGNBZ0RHLGVDMkdxQixDRHpHdEIsQ0FBQSxBREFFLHdCQ2xESixjQXFERyxXQ3NHcUIsQ0RwR3RCLENBQUEsQURMRSx3QkNsREosY0EwREcsZUNpR3FCLENEL0Z0QixDQUFBLEFFeENGLHFCQUlDLFlBQWEsQUFDYixhQUFlLENBQ2YsQUFFRCxVQUVDLFVBQVksQ0FDWixBQy9CRCxHQUNDLGVBQWlCLENBQ2pCLEFBRUQsYUFFQyxrQkFBbUIsQUFDbkIsVUFBVyxBQUNYLFNBQVUsQUFDViwyQkNLZ0IsQURKaEIsa0JBQW1CLEFBQ25CLG1CQUFvQixBQUNwQix1Q0NIbUIsQURJbkIsZUNFVyxDRFNYLEFKMEJHLHdCSTlD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LEFBQ1gsVUFBVyxBQUNYLHdFQUF3RSxBQUN4RSxxQ0FBdUMsQ0FDdkMsQUFDRCxnQkFDQyxrQkFBbUIsQUFDbkIsV0FBWSxBQUNaLGNBQWUsQUFDZixVQUFXLEFBQ1gsVUFBVyxBQUNYLHNFQUFzRSxBQUN0RSxvQ0FBcUMsQUFDckMsMEJBQTRCLENBQzVCLEFBQ0QsaUJBQ0Msa0JBQW1CLEFBQ25CLFdBQVksQUFDWixjQUFlLEFBQ2YsVUFBVyxBQUNYLFVBQVcsQUFDWCwyRUFDVSxBQUNWLG9DQUFxQyxBQUNyQywyQkFBNkIsQ0FDN0IsQUFDRCxtQkFDQyxrQkFBbUIsQUFDbkIsV0FBWSxBQUNaLFlBQWEsQUFDYixVQUFXLEFBQ1gsV0FBWSxBQUNaLHdFQUF3RSxBQUN4RSwyQ0FBNkMsQ0FDN0MsQ0FBQSxBMUJBRSw0RzBCU0gsd0VBSUMsYUFBZSxDQUNmLEFBQ0QsZ0JBQ0Msc0VBQXNFLEFBQ3RFLDBCQUE0QixDQUM1QixBQUNELGlCQUNDLDJFQUNVLEFBQ1YseUJBQTJCLENBQzNCLEFBQ0QsbUJBQ0Msd0VBQXdFLEFBQ3hFLHlCQUEyQixDQUMzQixDQUFBIiwiZmlsZSI6ImJhc2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBEZWZpbmVzIHRoZSBncmlkIGFuZCBpdHMgYmVoYXZpb3VyXG4vLyAgb24gZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuLy9cbi8vXHRCcmVha3BvaW50czogICAwcHggLT4gIDEgY29sdW1uXG4vL1x0XHRcdFx0IDMyMHB4IC0+ICA0IGNvbHVtbnNcbi8vXHRcdFx0XHQgNDgwcHggLT4gIDggY29sdW1uc1xuLy9cdFx0XHRcdCA2MDBweCAtPiAxMiBjb2x1bW5zXG4vL1x0XHRcdFx0MTAyNHB4IC0+IDE2IGNvbHVtbnNcbi8vXHRcdFx0XHQxMjgwcHggLT4gMTYgY29sdW1ucyAoPSBtYXgtd2lkdGgpXG4vL1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAgPSBHUklEIFNFVFRJTkdTXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2UgaXMgMTBweCBhdCB0aGlzIHBvaW50XG5cbi8vIFJlbGF0aXZlIGNvbHVtbiAmIGd1dHRlciB3aWR0aFxuJHItY29sdW1uLXdpZHRoOiBzcGFjZS1sb3ZlcigyMDApO1xuJHItZ3V0dGVyLXdpZHRoOiBzcGFjZS1sb3ZlcigyMDApO1xuJHItZ3JpZC1wYWRkaW5nOiBzcGFjZS1sb3ZlcigxMDApO1xuJHItZ3JpZC1wYWRkaW5nLWxhcmdlOiBzcGFjZS1sb3ZlcigyMDApO1xuXG4vLyBDb2x1bW5zIGZvciBzbWFsbGVzdCBzY3JlZW5cbiR0b3RhbC1jb2x1bW5zOiAyO1xuXG4vLyBDb2x1bW4gJiBndXR0ZXIgd2lkdGggaW4gZW0gKHN1c3kgbmVlZHMgZW0pXG4kY29sdW1uLXdpZHRoOiAkci1jb2x1bW4td2lkdGg7XG4kZ3V0dGVyLXdpZHRoOiAkci1ndXR0ZXItd2lkdGg7XG4kZ3JpZC1wYWRkaW5nOiAkci1ncmlkLXBhZGRpbmc7XG4kZ3JpZC1wYWRkaW5nLWxhcmdlOiAkci1ncmlkLXBhZGRpbmctbGFyZ2U7XG5cbiRjb250YWluZXItc3R5bGU6IGZsdWlkO1xuXG4vLyAgPSBCUkVBS1BPSU5UU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCYXNlIGlzIDE2cHggYXQgdGhpcyBwb2ludFxuXG4vLyBGZWF0dXJlIHBob25lXHRcdDogMHB4XHRcdCAyIGNvbHVtbnNcdC0tPlx0ICAgMC1VUFxuJHRpbnktd2lkdGg6IDA7XG4kdGlueS1jb2xzOiAyO1xuXG4vLyBTbWFydHBob25lXHRcdFx0OiAzNjBweFx0XHQgNCBjb2x1bW5zIFx0LS0+ICAzMjAtVVBcbiRzbWFsbC13aWR0aDogMjIuNWVtO1xuJHNtYWxsLWNvbHM6IDQ7XG5cbi8vIFNtYXJ0cGhvbmUgbGFuZHNjYXBlXHQ6IDQ4MHB4IFx0IDYgY29sdW1ucyBcdC0tPiAgNDgwLVVQXG4kbWVkaXVtLXdpZHRoOiAzMGVtO1xuJG1lZGl1bS1jb2xzOiA2O1xuXG4vLyBUYWJsZXQgXHRcdFx0XHQ6IDYwMHB4LCBcdCA4IGNvbHVtbnMgXHQtLT4gIDYwMC1VUFxuJGxhcmdlLXdpZHRoOiAzNy41ZW07XG4kbGFyZ2UtY29sczogODtcblxuLy8gVGFibGV0IGxhbmRzY2FwZVx0XHQ6IDEwMjRweCBcdDEyIGNvbHVtbnMgXHQtLT4gMTAyNC1VUFxuJGh1Z2Utd2lkdGg6IDY0ZW07XG4kaHVnZS1jb2xzOiAxMjtcblxuLy8gRGVza3RvcCBcdFx0XHRcdDogMTI4MHB4IFx0MTYgY29sdW1ucyBcdC0tPiAxMjgwLVVQXG4kZ2lhbnQtd2lkdGg6IDgwZW07XG4kZ2lhbnQtY29sczogMTY7XG5cbi8vIERlc2t0b3AgbGFyZ2UgXHRcdDogMTYwMHB4IFx0MjAgY29sdW1ucyBcdC0tPiAxNjAwLVVQXG4kbW9uc3Ryb3VzLXdpZHRoOiAxMDBlbTtcbiRtb25zdHJvdXMtY29sczogMjA7XG5cbi53cmFwcGVyIHtcblx0cGFkZGluZzogMCAkci1ncmlkLXBhZGRpbmc7XG5cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdHBhZGRpbmc6IDAgJHItZ3JpZC1wYWRkaW5nLWxhcmdlO1xuXHR9XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG1heC13aWR0aDogMTAyLjRyZW07XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cbn1cbiIsIkBmdW5jdGlvbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkcmh5dGhtLXVuaXQ6ICR2ZXJ0aWNhbC1yaHl0aG0gKiAyKSB7XG5cdEByZXR1cm4gKGNlaWwoJGZvbnQtc2l6ZSAvICRyaHl0aG0tdW5pdCkgKiAoJHJoeXRobS11bml0IC8gJGZvbnQtc2l6ZSkpICpcblx0XHQkZm9udC1zaXplO1xufVxuXG5AZnVuY3Rpb24gc3BhY2UtbG92ZXIoJHVuaXQ6IDEwMCkge1xuXHRAcmV0dXJuICR1bml0ICogMC4wMiAqICR2ZXJ0aWNhbC1yaHl0aG07XG59XG4iLCIvLyBCcmVha3BvaW50IEludGVncmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09XG5cbiRzdXN5LW1lZGlhOiAoKSAhZGVmYXVsdDtcbiRzdXN5LW1lZGlhLWZhbGxiYWNrOiBmYWxzZSAhZGVmYXVsdDtcblxuJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICgpO1xuXG5cbi8vIFN1c3kgQnJlYWtwb2ludFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGFuZ2UgZ3JpZHMgYXQgZGlmZmVyZW50IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzLlxuLy8gLSAkcXVlcnkgICAgIDogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPiB8IDxtYXA+XG4vLyAtICRsYXlvdXQgICAgOiA8c2V0dGluZ3M+XG4vLyAtICRuby1xdWVyeSAgOiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1icmVha3BvaW50KFxuICAkcXVlcnksXG4gICRsYXlvdXQ6IGZhbHNlLFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1yb3V0ZXIoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAaWYgJGxheW91dCB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkbGF5b3V0KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3VzeSBNZWRpYVxuLy8gLS0tLS0tLS0tLVxuLy8gLSAkcXVlcnk6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT5cbi8vIC0gJG5vLXF1ZXJ5OiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1tZWRpYShcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgJG9sZC1jb250ZXh0OiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgJG5hbWU6IGlmKG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkcXVlcnkpLCAkcXVlcnksIG51bGwpO1xuICAkcXVlcnk6IHN1c3ktZ2V0LW1lZGlhKCRxdWVyeSk7XG4gICRxdWVyeTogc3VzeS1wYXJzZS1tZWRpYSgkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkcXVlcnksICRuYW1lKTtcblxuICBAaWYgJG5vLXF1ZXJ5IGFuZCB0eXBlLW9mKCRuby1xdWVyeSkgIT0gc3RyaW5nIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICN7c3VzeS1yZW5kZXItbWVkaWEoJHF1ZXJ5KX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJG5vLXF1ZXJ5KSA9PSBzdHJpbmcge1xuICAgICAgI3skbm8tcXVlcnl9ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJG9sZC1jb250ZXh0LCAkY2xlYW46IHRydWUpO1xufVxuXG5cbi8vIE1lZGlhIFJvdXRlclxuLy8gLS0tLS0tLS0tLS0tXG4vLyBSb3V0IG1lZGlhIGFyZ3VtZW50cyB0byB0aGUgY29ycmVjdCBtaXhpbi5cbkBtaXhpbiBzdXN5LW1lZGlhLXJvdXRlcihcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChicmVha3BvaW50LCAobWl4aW46IGJyZWFrcG9pbnQpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFVwZGF0ZSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBTZXQgdGhlIG5ldyBtZWRpYSBjb250ZXh0XG5AbWl4aW4gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcXVlcnksXG4gICRuYW1lOiBudWxsLFxuICAkY2xlYW46IGZhbHNlXG4pIHtcbiAgJHF1ZXJ5OiBtYXAtbWVyZ2UoKG5hbWU6ICRuYW1lKSwgJHF1ZXJ5KTtcblxuICBAaWYgJGNsZWFuIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogJHF1ZXJ5ICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiBtYXAtbWVyZ2UoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRxdWVyeSkgIWdsb2JhbDtcbiAgfVxufVxuXG5cbi8vIE1lZGlhIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgZnVsbCBtZWRpYSBjb250ZXh0LCBvciBhIHNpbmdsZSBtZWRpYSBwcm9wZXJ0eSAoZS5nLiBtaW4td2lkdGgpXG5AZnVuY3Rpb24gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcHJvcGVydHk6IGZhbHNlXG4pIHtcbiAgQGlmICRwcm9wZXJ0eSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcHJvcGVydHkpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICB9XG59XG5cblxuLy8gR2V0IE1lZGlhXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybiBhIG5hbWVkIG1lZGlhLXF1ZXJ5IGZyb20gJHN1c3ktbWVkaWEuXG4vLyAtICRuYW1lOiA8a2V5PlxuQGZ1bmN0aW9uIHN1c3ktZ2V0LW1lZGlhKFxuICAkbmFtZVxuKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJG5hbWUpIHtcbiAgICAkbWFwLXZhbHVlOiBtYXAtZ2V0KCRzdXN5LW1lZGlhLCAkbmFtZSk7XG4gICAgQGlmICgkbmFtZSA9PSAkbWFwLXZhbHVlKSB7XG4gICAgICAkbmFtZTogJG1hcC12YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRuYW1lOiBzdXN5LWdldC1tZWRpYSgkbWFwLXZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuYW1lO1xufVxuXG5cbi8vIFJlbmRlciBNZWRpYVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBCdWlsZCBhIG1lZGlhLXF1ZXJ5IHN0cmluZyBmcm9tIHZhcmlvdXMgbWVkaWEgc2V0dGluZ3NcbkBmdW5jdGlvbiBzdXN5LXJlbmRlci1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG91dHB1dDogbnVsbDtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHF1ZXJ5IHtcbiAgICAkc3RyaW5nOiBudWxsO1xuXG4gICAgQGlmICRwcm9wZXJ0eSA9PSBtZWRpYSB7XG4gICAgICAkc3RyaW5nOiAkdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RyaW5nOiAnKCN7JHByb3BlcnR5fTogI3skdmFsdWV9KSc7XG4gICAgfVxuXG4gICAgJG91dHB1dDogaWYoJG91dHB1dCwgJyN7JG91dHB1dH0gYW5kICN7JHN0cmluZ30nLCAkc3RyaW5nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuXG4vLyBQYXJzZSBNZWRpYVxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBwYXJzZWQgbWVkaWEtcXVlcnkgc2V0dGluZ3MgYmFzZWQgb24gc2hvcnRoYW5kXG5AZnVuY3Rpb24gc3VzeS1wYXJzZS1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG1xOiBudWxsO1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG1hcCB7XG4gICAgJG1xOiAkcXVlcnk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciB7XG4gICAgJG1xOiAobWluLXdpZHRoOiAkcXVlcnkpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBsaXN0IGFuZCBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gbnVtYmVyIHtcbiAgICAgICRtcTogKFxuICAgICAgICBtaW4td2lkdGg6IG1pbigkcXVlcnkuLi4pLFxuICAgICAgICBtYXgtd2lkdGg6IG1heCgkcXVlcnkuLi4pLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtcTogKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbXE6IChtZWRpYTogJyN7JHF1ZXJ5fScpO1xuICB9XG5cbiAgQHJldHVybiAkbXE7XG59XG4iLCIubCB7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0bWFyZ2luLWxlZnQ6IC0je3NwYWNlLWxvdmVyKDEwMCl9O1xuXHRcdG1hcmdpbi1yaWdodDogLSN7c3BhY2UtbG92ZXIoMTAwKX07XG5cblx0XHQmID4gW2NsYXNzKj0nbF9fJ10ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiBzcGFjZS1sb3ZlcigxMDApO1xuXHRcdFx0cGFkZGluZy1yaWdodDogc3BhY2UtbG92ZXIoMTAwKTtcblx0XHR9XG5cdH1cblxuXHQmX19sYXAtMW9mMSB7XG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0d2lkdGg6IHNwYW4oOCBvZiAkbGFyZ2UtY29scyk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fbGFwLTFvZjIge1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRcdHdpZHRoOiBzcGFuKDQgb2YgJGxhcmdlLWNvbHMpO1xuXHRcdH1cblx0fVxuXHQvLyAgICAmX19sYXAtNW9mOCB7XG5cdC8vICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdC8vICAgICAgICAgICAgd2lkdGg6IHNwYW4oNSBvZiAkbGFyZ2UtY29scyk7XG5cdC8vICAgICAgICB9XG5cdC8vICAgIH1cblx0Ly8gICAgJl9fbGFwLTNvZjgge1xuXHQvLyAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHQvLyAgICAgICAgICAgIHdpZHRoOiBzcGFuKGxhc3QgMyBvbWVnYSBvZiAkbGFyZ2UtY29scyk7XG5cdC8vICAgICAgICB9XG5cdC8vICAgIH1cblxuXHQvLyAgICAmX19kZXNrLTFvZjEge1xuXHQvLyAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdC8vICAgICAgICAgICAgd2lkdGg6IHNwYW4oMTIgb2YgJGh1Z2UtY29scyk7XG5cdC8vICAgICAgICB9XG5cdC8vICAgIH1cblx0Jl9fZGVzay0xb2YyIHtcblx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRcdHdpZHRoOiBzcGFuKDYgb2YgJGh1Z2UtY29scyk7XG5cdFx0fVxuXHR9XG5cdCZfX2Rlc2stMW9mNCB7XG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0XHR3aWR0aDogc3BhbigzIG9mICRodWdlLWNvbHMpO1xuXHRcdH1cblx0fVxuXHQmX19kZXNrLTJvZjUge1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0d2lkdGg6IHNwYW4obGFzdCAyIG9mIDUpO1xuXHRcdH1cblx0fVxuXHQmX19kZXNrLTNvZjUge1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0d2lkdGg6IHNwYW4oMyBvZiA1KTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGhlIGNsZWFyZml4XG4vL1x0Rm9yIG1vZGVybiBicm93c2Vyc1xuLy9cbi8vXHRcdDEuIFx0VGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbi8vXHRcdFx0Y29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbi8vXHRcdFx0T3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vL1x0XHRcdHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4vL1xuLy9cdFx0Mi4gXHRUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuLy9cdFx0XHRgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4vL1xuLy9cdFx0My4gXHRGb3IgSUUgNi83IG9ubHlcbi8vXHRcdFx0SW5jbHVkZSB0aGlzIHJ1bGUgdG8gdHJpZ2dlciBoYXNMYXlvdXQgYW5kIGNvbnRhaW4gZmxvYXRzLlxuLy9cbi8vXHRodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay9cbi8vXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jZjpiZWZvcmUsXG4uY2Y6YWZ0ZXIsXG4lY2Y6YmVmb3JlLFxuJWNmOmFmdGVyIHtcblx0Y29udGVudDogJyAnOyAvKiAxICovXG5cdGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jZjphZnRlcixcbiVjZjphZnRlciB7XG5cdGNsZWFyOiBib3RoO1xufVxuIiwiLnMge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucy0tY2lyY3VsYXIge1xuXHQvL2hlaWdodDogNTAlOyAvL2hlaWdodDogc3BhY2UtbG92ZXIoMjAwKSAqIDY7IC8qIDE1MHB4IC8gMTZweCAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiA1MCU7IC8vd2lkdGg6IHNwYWNlLWxvdmVyKDIwMCkgKiA2OyAvKiAxNTBweCAvIDE2cHggKi9cblx0aGVpZ2h0OiAwO1xuXHRib3JkZXI6ICRib3JkZXJUaGluIHNvbGlkICRncmF5MTAwO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdHBhZGRpbmctYm90dG9tOiA0OSU7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKCRhbnRocmFjaXRlLCAwLjIpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRtZWRpdW0td2lkdGgpIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMzAlO1xuXHRcdHdpZHRoOiAzMCU7XG5cdH1cblxuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDUwJTtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG59XG5cbi5zX19pbWcge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG59XG4iLCIvLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIERlZmluZXMgYWxsIHZhcmlhYmxlcy5cbi8vXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vICA9IEdSQVlTXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhbnRocmFjaXRlOiAjMzMyOTI5OyAvLyAgaW50dWlvIGFudGhyYXppdFxuJGdyYXk4MDA6ICM4MDY1NjU7XG4kZ3JheTQwMDogI2IxOWE5YTtcbiRncmF5MjAwOiAjY2VjMGMwO1xuJGdyYXkxNTA6ICNlZGU3ZGU7XG4kZ3JheTEwMDogI2YwZWNlYztcbiR3aGl0ZTogI2ZmZjtcblxuJHdoaXRlQmFja2dyb3VuZDogJHdoaXRlOyAvLyNmY2ZiZmE7XG5cbi8vICA9IEFDQ0VOVCBDT0xPUlNcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlZDogI2NjM2QzZDsgLy8gaW50dWlvIHJlZFxuXG4vLyBpbnR1aW8gaGVhdCBncmFkaWVudHNcbiRoZWF0OiAjOTkyZjJmLCAjYWMzNTM1LCAjYmYzYTNhLCAjZDI0MDQwLCAjZTY0NjQ2O1xuJGhlYXQtZG91YmxlOiAjOTkyZjJmLCAjYWMzNTM1LCAjYmYzYTNhLCAjZDI0MDQwLCAjZTY0NjQ2LCAjZDI0MDQwLCAjYmYzYTNhLFxuXHQjYWMzNTM1LCAjOTkyZjJmO1xuXG4kaW5kaWdvOiAjMjQ2ZWIyOyAvLyBpbnR1aW8gaW5kaWdvXG4kb3JhbmdlOiAjZDZhYzAwO1xuJGdyZWVuOiAjYmZlMDVhO1xuXG4kcHJpbWFyeUFjY2VudDogJHJlZDtcbiRzZWNvbmRhcnlBY2NlbnQ6ICRpbmRpZ287XG5cbi8vICA9IEJBQ0tHUk9VTkQgSU1BR0VTXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kaHRtbEJhY2tncm91bmQ6ICR3aGl0ZUJhY2tncm91bmQ7XG5cbi8vICA9IFNDQUZGT0xESU5HXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRib2R5QmFja2dyb3VuZDogJHdoaXRlQmFja2dyb3VuZDtcbiR0ZXh0Q29sb3I6ICRhbnRocmFjaXRlO1xuXG4kc2VsZWN0aW9uQ29sb3I6ICRzZWNvbmRhcnlBY2NlbnQ7XG4kc2VsZWN0aW9uU2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuLy8gID0gTElOS1Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxpbmtDb2xvcjogJHNlY29uZGFyeUFjY2VudDtcbiRsaW5rQ29sb3JIb3ZlcjogJHByaW1hcnlBY2NlbnQ7XG5cbi8vICA9IFJIWVRITSBBTkQgU1BBQ0lOR1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHZlcnRpY2FsLXJoeXRobTogMC42cmVtO1xuXG4kc2VjdGlvblNwYWNlOiBzcGFjZS1sb3Zlcig2MDApO1xuJHNlY3Rpb25TcGFjZUxhcmdlOiBzcGFjZS1sb3Zlcig4MDApO1xuXG4vLyAgPSBUWVBPR1JBUEhZXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZPTlQgRkFNSUxZXG4kc2Fuc0ZvbnRGYW1pbHk6ICdoZWFkaW5nJywgJ0hlbHZldGljYSBOZXVlJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiRzZXJpZkZvbnRGYW1pbHk6ICdjb3B5JywgJ0FyaWFsJywgc2VyaWY7XG4kaGVhZGluZ3NGb250RmFtaWx5OiAkc2Fuc0ZvbnRGYW1pbHk7XG5cbi8vIEJBU0VMSU5FXG4kaHRtbEZvbnRTaXplOiA2Mi41JTtcbiRodG1sTGluZUhlaWdodDogMTtcblxuLy8gU0NBTEVcbiRiYXNlQ29weTogMS43cmVtO1xuJGJhc2VIZWFkbGluZTogMS4ycmVtO1xuJHJhdGlvOiAkZm91cnRoO1xuXG4kYm9keUZvbnRTaXplOiBtcygwLCAkYmFzZUNvcHksICRyYXRpbyk7XG4kYm9keUZvbnRTaXplLS1sYXJnZTogJGJvZHlGb250U2l6ZSArIDAuMXJlbTtcblxuJHNtYWxsRm9udFNpemU6IG1zKC0xLCAkYmFzZUNvcHksICRyYXRpbyk7XG5cbiRoMVNpemU6IG1zKDMsICRiYXNlSGVhZGxpbmUsICRyYXRpbyk7XG4kaDJTaXplOiBtcygyLCAkYmFzZUhlYWRsaW5lLCAkcmF0aW8pO1xuJGgzU2l6ZTogbXMoMSwgJGJhc2VIZWFkbGluZSwgJHJhdGlvKTtcbiRoNFNpemU6IG1zKDAsICRiYXNlSGVhZGxpbmUsICRyYXRpbyk7XG5cbiRoMVNpemUtLWxhcmdlOiBtcyg0LCAkYmFzZUhlYWRsaW5lLCAkcmF0aW8pO1xuJGgyU2l6ZS0tbGFyZ2U6IG1zKDIsICRiYXNlSGVhZGxpbmUsICRyYXRpbyk7XG4kaDNTaXplLS1sYXJnZTogbXMoMSwgJGJhc2VIZWFkbGluZSwgJHJhdGlvKTtcbiRoNFNpemUtLWxhcmdlOiBtcygwLCAkYmFzZUhlYWRsaW5lLCAkcmF0aW8pO1xuXG4kaDFTaXplLS1odWdlOiBtcyg1LCAkYmFzZUhlYWRsaW5lLCAkcmF0aW8pO1xuJGgyU2l6ZS0taHVnZTogbXMoMywgJGJhc2VIZWFkbGluZSwgJHJhdGlvKTtcblxuLy8gTElORSBIRUlHSFRTXG4kYmFzZUxpbmVIZWlnaHQ6IHNwYWNlLWxvdmVyKDI1MCk7XG4kYm9keUxpbmVIZWlnaHQ6ICRiYXNlTGluZUhlaWdodDtcbiRib2R5TGluZUhlaWdodC0taHVnZTogMS41O1xuXG4kc21hbGxMaW5lSGVpZ2h0OiBsaW5lLWhlaWdodCgkc21hbGxGb250U2l6ZSkgLSAkdmVydGljYWwtcmh5dGhtO1xuXG4kaDFMaW5lSGVpZ2h0OiBsaW5lLWhlaWdodCgkaDFTaXplKTtcbiRoMkxpbmVIZWlnaHQ6IGxpbmUtaGVpZ2h0KCRoMlNpemUpICsgJHZlcnRpY2FsLXJoeXRobTtcbiRoM0xpbmVIZWlnaHQ6IGxpbmUtaGVpZ2h0KCRoM1NpemUpO1xuJGg0TGluZUhlaWdodDogbGluZS1oZWlnaHQoJGg0U2l6ZSk7XG5cbiRoMUxpbmVIZWlnaHQtLWxhcmdlOiBsaW5lLWhlaWdodCgkaDFTaXplLS1sYXJnZSk7XG4kaDJMaW5lSGVpZ2h0LS1sYXJnZTogbGluZS1oZWlnaHQoJGgyU2l6ZS0tbGFyZ2UpICsgJHZlcnRpY2FsLXJoeXRobTtcbiRoM0xpbmVIZWlnaHQtLWxhcmdlOiBsaW5lLWhlaWdodCgkaDNTaXplLS1sYXJnZSk7XG4kaDRMaW5lSGVpZ2h0LS1sYXJnZTogbGluZS1oZWlnaHQoJGg0U2l6ZS0tbGFyZ2UpO1xuXG4kaDFMaW5lSGVpZ2h0LS1odWdlOiBsaW5lLWhlaWdodCgkaDFTaXplLS1odWdlKSArICR2ZXJ0aWNhbC1yaHl0aG07XG4kaDJMaW5lSGVpZ2h0LS1odWdlOiBsaW5lLWhlaWdodCgkaDJTaXplLS1odWdlKTtcblxuLy8gV0VJR0hUU1xuJG5vcm1hbEZvbnRXZWlnaHQ6IDQwMDtcbiRib2xkRm9udFdlaWdodDogNzAwO1xuJGJsYWNrRm9udFdlaWdodDogOTAwO1xuXG4vLyAgPSBCT1JERVJTXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRib3JkZXJUaGluOiAwLjFyZW07XG4kYm9yZGVyTm9ybWFsOiAwLjJyZW07XG4kYm9yZGVyTWVkaXVtOiAwLjNyZW07XG4kYm9yZGVyVmVyeVdpZGU6IDAuN3JlbTtcblxuJGJvcmRlclJhZGl1czogMC4ycmVtO1xuJGJvcmRlclJhZGl1cy0tcm91bmQ6IDAuNnJlbTtcbiRib3JkZXJSYWRpdXMtLWNpcmNsZTogOTk5cmVtO1xuXG4vL1x0PSBOQVZJR0FUSU9OXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRuYXZTaXplU21hbGw6IDEuMnJlbTtcbiRuYXZTaXplOiAxLjNyZW07XG4kbmF2U2l6ZS0tbWVkaXVtOiAxLjRyZW07XG4kbmF2U2l6ZS0tbGFyZ2U6IDEuNXJlbTtcbiRuYXZMaW5lSGVpZ2h0OiA0cmVtO1xuJG5hdkhlaWdodDogJG5hdkxpbmVIZWlnaHQ7XG5cbi8vICA9IElOUFVUIEZPUk1TICYgQlVUVE9OU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaW5wdXRIZWlnaHQ6ICRib2R5TGluZUhlaWdodDtcbiR0ZXh0YXJlYUxpbmVIZWlnaHQ6IDMuNnJlbTsgLy8kYmFzZUxpbmVIZWlnaHQgKiAzO1xuXG4kYnRuRm9udFNpemU6ICRib2R5Rm9udFNpemU7XG4kYnRuTGFyZ2VGb250U2l6ZTogJGg0U2l6ZTtcbiRidG5IdWdlRm9udFNpemU6ICRoM1NpemU7XG5cbiRpbnB1dEJvcmRlckNvbG9yOiAkZ3JheTE1MDtcblxuJHNlYXJjaEJ1dHRvbkNvbG9yOiAkaW5kaWdvO1xuJHNlYXJjaEJ1dHRvbkhvdmVyQmFja2dyb3VuZENvbG9yOiAkd2hpdGU7XG4kc2VhcmNoQnV0dG9uQWN0aXZlQmFja2dyb3VuZENvbG9yOiAkd2hpdGU7XG5cbiRidG5Cb3JkZXJSYWRpdXM6ICRib3JkZXJSYWRpdXMtLXJvdW5kO1xuXG4kZXJyb3JUZXh0Q29sb3I6ICRyZWQ7XG5cbiRzdWNjZXNzVGV4dENvbG9yOiAjODJhMjI3OyAvLyRncmVlbjtcblxuLy8gR2VuZXJpYyBidXR0b25cbiRidG5Db2xvckxpZ2h0OiAkaW5kaWdvO1xuJGJ0bkNvbG9yRGFyazogJGluZGlnbztcbiRidG5Gb250Q29sb3I6ICR3aGl0ZTtcbiRidG5Cb3JkZXJDb2xvcjogJGluZGlnbztcblxuLy8gUHJpbWFyeSBidXR0b25cbiRidG5QcmltYXJ5Q29sb3JMaWdodDogJHByaW1hcnlBY2NlbnQ7XG4kYnRuUHJpbWFyeUNvbG9yRGFyazogZGFya2VuKCRidG5QcmltYXJ5Q29sb3JMaWdodCwgMyUpO1xuJGJ0blByaW1hcnlGb250Q29sb3I6ICR3aGl0ZTtcbiRidG5QcmltYXJ5Qm9yZGVyQ29sb3I6IGRlc2F0dXJhdGUoZGFya2VuKCRidG5QcmltYXJ5Q29sb3JEYXJrLCAzJSksIDMlKTtcblxuLy8gU3VjY2VzcyBidXR0b25cbiRidG5TdWNjZXNzQ29sb3JMaWdodDogJGdyZWVuO1xuJGJ0blN1Y2Nlc3NDb2xvckRhcms6IGRhcmtlbigkYnRuU3VjY2Vzc0NvbG9yTGlnaHQsIDMlKTtcbiRidG5TdWNjZXNzRm9udENvbG9yOiAkYW50aHJhY2l0ZTtcbiRidG5TdWNjZXNzQm9yZGVyQ29sb3I6IGRlc2F0dXJhdGUoZGFya2VuKCRidG5TdWNjZXNzQ29sb3JEYXJrLCAzJSksIDMlKTtcblxuLy8gRGlzYWJsZWQgYnV0dG9uXG4kYnRuRGlzYWJsZWRDb2xvcjogJHdoaXRlO1xuJGJ0bkRpc2FibGVkRm9udENvbG9yOiAkZ3JheTIwMDtcbiRidG5EaXNhYmxlZEJvcmRlckNvbG9yOiBsaWdodGVuKCRncmF5MTAwLCAzJSk7XG5cbi8vICA9IFNFUEFSQVRPUiBMSU5FU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kc2VwYXJhdG9yQ29sb3I6ICRncmF5MTUwO1xuJHNlcGFyYXRvckJvcmRlcjogJGJvcmRlck5vcm1hbDtcbiRzZXBhcmF0b3JJbWFnZUhlaWdodDogc3BhY2UtbG92ZXIoNzAwKTtcblxuLy9cdD0gU1BJTk5FUlxuLy9cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kc3Bpbm5lci1ob2xlLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRzcGlubmVyLXNpemU6IHNwYWNlLWxvdmVyKDIwMCk7XG4kc3Bpbm5lci1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3Bpbm5lci1maWxsOiAkaW5kaWdvO1xuJHNwaW5uZXItZnVuY3Rpb246IGxpbmVhcjtcbiRzcGlubmVyLW9wYWNpdHk6IDAuODtcbiRzcGlubmVyLWR1cmF0aW9uOiAzcztcbiRzcGlubmVyLWNvdW50OiBpbmZpbml0ZTtcbiRzcGlubmVyLXJvdGF0ZS1sZWZ0OiBzcGlubmVyLXJvdGF0ZS1sZWZ0O1xuJHNwaW5uZXItcm90YXRlLXJpZ2h0OiBzcGlubmVyLXJvdGF0ZS1yaWdodDtcbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGhlIG1lZGlhIG9iamVjdFxuLy9cdEZvciB0aGUgcHVycG9zZSBvZiBwdXR0aW5nIGFuIGltYWdlIGxlZnQgYW5kIHNvbWVcbi8vXHRhcmJpdHJhcnkgY29udGVudCBvbiB0aGUgcmlnaHQuIEFsc28gdmljZSB2ZXJzYS5cbi8vXG4vL1x0aHR0cDovL3d3dy5zdHViYm9ybmVsbGEub3JnL2NvbnRlbnQvMjAxMC8wNi8yNS90aGUtbWVkaWEtb2JqZWN0LXNhdmVzLWh1bmRyZWRzLW9mLWxpbmVzLW9mLWNvZGUvXG4vL1xuLy8gXHRFeGFtcGxlOlxuLy9cdCBfX19fX19fX19fX1xuLy9cdHxcdFx0ICAgIHwgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsXG4vL1x0fFx0XHQgICAgfCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hXG4vL1x0fFx0SW1hZ2UgICB8IGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb25cbi8vXHR8XHRcdCAgICB8IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuXG4vL1x0fF9fX19fX19fX19ffCBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQuXG4vL1xuLy9cbi8vXHRDb2RlIGV4YW1wbGU6XG4vL1xuLy9cdDxkaXYgY2xhc3M9XCJtZWRpYSBhdHRyaWJ1dGlvblwiPlxuLy9cbi8vXHQgIDxhIGhyZWY9XCJodHRwOi8vdHdpdHRlci5jb20vc3R1YmJvcm5lbGxhXCIgY2xhc3M9XCJpbWdcIj5cbi8vXHQgICAgPGltZyBzcmM9XCJodHRwOi8vc3R1YmJvcm5lbGxhLmNvbS9wcm9maWxlX2ltYWdlLmpwZ1wiIGFsdD1cIm1lXCIgLz5cbi8vXHQgIDwvYT5cbi8vXG4vL1x0ICA8ZGl2IGNsYXNzPVwiYmRcIj5cbi8vXHQgICAgQFN0dWJib3JuZWxsYSAxNCBtaW51dGVzIGFnb1xuLy9cdCAgPC9kaXY+XG4vL1xuLy9cdDwvZGl2PlxuLy9cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1lZGlhIHtcblx0bWFyZ2luOiAwO1xuXG5cdC5tZWRpYV9fYmQge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0X292ZXJmbG93OiB2aXNpYmxlO1xuXHRcdHpvb206IDE7XG5cdH1cblxuXHQubWVkaWFfX2ltZyB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiBzcGFjZS1sb3ZlcigxMDApO1xuXG5cdFx0aW1nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC5tZWRpYV9faW1nLS1yZXYge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tbGVmdDogc3BhY2UtbG92ZXIoMTAwKTtcblx0fVxufVxuIiwiLy8gID0gU0VQQVJBVE9SU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJXRvcC1zZXBhcmF0b3Ige1xuXHRib3JkZXItdG9wOiAwIGRvdHRlZCAkc2VwYXJhdG9yQ29sb3I7XG5cdGJvcmRlci10b3Atd2lkdGg6ICRzZXBhcmF0b3JCb3JkZXI7XG5cdC8vcGFkZGluZy10b3A6IHNwYWNlLWxvdmVyKDIwMCkgLSAkc2VwYXJhdG9yQm9yZGVyOyAvLyBubyB1c2UgZm9yIHZlcnRpY2FsIHJoeXRobSBoZXJlXG5cdHBhZGRpbmctdG9wOiBzcGFjZS1sb3Zlcig0MDApO1xufVxuXG4lYm90dG9tLXNlcGFyYXRvciB7XG5cdGJvcmRlci1ib3R0b206IDAgZG90dGVkICRzZXBhcmF0b3JDb2xvcjtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogJHNlcGFyYXRvckJvcmRlcjtcblx0Ly9wYWRkaW5nLWJvdHRvbTogc3BhY2UtbG92ZXIoMjAwKSAtICRzZXBhcmF0b3JCb3JkZXI7IC8vIG5vIHVzZSBmb3IgdmVydGljYWwgcmh5dGhtIGhlcmVcblx0cGFkZGluZy1ib3R0b206IHNwYWNlLWxvdmVyKDQwMCk7XG59XG5cbiVsZWZ0LXNlcGFyYXRvciB7XG5cdGJvcmRlci1sZWZ0OiAwIHNvbGlkICRzZXBhcmF0b3JDb2xvcjtcblx0Ym9yZGVyLWxlZnQtd2lkdGg6ICRzZXBhcmF0b3JCb3JkZXI7XG5cdHBhZGRpbmctbGVmdDogc3BhY2UtbG92ZXIoNDAwKTtcbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgSW1hZ2VzLCBmaWd1cmVzLCBmaWdjYXB0aW9ucyBhbmQgYWxsIHJlbGF0ZWQgc3R1ZmYuXG4vL1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAgPSBCQVNJQyBJTUFHRVNcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaW1nIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG5waWN0dXJlIGltZyB7XG5cdG1heC13aWR0aDogaW5pdGlhbDtcbn1cblxuLmltZ19fY2FwdGlvbiB7XG5cdGZvbnQtc2l6ZTogJHNtYWxsRm9udFNpemU7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIkBmdW5jdGlvbiBtcy1jYWxjKCRWYWx1ZSwgJEJhc2U6ICRtcy1iYXNlLCAkUmF0aW86ICRtcy1yYXRpbykge1xuICBcbiAgLy8gSWYgcG93IGV4aXN0cyB1c2UgaXQuXG4gIC8vIEl0IHN1cHBvcnRzIG5vbi1pbnRlcmdlciB2YWx1ZXMhXG4gIEBpZiAkTVMtcG93LWV4aXN0cyB7XG5cbiAgICAvLyBUaGUgZm9ybXVsYSBmb3IgZmlndXJpbmcgb3V0IG1vZHVsYXIgc2NhbGVzIGlzOlxuICAgIC8vIChyXnYpKmJcbiAgICBAcmV0dXJuIHBvdygkUmF0aW8sICRWYWx1ZSkgKiAkQmFzZTtcbiAgfVxuXG4gIC8vIElmIG5vdCwgdXNlIG1zLXBvdygpLlxuICAvLyBOb3QgYXMgZmFzdCBvciBjYXBhYmxlIG9mIG5vbi1pbnRlZ2VyIGV4cG9uZW50cy5cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbXMtcG93KCRSYXRpbywgJFZhbHVlKSAqICRCYXNlO1xuICB9XG59IiwiLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBEZWZpbmVzIHRoZSBzdHlsaW5nIGZvciBibG9ja3F1b3Rlc1xuLy9cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXHRTVEFOREFSRFxuLy9cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYmxvY2txdW90ZSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0QGluY2x1ZGUgc2V0VHlwZSgkYm9keUZvbnRTaXplLCAxLjUpO1xuXG5cdHA6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4uYmxvY2txdW90ZSB7XG5cdC8vXHRJUyBTSElGVEVEXG5cdC8vXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ji0tc2hpZnRlZCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiBzcGFjZS1sb3ZlcigyMDApO1xuXG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHNwYWNlLWxvdmVyKDIwMCkgKiAxLjMzMzMzMzM7XG5cdFx0fVxuXHRcdGJsb2NrcXVvdGUge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoMTAwKTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnXFwyMDFDJztcblx0XHRcdFx0Zm9udC1zaXplOiAkYm9keUZvbnRTaXplICogMi4yO1xuXG5cdFx0XHRcdC8qIDQ4cHggLyAxNnB4ICovXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGxlZnQ6IC0yLjZyZW07XG5cdFx0XHRcdHRvcDogLTEuNXJlbTtcblx0XHRcdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogJGJvZHlGb250U2l6ZSAqIDM7XG5cdFx0XHRcdFx0bGVmdDogLTMuNHJlbTtcblx0XHRcdFx0XHR0b3A6IC0yLjRyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly9cdElTIEJVQkJMRVxuXHQvL1x0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCYtLWJ1YmJsZSB7XG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoNDAwKTtcblx0XHR9XG5cdFx0YmxvY2txdW90ZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRwYWRkaW5nOiBzcGFjZS1sb3ZlcigyMDApIC0gJGJvcmRlclZlcnlXaWRlO1xuXHRcdFx0bWFyZ2luOiAwIDAgc3BhY2UtbG92ZXIoMjAwKTtcblx0XHRcdGJhY2tncm91bmQ6ICRncmF5MTUwO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoJGFudGhyYWNpdGUsIDAuMik7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzO1xuXHRcdH1cblx0fVxuXHQvL1x0SEFTIFNPVVJDRVxuXHQvL1x0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCYtLWhhcy1zb3VyY2Uge1xuXHRcdGJsb2NrcXVvdGUge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZmlsdGVyOiBzYXR1cmF0ZSgwLjcpIGJyaWdodG5lc3MoMS4wNCk7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHRvcDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdFx0bGVmdDogMjAlO1xuXHRcdFx0XHRib3JkZXI6IDFyZW0gc29saWQ7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGdyYXkxNTAgJGdyYXkxNTA7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogLTJweCAycHggM3B4IHJnYmEoJGFudGhyYWNpdGUsIDAuMik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGZpZ2NhcHRpb24ge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmc6IDAgc3BhY2UtbG92ZXIoMjAwKTtcblx0XHR9XG5cdH1cbn1cblxuZmlnY2FwdGlvbiB7XG5cdHNtYWxsIHtcblx0XHRjb2xvcjogJGdyYXk4MDA7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgRGVmaW5lcyBhbGwgU2FzcyBmdW5jdGlvbnMuXG4vL1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAgPSBHRU5FUklDIERFQlVHIE1FU1NBR0UgRS5HLiBGT1IgTUVESUEgUVVFUklFU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gZGVidWdtZXNzYWdlKCRtZXNzYWdlLCAkY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuOSkpIHtcblx0bWFyZ2luLXRvcDogJGJvZHlMaW5lSGVpZ2h0O1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkbWVzc2FnZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGhlaWdodDogJGJvZHlMaW5lSGVpZ2h0O1xuXHRcdGxlZnQ6IDA7XG5cdFx0ei1pbmRleDogOTk5O1xuXHRcdGJhY2tncm91bmQ6ICN7JGNvbG9yfTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cblxuLy8gID0gRk9OVCBTSVpFICYgTElORSBIRUlHSFRcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNldFR5cGUoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XG5cdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbn1cblxuLy8gID0gU1BBQ0UtTE9WRVJcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNwYWNlLWxvdmVyKCR1bml0OiAxMDApIHtcblx0bWFyZ2luLWJvdHRvbTogJHVuaXQgKiAwLjAyICogJHZlcnRpY2FsLXJoeXRobTtcbn1cblxuLy8gID0gRk9STSBGSUVMRCBTSVpJTkdcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWl4aW4gdGhhdCBhbGxvd3MgdG8gc3BlY2lmeSBhcmJpdHJhcnkgQ1NTIHByb3BlcnRpZXMgd2l0aFxuLy8gdW5pdGxlc3MgbnVtYmVycy4gVGhlIG91dHB1dCBoYXMgcmVtIHVuaXQgd2l0aCBwaXhlbCBmYWxsYmFjay5cbi8vIFNob3J0aGFuZCBhc3NpZ25tZW50cyBhcmUgc3VwcG9ydGVkIHRvbyFcblxuQG1peGluIGNhbGMtaW5wdXQtd2lkdGhzKFxuXHQkY29udGV4dCxcblx0JG1pbi13aWR0aDogJHItY29sdW1uLXdpZHRoLFxuXHQkZ3V0dGVyLXdpZHRoOiAkci1ndXR0ZXItd2lkdGhcbikge1xuXHQkd2lkdGhzOiBtaW5pIHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2U7XG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR3aWR0aHMpICogMiB7XG5cdFx0QGlmICRpICUgMiA9PSAwIHtcblx0XHRcdC5pbnB1dC0tI3tudGgoJHdpZHRocywgJGkgLyAyKX0ge1xuXHRcdFx0XHQkd2lkdGg6ICRtaW4td2lkdGggKiAkaSAvIDIgKyAkci1ndXR0ZXItd2lkdGggKiAoJGkgLSAxKTtcblx0XHRcdFx0QGlmICR3aWR0aCA8PSAkY29udGV4dCB7XG5cdFx0XHRcdFx0d2lkdGg6ICR3aWR0aDtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gID0gV0VCS0lULVNUWUxFIFRBQi1GT0NVUyBTSVpJTkdcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHRhYi1mb2N1cygpIHtcblx0Ly8gRGVmYXVsdFxuXHRvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzO1xuXG5cdC8vIFdlYmtpdFxuXHRvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vLyAgPSBTUElOTkVSXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE5lZWQgdG8gcmVtb3ZlIHRoZSB1bml0cyB0byBkbyBzb21lIG1hdGguXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuXHRAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbn1cblxuQG1peGluIHNwaW5uZXIoJHNwaW5uZXItaG9sZS1jb2xvcjogdHJhbnNwYXJlbnQpIHtcblx0LnNwaW5uZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdHdpZHRoOiAkc3Bpbm5lci1zaXplO1xuXHRcdGhlaWdodDogJHNwaW5uZXItc2l6ZTtcblx0XHRiYWNrZ3JvdW5kOiAkc3Bpbm5lci1iYWNrZ3JvdW5kO1xuXHRcdEBpbmNsdWRlIHNwYWNlLWxvdmVyKDIwMCk7XG5cblx0XHQuc3Bpbm5lcl9fc2lkZSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdFx0LnNwaW5uZXJfX2ZpbGwge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA5OTlweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkc3Bpbm5lci1maWxsO1xuXHRcdFx0XHRvcGFjaXR5OiAkc3Bpbm5lci1vcGFjaXR5O1xuXHRcdFx0XHRhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAkc3Bpbm5lci1jb3VudDtcblx0XHRcdFx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHNwaW5uZXItZnVuY3Rpb247XG5cdFx0XHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogJHNwaW5uZXItZHVyYXRpb247XG5cdFx0XHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cdFx0XHR9XG5cblx0XHRcdCYuc3Bpbm5lci0tbGVmdCB7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdC5zcGlubmVyX19maWxsIHtcblx0XHRcdFx0XHRsZWZ0OiAxMDAlO1xuXHRcdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0XHRhbmltYXRpb24tbmFtZTogJHNwaW5uZXItcm90YXRlLWxlZnQ7XG5cdFx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG5cdFx0XHRcdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLnNwaW5uZXItLXJpZ2h0IHtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHQuc3Bpbm5lcl9fZmlsbCB7XG5cdFx0XHRcdFx0bGVmdDogLTEwMCU7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRcdFx0YW5pbWF0aW9uLW5hbWU6ICRzcGlubmVyLXJvdGF0ZS1yaWdodDtcblx0XHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcblx0XHRcdFx0XHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVGhpcyBpcyB0aGUgJ2hvbGUnIHRoYXQgY3JlYXRlcyB0aGUgcmluZy4gSXQncyBzaXplIGlzIGRldGVybWluZWQgYnkgdGhlXG5cdFx0Ly8gc2l6ZSBvZiB0aGUgc3Bpbm5lci5cblx0XHQmOmFmdGVyIHtcblx0XHRcdCRob2xlLXNpemU6IHJvdW5kKChzdHJpcC11bml0cygkc3Bpbm5lci1zaXplKSAqIDAuNikpICsgcHg7XG5cdFx0XHQkaG9sZS1wb3NpdGlvbjogcm91bmQoKHN0cmlwLXVuaXRzKCRzcGlubmVyLXNpemUpICogMC4yKSkgKyBweDtcblxuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkc3Bpbm5lci1ob2xlLWNvbG9yO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6ICRob2xlLXNpemU7XG5cdFx0XHRoZWlnaHQ6ICRob2xlLXNpemU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHR0b3A6ICRob2xlLXBvc2l0aW9uO1xuXHRcdFx0bGVmdDogJGhvbGUtcG9zaXRpb247XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgQnV0dG9uIHN0eWxlcyBmb3IgPGE+LCA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiPiwgPGlucHV0IHR5cGU9XCJidXR0b25cIiBhbmRcbi8vXHQ8YnV0dG9uPiBlbGVtZW50c1xuLy9cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQmFzaWMgYnV0dG9uIHN0eWxpbmdcbi5idG4sXG4lYnRuIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8vIFJlc2V0XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG91dGxpbmU6IG5vbmU7XG5cblx0Ly8gRml4IGFsaWdubWVudFxuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cblx0Ly8gU2V0IGJvcmRlcnMgJiBiYWNrZ3JvdW5kXG5cdGJvcmRlcjogMCBzb2xpZCAkYnRuQm9yZGVyQ29sb3I7XG5cdGJvcmRlci13aWR0aDogJGJvcmRlclRoaW47XG5cdGJvcmRlci1yYWRpdXM6ICRidG5Cb3JkZXJSYWRpdXM7XG5cblx0Ly8gTm8gZ3JhZGllbnQgZmFsbGJhY2tcblx0YmFja2dyb3VuZDogJGJ0bkNvbG9yRGFyaztcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGJ0bkNvbG9yTGlnaHQsICRidG5Db2xvckRhcmspO1xuXG5cdC8vIFNldCB0ZXh0IHByb3BlcnRpZXNcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogJGJ0bkZvbnRDb2xvcjtcblx0Zm9udC1mYW1pbHk6ICRzYW5zRm9udEZhbWlseTtcblx0Zm9udC13ZWlnaHQ6ICRub3JtYWxGb250V2VpZ2h0O1xuXHRmb250LXNpemU6ICRidG5Gb250U2l6ZTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHQvLyBTZXQgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG5cdHRyYW5zaXRpb246IGFsbCAwLjFzO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0Ly8gSW4gaG92ZXIgc3RhdGUgdGhlIG5vcm1hbGx5XG5cdC8vIHF1aXRlIGZsYXQgYnV0dG9uIHdpbGwgcG9wXG5cdC8vIG91dCBhIGxpdHRsZSBiaXQuXG5cdCY6aG92ZXIge1xuXHRcdC8vIE1ha2UgaXQgbG9vayBtb3JlIGxpa2UgYSBiZXZlbGVkIGJ1dHRvblxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIGJvdHRvbSxcblx0XHRcdGxpZ2h0ZW4oJGJ0bkNvbG9yTGlnaHQsIDUlKSxcblx0XHRcdGRhcmtlbigkYnRuQ29sb3JEYXJrLCA1JSlcblx0XHQpO1xuXG5cdFx0Ly8gR2l2ZSBzaGFkb3cgYW5kIGhpZ2hsaWdodCBkZXB0aHMgdG8gdGhlIGJ1dHRvblxuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSksXG5cdFx0XHQvLyBvdXRlciBjb2xvciBnbG93XG5cdFx0XHRcdGluc2V0IDAgMXB4IDAgcmdiYShcblx0XHRcdFx0XHQyNTUsXG5cdFx0XHRcdFx0MjU1LFxuXHRcdFx0XHRcdDI1NSxcblx0XHRcdFx0XHQwLjJcblx0XHRcdFx0KTsgLy8gaW5uZXIgd2hpdGUgdG9wIGhpZ2hsaWdodFxuXG5cdFx0Ly8gT3ZlcnJpZGUgYTpob3ZlciBmb250IGNvbG9yIGNoYW5nZVxuXHRcdGNvbG9yOiAkYnRuRm9udENvbG9yO1xuXHR9XG5cblx0JjphY3RpdmUsXG5cdCY6Zm9jdXMge1xuXHRcdC8vIEdpdmUgdGhlIGJ1dHRvbiBhIHNsaWdodCBwcmVzc2VkIGVmZmVjdFxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIGJvdHRvbSxcblx0XHRcdCRidG5Db2xvckRhcmssXG5cdFx0XHQkYnRuQ29sb3JMaWdodFxuXHRcdCk7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsgLy8gaW5uZXIgZGFyayBzaGFkb3dcblx0fVxufVxuXG4vLyAgPSBCVVRUT05TIFdJVEggSUNPTlNcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi0td2l0aC1pY29uIHtcblx0W2NsYXNzKj0naWNvbi0nXSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBzcGFjZS1sb3Zlcig1MCk7XG5cdFx0Zm9udC1zaXplOiAkYm9keUZvbnRTaXplO1xuXHR9XG59XG5cbi8vICA9IEJVVFRPTiBTSVpFU1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLS1sYXJnZSB7XG5cdHBhZGRpbmc6ICRib2R5TGluZUhlaWdodCAtICRib3JkZXJUaGluIHNwYWNlLWxvdmVyKDIwMCk7XG5cdGZvbnQtc2l6ZTogJGJ0bkxhcmdlRm9udFNpemU7XG59XG5cbi5idG4tLWh1Z2Uge1xuXHRwYWRkaW5nOiAkYmFzZUxpbmVIZWlnaHQgKiAzIC0gJGJvcmRlclRoaW4gc3BhY2UtbG92ZXIoNDAwKTtcblx0QGluY2x1ZGUgc2V0VHlwZSgkYnRuSHVnZUZvbnRTaXplLCAkYmFzZUxpbmVIZWlnaHQgKiAzKTtcbn1cblxuLy8gID0gQlVUVE9OIEFMSUdOTUVOVFxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLS1yaWdodC1hbGlnbmVkIHtcblx0Ly8gSWYgdGhlIGJ1dHRvbiBpcyB0aGUgYWxpZ25lZCBvbiB0aGVcblx0Ly8gcmlnaHQgc2lkZSBpdCBzaG91bGQgbm90IGhhdmUgYSBtYXJnaW5cblx0bWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4vLyAgPSBCVVRUT04gVFlQRVNcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQ29sb3JlZCBidXR0b25zXG4uYnRuLS1wcmltYXJ5IHtcblx0Ym9yZGVyLWNvbG9yOiAkYnRuUHJpbWFyeUJvcmRlckNvbG9yO1xuXG5cdC8vIE5vIGdyYWRpZW50IGZhbGxiYWNrXG5cdGJhY2tncm91bmQ6ICRidG5QcmltYXJ5Q29sb3JMaWdodDtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdHRvIGJvdHRvbSxcblx0XHQkYnRuUHJpbWFyeUNvbG9yTGlnaHQsXG5cdFx0JGJ0blByaW1hcnlDb2xvckRhcmtcblx0KTtcblx0Y29sb3I6ICRidG5QcmltYXJ5Rm9udENvbG9yO1xuXG5cdCY6aG92ZXIge1xuXHRcdC8vIE1ha2UgaXQgbG9vayBtb3JlIGxpa2UgYSBiZXZlbGVkIGJ1dHRvblxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIGJvdHRvbSxcblx0XHRcdGxpZ2h0ZW4oJGJ0blByaW1hcnlDb2xvckxpZ2h0LCAyJSksXG5cdFx0XHRkYXJrZW4oJGJ0blByaW1hcnlDb2xvckRhcmssIDIlKVxuXHRcdCk7XG5cblx0XHQvLyBHaXZlIHNoYWRvdyBhbmQgaGlnaGxpZ2h0IGRlcHRocyB0byB0aGUgYnV0dG9uXG5cdFx0Ym94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSxcblx0XHRcdC8vIG91dGVyIGNvbG9yIGdsb3dcblx0XHRcdFx0aW5zZXQgMCAxcHggMCByZ2JhKFxuXHRcdFx0XHRcdDI1NSxcblx0XHRcdFx0XHQyNTUsXG5cdFx0XHRcdFx0MjU1LFxuXHRcdFx0XHRcdDAuMlxuXHRcdFx0XHQpOyAvLyBpbm5lciB3aGl0ZSB0b3AgaGlnaGxpZ2h0XG5cblx0XHQvLyBBZGQgc29tZSBkZXB0aCB0byB0aGUgdGV4dFxuXHRcdHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuXG5cdFx0Ly8gT3ZlcnJpZGUgYTpob3ZlciBmb250IGNvbG9yIGNoYW5nZVxuXHRcdGNvbG9yOiAkYnRuUHJpbWFyeUZvbnRDb2xvcjtcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHQvLyBHaXZlIHRoZSBidXR0b24gYSBzbGlnaHQgcHJlc3NlZCBlZmZlY3Rcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHR0byBib3R0b20sXG5cdFx0XHQkYnRuUHJpbWFyeUNvbG9yRGFyayxcblx0XHRcdCRidG5QcmltYXJ5Q29sb3JMaWdodFxuXHRcdCk7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsgLy8gaW5uZXIgZGFyayBzaGFkb3dcblx0fVxufVxuXG4uYnRuLS1zdWNjZXNzIHtcblx0Ym9yZGVyLWNvbG9yOiAkYnRuU3VjY2Vzc0JvcmRlckNvbG9yO1xuXG5cdC8vIE5vIGdyYWRpZW50IGZhbGxiYWNrXG5cdGJhY2tncm91bmQ6ICRidG5TdWNjZXNzQ29sb3JMaWdodDtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdHRvIGJvdHRvbSxcblx0XHQkYnRuU3VjY2Vzc0NvbG9yTGlnaHQsXG5cdFx0JGJ0blN1Y2Nlc3NDb2xvckRhcmtcblx0KTtcblx0Y29sb3I6ICRidG5TdWNjZXNzRm9udENvbG9yO1xuXG5cdCY6aG92ZXIge1xuXHRcdC8vIE1ha2UgaXQgbG9vayBtb3JlIGxpa2UgYSBiZXZlbGVkIGJ1dHRvblxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIGJvdHRvbSxcblx0XHRcdGxpZ2h0ZW4oJGJ0blN1Y2Nlc3NDb2xvckxpZ2h0LCAyJSksXG5cdFx0XHRkYXJrZW4oJGJ0blN1Y2Nlc3NDb2xvckRhcmssIDIlKVxuXHRcdCk7XG5cblx0XHQvLyBHaXZlIHNoYWRvdyBhbmQgaGlnaGxpZ2h0IGRlcHRocyB0byB0aGUgYnV0dG9uXG5cdFx0Ym94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSxcblx0XHRcdC8vIG91dGVyIGNvbG9yIGdsb3dcblx0XHRcdFx0aW5zZXQgMCAxcHggMCByZ2JhKFxuXHRcdFx0XHRcdDI1NSxcblx0XHRcdFx0XHQyNTUsXG5cdFx0XHRcdFx0MjU1LFxuXHRcdFx0XHRcdDAuMlxuXHRcdFx0XHQpOyAvLyBpbm5lciB3aGl0ZSB0b3AgaGlnaGxpZ2h0XG5cblx0XHQvLyBBZGQgc29tZSBkZXB0aCB0byB0aGUgdGV4dFxuXHRcdHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuXG5cdFx0Ly8gT3ZlcnJpZGUgYTpob3ZlciBmb250IGNvbG9yIGNoYW5nZVxuXHRcdGNvbG9yOiAkYnRuU3VjY2Vzc0ZvbnRDb2xvcjtcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHQvLyBHaXZlIHRoZSBidXR0b24gYSBzbGlnaHQgcHJlc3NlZCBlZmZlY3Rcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHR0byBib3R0b20sXG5cdFx0XHQkYnRuU3VjY2Vzc0NvbG9yRGFyayxcblx0XHRcdCRidG5TdWNjZXNzQ29sb3JMaWdodFxuXHRcdCk7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsgLy8gaW5uZXIgZGFyayBzaGFkb3dcblx0fVxufVxuXG4uYnRuLS1kaXNhYmxlZCB7XG5cdGJhY2tncm91bmQ6ICRidG5EaXNhYmxlZENvbG9yO1xuXHRib3JkZXItY29sb3I6ICRidG5EaXNhYmxlZEJvcmRlckNvbG9yO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogJGJ0bkRpc2FibGVkRm9udENvbG9yO1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZDogJGJ0bkRpc2FibGVkQ29sb3I7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRjb2xvcjogJGJ0bkRpc2FibGVkRm9udENvbG9yO1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdH1cbn1cblxuLy8gID0gQlVUVE9OIEdST1VQXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAge1xuXHQuYnRuLWdyb3VwX19idG4ge1xuXHRcdEBleHRlbmQgLmJ0bjtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyUmFkaXVzO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlclJhZGl1cztcblx0XHRcdGJvcmRlci1yaWdodC13aWR0aDogMDtcblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXJSYWRpdXM7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlclJhZGl1cztcblx0XHRcdG1hcmdpbi1yaWdodDogc3BhY2UtbG92ZXIoMTAwKTtcblx0XHRcdGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuXHRcdH1cblx0fVxufVxuXG4vLyAgPSBCVVRUT04gRFJPUERPV05cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1kcm9wZG93biB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC5idG4tZHJvcGRvd25fX3RvZ2dsZSB7XG5cdFx0QGV4dGVuZCAuYnRuO1xuXHRcdC8vbWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoMTAwKTtcblx0fVxuXG5cdC5idG4tZHJvcGRvd25fX21lbnUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTAwJTtcblx0XHRsZWZ0OiAwO1xuXHRcdHotaW5kZXg6IDEwMDA7XG5cdFx0bWFyZ2luLXRvcDogLSN7c3BhY2UtbG92ZXIoMjAwKX07XG5cdFx0cGFkZGluZzogJGJhc2VMaW5lSGVpZ2h0IC0gJGJvcmRlclRoaW4gMDtcblx0XHRib3JkZXI6IDAgc29saWQgJGdyYXkxMDA7XG5cdFx0Ym9yZGVyLXdpZHRoOiAkYm9yZGVyVGhpbjtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cblx0XHQvLyBGaXggYWxpZ25tZW50XG5cdFx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRcdGJveC1zaGFkb3c6IDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdHBhZGRpbmc6IDAgc3BhY2UtbG92ZXIoMTAwKTtcblx0XHR9XG5cdH1cbn1cblxuLm9wZW4ge1xuXHQmID4gLmJ0bi1kcm9wZG93bl9fbWVudSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgIyBDU1MgU3Bpbm5lclxuLy8gIE9wdGlvbmFsIDYgcGFyYW1ldGVycyBmb3IgbWl4aW4gJ3NwaW5uZXInLlxuLy8gIERlZmF1bHRzIGFyZSBhcyBmb2xsb3dzLlxuLy9cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gS2V5ZnJhbWVzIGZvciBlYWNoIGJyb3dzZXIgdGhhdCBmbGlwIHRoZSBib3hlcyBhcm91bmQuXG5cbkBrZXlmcmFtZXMgKCRzcGlubmVyLXJvdGF0ZS1yaWdodCkge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cdH1cblx0MjUlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuXHR9XG5cdDUwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblx0fVxuXHQ3NSUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdH1cblx0MTAwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzICgkc3Bpbm5lci1yb3RhdGUtbGVmdCkge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cdH1cblx0MjUlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0fVxuXHQ1MCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdH1cblx0NzUlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuXHR9XG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdH1cbn1cblxuLy8gVGhlIGJhc2ljIENTUyBmb3IgdGhlIHNwaW5uZXIuIEVhY2ggJy5zaWRlJyB0YWtlcyB0dXJucyBzcGlubmluZ1xuLy8gdG8gcmV2ZWFsIHRoZSBsZWZ0L3JpZ2h0IHNpZGUgZmlsbGluZyBvciBlbXB0eWluZy5cbi8vIFRoZSBkYW1uIHRoaW5nIGlzIHNvIGNvbXBsaWNhdGVkIEkgYmFyZWx5IHVuZGVyc3RhbmQgaXQgYW55bW9yZS5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRGVmYXVsdCBzcGlubmVyXG5AaW5jbHVkZSBzcGlubmVyO1xuXG4vLyBTcGlubmVyIHdpdGggaG9sZVxuLnNwaW5uZXItLWhhcy1ob2xlIHtcblx0QGluY2x1ZGUgc3Bpbm5lcigkd2hpdGUpO1xufVxuIiwiLyogUHJvdmlkZSBwYWdlIHRvcCBsaW5rIGZvciBzbWFsbCBzY3JlZW4gZGV2aWNlcyAqL1xuXG5hLnRvcCB7XG5cdHdpZHRoOiBzcGFjZS1sb3ZlcigzNTApO1xuXHRoZWlnaHQ6IHNwYWNlLWxvdmVyKDM1MCk7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMnJlbTtcblx0Y29sb3I6ICR3aGl0ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiAkaW5kaWdvO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcblx0bWFyZ2luOiBzcGFjZS1sb3ZlcigyMDApIGF1dG8gMDtcblx0b3BhY2l0eTogMC4xO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5pY29uIHtcblx0XHRtYXJnaW4tdG9wOiAtMC4zcmVtO1xuXHR9XG59XG5cbmEudG9wOmhvdmVyLFxuYS50b3A6YWN0aXZlIHtcblx0b3BhY2l0eTogMC4yNTtcbn1cbiIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgR3JpZFxuLy9cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmdyaWQge1xuXHRtYXJnaW4tbGVmdDogc3BhY2UtbG92ZXIoMTAwKTtcblx0bWFyZ2luLXJpZ2h0OiBzcGFjZS1sb3ZlcigxMDApO1xuXG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG5cdFx0QHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG5cdFx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuXHRcdFx0Z3JpZC1nYXA6IHNwYWNlLWxvdmVyKDIwMCk7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcblx0fVxuXG5cdCZfX2l0ZW0ge1xuXHRcdGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKCRhbnRocmFjaXRlLCAwLjIpO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXJSYWRpdXM7XG5cdFx0Ym9yZGVyOiAkYm9yZGVyVGhpbiBzb2xpZCAkZ3JheTEwMDtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdEBpbmNsdWRlIHNwYWNlLWxvdmVyKDIwMCk7XG5cblx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAje3NwYWNlLWxvdmVyKDEwMCl9KTtcblx0XHRcdG1hcmdpbi1yaWdodDogc3BhY2UtbG92ZXIoMjAwKTtcblxuXHRcdFx0JjpudGgtY2hpbGQoMm4pIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0d2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gKCN7c3BhY2UtbG92ZXIoMjAwKX0gKiAyIC8gMykpO1xuXG5cdFx0XHQmOm50aC1jaGlsZCgybikge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHNwYWNlLWxvdmVyKDIwMCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLWNoaWxkKDNuKSB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcblx0XHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBzcGFjZS1sb3ZlcigxMDApICogMTA7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRncmF5MTUwLCAwLjI1KTtcblx0XHRcdG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcblx0XHR9XG5cblx0XHQmLWltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWF4LWhlaWdodDogc3BhY2UtbG92ZXIoMTAwKSAqIDEwO1xuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cblx0XHRcdC53Zm0gJiB7XG5cdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogdG9wO1xuXHRcdFx0fVxuXG5cdFx0XHQuc2llbWVucyAmIHtcblx0XHRcdFx0b2JqZWN0LXBvc2l0aW9uOiAxMDAlIDg1JTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLWNhcHRpb24ge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxNXB4IDE1cHggLTIwcHggcmdiYSgkYW50aHJhY2l0ZSwgMC41KTtcblx0XHRcdHBhZGRpbmc6IHNwYWNlLWxvdmVyKDIwMCkgc3BhY2UtbG92ZXIoMTAwKTtcblxuXHRcdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0XHRwYWRkaW5nOiBzcGFjZS1sb3ZlcigyMDApO1xuXHRcdFx0fVxuXG5cdFx0XHQmX190aXRsZSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYWNlLWxvdmVyKDEwMCk7XG5cdFx0XHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiBzcGFjZS1sb3ZlcigyMDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmX19ib2R5IHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0Ly8gQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0XHQvLyBcdG1hcmdpbi1ib3R0b206IHNwYWNlLWxvdmVyKDIwMCk7XG5cdFx0XHRcdC8vIH1cblx0XHRcdH1cblx0XHRcdCZfX2xvZ28ge1xuXHRcdFx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoMTUwKTtcblx0XHRcdFx0XHR3aWR0aDogNTAlO1xuXG5cdFx0XHRcdFx0LnRmYyAmLFxuXHRcdFx0XHRcdC53Zm0gJiB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTUlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5hY2FkZW1pY3MgJiB7XG5cdFx0XHRcdFx0XHR3aWR0aDogNjAlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCZfX3Rlc3RpbW9uaWFsIC5tZWRpYV9faW1nIHtcblx0XHRcdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0XHRcdHdpZHRoOiAzMCU7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDMwJTtcblx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0bWF4LXdpZHRoOiAxMDUlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRcdFx0XHR3aWR0aDogNDAlO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA0MCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vICA9IENPTlRBQ1QgU0VDVFRJT05cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLndwY2Y3LFxuLmZvcm0sXG4jY29tbWVudGZvcm0ge1xuXHRwYWRkaW5nOiBzcGFjZS1sb3ZlcigxMDApIHNwYWNlLWxvdmVyKDEwMCkgc3BhY2UtbG92ZXIoMjAwKTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRib3JkZXI6ICRib3JkZXJUaGluIHNvbGlkICRncmF5MTAwO1xuXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzO1xuXHRib3gtc2hhZG93OiAwIDJweCAzcHggcmdiYSgkYW50aHJhY2l0ZSwgMC4yKTtcblxuXHRsYWJlbCB7XG5cdFx0Zm9udC1mYW1pbHk6ICRzYW5zRm9udEZhbWlseTtcblx0XHRmb250LXdlaWdodDogJGJvbGRGb250V2VpZ2h0O1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjAzcmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IHNwYWNlLWxvdmVyKDEwMCk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHRpbnB1dFt0eXBlPSd0ZXh0J10sXG5cdGlucHV0W3R5cGU9J2VtYWlsJ10sXG5cdHRleHRhcmVhIHtcblx0XHQvKiBPdGhlciAqL1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHQvKiBCb3ggKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAwIDAgc3BhY2UtbG92ZXIoNTApIDA7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qIEJvcmRlciAqL1xuXHRcdGJvcmRlcjogMCBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IDAgc29saWQgJGdyYXkxNTA7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogJGJvcmRlclRoaW47XG5cblx0XHQvKiBUZXh0ICovXG5cdFx0Zm9udC1mYW1pbHk6ICRzZXJpZkZvbnRGYW1pbHk7XG5cdFx0Y29sb3I6ICRhbnRocmFjaXRlO1xuXHRcdEBpbmNsdWRlIHNldFR5cGUoJGJvZHlGb250U2l6ZSwgJGlucHV0SGVpZ2h0KTtcblx0fVxuXG5cdHRleHRhcmVhIHtcblx0XHQvKiBCb3JkZXIgKi9cblx0XHRib3JkZXI6IDAgbm9uZTtcblxuXHRcdC8qIEJhY2tncm91bmQgKi9cblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy90ZXh0YXJlYV9iZy5wbmcpIHRvcCBsZWZ0IHJlcGVhdCB0cmFuc3BhcmVudDtcblx0XHRsaW5lLWhlaWdodDogJHRleHRhcmVhTGluZUhlaWdodDtcblx0XHRyZXNpemU6IG5vbmU7XG5cdH1cblxuXHRidXR0b25bdHlwZT0nc3VibWl0J10ge1xuXHRcdEBleHRlbmQgJWJ0bjtcblxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogc3BhY2UtbG92ZXIoNDAwKTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDUwcmVtO1xuXG5cdFx0JjpkaXNhYmxlZCB7XG5cdFx0XHRAZXh0ZW5kIC5idG4tLWRpc2FibGVkO1xuXHRcdH1cblx0fVxuXG5cdC5zY3JlZW4tcmVhZGVyLXJlc3BvbnNlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblx0fVxuXG5cdC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LWZhbWlseTogJHNhbnNGb250RmFtaWx5O1xuXHRcdGZvbnQtd2VpZ2h0OiAkbm9ybWFsRm9udFdlaWdodDtcblx0XHRjb2xvcjogJGVycm9yVGV4dENvbG9yO1xuXHRcdEBpbmNsdWRlIHNldFR5cGUoJHNtYWxsRm9udFNpemUsICRzbWFsbExpbmVIZWlnaHQpO1xuXHRcdEBpbmNsdWRlIHNwYWNlLWxvdmVyKDIwMCk7XG5cblx0XHQmLmludmlzaWJsZSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFjZS1sb3ZlcigxNTApO1xuXHRcdH1cblx0fVxuXG5cdCZfX3N0YXR1cyB7XG5cdFx0bWFyZ2luOiBzcGFjZS1sb3ZlcigyMDApIDAgMDtcblx0fVxuXG5cdC53cGNmNy1yZXNwb25zZS1vdXRwdXQsXG5cdC5lcnJvciB7XG5cdFx0Y29sb3I6ICRlcnJvclRleHRDb2xvcjtcblx0fVxuXG5cdC53cGNmNy1tYWlsLXNlbnQtb2ssXG5cdC5zdWNjZXNzIHtcblx0XHRjb2xvcjogJHN1Y2Nlc3NUZXh0Q29sb3I7XG5cdH1cblxuXHQubG9hZGluZyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdCYuaW52aXNpYmxlIHtcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR9XG5cblx0XHQuc3Bpbm5lciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMC44cmVtO1xuXHRcdH1cblx0fVxufVxuXG4jY29tbWVudGZvcm0ge1xuXHRsYWJlbCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoMTAwKTtcblx0XHR9XG5cdH1cblxuXHRpbnB1dFt0eXBlPSd0ZXh0J10sXG5cdGlucHV0W3R5cGU9J2VtYWlsJ10sXG5cdHRleHRhcmVhIHtcblx0XHRAaW5jbHVkZSBzcGFjZS1sb3ZlcigyMDApO1xuXHR9XG5cblx0YnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdH1cbn1cbiIsIi5zZWN0aW9uIHtcblx0Ly9wYWRkaW5nOiAkc2VjdGlvblNwYWNlIC0gKCRzZXBhcmF0b3JJbWFnZUhlaWdodCAvIDIpIDAgJHNlY3Rpb25TcGFjZSArIHNwYWNlLWxvdmVyKDIwMCkgMDtcblx0cGFkZGluZzogMCAwICRzZWN0aW9uU3BhY2UgKyBzcGFjZS1sb3ZlcigyMDApO1xuXG5cdC8qIEJhY2tncm91bmQgKi9cblx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXhcblx0XHR0cmFuc3BhcmVudDtcblxuXHQvKiBSZXRpbmEgZGlzcGxheSBydWxlcyAqL1xuXHRAbWVkaWEgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteFxuXHRcdFx0dHJhbnNwYXJlbnQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAwLjRyZW0gOC40cmVtO1xuXHR9XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRwYWRkaW5nOiAkc2VjdGlvblNwYWNlTGFyZ2UgLSAoJHNlcGFyYXRvckltYWdlSGVpZ2h0IC8gMikgMFxuXHRcdFx0JHNlY3Rpb25TcGFjZUxhcmdlICsgc3BhY2UtbG92ZXIoMjAwKSAwO1xuXHR9XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cdCZfX3RpdGxlIHtcblx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBzcGFjZS1sb3Zlcig2MDApO1xuXHRcdH1cblx0fVxuXG5cdCY6bGFzdC1vZi10eXBlIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogc3BhY2UtbG92ZXIoNDAwKTtcblx0fVxuXG5cdC5wcml2YWN5ICYge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbn1cbiIsIi5zZXJ2aWNlcyB7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzL3NlcGFyYXRvckAxeC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14LFxuXHRcdFx0dXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfYmcuc3ZnKSAwIDEwMHB4IHJlcGVhdC14XG5cdFx0XHRcdHRyYW5zcGFyZW50O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDk4NXB4IDQzM3B4O1xuXG5cdFx0Lm5vLWNzc2FuaW1hdGlvbnMgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCxcblx0XHRcdFx0dXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfY2xvdWRzX2JnQDF4LnBuZykgMCAxMDBweFxuXHRcdFx0XHRcdHJlcGVhdC14LFxuXHRcdFx0XHR1cmwoLi4vX2ltYWdlcy8wMl9zZXJ2aWNlcy9zZXJ2aWNlc19iZ0AxeC5wbmcpIDAgMTAwcHggcmVwZWF0LXhcblx0XHRcdFx0XHR0cmFuc3BhcmVudDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDk4NXB4IDQzM3B4LCA5ODVweCA0MzNweDtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KFxuXHRcdCcobWluLXdpZHRoOiN7JGh1Z2Utd2lkdGh9KWFuZChtaW4tcmVzb2x1dGlvbjoxOTJkcGkpJ1xuXHQpIHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCxcblx0XHRcdHVybCguLi9faW1hZ2VzLzAyX3NlcnZpY2VzL3NlcnZpY2VzX2JnLnN2ZykgMCAxMDBweCByZXBlYXQteFxuXHRcdFx0XHR0cmFuc3BhcmVudDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA5ODVweCA0MzNweDtcblxuXHRcdC5uby1jc3NhbmltYXRpb25zICYge1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDJ4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzAyX3NlcnZpY2VzL3NlcnZpY2VzX2Nsb3Vkc19iZ0AyeC5wbmcpIDAgMTAwcHhcblx0XHRcdFx0XHRyZXBlYXQteCxcblx0XHRcdFx0dXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfYmdAMngucG5nKSAwIDEwMHB4IHJlcGVhdC14XG5cdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA5ODVweCA0MzNweCwgOTg1cHggNDMzcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5zZXJ2aWNlIHtcblx0QGV4dGVuZCAldG9wLXNlcGFyYXRvcjtcblx0Ji0tcGxhaW4ge1xuXHRcdGJvcmRlcjogMCBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwIG5vbmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoNDAwKTtcblx0fVxuXHQmX19pbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblx0LnMtLWNpcmN1bGFyIHtcblx0XHRtYXJnaW46IDAgYXV0byBzcGFjZS1sb3ZlcigyNTApO1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRtYXJnaW4tdG9wOiBzcGFjZS1sb3Zlcig4MDApO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5zX19pbWctLXVuZGVyc3RhbmQsXG4uc19faW1nLS1kZXNpZ24sXG4uc19faW1nLS1kZXZlbG9wLFxuLnNfX2ltZy0tZ3JvdyB7XG5cdHdpZHRoOiA0MDAlO1xuXHRtYXgtd2lkdGg6IDQwMCU7XG59XG5cbi5zX19pbWctLWRlc2lnbixcbi5zX19pbWctLWRldmVsb3AsXG4uc19faW1nLS1ncm93IHtcblx0bWFyZ2luLXRvcDogMTAlO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi5zX19pbWctLWRlc2lnbiB7XG5cdG1hcmdpbi1sZWZ0OiAtOTAlO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRtYXJnaW4tbGVmdDogLTEwMCU7XG5cdH1cbn1cblxuLnNfX2ltZy0tZGV2ZWxvcCB7XG5cdG1hcmdpbi1sZWZ0OiAtMTkwJTtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yMDAlO1xuXHR9XG59XG5cbi5zX19pbWctLWdyb3cge1xuXHRtYXJnaW4tbGVmdDogLTI5MCU7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG1hcmdpbi1sZWZ0OiAtMzAwJTtcblx0fVxufVxuXG4udG9vbCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBhZGRpbmctdG9wOiBzcGFjZS1sb3ZlcigxMDApO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0Ym9yZGVyLXRvcDogMCBkb3R0ZWQgJGdyYXkxNTA7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogJGJvcmRlck5vcm1hbDtcblx0XHRwYWRkaW5nOiBzcGFjZS1sb3ZlcigyMDApIC0gJGJvcmRlck5vcm1hbCAwIHNwYWNlLWxvdmVyKDIwMCk7XG5cdH1cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdFx0Ym9yZGVyOiAwIG5vbmU7XG5cdFx0fVxuXHR9XG5cdCZfX2ltZyB7XG5cdFx0Zm9udC1zaXplOiAkYm9keUZvbnRTaXplICogMjtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHR3aWR0aDogc3BhbigyIG9mIDEyKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0XHR3aWR0aDogc3BhbigxIG9mIDEyKTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0XHRmb250LXNpemU6ICRib2R5Rm9udFNpemUgKiAyLjU7XG5cdFx0fVxuXHR9XG5cdCZfX2Rlc2Mge1xuXHRcdHdpZHRoOiBzcGFuKDEwIG9mIDEyKTtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogZ3V0dGVyKDQpO1xuXHRcdFx0d2lkdGg6IHNwYW4oMTEgb2YgMTIpO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIud29yayB7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHR1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfYmdAMXgucG5nKSAwIDE5MHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuXG5cdFx0Lm5vLWNzc2FuaW1hdGlvbnMgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCxcblx0XHRcdFx0dXJsKC4uL19pbWFnZXMvMDNfd29yay93b3JrX3BsYW5lX2JnQDF4LnBuZykgMiUgNTYwcHggbm8tcmVwZWF0LFxuXHRcdFx0XHR1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfYmdAMXgucG5nKSAwIDE5MHB4IHJlcGVhdC14XG5cdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCAxMTdweCA2MnB4LCAxNDQwcHggNjc1cHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChcblx0XHQnKG1pbi13aWR0aDojeyRodWdlLXdpZHRofSlhbmQobWluLXJlc29sdXRpb246MTkyZHBpKSdcblx0KSB7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDJ4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHR1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfYmdAMngucG5nKSAwIDE5MHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDE0NDBweCA2NzVweDtcblxuXHRcdC5uby1jc3NhbmltYXRpb25zICYge1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDJ4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzAzX3dvcmsvd29ya19wbGFuZV9iZ0AyeC5wbmcpIDIlIDU2MHB4IG5vLXJlcGVhdCxcblx0XHRcdFx0dXJsKC4uL19pbWFnZXMvMDNfd29yay93b3JrX2JnQDJ4LnBuZykgMCAxOTBweCByZXBlYXQteFxuXHRcdFx0XHRcdHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgMTE3cHggNjJweCwgMTQ0MHB4IDY3NXB4O1xuXHRcdH1cblx0fVxuXG5cdGgyIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cblxuLnNfX2ltZy0tbG9nbyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDE4MDAlO1xuXHRtYXgtd2lkdGg6IDE4MDAlO1xufVxuXG4ucy0tcmVmZXJlbmNlcyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW4tbGVmdDogc3BhY2UtbG92ZXIoMTAwKTtcblx0bWFyZ2luLXJpZ2h0OiBzcGFjZS1sb3ZlcigxMDApO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxMzBweCwgMWZyKSk7XG5cblx0XHQmLmNmOmFmdGVyLFxuXHRcdCYuY2Y6YmVmb3JlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRsYXJnZS13aWR0aCkge1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cdH1cblxuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuXHR9XG59XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtIHtcblx0d2lkdGg6IDQ5JTtcblxuXHRAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbGFyZ2Utd2lkdGgpIHtcblx0XHR3aWR0aDogMzMlO1xuXHRcdEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuXHRcdFx0d2lkdGg6IDc1JTtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHR3aWR0aDogMTYlO1xuXG5cdFx0QHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDIpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtMTAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDMpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtMjAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDQpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtMzAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDUpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtNDAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDYpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtNTAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDcpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtNjAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDgpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtNzAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDkpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtODAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDEwKSAuc19faW1nLS1sb2dvIHtcblx0bGVmdDogLTkwMCU7XG59XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxMSkgLnNfX2ltZy0tbG9nbyB7XG5cdGxlZnQ6IC0xMDAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDEyKSAuc19faW1nLS1sb2dvIHtcblx0bGVmdDogLTExMDAlO1xufVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMTMpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtMTIwMCU7XG59XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxNCkgLnNfX2ltZy0tbG9nbyB7XG5cdGxlZnQ6IC0xMzAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDE1KSAuc19faW1nLS1sb2dvIHtcblx0bGVmdDogLTE0MDAlO1xufVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMTYpIC5zX19pbWctLWxvZ28ge1xuXHRsZWZ0OiAtMTUwMCU7XG59XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxNykgLnNfX2ltZy0tbG9nbyB7XG5cdGxlZnQ6IC0xNjAwJTtcbn1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDE4KSAuc19faW1nLS1sb2dvIHtcblx0bGVmdDogLTE3MDAlO1xufVxuIiwiLmwtLWFib3V0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG4uYWJvdXQge1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCxcblx0XHRcdHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X2NpdHlfYmdAMXgucG5nKSBjYWxjKDUwJSArIDE0MHB4KVxuXHRcdFx0XHQxMzBweCByZXBlYXQteCB0cmFuc3BhcmVudDtcblxuXHRcdC5uby1jc3NhbmltYXRpb25zICYge1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X3plcHBlbGluX2JnQDF4LnBuZykgOTAlIDE2MHB4XG5cdFx0XHRcdFx0bm8tcmVwZWF0LFxuXHRcdFx0XHR1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF9jaXR5X2JnQDF4LnBuZykgY2FsYyg1MCUgKyAxNDBweClcblx0XHRcdFx0XHQxMzBweCByZXBlYXQteCB0cmFuc3BhcmVudDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDY5cHggMzlweCwgMjAwMHB4IDM5MHB4O1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChcblx0XHQnKG1pbi13aWR0aDojeyRodWdlLXdpZHRofSlhbmQobWluLXJlc29sdXRpb246MTkyZHBpKSdcblx0KSB7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDJ4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsXG5cdFx0XHR1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF9jaXR5X2JnQDJ4LnBuZykgY2FsYyg1MCUgKyAxNDBweClcblx0XHRcdFx0MTMwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgMjAwMHB4IDM5MHB4O1xuXG5cdFx0Lm5vLWNzc2FuaW1hdGlvbnMgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCxcblx0XHRcdFx0dXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfemVwcGVsaW5fYmdAMngucG5nKSA5MCUgMTYwcHhcblx0XHRcdFx0XHRuby1yZXBlYXQsXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X2NpdHlfYmdAMngucG5nKSBjYWxjKDUwJSArIDE0MHB4KVxuXHRcdFx0XHRcdDEzMHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgNjlweCAzOXB4LCAyMDAwcHggMzkwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi50ZWFtIHtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0bWFyZ2luOiAwIGF1dG8gc3BhY2UtbG92ZXIoNDAwKTtcblx0XHR3aWR0aDogNjAlO1xuXHR9XG5cblx0Jl9faW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4vLyBTZWN0aW9uIG9yZGVyaW5nXG5cbi53aG8sXG4uaG93LFxuLnRwLFxuLnR6LFxuLmpvYnMge1xuXHRAZXh0ZW5kICV0b3Atc2VwYXJhdG9yO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDAgbm9uZTtcblx0fVxuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRwYWRkaW5nOiBzcGFjZS1sb3ZlcigyMDApIHNwYWNlLWxvdmVyKDEwMCkgMDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzLS1yb3VuZDtcblx0fVxufVxuXG4udHAge1xuXHRvcmRlcjogMztcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0b3JkZXI6IDE7XG5cdH1cbn1cblxuLnR6IHtcblx0b3JkZXI6IDQ7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG9yZGVyOiAyO1xuXHR9XG59XG5cbi5qb2JzIHtcblx0b3JkZXI6IDU7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG9yZGVyOiAzO1xuXHR9XG59XG5cbi53aG8ge1xuXHRib3JkZXI6IDAgbm9uZTtcblx0cGFkZGluZy10b3A6IDA7XG5cdG9yZGVyOiAxO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRvcmRlcjogNDtcblx0XHRwYWRkaW5nLXRvcDogc3BhY2UtbG92ZXIoMjAwKTtcblx0fVxufVxuXG4uaG93IHtcblx0b3JkZXI6IDI7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG9yZGVyOiA1O1xuXHR9XG59XG5cbi8vIEltYWdlIEhvdmVyaW5nXG5cbi50cCxcbi50eixcbi5qb2JzIHtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0d2lkdGg6IHNwYW4oNCBvZiAkaHVnZS1jb2xzKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGxpbmVhcjtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiA1MCU7XG5cdFx0XHR0b3A6IC0je3NwYWNlLWxvdmVyKDUwMCl9O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHotaW5kZXg6IDk5O1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ3JheTEwMDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJyhtaW4tcmVzb2x1dGlvbjoxOTJkcGkpJykge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X2Fycm93c0AyeC5wbmcpIHRvcFxuXHRcdFx0XHRcdFx0bGVmdCBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA5ODRweCA4NXB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfYXJyb3dzQDF4LnBuZykgdG9wXG5cdFx0XHRcdFx0bGVmdCBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi50ejpob3ZlcjpiZWZvcmUge1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzI4cHggMDtcblx0fVxufVxuXG4uam9iczpob3ZlcjpiZWZvcmUge1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjU2cHggMDtcblx0fVxufVxuXG4vLyBJbWFnZSBQb3NpdGlvbmluZ1xuXG4udHAgLnMtLWNpcmN1bGFyLFxuLnR6IC5zLS1jaXJjdWxhcixcbi5qb2JzIC5zLS1jaXJjdWxhciB7XG5cdG1hcmdpbjogMCBhdXRvIHNwYWNlLWxvdmVyKDI1MCk7XG59XG5cbi50cCAucyxcbi50eiAucyB7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdC8vIHJlc2V0IGNpcnVjbGFyIGRpc3BsYXlcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJvcmRlcjogMCBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogMCBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTMuMXJlbTtcblx0XHRoZWlnaHQ6IDEzLjFyZW07XG5cdH1cbn1cblxuLnRwIC5zIHtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0dG9wOiAtNTcuMXJlbTtcblx0XHRsZWZ0OiAyOC4zcmVtO1xuXHR9XG59XG5cbi50eiAucyB7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdHRvcDogLTQ4LjRyZW07XG5cdFx0bGVmdDogMTAuN3JlbTtcblx0fVxufVxuXG4uc19faW1nLS10cCxcbi5zX19pbWctLXR6LFxuLnNfX2ltZy0tam9icyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAxLjZyZW07XG59XG5cbi5zX19pbWctLXR3aXR0ZXIsXG4uc19faW1nLS14aW5nLFxuLnNfX2ltZy0tbGlua2VkaW4ge1xuXHR3aWR0aDogMzAwJTtcblx0bWF4LXdpZHRoOiAzMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoNzAlKSBjb250cmFzdCgyKTtcblx0dHJhbnNpdGlvbjogZmlsdGVyIDAuM3MgbGluZWFyO1xuXHQmOmhvdmVyIHtcblx0XHRmaWx0ZXI6IG5vbmU7XG5cdH1cbn1cblxuLnNfX2ltZy0teGluZyB7XG5cdGxlZnQ6IC0xMDAlO1xufVxuXG4uc19faW1nLS1saW5rZWRpbiB7XG5cdGxlZnQ6IC0yMDAlO1xufVxuXG4uc19faW1nLS1kcmliYmJsZSB7XG5cdGxlZnQ6IC0zMDAlO1xufVxuXG4uc20ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdCZfX2l0ZW0ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IHNwYWNlLWxvdmVyKDEwMCk7XG5cdFx0d2lkdGg6IHNwYWNlLWxvdmVyKDQwMCk7XG5cdFx0aGVpZ2h0OiBzcGFjZS1sb3Zlcig0MDApO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGxhcmdlLXdpZHRoKSB7XG5cdFx0XHR3aWR0aDogc3BhY2UtbG92ZXIoMzAwKTtcblx0XHRcdGhlaWdodDogc3BhY2UtbG92ZXIoMzAwKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vICA9IExBWU9VVFxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmwtY29udGFjdCB7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdG1hcmdpbi10b3A6IHNwYWNlLWxvdmVyKDIwMCkgKiA4O1xuXG5cdFx0W2xhbmd8PSdlbiddICYge1xuXHRcdFx0bWFyZ2luLXRvcDogc3BhY2UtbG92ZXIoMjAwKSAqIDEwO1xuXHRcdH1cblxuXHRcdD4gKiB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHR9XG5cdH1cbn1cblxuLmxfX2RlY2stY2hhaXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRvcmRlcjogMTtcblx0fVxufVxuXG4ubF9fY29udGFjdC1mb3JtIHtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0b3JkZXI6IDI7XG5cdH1cbn1cblxuLmxfX2FkZHJlc3Mge1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRvcmRlcjogMztcblx0fVxufVxuXG4ubF9fbWFwIHtcblx0QGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdFx0b3JkZXI6IDQ7XG5cdH1cbn1cblxuLmxfX2ltcHJpbnQge1xuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0XHRtYXJnaW4tdG9wOiBzcGFjZS1sb3ZlcigyMDApICogLTY7XG5cdFx0b3JkZXI6IDU7XG5cdH1cbn1cblxuLy8gID0gQ09OVEFDVCBTRUNUVElPTlxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmNvbnRhY3Qge1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9za3lAMXgucG5nKSxcblx0XHRcdHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9iZ0AxeC5wbmcpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDMwcHggMTkwcHg7XG5cdFx0YmFja2dyb3VuZC1zaXplOiA5ODlweCAxMzRweCwgMTQ0MHB4IDQzM3B4O1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdC14O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG5cdFx0Lm5vLWNzc2FuaW1hdGlvbnMgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3Rfc2t5QDF4LnBuZyksXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9ib2F0QDF4LnBuZyksXG5cdFx0XHRcdHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9iZ0AxeC5wbmcpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMzBweCAxOTBweCwgMTQwcHggMzkwcHgsIDMwcHggMTkwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDk4OXB4IDEzNHB4LCAxMDBweCAxMDBweCwgMTQ0MHB4IDQzM3B4O1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgbm8tcmVwZWF0LCByZXBlYXQteDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoXG5cdFx0JyhtaW4td2lkdGg6I3skaHVnZS13aWR0aH0pYW5kKG1pbi1yZXNvbHV0aW9uOjE5MmRwaSknXG5cdCkge1xuXHRcdC8vaGVpZ2h0Ojk1ZW07IC8qIDEzMTJweCAvIDE2cHggKi9cblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3Rfc2t5QDJ4LnBuZyksXG5cdFx0XHR1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYmdAMngucG5nKTtcblxuXHRcdC5uby1jc3NhbmltYXRpb25zICYge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL19pbWFnZXMvMDVfY29udGFjdC9jb250YWN0X3NreUAyeC5wbmcpLFxuXHRcdFx0XHR1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYm9hdEAyeC5wbmcpLFxuXHRcdFx0XHR1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYmdAMngucG5nKTtcblx0XHR9XG5cdH1cblxuXHRoMiB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cdH1cbn1cblxuLnZjYXJkLFxuLmNvbnRhY3QtZm9ybSxcbi5pbXByaW50IHtcblx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoNDAwKTtcbn1cblxuLnZjYXJkIHtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ub3JnLWV4dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHQvLyBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJGh1Z2Utd2lkdGgpIHtcblx0Ly8gXHRkaXNwbGF5OiBpbmxpbmU7XG5cdC8vIFx0JjpiZWZvcmUge1xuXHQvLyBcdFx0Y29udGVudDogJ1xcMDBiN1xcMDBhMCc7XG5cdC8vIFx0fVxuXHQvLyB9XG59XG5cbi8vICA9IERFQ0sgQ0hBSVIgSU1BR0Vcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5kZWNrLWNoYWlyLWltZyB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkaHVnZS13aWR0aCkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4vLyAgPSBNQVBcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5tYXBfY2FudmFzIHtcblx0bWFyZ2luLWJvdHRvbTogc3BhY2UtbG92ZXIoNDAwKTtcbn1cblxuLm1hcF9jYW52YXMgYTpmaXJzdC1jaGlsZCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwLjNyZW07XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0Ym9yZGVyOiAkYm9yZGVyVGhpbiBzb2xpZCAkZ3JheTEwMDtcblx0Ym9yZGVyLXJhZGl1czogJGJvcmRlclJhZGl1cztcblx0Ym94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoJGFudGhyYWNpdGUsIDAuMik7XG5cdG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZpbHRlcjogc2VwaWEoMC4wNyk7XG5cdH1cbn1cbiIsIi53cmFwcGVyIHtcbiAgcGFkZGluZzogMCAxLjJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgIC53cmFwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMi40cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBtYXgtd2lkdGg6IDEwMi40cmVtO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAubCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuMnJlbTsgfVxuICAgIC5sID4gW2NsYXNzKj0nbF9fJ10ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjJyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjJyZW07IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gIC5sX19sYXAtMW9mMSB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gIC5sX19sYXAtMW9mMiB7XG4gICAgd2lkdGg6IDQ4LjcxNzk1JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sX19kZXNrLTFvZjIge1xuICAgIHdpZHRoOiA0OS4xNTI1NCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAubF9fZGVzay0xb2Y0IHtcbiAgICB3aWR0aDogMjMuNzI4ODElOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxfX2Rlc2stMm9mNSB7XG4gICAgd2lkdGg6IDM3LjUlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxfX2Rlc2stM29mNSB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfSB9XG5cbi5jZjpiZWZvcmUsXG4uY2Y6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDIgKi8gfVxuXG4uY2Y6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4ucyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnMtLWNpcmN1bGFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICNmMGVjZWM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZy1ib3R0b206IDQ5JTtcbiAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoNTEsIDQxLCA0MSwgMC4yKTtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5zLS1jaXJjdWxhciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzAlO1xuICAgICAgd2lkdGg6IDMwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAucy0tY2lyY3VsYXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDUwJTtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuXG4uc19faW1nIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5tZWRpYSB7XG4gIG1hcmdpbjogMDsgfVxuICAubWVkaWEgLm1lZGlhX19iZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBfb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgem9vbTogMTsgfVxuICAubWVkaWEgLm1lZGlhX19pbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS4ycmVtOyB9XG4gICAgLm1lZGlhIC5tZWRpYV9faW1nIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWVkaWEgLm1lZGlhX19pbWctLXJldiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07IH1cblxuLnNlcnZpY2UsIC53aG8sXG4uaG93LFxuLnRwLFxuLnR6LFxuLmpvYnMge1xuICBib3JkZXItdG9wOiAwIGRvdHRlZCAjZWRlN2RlO1xuICBib3JkZXItdG9wLXdpZHRoOiAwLjJyZW07XG4gIHBhZGRpbmctdG9wOiA0LjhyZW07IH1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbnBpY3R1cmUgaW1nIHtcbiAgbWF4LXdpZHRoOiBpbml0aWFsOyB9XG5cbi5pbWdfX2NhcHRpb24ge1xuICBmb250LXNpemU6IDEuMjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuYmxvY2txdW90ZSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmJsb2NrcXVvdGUtLXNoaWZ0ZWQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1sZWZ0OiAyLjRyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgIC5ibG9ja3F1b3RlLS1zaGlmdGVkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzLjJyZW07IH0gfVxuICAuYmxvY2txdW90ZS0tc2hpZnRlZCBibG9ja3F1b3RlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtOyB9XG4gICAgLmJsb2NrcXVvdGUtLXNoaWZ0ZWQgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxQyc7XG4gICAgICBmb250LXNpemU6IDMuNzRyZW07XG4gICAgICAvKiA0OHB4IC8gMTZweCAqL1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsZWZ0OiAtMi42cmVtO1xuICAgICAgdG9wOiAtMS41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gICAgICAgIC5ibG9ja3F1b3RlLS1zaGlmdGVkIGJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDUuMXJlbTtcbiAgICAgICAgICBsZWZ0OiAtMy40cmVtO1xuICAgICAgICAgIHRvcDogLTIuNHJlbTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgLmJsb2NrcXVvdGUtLWJ1YmJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNC44cmVtOyB9IH1cblxuLmJsb2NrcXVvdGUtLWJ1YmJsZSBibG9ja3F1b3RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjdyZW07XG4gIG1hcmdpbjogMCAwIDIuNHJlbTtcbiAgYmFja2dyb3VuZDogI2VkZTdkZTtcbiAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoNTEsIDQxLCA0MSwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtOyB9XG5cbi5ibG9ja3F1b3RlLS1oYXMtc291cmNlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZpbHRlcjogc2F0dXJhdGUoMC43KSBicmlnaHRuZXNzKDEuMDQpOyB9XG4gIC5ibG9ja3F1b3RlLS1oYXMtc291cmNlIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGxlZnQ6IDIwJTtcbiAgICBib3JkZXI6IDFyZW0gc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZWRlN2RlICNlZGU3ZGU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgYm94LXNoYWRvdzogLTJweCAycHggM3B4IHJnYmEoNTEsIDQxLCA0MSwgMC4yKTsgfVxuXG4uYmxvY2txdW90ZS0taGFzLXNvdXJjZSBmaWdjYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMCAyLjRyZW07IH1cblxuZmlnY2FwdGlvbiBzbWFsbCB7XG4gIGNvbG9yOiAjODA2NTY1O1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYnRuLCAuYnRuLWdyb3VwIC5idG4tZ3JvdXBfX2J0biwgLmJ0bi1kcm9wZG93biAuYnRuLWRyb3Bkb3duX190b2dnbGUsXG4ud3BjZjcgYnV0dG9uW3R5cGU9J3N1Ym1pdCddLFxuLmZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddLFxuI2NvbW1lbnRmb3JtIGJ1dHRvblt0eXBlPSdzdWJtaXQnXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXI6IDAgc29saWQgIzI0NmViMjtcbiAgYm9yZGVyLXdpZHRoOiAwLjFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNnJlbTtcbiAgYmFja2dyb3VuZDogIzI0NmViMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzI0NmViMiwgIzI0NmViMik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcImhlYWRpbmdcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcztcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5idG46aG92ZXIsIC5idG4tZ3JvdXAgLmJ0bi1ncm91cF9fYnRuOmhvdmVyLCAuYnRuLWRyb3Bkb3duIC5idG4tZHJvcGRvd25fX3RvZ2dsZTpob3ZlcixcbiAgLndwY2Y3IGJ1dHRvblt0eXBlPSdzdWJtaXQnXTpob3ZlcixcbiAgLmZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmhvdmVyLFxuICAjY29tbWVudGZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMjg3YmM3LCAjMjA2MTlkKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnRuOmFjdGl2ZSwgLmJ0bi1ncm91cCAuYnRuLWdyb3VwX19idG46YWN0aXZlLCAuYnRuLWRyb3Bkb3duIC5idG4tZHJvcGRvd25fX3RvZ2dsZTphY3RpdmUsIC5idG46Zm9jdXMsIC5idG4tZ3JvdXAgLmJ0bi1ncm91cF9fYnRuOmZvY3VzLCAuYnRuLWRyb3Bkb3duIC5idG4tZHJvcGRvd25fX3RvZ2dsZTpmb2N1cyxcbiAgLndwY2Y3IGJ1dHRvblt0eXBlPSdzdWJtaXQnXTphY3RpdmUsXG4gIC5mb3JtIGJ1dHRvblt0eXBlPSdzdWJtaXQnXTphY3RpdmUsXG4gICNjb21tZW50Zm9ybSBidXR0b25bdHlwZT0nc3VibWl0J106YWN0aXZlLFxuICAud3BjZjcgYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmZvY3VzLFxuICAuZm9ybSBidXR0b25bdHlwZT0nc3VibWl0J106Zm9jdXMsXG4gICNjb21tZW50Zm9ybSBidXR0b25bdHlwZT0nc3VibWl0J106Zm9jdXMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyNDZlYjIsICMyNDZlYjIpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmJ0bi0td2l0aC1pY29uIFtjbGFzcyo9J2ljb24tJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcbiAgZm9udC1zaXplOiAxLjdyZW07IH1cblxuLmJ0bi0tbGFyZ2Uge1xuICBwYWRkaW5nOiAyLjlyZW0gMi40cmVtO1xuICBmb250LXNpemU6IDEuMnJlbTsgfVxuXG4uYnRuLS1odWdlIHtcbiAgcGFkZGluZzogOC45cmVtIDQuOHJlbTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiA5cmVtOyB9XG5cbi5idG4tLXJpZ2h0LWFsaWduZWQge1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLmJ0bi0tcHJpbWFyeSB7XG4gIGJvcmRlci1jb2xvcjogI2I2MzQzNDtcbiAgYmFja2dyb3VuZDogI2NjM2QzZDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2NjM2QzZCwgI2M2MzQzNCk7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5idG4tLXByaW1hcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNjZTQ1NDUsICNiZTMyMzIpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idG4tLXByaW1hcnk6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzYzNDM0LCAjY2MzZDNkKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5idG4tLXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICNiM2Q4NDQ7XG4gIGJhY2tncm91bmQ6ICNiZmUwNWE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNiZmUwNWEsICNiYWRlNGQpO1xuICBjb2xvcjogIzMzMjkyOTsgfVxuICAuYnRuLS1zdWNjZXNzOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzJlMjYzLCAjYjdkYzQ1KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBjb2xvcjogIzMzMjkyOTsgfVxuICAuYnRuLS1zdWNjZXNzOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2JhZGU0ZCwgI2JmZTA1YSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uYnRuLS1kaXNhYmxlZCwgLndwY2Y3IGJ1dHRvblt0eXBlPSdzdWJtaXQnXTpkaXNhYmxlZCxcbi5mb3JtIGJ1dHRvblt0eXBlPSdzdWJtaXQnXTpkaXNhYmxlZCxcbiNjb21tZW50Zm9ybSBidXR0b25bdHlwZT0nc3VibWl0J106ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmN2Y1ZjU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjY2VjMGMwO1xuICB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuICAuYnRuLS1kaXNhYmxlZDpob3ZlciwgLndwY2Y3IGJ1dHRvblt0eXBlPSdzdWJtaXQnXTpob3ZlcjpkaXNhYmxlZCxcbiAgLmZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmhvdmVyOmRpc2FibGVkLFxuICAjY29tbWVudGZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmhvdmVyOmRpc2FibGVkLCAuYnRuLS1kaXNhYmxlZDphY3RpdmUsIC53cGNmNyBidXR0b25bdHlwZT0nc3VibWl0J106YWN0aXZlOmRpc2FibGVkLFxuICAuZm9ybSBidXR0b25bdHlwZT0nc3VibWl0J106YWN0aXZlOmRpc2FibGVkLFxuICAjY29tbWVudGZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddOmFjdGl2ZTpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAjY2VjMGMwO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwX19idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5idG4tZ3JvdXAgLmJ0bi1ncm91cF9fYnRuOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjJyZW07XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4ycmVtO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxuICAuYnRuLWdyb3VwIC5idG4tZ3JvdXBfX2J0bjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4ycmVtO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjJyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmJ0bi1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5idG4tZHJvcGRvd24gLmJ0bi1kcm9wZG93bl9fbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtYXJnaW4tdG9wOiAtMi40cmVtO1xuICAgIHBhZGRpbmc6IDIuOXJlbSAwO1xuICAgIGJvcmRlcjogMCBzb2xpZCAjZjBlY2VjO1xuICAgIGJvcmRlci13aWR0aDogMC4xcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGJveC1zaGFkb3c6IDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgLmJ0bi1kcm9wZG93biAuYnRuLWRyb3Bkb3duX19tZW51IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nOiAwIDEuMnJlbTsgfVxuXG4ub3BlbiA+IC5idG4tZHJvcGRvd25fX21lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5Aa2V5ZnJhbWVzICgkc3Bpbm5lci1yb3RhdGUtcmlnaHQpIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzICgkc3Bpbm5lci1yb3RhdGUtbGVmdCkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4uc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgd2lkdGg6IDIuNHJlbTtcbiAgaGVpZ2h0OiAyLjRyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IDIuNHJlbTsgfVxuICAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZSAuc3Bpbm5lcl9fZmlsbCB7XG4gICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogIzI0NmViMjtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbiAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgICAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZS5zcGlubmVyLS1sZWZ0IHtcbiAgICAgIGxlZnQ6IDA7IH1cbiAgICAgIC5zcGlubmVyIC5zcGlubmVyX19zaWRlLnNwaW5uZXItLWxlZnQgLnNwaW5uZXJfX2ZpbGwge1xuICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbm5lci1yb3RhdGUtbGVmdDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgICAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZS5zcGlubmVyLS1yaWdodCB7XG4gICAgICBsZWZ0OiA1MCU7IH1cbiAgICAgIC5zcGlubmVyIC5zcGlubmVyX19zaWRlLnNwaW5uZXItLXJpZ2h0IC5zcGlubmVyX19maWxsIHtcbiAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW5uZXItcm90YXRlLXJpZ2h0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAuc3Bpbm5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc3Bpbm5lci0taGFzLWhvbGUgLnNwaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW4tYm90dG9tOiAyLjRyZW07IH1cbiAgLnNwaW5uZXItLWhhcy1ob2xlIC5zcGlubmVyIC5zcGlubmVyX19zaWRlIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5zcGlubmVyLS1oYXMtaG9sZSAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZSAuc3Bpbm5lcl9fZmlsbCB7XG4gICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogIzI0NmViMjtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbiAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgICAuc3Bpbm5lci0taGFzLWhvbGUgLnNwaW5uZXIgLnNwaW5uZXJfX3NpZGUuc3Bpbm5lci0tbGVmdCB7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgICAuc3Bpbm5lci0taGFzLWhvbGUgLnNwaW5uZXIgLnNwaW5uZXJfX3NpZGUuc3Bpbm5lci0tbGVmdCAuc3Bpbm5lcl9fZmlsbCB7XG4gICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGlubmVyLXJvdGF0ZS1sZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAgIC5zcGlubmVyLS1oYXMtaG9sZSAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZS5zcGlubmVyLS1yaWdodCB7XG4gICAgICBsZWZ0OiA1MCU7IH1cbiAgICAgIC5zcGlubmVyLS1oYXMtaG9sZSAuc3Bpbm5lciAuc3Bpbm5lcl9fc2lkZS5zcGlubmVyLS1yaWdodCAuc3Bpbm5lcl9fZmlsbCB7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGlubmVyLXJvdGF0ZS1yaWdodDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgLnNwaW5uZXItLWhhcy1ob2xlIC5zcGlubmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogUHJvdmlkZSBwYWdlIHRvcCBsaW5rIGZvciBzbWFsbCBzY3JlZW4gZGV2aWNlcyAqL1xuYS50b3Age1xuICB3aWR0aDogNC4ycmVtO1xuICBoZWlnaHQ6IDQuMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjMjQ2ZWIyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgbWFyZ2luOiAyLjRyZW0gYXV0byAwO1xuICBvcGFjaXR5OiAwLjE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgIGEudG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBhLnRvcCAuaWNvbiB7XG4gICAgbWFyZ2luLXRvcDogLTAuM3JlbTsgfVxuXG5hLnRvcDpob3ZlcixcbmEudG9wOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuMjU7IH1cblxuLmdyaWQge1xuICBtYXJnaW4tbGVmdDogMS4ycmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gICAgLmdyaWQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmdyaWQge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICAgIGdyaWQtZ2FwOiAyLjRyZW07IH0gfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG4gIC5ncmlkX19pdGVtIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAzcHggcmdiYSg1MSwgNDEsIDQxLCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjZjBlY2VjO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAgIC5ncmlkX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4ycmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyLjRyZW07IH1cbiAgICAgICAgLmdyaWRfX2l0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdyaWRfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAoMi40cmVtICogMiAvIDMpKTsgfVxuICAgICAgICAuZ3JpZF9faXRlbTpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuNHJlbTsgfVxuICAgICAgICAuZ3JpZF9faXRlbTpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgICAgICAuZ3JpZF9faXRlbSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfSB9XG4gICAgLmdyaWRfX2l0ZW06YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEycmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzcsIDIzMSwgMjIyLCAwLjI1KTtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIC5ncmlkX19pdGVtLWltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWF4LWhlaWdodDogMTJyZW07XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICAgICAgLndmbSAuZ3JpZF9faXRlbS1pbWcge1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IHRvcDsgfVxuICAgICAgLnNpZW1lbnMgLmdyaWRfX2l0ZW0taW1nIHtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiAxMDAlIDg1JTsgfVxuICAgIC5ncmlkX19pdGVtLWNhcHRpb24ge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxNXB4IDE1cHggLTIwcHggcmdiYSg1MSwgNDEsIDQxLCAwLjUpO1xuICAgICAgcGFkZGluZzogMi40cmVtIDEuMnJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgICAgICAuZ3JpZF9faXRlbS1jYXB0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nOiAyLjRyZW07IH0gfVxuICAgICAgLmdyaWRfX2l0ZW0tY2FwdGlvbl9fdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgICAgICAgIC5ncmlkX19pdGVtLWNhcHRpb25fX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTsgfSB9XG4gICAgICAuZ3JpZF9faXRlbS1jYXB0aW9uX19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgICAgICAuZ3JpZF9faXRlbS1jYXB0aW9uX19sb2dvIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjhyZW07XG4gICAgICAgICAgd2lkdGg6IDUwJTsgfVxuICAgICAgICAgIC50ZmMgLmdyaWRfX2l0ZW0tY2FwdGlvbl9fbG9nbyxcbiAgICAgICAgICAud2ZtIC5ncmlkX19pdGVtLWNhcHRpb25fX2xvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IDE1JTsgfVxuICAgICAgICAgIC5hY2FkZW1pY3MgLmdyaWRfX2l0ZW0tY2FwdGlvbl9fbG9nbyB7XG4gICAgICAgICAgICB3aWR0aDogNjAlOyB9IH1cbiAgICAgIC5ncmlkX19pdGVtLWNhcHRpb25fX2xvZ28gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAgICAgLmdyaWRfX2l0ZW0tY2FwdGlvbl9fdGVzdGltb25pYWwgLm1lZGlhX19pbWcge1xuICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDMwJTsgfVxuICAgICAgICAgIC5ncmlkX19pdGVtLWNhcHRpb25fX3Rlc3RpbW9uaWFsIC5tZWRpYV9faW1nIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwNSU7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmdyaWRfX2l0ZW0tY2FwdGlvbl9fdGVzdGltb25pYWwgLm1lZGlhX19pbWcge1xuICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDQwJTsgfSB9XG5cbi53cGNmNyxcbi5mb3JtLFxuI2NvbW1lbnRmb3JtIHtcbiAgcGFkZGluZzogMS4ycmVtIDEuMnJlbSAyLjRyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICNmMGVjZWM7XG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoNTEsIDQxLCA0MSwgMC4yKTsgfVxuICAud3BjZjcgbGFiZWwsXG4gIC5mb3JtIGxhYmVsLFxuICAjY29tbWVudGZvcm0gbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiBcImhlYWRpbmdcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM3JlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLndwY2Y3IGlucHV0W3R5cGU9J3RleHQnXSxcbiAgLndwY2Y3IGlucHV0W3R5cGU9J2VtYWlsJ10sXG4gIC53cGNmNyB0ZXh0YXJlYSxcbiAgLmZvcm0gaW5wdXRbdHlwZT0ndGV4dCddLFxuICAuZm9ybSBpbnB1dFt0eXBlPSdlbWFpbCddLFxuICAuZm9ybSB0ZXh0YXJlYSxcbiAgI2NvbW1lbnRmb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgI2NvbW1lbnRmb3JtIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4gICNjb21tZW50Zm9ybSB0ZXh0YXJlYSB7XG4gICAgLyogT3RoZXIgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC8qIEJveCAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjZyZW0gMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8qIEJvcmRlciAqL1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDAgc29saWQgI2VkZTdkZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwLjFyZW07XG4gICAgLyogVGV4dCAqL1xuICAgIGZvbnQtZmFtaWx5OiBcImNvcHlcIiwgXCJBcmlhbFwiLCBzZXJpZjtcbiAgICBjb2xvcjogIzMzMjkyOTtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogM3JlbTsgfVxuICAud3BjZjcgdGV4dGFyZWEsXG4gIC5mb3JtIHRleHRhcmVhLFxuICAjY29tbWVudGZvcm0gdGV4dGFyZWEge1xuICAgIC8qIEJvcmRlciAqL1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIC8qIEJhY2tncm91bmQgKi9cbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy90ZXh0YXJlYV9iZy5wbmcpIHRvcCBsZWZ0IHJlcGVhdCB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMy42cmVtO1xuICAgIHJlc2l6ZTogbm9uZTsgfVxuICAud3BjZjcgYnV0dG9uW3R5cGU9J3N1Ym1pdCddLFxuICAuZm9ybSBidXR0b25bdHlwZT0nc3VibWl0J10sXG4gICNjb21tZW50Zm9ybSBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTByZW07IH1cbiAgLndwY2Y3IC5zY3JlZW4tcmVhZGVyLXJlc3BvbnNlLFxuICAuZm9ybSAuc2NyZWVuLXJlYWRlci1yZXNwb25zZSxcbiAgI2NvbW1lbnRmb3JtIC5zY3JlZW4tcmVhZGVyLXJlc3BvbnNlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53cGNmNyAud3BjZjctZm9ybS1jb250cm9sLXdyYXAsXG4gIC5mb3JtIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCxcbiAgI2NvbW1lbnRmb3JtIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLndwY2Y3IC53cGNmNy1ub3QtdmFsaWQtdGlwLFxuICAuZm9ybSAud3BjZjctbm90LXZhbGlkLXRpcCxcbiAgI2NvbW1lbnRmb3JtIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJoZWFkaW5nXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICNjYzNkM2Q7XG4gICAgZm9udC1zaXplOiAxLjI3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTsgfVxuICAgIC53cGNmNyAud3BjZjctbm90LXZhbGlkLXRpcC5pbnZpc2libGUsXG4gICAgLmZvcm0gLndwY2Y3LW5vdC12YWxpZC10aXAuaW52aXNpYmxlLFxuICAgICNjb21tZW50Zm9ybSAud3BjZjctbm90LXZhbGlkLXRpcC5pbnZpc2libGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44cmVtOyB9XG4gIC53cGNmN19fc3RhdHVzLFxuICAuZm9ybV9fc3RhdHVzLFxuICAjY29tbWVudGZvcm1fX3N0YXR1cyB7XG4gICAgbWFyZ2luOiAyLjRyZW0gMCAwOyB9XG4gIC53cGNmNyAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuICAud3BjZjcgLmVycm9yLFxuICAuZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuICAuZm9ybSAuZXJyb3IsXG4gICNjb21tZW50Zm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuICAjY29tbWVudGZvcm0gLmVycm9yIHtcbiAgICBjb2xvcjogI2NjM2QzZDsgfVxuICAud3BjZjcgLndwY2Y3LW1haWwtc2VudC1vayxcbiAgLndwY2Y3IC5zdWNjZXNzLFxuICAuZm9ybSAud3BjZjctbWFpbC1zZW50LW9rLFxuICAuZm9ybSAuc3VjY2VzcyxcbiAgI2NvbW1lbnRmb3JtIC53cGNmNy1tYWlsLXNlbnQtb2ssXG4gICNjb21tZW50Zm9ybSAuc3VjY2VzcyB7XG4gICAgY29sb3I6ICM4MmEyMjc7IH1cbiAgLndwY2Y3IC5sb2FkaW5nLFxuICAuZm9ybSAubG9hZGluZyxcbiAgI2NvbW1lbnRmb3JtIC5sb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLndwY2Y3IC5sb2FkaW5nLmludmlzaWJsZSxcbiAgICAuZm9ybSAubG9hZGluZy5pbnZpc2libGUsXG4gICAgI2NvbW1lbnRmb3JtIC5sb2FkaW5nLmludmlzaWJsZSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAud3BjZjcgLmxvYWRpbmcgLnNwaW5uZXIsXG4gICAgLmZvcm0gLmxvYWRpbmcgLnNwaW5uZXIsXG4gICAgI2NvbW1lbnRmb3JtIC5sb2FkaW5nIC5zcGlubmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjhyZW07IH1cblxuI2NvbW1lbnRmb3JtIGxhYmVsIHtcbiAgbWFyZ2luOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgI2NvbW1lbnRmb3JtIGxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuMnJlbTsgfSB9XG5cbiNjb21tZW50Zm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG4jY29tbWVudGZvcm0gaW5wdXRbdHlwZT0nZW1haWwnXSxcbiNjb21tZW50Zm9ybSB0ZXh0YXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDIuNHJlbTsgfVxuXG4jY29tbWVudGZvcm0gYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZzogMCAwIDkuNnJlbTtcbiAgLyogQmFja2dyb3VuZCAqL1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCB0cmFuc3BhcmVudDtcbiAgLyogUmV0aW5hIGRpc3BsYXkgcnVsZXMgKi8gfVxuICBAbWVkaWEgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAuc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMC40cmVtIDguNHJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAuc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiA1LjRyZW0gMCAxMnJlbSAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2VjdGlvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgIC5zZWN0aW9uX190aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3LjJyZW07IH0gfVxuICAuc2VjdGlvbjpsYXN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjhyZW07IH1cbiAgLnByaXZhY3kgLnNlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNlcnZpY2VzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfYmcuc3ZnKSAwIDEwMHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDk4NXB4IDQzM3B4OyB9XG4gICAgLm5vLWNzc2FuaW1hdGlvbnMgLnNlcnZpY2VzIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzL3NlcGFyYXRvckAxeC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14LCB1cmwoLi4vX2ltYWdlcy8wMl9zZXJ2aWNlcy9zZXJ2aWNlc19jbG91ZHNfYmdAMXgucG5nKSAwIDEwMHB4IHJlcGVhdC14LCB1cmwoLi4vX2ltYWdlcy8wMl9zZXJ2aWNlcy9zZXJ2aWNlc19iZ0AxeC5wbmcpIDAgMTAwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA5ODVweCA0MzNweCwgOTg1cHggNDMzcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gIC5zZXJ2aWNlcyB7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDJ4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsIHVybCguLi9faW1hZ2VzLzAyX3NlcnZpY2VzL3NlcnZpY2VzX2JnLnN2ZykgMCAxMDBweCByZXBlYXQteCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA5ODVweCA0MzNweDsgfVxuICAgIC5uby1jc3NhbmltYXRpb25zIC5zZXJ2aWNlcyB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfY2xvdWRzX2JnQDJ4LnBuZykgMCAxMDBweCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfYmdAMngucG5nKSAwIDEwMHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgOTg1cHggNDMzcHgsIDk4NXB4IDQzM3B4OyB9IH1cblxuLnNlcnZpY2UtLXBsYWluIHtcbiAgYm9yZGVyOiAwIG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAuc2VydmljZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiA0LjhyZW07IH0gfVxuXG4uc2VydmljZV9faW1nIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNlcnZpY2VfX2ltZyBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5zZXJ2aWNlIC5zLS1jaXJjdWxhciB7XG4gIG1hcmdpbjogMCBhdXRvIDNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2VydmljZSAucy0tY2lyY3VsYXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiA5LjZyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5zX19pbWctLXVuZGVyc3RhbmQsXG4uc19faW1nLS1kZXNpZ24sXG4uc19faW1nLS1kZXZlbG9wLFxuLnNfX2ltZy0tZ3JvdyB7XG4gIHdpZHRoOiA0MDAlO1xuICBtYXgtd2lkdGg6IDQwMCU7IH1cblxuLnNfX2ltZy0tZGVzaWduLFxuLnNfX2ltZy0tZGV2ZWxvcCxcbi5zX19pbWctLWdyb3cge1xuICBtYXJnaW4tdG9wOiAxMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc19faW1nLS1kZXNpZ24sXG4gICAgLnNfX2ltZy0tZGV2ZWxvcCxcbiAgICAuc19faW1nLS1ncm93IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4uc19faW1nLS1kZXNpZ24ge1xuICBtYXJnaW4tbGVmdDogLTkwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zX19pbWctLWRlc2lnbiB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwMCU7IH0gfVxuXG4uc19faW1nLS1kZXZlbG9wIHtcbiAgbWFyZ2luLWxlZnQ6IC0xOTAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNfX2ltZy0tZGV2ZWxvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTIwMCU7IH0gfVxuXG4uc19faW1nLS1ncm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0yOTAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNfX2ltZy0tZ3JvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogLTMwMCU7IH0gfVxuXG4udG9vbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAxLjJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM3LjVlbSkge1xuICAgIC50b29sIHtcbiAgICAgIGJvcmRlci10b3A6IDAgZG90dGVkICNlZGU3ZGU7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwLjJyZW07XG4gICAgICBwYWRkaW5nOiAyLjJyZW0gMCAyLjRyZW07IH0gfVxuICAudG9vbDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gICAgICAudG9vbDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogMCBub25lOyB9IH1cbiAgLnRvb2xfX2ltZyB7XG4gICAgZm9udC1zaXplOiAzLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2lkdGg6IDE1LjI1NDI0JTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAgIC50b29sX19pbWcge1xuICAgICAgICB3aWR0aDogNi43Nzk2NiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAudG9vbF9faW1nIHtcbiAgICAgICAgZm9udC1zaXplOiA0LjI1cmVtOyB9IH1cbiAgLnRvb2xfX2Rlc2Mge1xuICAgIHdpZHRoOiA4My4wNTA4NSU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAgIC50b29sX19kZXNjIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1LjI2MzE2JTtcbiAgICAgICAgd2lkdGg6IDkxLjUyNTQyJTsgfSB9XG5cbi53b3JrIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndvcmsge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsIHVybCguLi9faW1hZ2VzLzAzX3dvcmsvd29ya19iZ0AxeC5wbmcpIDAgMTkwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC5uby1jc3NhbmltYXRpb25zIC53b3JrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsIHVybCguLi9faW1hZ2VzLzAzX3dvcmsvd29ya19wbGFuZV9iZ0AxeC5wbmcpIDIlIDU2MHB4IG5vLXJlcGVhdCwgdXJsKC4uL19pbWFnZXMvMDNfd29yay93b3JrX2JnQDF4LnBuZykgMCAxOTBweCByZXBlYXQteCB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgMTE3cHggNjJweCwgMTQ0MHB4IDY3NXB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgIC53b3JrIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzL3NlcGFyYXRvckAyeC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14LCB1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfYmdAMngucG5nKSAwIDE5MHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA0cHggODRweCwgMTQ0MHB4IDY3NXB4OyB9XG4gICAgICAubm8tY3NzYW5pbWF0aW9ucyAud29yayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzL3NlcGFyYXRvckAyeC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14LCB1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfcGxhbmVfYmdAMngucG5nKSAyJSA1NjBweCBuby1yZXBlYXQsIHVybCguLi9faW1hZ2VzLzAzX3dvcmsvd29ya19iZ0AyeC5wbmcpIDAgMTkwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDExN3B4IDYycHgsIDE0NDBweCA2NzVweDsgfSB9XG4gIC53b3JrIGgyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNfX2ltZy0tbG9nbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE4MDAlO1xuICBtYXgtd2lkdGg6IDE4MDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1sZWZ0OiAxLjJyZW07XG4gIG1hcmdpbi1yaWdodDogMS4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5zLS1yZWZlcmVuY2VzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEzMHB4LCAxZnIpKTsgfVxuICAgICAgLnMtLXJlZmVyZW5jZXMuY2Y6YWZ0ZXIsIC5zLS1yZWZlcmVuY2VzLmNmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gICAgLnMtLXJlZmVyZW5jZXMge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnMtLXJlZmVyZW5jZXMge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTsgfSB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtIHtcbiAgd2lkdGg6IDQ5JTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAucy0tcmVmZXJlbmNlc19faXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzNy41ZW0pIHtcbiAgICAucy0tcmVmZXJlbmNlc19faXRlbSB7XG4gICAgICB3aWR0aDogMzMlOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLnMtLXJlZmVyZW5jZXNfX2l0ZW0ge1xuICAgICAgICAgIHdpZHRoOiA3NSU7IH0gfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnMtLXJlZmVyZW5jZXNfX2l0ZW0ge1xuICAgICAgd2lkdGg6IDE2JTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5zLS1yZWZlcmVuY2VzX19pdGVtIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9IH1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDIpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtMTAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMykgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC0yMDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCg0KSAuc19faW1nLS1sb2dvIHtcbiAgbGVmdDogLTMwMCU7IH1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDUpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtNDAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoNikgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC01MDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCg3KSAuc19faW1nLS1sb2dvIHtcbiAgbGVmdDogLTYwMCU7IH1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDgpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtNzAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoOSkgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC04MDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxMCkgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC05MDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxMSkgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC0xMDAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMTIpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtMTEwMCU7IH1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDEzKSAuc19faW1nLS1sb2dvIHtcbiAgbGVmdDogLTEyMDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxNCkgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC0xMzAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMTUpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtMTQwMCU7IH1cblxuLnMtLXJlZmVyZW5jZXNfX2l0ZW06bnRoLWNoaWxkKDE2KSAuc19faW1nLS1sb2dvIHtcbiAgbGVmdDogLTE1MDAlOyB9XG5cbi5zLS1yZWZlcmVuY2VzX19pdGVtOm50aC1jaGlsZCgxNykgLnNfX2ltZy0tbG9nbyB7XG4gIGxlZnQ6IC0xNjAwJTsgfVxuXG4ucy0tcmVmZXJlbmNlc19faXRlbTpudGgtY2hpbGQoMTgpIC5zX19pbWctLWxvZ28ge1xuICBsZWZ0OiAtMTcwMCU7IH1cblxuLmwtLWFib3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5hYm91dCB7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvc2VwYXJhdG9yQDF4LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXgsIHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X2NpdHlfYmdAMXgucG5nKSBjYWxjKDUwJSArIDE0MHB4KSAxMzBweCByZXBlYXQteCB0cmFuc3BhcmVudDsgfVxuICAgIC5uby1jc3NhbmltYXRpb25zIC5hYm91dCB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMXgucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfemVwcGVsaW5fYmdAMXgucG5nKSA5MCUgMTYwcHggbm8tcmVwZWF0LCB1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF9jaXR5X2JnQDF4LnBuZykgY2FsYyg1MCUgKyAxNDBweCkgMTMwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA2OXB4IDM5cHgsIDIwMDBweCAzOTBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgLmFib3V0IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfY2l0eV9iZ0AyeC5wbmcpIGNhbGMoNTAlICsgMTQwcHgpIDEzMHB4IHJlcGVhdC14IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNHB4IDg0cHgsIDIwMDBweCAzOTBweDsgfVxuICAgIC5uby1jc3NhbmltYXRpb25zIC5hYm91dCB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy9zZXBhcmF0b3JAMngucG5nKSBib3R0b20gbGVmdCByZXBlYXQteCwgdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfemVwcGVsaW5fYmdAMngucG5nKSA5MCUgMTYwcHggbm8tcmVwZWF0LCB1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF9jaXR5X2JnQDJ4LnBuZykgY2FsYyg1MCUgKyAxNDBweCkgMTMwcHggcmVwZWF0LXggdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCA4NHB4LCA2OXB4IDM5cHgsIDIwMDBweCAzOTBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50ZWFtIHtcbiAgICBtYXJnaW46IDAgYXV0byA0LjhyZW07XG4gICAgd2lkdGg6IDYwJTsgfSB9XG5cbi50ZWFtX19pbWcge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gIC53aG8sXG4gIC5ob3csXG4gIC50cCxcbiAgLnR6LFxuICAuam9icyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDAgbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53aG8sXG4gIC5ob3csXG4gIC50cCxcbiAgLnR6LFxuICAuam9icyB7XG4gICAgcGFkZGluZzogMi40cmVtIDEuMnJlbSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNnJlbTsgfSB9XG5cbi50cCB7XG4gIG9yZGVyOiAzOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnRwIHtcbiAgICAgIG9yZGVyOiAxOyB9IH1cblxuLnR6IHtcbiAgb3JkZXI6IDQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAudHoge1xuICAgICAgb3JkZXI6IDI7IH0gfVxuXG4uam9icyB7XG4gIG9yZGVyOiA1OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmpvYnMge1xuICAgICAgb3JkZXI6IDM7IH0gfVxuXG4ud2hvIHtcbiAgYm9yZGVyOiAwIG5vbmU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBvcmRlcjogMTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53aG8ge1xuICAgICAgb3JkZXI6IDQ7XG4gICAgICBwYWRkaW5nLXRvcDogMi40cmVtOyB9IH1cblxuLmhvdyB7XG4gIG9yZGVyOiAyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvdyB7XG4gICAgICBvcmRlcjogNTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50cCxcbiAgLnR6LFxuICAuam9icyB7XG4gICAgd2lkdGg6IDMyLjIwMzM5JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGxpbmVhcjsgfVxuICAgIC50cDpiZWZvcmUsXG4gICAgLnR6OmJlZm9yZSxcbiAgICAuam9iczpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNTAlO1xuICAgICAgdG9wOiAtNnJlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiA5OTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyOyB9XG4gICAgLnRwOmhvdmVyLFxuICAgIC50ejpob3ZlcixcbiAgICAuam9iczpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBlY2VjOyB9XG4gICAgICAudHA6aG92ZXI6YmVmb3JlLFxuICAgICAgLnR6OmhvdmVyOmJlZm9yZSxcbiAgICAgIC5qb2JzOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzLzA0X2Fib3V0L2Fib3V0X2Fycm93c0AxeC5wbmcpIHRvcCBsZWZ0IG5vLXJlcGVhdCB0cmFuc3BhcmVudDtcbiAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgICAgIC50cDpob3ZlcjpiZWZvcmUsXG4gICAgICAgIC50ejpob3ZlcjpiZWZvcmUsXG4gICAgICAgIC5qb2JzOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfYXJyb3dzQDJ4LnBuZykgdG9wIGxlZnQgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogOTg0cHggODVweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50ejpob3ZlcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0zMjhweCAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmpvYnM6aG92ZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjU2cHggMDsgfSB9XG5cbi50cCAucy0tY2lyY3VsYXIsXG4udHogLnMtLWNpcmN1bGFyLFxuLmpvYnMgLnMtLWNpcmN1bGFyIHtcbiAgbWFyZ2luOiAwIGF1dG8gM3JlbTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAudHAgLnMsXG4gIC50eiAucyB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IDAgbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEzLjFyZW07XG4gICAgaGVpZ2h0OiAxMy4xcmVtOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRwIC5zIHtcbiAgICB0b3A6IC01Ny4xcmVtO1xuICAgIGxlZnQ6IDI4LjNyZW07IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAudHogLnMge1xuICAgIHRvcDogLTQ4LjRyZW07XG4gICAgbGVmdDogMTAuN3JlbTsgfSB9XG5cbi5zX19pbWctLXRwLFxuLnNfX2ltZy0tdHosXG4uc19faW1nLS1qb2JzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEuNnJlbTsgfVxuXG4uc19faW1nLS10d2l0dGVyLFxuLnNfX2ltZy0teGluZyxcbi5zX19pbWctLWxpbmtlZGluIHtcbiAgd2lkdGg6IDMwMCU7XG4gIG1heC13aWR0aDogMzAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKSBicmlnaHRuZXNzKDcwJSkgY29udHJhc3QoMik7XG4gIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGxpbmVhcjsgfVxuICAuc19faW1nLS10d2l0dGVyOmhvdmVyLFxuICAuc19faW1nLS14aW5nOmhvdmVyLFxuICAuc19faW1nLS1saW5rZWRpbjpob3ZlciB7XG4gICAgZmlsdGVyOiBub25lOyB9XG5cbi5zX19pbWctLXhpbmcge1xuICBsZWZ0OiAtMTAwJTsgfVxuXG4uc19faW1nLS1saW5rZWRpbiB7XG4gIGxlZnQ6IC0yMDAlOyB9XG5cbi5zX19pbWctLWRyaWJiYmxlIHtcbiAgbGVmdDogLTMwMCU7IH1cblxuLnNtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc21fX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcbiAgICB3aWR0aDogNC44cmVtO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzcuNWVtKSB7XG4gICAgICAuc21fX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMy42cmVtO1xuICAgICAgICBoZWlnaHQ6IDMuNnJlbTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sLWNvbnRhY3Qge1xuICAgIG1hcmdpbi10b3A6IDE5LjJyZW07IH1cbiAgICBbbGFuZ3w9J2VuJ10gLmwtY29udGFjdCB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHJlbTsgfVxuICAgIC5sLWNvbnRhY3QgPiAqIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9IH1cblxuLmxfX2RlY2stY2hhaXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxfX2RlY2stY2hhaXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvcmRlcjogMTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sX19jb250YWN0LWZvcm0ge1xuICAgIG9yZGVyOiAyOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxfX2FkZHJlc3Mge1xuICAgIG9yZGVyOiAzOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxfX21hcCB7XG4gICAgb3JkZXI6IDQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAubF9faW1wcmludCB7XG4gICAgbWFyZ2luLXRvcDogLTE0LjRyZW07XG4gICAgb3JkZXI6IDU7IH0gfVxuXG4uY29udGFjdCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY29udGFjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3Rfc2t5QDF4LnBuZyksIHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9iZ0AxeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMzBweCAxOTBweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogOTg5cHggMTM0cHgsIDE0NDBweCA0MzNweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdC14O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC5uby1jc3NhbmltYXRpb25zIC5jb250YWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL19pbWFnZXMvMDVfY29udGFjdC9jb250YWN0X3NreUAxeC5wbmcpLCB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYm9hdEAxeC5wbmcpLCB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYmdAMXgucG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMzBweCAxOTBweCwgMTQwcHggMzkwcHgsIDMwcHggMTkwcHg7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogOTg5cHggMTM0cHgsIDEwMHB4IDEwMHB4LCAxNDQwcHggNDMzcHg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdCwgcmVwZWF0LXg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLmNvbnRhY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL19pbWFnZXMvMDVfY29udGFjdC9jb250YWN0X3NreUAyeC5wbmcpLCB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYmdAMngucG5nKTsgfVxuICAgICAgLm5vLWNzc2FuaW1hdGlvbnMgLmNvbnRhY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3Rfc2t5QDJ4LnBuZyksIHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9ib2F0QDJ4LnBuZyksIHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9iZ0AyeC5wbmcpOyB9IH1cbiAgLmNvbnRhY3QgaDIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY29udGFjdCBoMiB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4udmNhcmQsXG4uY29udGFjdC1mb3JtLFxuLmltcHJpbnQge1xuICBtYXJnaW4tYm90dG9tOiA0LjhyZW07IH1cblxuLnZjYXJkIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi5vcmctZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmRlY2stY2hhaXItaW1nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5kZWNrLWNoYWlyLWltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5tYXBfY2FudmFzIHtcbiAgbWFyZ2luLWJvdHRvbTogNC44cmVtOyB9XG5cbi5tYXBfY2FudmFzIGE6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC4zcmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjZjBlY2VjO1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDUxLCA0MSwgNDEsIDAuMik7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAubWFwX2NhbnZhcyBhOmZpcnN0LWNoaWxkIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmlsdGVyOiBzZXBpYSgwLjA3KTsgfVxuXG4uZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMyOTI5O1xuICBwYWRkaW5nOiAyLjRyZW0gMDtcbiAgY29sb3I6ICNmMGVjZWM7IH1cbiAgLmZvb3RlciBzdmcge1xuICAgIG1heC13aWR0aDogNC44cmVtO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4uZm9vdGVyX190eHQsXG4uZm9vdGVyX19saW5rIHtcbiAgZm9udC1mYW1pbHk6IFwiaGVhZGluZ1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxLjI3NXJlbTsgfVxuXG4uZm9vdGVyX190eHQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5mb290ZXJfX3R4dCBhLFxuICAuZm9vdGVyX190eHQgYTpob3ZlcixcbiAgLmZvb3Rlcl9fdHh0IGE6YWN0aXZlIHtcbiAgICBjb2xvcjogI2YwZWNlYzsgfVxuXG5Aa2V5ZnJhbWVzIGNsb3VkcyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHBsYW5lIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgtNWRlZyk7IH1cbiAgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjglKSB0cmFuc2xhdGVZKC0xMjBweCkgcm90YXRlKDVkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTAlKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgtMTBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBzaGVlcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSByb3RhdGUoMCk7IH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI5JSkgdHJhbnNsYXRlWSg1MHB4KSByb3RhdGUoMCk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU4JSkgdHJhbnNsYXRlWSgtNTBweCkgcm90YXRlKDApOyB9XG4gIDY1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDApOyB9XG4gIDg1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDM2MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBib2F0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApOyB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgdHJhbnNsYXRlWSgzcHgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSB0cmFuc2xhdGVZKDApOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNlcnZpY2VzLWFuaW1hdGlvbixcbiAgLndvcmstYW5pbWF0aW9uLFxuICAuYWJvdXQtYW5pbWF0aW9uLFxuICAuY29udGFjdC1hbmltYXRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgei1pbmRleDogMTsgfVxuICAuc2VydmljZXMtYW5pbWF0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDMwMCU7XG4gICAgaGVpZ2h0OiAxMHJlbTtcbiAgICB0b3A6IDIwcmVtO1xuICAgIGxlZnQ6IC01MCU7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfY2xvdWRzLnN2ZykgMCAwIHJlcGVhdC14O1xuICAgIGFuaW1hdGlvbjogY2xvdWRzIDUwMHMgaW5maW5pdGUgbGluZWFyOyB9XG4gIC53b3JrLWFuaW1hdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNi4ycmVtO1xuICAgIHRvcDogNDVyZW07XG4gICAgbGVmdDogLTEwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfcGxhbmVfYmdAMXgucG5nKSAwIDAgbm8tcmVwZWF0O1xuICAgIGFuaW1hdGlvbjogcGxhbmUgMTBzIGluZmluaXRlIGxpbmVhcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1M3B4IDMxcHg7IH1cbiAgLmFib3V0LWFuaW1hdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMy45cmVtO1xuICAgIHRvcDogMjJyZW07XG4gICAgbGVmdDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF96ZXBwZWxpbl9iZ0AxeC5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgYW5pbWF0aW9uOiBzaGVlcCAyMHMgaW5maW5pdGUgbGluZWFyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDM1cHggLTUwcHg7IH1cbiAgLmNvbnRhY3QtYW5pbWF0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDlyZW07XG4gICAgaGVpZ2h0OiA5cmVtO1xuICAgIHRvcDogNDByZW07XG4gICAgbGVmdDogMTRyZW07XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDVfY29udGFjdC9jb250YWN0X2JvYXRAMXgucG5nKSAwIDAgbm8tcmVwZWF0O1xuICAgIGFuaW1hdGlvbjogYm9hdCAycyBpbmZpbml0ZSBsaW5lYXIgYWx0ZXJuYXRlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAuc2VydmljZXMtYW5pbWF0aW9uLFxuICAud29yay1hbmltYXRpb24sXG4gIC5hYm91dC1hbmltYXRpb24sXG4gIC5jb250YWN0LWFuaW1hdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLndvcmstYW5pbWF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfcGxhbmVfYmdAMngucG5nKSAwIDAgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTE3cHggNjJweDsgfVxuICAuYWJvdXQtYW5pbWF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF96ZXBwZWxpbl9iZ0AyeC5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA2OXB4IDM5cHg7IH1cbiAgLmNvbnRhY3QtYW5pbWF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wNV9jb250YWN0L2NvbnRhY3RfYm9hdEAyeC5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5MHB4IDkwcHg7IH0gfVxuIiwiLmZvb3RlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogJGFudGhyYWNpdGU7XG5cdHBhZGRpbmc6IHNwYWNlLWxvdmVyKDIwMCkgMDtcblx0Y29sb3I6ICRncmF5MTAwO1xuXHRzdmcge1xuXHRcdG1heC13aWR0aDogc3BhY2UtbG92ZXIoNDAwKTtcblx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XG5cdH1cbn1cblxuLmZvb3Rlcl9fdHh0LFxuLmZvb3Rlcl9fbGluayB7XG5cdGZvbnQtZmFtaWx5OiAkc2Fuc0ZvbnRGYW1pbHk7XG5cdGZvbnQtd2VpZ2h0OiAkbm9ybWFsRm9udFdlaWdodDtcblx0Zm9udC1zaXplOiAkc21hbGxGb250U2l6ZTtcbn1cblxuLmZvb3Rlcl9fdHh0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0YSxcblx0YTpob3Zlcixcblx0YTphY3RpdmUge1xuXHRcdGNvbG9yOiAkZ3JheTEwMDtcblx0fVxufVxuIiwiLy9cbi8vICBCQUNLR1JPVU5EIEFOSU1BVElPTiBLRVlGUkFNRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGtleWZyYW1lcyBjbG91ZHMge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHR9XG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgcGxhbmUge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCkgcm90YXRlKC01ZGVnKTtcblx0fVxuXHQ2NSUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2OCUpIHRyYW5zbGF0ZVkoLTEyMHB4KSByb3RhdGUoNWRlZyk7XG5cdH1cblx0MTAwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDExMCUpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKC0xMGRlZyk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBzaGVlcCB7XG5cdDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSByb3RhdGUoMCk7XG5cdH1cblx0MjUlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI5JSkgdHJhbnNsYXRlWSg1MHB4KSByb3RhdGUoMCk7XG5cdH1cblx0NTAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU4JSkgdHJhbnNsYXRlWSgtNTBweCkgcm90YXRlKDApO1xuXHR9XG5cdDY1JSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDApO1xuXHR9XG5cdDg1JSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDM2MGRlZyk7XG5cdH1cblx0MTAwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgYm9hdCB7XG5cdDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcblx0fVxuXHQ1MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHRyYW5zbGF0ZVkoM3B4KTtcblx0fVxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkgdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuIiwiQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRodWdlLXdpZHRoKSB7XG5cdC8vXG5cdC8vICBCQUNLR1JPVU5EIEFOSU1BVElPTlxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0LnNlcnZpY2VzLWFuaW1hdGlvbixcblx0LndvcmstYW5pbWF0aW9uLFxuXHQuYWJvdXQtYW5pbWF0aW9uLFxuXHQuY29udGFjdC1hbmltYXRpb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXHQuc2VydmljZXMtYW5pbWF0aW9uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDMwMCU7XG5cdFx0aGVpZ2h0OiAxMHJlbTtcblx0XHR0b3A6IDIwcmVtO1xuXHRcdGxlZnQ6IC01MCU7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDJfc2VydmljZXMvc2VydmljZXNfY2xvdWRzLnN2ZykgMCAwIHJlcGVhdC14O1xuXHRcdGFuaW1hdGlvbjogY2xvdWRzIDUwMHMgaW5maW5pdGUgbGluZWFyO1xuXHR9XG5cdC53b3JrLWFuaW1hdGlvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogNi4ycmVtO1xuXHRcdHRvcDogNDVyZW07XG5cdFx0bGVmdDogLTEwJTtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wM193b3JrL3dvcmtfcGxhbmVfYmdAMXgucG5nKSAwIDAgbm8tcmVwZWF0O1xuXHRcdGFuaW1hdGlvbjogcGxhbmUgMTBzIGluZmluaXRlIGxpbmVhcjtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiA1M3B4IDMxcHg7XG5cdH1cblx0LmFib3V0LWFuaW1hdGlvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMy45cmVtO1xuXHRcdHRvcDogMjJyZW07XG5cdFx0bGVmdDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vX2ltYWdlcy8wNF9hYm91dC9hYm91dF96ZXBwZWxpbl9iZ0AxeC5wbmcpIDAgMFxuXHRcdFx0bm8tcmVwZWF0O1xuXHRcdGFuaW1hdGlvbjogc2hlZXAgMjBzIGluZmluaXRlIGxpbmVhcjtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAzNXB4IC01MHB4O1xuXHR9XG5cdC5jb250YWN0LWFuaW1hdGlvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiA5cmVtO1xuXHRcdGhlaWdodDogOXJlbTtcblx0XHR0b3A6IDQwcmVtO1xuXHRcdGxlZnQ6IDE0cmVtO1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9ib2F0QDF4LnBuZykgMCAwIG5vLXJlcGVhdDtcblx0XHRhbmltYXRpb246IGJvYXQgMnMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZTtcblx0fVxufVxuXG5AaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoXG5cdCcobWluLXdpZHRoOiN7JGh1Z2Utd2lkdGh9KWFuZChtaW4tcmVzb2x1dGlvbjoxOTJkcGkpJ1xuKSB7XG5cdC8vXG5cdC8vICBCQUNLR1JPVU5EIEFOSU1BVElPTlxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0LnNlcnZpY2VzLWFuaW1hdGlvbixcblx0LndvcmstYW5pbWF0aW9uLFxuXHQuYWJvdXQtYW5pbWF0aW9uLFxuXHQuY29udGFjdC1hbmltYXRpb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdC53b3JrLWFuaW1hdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDNfd29yay93b3JrX3BsYW5lX2JnQDJ4LnBuZykgMCAwIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDExN3B4IDYycHg7XG5cdH1cblx0LmFib3V0LWFuaW1hdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL19pbWFnZXMvMDRfYWJvdXQvYWJvdXRfemVwcGVsaW5fYmdAMngucG5nKSAwIDBcblx0XHRcdG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDY5cHggMzlweDtcblx0fVxuXHQuY29udGFjdC1hbmltYXRpb24ge1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9faW1hZ2VzLzA1X2NvbnRhY3QvY29udGFjdF9ib2F0QDJ4LnBuZykgMCAwIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDkwcHggOTBweDtcblx0fVxufVxuIl19 */
