footer.footer{margin-top:0;font-size:.9375rem}footer.footer .inner-footer{max-width:75rem;margin:0 auto;padding-top:2.5rem;padding-bottom:2.5rem}footer.footer .inner-footer h3{font-size:1.5rem}footer.footer .inner-footer .footer-logo{display:block;padding-bottom:1.25rem}footer.footer .inner-footer .footer-logo img{max-width:17.5rem;max-height:5rem}footer.footer .inner-footer .footer-copyright{margin-bottom:1.25rem}footer.footer .inner-footer .footer-copyright p{margin-bottom:0}footer.footer .inner-footer .footer-menu ul{display:block;margin-top:.625rem}footer.footer .inner-footer .footer-menu ul li a{padding-top:.625rem;padding-bottom:.625rem;padding-left:0}footer.footer .inner-footer .footer-menu .menu .active>a,footer.footer .inner-footer .footer-menu .menu .is-active>a{background:unset}.single .main article.post header.article-header{margin-top:3rem;padding-top:3rem}.single .main article.post footer.article-footer{padding:32px 0}.single .main article.post footer.article-footer .navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin-top:0;margin-bottom:0;padding:.9375rem 0}.single .main article.post footer.article-footer .navigation .text-left a,.single .main article.post footer.article-footer .navigation .text-right a{color:#fff;background:#0073ff;border:2px solid #0073ff;width:auto;padding:.25rem 1rem;border-radius:6rem;transition:background .25s ease-out,color .25s ease-out;font-size:.875rem;display:inline-block}.single .main article.post footer.article-footer .navigation .text-left a:hover,.single .main article.post footer.article-footer .navigation .text-right a:hover{text-decoration:none;background:#fff;color:#0073ff}.page-navigation ul.pagination li span.current{line-height:1;text-decoration:none;display:block;padding:.3125rem .625rem;font-size:1.125rem;width:28px;height:28px}.pagination{margin-bottom:2.5rem;text-align:center;display:block}.pagination li{margin-right:.625rem;overflow:hidden;display:inline-block}.pagination li a{padding:.3125rem .625rem;font-size:1.125rem;width:28px;height:28px}.pagination li a:hover{border-bottom:0;text-decoration:none}.article-footer .navigation{margin-top:2.5rem;margin-bottom:2.5rem}.sidebar{color:#1e558b}.sidebar h4{padding-bottom:.625rem;font-size:1.4375rem}.sidebar h5{font-size:1.3125rem;font-weight:700}.sidebar a{color:#1e558b}.menu-sidebar-menu-container .menu li{width:100%;padding:.625rem .625rem .625rem 0}.menu-sidebar-menu-container .menu li a{padding-left:.3125rem;text-transform:uppercase}.menu-sidebar-menu-container .menu li a img{margin-right:1.25rem}.contact-container{background:#ededed;margin-top:2.5rem}.contact-details{padding-top:1.875rem;padding-bottom:1.875rem;position:relative;top:50%;transform:translateY(-50%)}.contact-details h4{margin-bottom:0}.contact-details i{font-size:2.5rem;margin-top:.625rem}.contact-details .email,.contact-details .telephone{margin-bottom:1.25rem}.contact-details .telephone p{margin-bottom:.3125rem}.contact-details .address,.contact-details .fax{margin-bottom:1.25rem}.contact-details .button{margin-top:1.25rem}.contact-details .contact-info p{margin-bottom:0}.contact-form-container{padding:2.5rem}@media screen and (max-width:39.99875em){.contact-form-container{padding:2.5rem 1.25rem}}.contact-form-container .contact-form{margin-top:2.5rem;margin-left:auto;margin-right:auto;max-width:52.5rem}.contact-form-container .contact-form h2{padding-bottom:.9375rem;margin-top:0;margin-bottom:1.875rem}@media screen and (max-width:39.99875em){.contact-form-container .contact-form h2{text-align:center}}.contact-form-container .contact-form ::-webkit-input-placeholder{opacity:1}.contact-form-container .contact-form :-moz-placeholder,.contact-form-container .contact-form ::-moz-placeholder{opacity:1}.contact-form-container .contact-form :-ms-input-placeholder{opacity:1}.contact-form-container .contact-form [type=checkbox]{margin-bottom:.3125rem}.contact-form-container .contact-form select{border-radius:.8125rem;margin-top:.625rem;border-color:#979797}.contact-form-container .contact-form textarea{height:6.875rem}.contact-form-container .contact-form [type=email],.contact-form-container .contact-form [type=tel],.contact-form-container .contact-form [type=text],.contact-form-container .contact-form [type=week],.contact-form-container .contact-form textarea{margin-top:.25rem;margin-bottom:1.25rem;border-color:#979797;box-shadow:none}.wpcf7 a,.wpcf7 label{color:#000}.wpcf7 p{margin-bottom:.3125rem}.wpcf7 .wpcf7-list-item.first{margin-top:.625rem}.wpcf7 .wpcf7-response-output{clear:both}.wpcf7 .button{border:0;margin-top:1.875rem;font-size:1.125rem;max-width:11.25rem;width:100%;padding:1.25rem .625rem;display:block;border-radius:.25rem;box-shadow:0 2px 4px 0 #858585}.grecaptcha-badge{display:none}.benefits-container{padding-left:0;padding-right:0}.benefits-container .benefits-hero{padding-left:0;padding-right:0;overflow:hidden}.benefits-container .benefits-hero img{transition:transform .5s ease;object-fit:cover;height:100%;width:100%}.benefits-container .benefits-hero img:hover{transform:scale(1.1)}.benefits-container .benefits-content{padding:1.875rem 1.25rem;position:relative;top:50%;transform:translateY(-50%)}@media print,screen and (min-width:64em){.benefits-container .benefits-content.full-width-container{padding-left:1.5rem;padding-right:8.5rem}}.benefits-container .benefits-content .benefits{margin-bottom:2.5rem}.benefits-container .benefits-content .benefits .benefit{margin-top:.625rem}.benefits-container .benefits-content .benefits .benefit i{font-size:1.25rem}.benefits-container .benefits-content .benefits .benefit p{margin-bottom:0}@media screen and (max-width:39.99875em){.benefits-container .benefits-content .button{margin-top:1.25rem}}.parallax-window{min-height:28.125rem;background:transparent;position:relative;overflow:hidden;margin-top:5rem;margin-bottom:5rem}.parallax-window .parallax-content{max-width:53.125rem;position:absolute;top:50%;left:0;right:0;margin-left:auto;margin-right:auto;transform:translateY(-50%);padding-right:1.25rem;padding-left:1.25rem}.parallax-window .parallax-content h2{text-shadow:0 1px 3px #454545}@media print,screen and (min-width:64em){.parallax-window .parallax-content h2{font-size:2.375rem}}.parallax-window .parallax-content .content{text-shadow:0 1px 3px #454545}.parallax-window .parallax-content .button{margin-top:1.25rem;padding:1.125rem .625rem;width:11.25rem}#latest-news{margin-top:3.75rem;margin-bottom:3.75rem}#latest-news .latest-news .article{margin-bottom:1.25rem;padding-left:1.25rem;padding-right:1.25rem;text-align:center;position:relative}#latest-news .latest-news .article .image{overflow:hidden;margin-bottom:1.875rem}#latest-news .latest-news .article .content,#latest-news .latest-news .article h4{min-height:6.25rem}#latest-news .latest-news .article .button{left:0;right:0;bottom:.625rem;margin-left:auto;margin-right:auto;width:11.25rem;padding:.75rem .625rem}#latest-news .button-solid{max-width:18.75rem;width:100%;padding:.9375rem .625rem;box-shadow:0 2px 4px 0 #858585}#testimonials{margin-top:2.5rem;margin-bottom:2.5rem;text-align:center;padding:0 20px}#testimonials h2{margin-bottom:1.25rem}#testimonials .testimonials .testimonial{position:relative;margin-bottom:2.5rem;margin-left:1.25rem;margin-right:1.25rem;padding-bottom:2.5rem}#testimonials .testimonials .testimonial a:hover{text-decoration:none}#testimonials .testimonials .testimonial .image{padding:1.25rem}#testimonials .testimonials .testimonial .image img{max-height:9.375rem;width:auto;margin-left:auto;margin-right:auto}#testimonials .testimonials .testimonial .content{padding:3rem 1.5rem;border-radius:12px;box-shadow:2px 2px 8px 4px rgba(0,0,0,.1);-webkit-box-shadow:2px 2px 8px 4px rgba(0,0,0,.1);-moz-box-shadow:2px 2px 8px 4px rgba(0,0,0,.1);height:18rem;overflow:hidden;position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:distribute;align-content:space-around}@media print,screen and (min-width:40em){#testimonials .testimonials .testimonial .content{height:18rem}}#testimonials .testimonials .testimonial .content .excerpt-wrapper p:last-child{margin-bottom:0}#testimonials .testimonials .testimonial .content .name-organisation-wrapper{width:100%}#testimonials .testimonials .testimonial .content .name-organisation-wrapper .name{margin-top:0;margin-bottom:0;color:#140c37}#testimonials .testimonials .testimonial .content .name-organisation-wrapper .organisation{margin-bottom:0}#testimonials .button-solid{max-width:18.75rem;width:100%;padding:.9375rem .625rem;box-shadow:0 2px 4px 0 #858585}.features-container{padding-left:0;padding-right:0}.features-container .features{margin-top:2.5rem}.features-container .features .feature .content{padding:3.125rem 1.25rem 1.875rem}.features-container .features .feature .content .featured-content{position:relative;top:50%;transform:translateY(-50%)}@media print,screen and (min-width:40em){.features-container .features .feature .content{padding-left:2.5rem;padding-right:2.5rem}}@media print,screen and (min-width:64em){.features-container .features .feature .content{padding-left:3.75rem;padding-right:3.75rem}.features-container .features .feature .content .full-width-container{padding-left:8.5rem;padding-right:1.5rem}}.features-container .features .feature .content h2{margin-left:auto;margin-right:auto;margin-bottom:1.875rem}.features-container .features .feature .image{overflow:hidden}.features-container .features .feature .image img{transition:transform .5s ease;object-fit:cover;height:100%;width:100%}.features-container .features .feature .image img:hover{transform:scale(1.1)}.features-container .features .feature:nth-of-type(2n) .image{-ms-flex-order:1;order:1}.features-container .features .feature:nth-of-type(2n) .content{-ms-flex-order:2;order:2}@media print,screen and (min-width:64em){.features-container .features .feature:nth-of-type(2n) .content .full-width-container{padding-left:1.5rem;padding-right:8.5rem}}@media screen and (max-width:39.99875em){.features-container .features .feature:nth-of-type(odd) .image{-ms-flex-order:1;order:1}.features-container .features .feature:nth-of-type(odd) .content{-ms-flex-order:2;order:2}}.faq-container{margin-top:2.5rem;margin-bottom:2.5rem}.faq-container h2{margin-left:auto;margin-right:auto;margin-bottom:1.875rem}.faq-container li{margin-bottom:.625rem;border:1px solid #979797}.faq-container li .accordion-title:focus,.faq-container li .accordion-title:hover{background-color:unset}.faq-container li .accordion-title:before{color:#000;font-size:1rem;font-weight:700;margin-top:-.5625rem}.faq-container li a{padding-right:2.5rem}.faq-container li i{margin-right:.625rem}.video-container{margin-top:2.5rem;margin-bottom:2.5rem}.video-container h2{margin-left:auto;margin-right:auto;margin-bottom:1.875rem}.video-container .button{padding:1.25rem 1.875rem;margin-top:2.5rem;margin-left:auto;margin-right:auto;max-width:15rem;display:block;position:relative;border-radius:.5rem;box-shadow:0 2px 4px 0 #a1a1a1}#logo-carousel{margin-top:1.25rem;margin-bottom:1.25rem}#logo-carousel h2{text-align:center;width:100%;margin-bottom:2.5rem}#logo-carousel .logo-carousel .logo img{max-width:225px;max-height:125px;margin-left:auto;margin-right:auto;width:100%;height:auto;object-fit:contain;filter:gray;filter:grayscale(1);transition:all .5s ease;opacity:.6}#logo-carousel .logo-carousel .logo img:hover{filter:none;opacity:1}#logo-carousel .slick-track{display:-ms-flexbox;display:flex}#logo-carousel .slick-track .slick-slide{display:-ms-flexbox;display:flex;height:auto;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.social-container .social{margin-right:.9375rem;float:left}.social-container .social a{color:#fff}.social-container .social a i{font-size:1.875rem}.social-container .social a:active,.social-container .social a:active i,.social-container .social a:focus,.social-container .social a:focus i,.social-container .social a:hover,.social-container .social a:hover i,.social-container .social a:link,.social-container .social a:link i,.social-container .social a:visited,.social-container .social a:visited i{color:#fff}body,html{position:relative;z-index:-1;background:transparent;background-image:url(../images/bg-gradient.png),url(../images/bg-crane.svg);background-repeat:repeat-x,no-repeat;background-position:top,left 320px;background-size:auto,360px}body.home,html.home{background-image:url(../images/bg-gradient.png),url(../images/bg-crane.svg),url(../images/bg-crane-boom.svg);background-repeat:repeat-x,no-repeat,no-repeat;background-position:top,left 480px,right 200px;background-size:auto,360px,300px}a.button,button{font-family:"Poppins",sans-serif}a.button{display:inline-block;vertical-align:middle;-webkit-appearance:none;color:#fff!important;background-color:#0073ff;border:2px solid #0073ff;padding:8px 24px;margin:0 0 1rem;border-radius:96px;text-align:center;font-size:1rem;line-height:1;font-style:normal;font-weight:400;line-height:normal;cursor:pointer}a.button:hover{color:#0073ff!important;background-color:#fff}button.filter-btn,button.toggle-btn{color:#0073ff!important;background-color:#fff!important;border:1px solid #0073ff;padding:8px 24px;margin:0 0 1rem;border-radius:96px;text-align:center;font-size:1rem;line-height:1;font-style:normal;font-weight:400;line-height:normal;cursor:pointer;transition:all .25s;margin-right:1rem}button.filter-btn.current,button.filter-btn:hover,button.toggle-btn.current,button.toggle-btn:hover{color:#fff!important;background-color:#0073ff!important}.cta-links{padding:20px 0}.cta-links a{margin-bottom:0}.cta-links.center{text-align:center}.cta-links.left{text-align:left}h4.subheader{color:#616161;font-weight:300;font-size:.875rem;margin-bottom:.5rem}h4.subheader span{font-weight:700}h1 span,h2 span,h3 span,h4 span{color:#0073ff!important}h1,h2{font-size:2rem;line-height:2.5rem;margin-bottom:1.5rem}p,ul li{color:#616161}section.ecl-block h1,section.ecl-block h2,section.ecl-block h3,section.ecl-block h4{color:#140c37}section.ecl-block h1.intro,section.ecl-block h2.intro,section.ecl-block h3.intro,section.ecl-block h4.intro{color:#616161}section.ecl-block a{color:#0073ff;text-decoration:underline}section.ecl-block a:hover{color:#0073ff}section.ecl-block a.button{display:inline-block;vertical-align:middle;font-family:"Poppins",sans-serif;-webkit-appearance:none;color:#fff!important;background-color:#0073ff;border:2px solid transparent;padding:8px 24px;margin:0 0 1rem;border-radius:96px;text-decoration:none;text-align:center;font-size:1rem;line-height:1;font-style:normal;font-weight:400;line-height:normal;cursor:pointer}section.ecl-block a.button:hover{color:#0073ff!important;background-color:#fff;border:2px solid transparent}section.ecl-block a.button.hollow{color:#0073ff!important;background-color:#fff;border:2px solid #0073ff}section.ecl-block a.button.hollow:hover,section.ecl-block a.button.priority{color:#fff!important;background-color:#0073ff}section.ecl-block a.button.priority{border:2px solid #0073ff}section.ecl-block a.button.priority:hover{color:#0073ff!important;background-color:#fff}section.ecl-block .breadcrumbs{text-align:center;margin-bottom:1.5rem}section.ecl-block .breadcrumbs,section.ecl-block .breadcrumbs a{font-size:.875rem;color:#1e558b}section.ecl-block,section.ecl-service{padding:3rem 0;margin:3rem 0;background-color:transparent}section.ecl-block.push-top,section.ecl-service.push-top{margin-top:0}section.ecl-block.push-bottom,section.ecl-service.push-bottom{margin-bottom:0}section.ecl-block.no-padding-top,section.ecl-service.no-padding-top{padding-top:0}section.ecl-block.no-padding-bottom,section.ecl-service.no-padding-bottom{padding-bottom:0}section.ecl-block .block-intro,section.ecl-service .block-intro{margin:0 auto 2rem;width:100%;max-width:45rem;text-align:center;color:#fff}section.ecl-block .block-intro p,section.ecl-service .block-intro p{color:#616161}section.ecl-block.darker,section.ecl-service.darker{background-color:#1e558b}section.ecl-block.darker .block-intro H2,section.ecl-block.darker .block-intro p,section.ecl-service.darker .block-intro H2,section.ecl-service.darker .block-intro p{color:#fff}section.ecl-block .cta-wrapper,section.ecl-service .cta-wrapper{padding:2rem 0 0}section.ecl-block .cta-wrapper .button,section.ecl-service .cta-wrapper .button{margin:0 10px;min-width:16rem}#testimonials .content .name{font-weight:700}section.ecl-block.content-replace{background-color:transparent}section.ecl-block.content-replace .inner{max-width:1080px;margin:40px auto;margin:0 auto;padding:0 20px}section.ecl-block.content-replace .inner .all-rows .single-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:6rem}@media print,screen and (min-width:40em){section.ecl-block.content-replace .inner .all-rows .single-row{-ms-flex-direction:row;flex-direction:row;margin-bottom:9rem}}section.ecl-block.content-replace .inner .all-rows .single-row .copy{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}@media print,screen and (min-width:40em){section.ecl-block.content-replace .inner .all-rows .single-row .copy{width:60%}}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content{-ms-flex:1;flex:1;position:relative}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner{padding:0 20px;transition:all .35s}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner h4{color:#140c37}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner p{color:#616161}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner p:first-of-type{font-size:1.125rem;color:#140c37}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner.initial{opacity:1}section.ecl-block.content-replace .inner .all-rows .single-row .copy .content .inner.replace{position:absolute;top:0;left:0;width:100%;bottom:auto;opacity:0}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller{width:2.25rem;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .bottom,section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .top{border-radius:1.125rem;transition:all .2s}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .bottom .icon,section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .top .icon{margin:4px;width:28px;height:28px;border-radius:2.25rem;position:relative}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .bottom .icon svg,section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .top .icon svg{width:21px;height:auto;margin:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .top{width:100%;height:2.25rem;height:calc(100% - 36px - 8px);margin-bottom:.5rem;background-color:#e4ebfd}section.ecl-block.content-replace .inner .all-rows .single-row .copy .scroller .bottom{width:100%;-ms-flex:1;flex:1;background-color:#0073ff}section.ecl-block.content-replace .inner .all-rows .single-row .picture{width:100%;margin-bottom:24px;border-radius:16px;overflow:hidden}@media print,screen and (min-width:40em){section.ecl-block.content-replace .inner .all-rows .single-row .picture{width:40%;margin-bottom:0}}section.ecl-block.content-replace .inner .all-rows .single-row .picture .ratio{height:0;padding-top:60%;position:relative}section.ecl-block.content-replace .inner .all-rows .single-row .picture .ratio .image{position:absolute;top:0;left:0;width:100%;bottom:0;background-color:#f7f9ff;transition:all .35s;border-radius:16px;overflow:hidden}section.ecl-block.content-replace .inner .all-rows .single-row .picture .ratio .image img{width:100%;height:100%;object-fit:cover}section.ecl-block.content-replace .inner .all-rows .single-row .picture .ratio .image.initial{opacity:1}section.ecl-block.content-replace .inner .all-rows .single-row .picture .ratio .image.replace{opacity:0}@media print,screen and (min-width:40em){section.ecl-block.content-replace .inner .all-rows .single-row:nth-child(2n),section.ecl-block.content-replace .inner .all-rows .single-row:nth-child(2n) .copy{-ms-flex-direction:row-reverse;flex-direction:row-reverse}}section.ecl-block.content-replace .inner .all-rows .single-row:last-of-type{margin-bottom:0}section.ecl-block.content-replace .inner .all-rows .single-row.center-stage .scroller .top{height:2.25rem}section.ecl-block.content-replace .inner .all-rows .single-row.center-stage .copy .content .inner.initial{opacity:0}section.ecl-block.content-replace .inner .all-rows .single-row.center-stage .copy .content .inner.replace{opacity:1}section.ecl-block.content-replace .inner .all-rows .single-row.center-stage .picture .image .image.initial{opacity:0}section.ecl-block.content-replace .inner .all-rows .single-row.center-stage .picture .image .image.replace{opacity:1}section.ecl-block.project-cards{background-color:transparent}section.ecl-block.project-cards .inner{max-width:1280px;margin:0 auto}section.ecl-block.project-cards .inner .all-cards{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0 auto;padding:10px 10px 20px}section.ecl-block.project-cards .inner .all-cards .flip-card{background-color:#fff;width:calc((100% - 40px));height:240px;background-color:transparent;perspective:1000px;margin:10px}@media screen and (min-width:45em){section.ecl-block.project-cards .inner .all-cards .flip-card{width:calc((100% - 80px) / 2)}}@media screen and (min-width:60em){section.ecl-block.project-cards .inner .all-cards .flip-card{width:calc((100% - 120px) / 3)}}section.ecl-block.project-cards .inner .all-cards .flip-card:hover .flip-card-inner{transform:rotateY(180deg)}section.ecl-block.project-cards .inner .all-cards .flip-card.hidden{display:none}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;font-size:20px;border-top:4px solid #0073ff;border-radius:0 0 12px 12px;padding:20px;background-color:#fff;box-shadow:2px 2px 8px 4px rgba(0,0,0,.1);-webkit-box-shadow:2px 2px 8px 4px rgba(0,0,0,.1);-moz-box-shadow:2px 2px 8px 4px rgba(0,0,0,.1)}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .header,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .header{width:100%;margin-bottom:16px;display:-ms-flexbox;display:flex}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .header h4,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .header h4{margin-bottom:0}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .header .icon,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .header .icon{width:3.25rem;height:3.25rem;border-radius:.5rem;margin-right:.5rem;background:#2563eb;background:linear-gradient(135deg,#0073ff,#00acff)}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .header .icon .icon-custom,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .header .icon .icon-custom{color:#fff;width:100%;height:auto}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .header .icon img,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .header .icon img{width:100%;height:auto}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back .card-footer,section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-front .card-footer{margin-top:auto}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back{transform:rotateY(180deg)}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back a{text-decoration:none;position:absolute;top:0;left:0;right:0;bottom:0;padding:20px}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .flip-card-back a:hover h4{color:#2563eb;text-decoration:none}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .image{width:72px;height:72px;margin:0 auto 10px 0}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .image img{width:100%;height:100%;object-fit:contain}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .note{position:absolute;top:20px;right:20px;color:#92400e;padding:4px 20px;font-size:.875rem;font-weight:700;border-radius:48px;background-color:#fef3c7}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .content h4{text-align:left;font-weight:700;font-size:16px}section.ecl-block.project-cards .inner .all-cards .flip-card .flip-card-inner .content p{margin-bottom:0}section.ecl-block.custom-toggle .content-wrapper{max-width:80rem!important}section.ecl-block.custom-toggle .content-wrapper .inner p{text-align:center}@media screen and (min-width:45em){section.ecl-block.custom-toggle .content-wrapper .inner p{text-align:left}}section.ecl-block.custom-toggle .content-wrapper .inner .wrapper{display:inline-block;width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center}section.ecl-block.custom-toggle .content-wrapper .inner .wrapper p.header{width:100%;-ms-flex-order:20;order:20}@media screen and (min-width:45em){section.ecl-block.custom-toggle .content-wrapper .inner .wrapper p.header{-ms-flex-order:10;order:10}}section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .toggle-btn{margin-bottom:0;-ms-flex-order:30;order:30}@media screen and (min-width:45em){section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .toggle-btn{-ms-flex-order:20;order:20}}section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .banner{-ms-flex-order:10;order:10;background:linear-gradient(75deg,#0073ff 10%,#00afff 120%);display:inline-block;padding:8px 24px;margin:0 0 0 auto;border-radius:8px;width:100%;text-align:center;margin-bottom:2.25rem}@media screen and (min-width:45em){section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .banner{width:auto;text-align:left;margin-bottom:0}}@media screen and (min-width:45em) and (min-width:45em){section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .banner{-ms-flex-order:30;order:30}}section.ecl-block.custom-toggle .content-wrapper .inner .wrapper .banner p{color:#fff;margin-bottom:0}section.ecl-block.icons-in-a-row{position:relative;z-index:99;padding:0}section.ecl-block.icons-in-a-row .wrapper{width:90%;max-width:1200px;border-radius:16px;margin:0 auto;position:relative;background-color:#f7f9ff;padding:32px 0;bottom:-40px}section.ecl-block.icons-in-a-row .wrapper .diamond{background-color:#f7f9ff;width:64px;height:64px;border-radius:16px 0 0 0;position:absolute;transform:translate(-50%,-50%) rotate(45deg);top:0;left:50%;z-index:0}section.ecl-block.icons-in-a-row .wrapper .diamond>div{width:28px;height:28px;display:inline-block;transform:rotate(-45deg);margin-top:8px;margin-left:8px;text-align:center}section.ecl-block.icons-in-a-row .wrapper .diamond>div i{color:#7592d0}section.ecl-block.icons-in-a-row .wrapper .all-icons{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:1080px;-ms-flex-pack:center;justify-content:center;margin:0 auto;z-index:1;position:relative}section.ecl-block.icons-in-a-row .wrapper .all-icons .icon{width:calc((100% - 40px) / 2);margin:0 10px}@media screen and (min-width:45em){section.ecl-block.icons-in-a-row .wrapper .all-icons .icon{width:calc((100% - 60px) / 3)}}@media screen and (min-width:60em){section.ecl-block.icons-in-a-row .wrapper .all-icons .icon{width:calc((100% - 100px) / 5)}}section.ecl-block.icons-in-a-row .wrapper .all-icons .icon .image{width:72px;height:72px;margin:0 auto 10px}section.ecl-block.icons-in-a-row .wrapper .all-icons .icon .image img{width:100%;height:100%;object-fit:contain}section.ecl-block.icons-in-a-row .wrapper .all-icons .icon .content h4{text-align:center;font-weight:300;font-size:16px}section.ecl-block.text-image-container{padding:0}section.ecl-block.text-image-container .content-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:0}section.ecl-block.text-image-container .content-wrapper .content{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media screen and (min-width:50em){section.ecl-block.text-image-container .content-wrapper .content{width:50%}}section.ecl-block.text-image-container .content-wrapper .content .inner{max-width:100%;margin:40px auto;padding:0 20px}@media screen and (min-width:50em){section.ecl-block.text-image-container .content-wrapper .content .inner{max-width:720px;margin:40px 0 40px auto}}section.ecl-block.text-image-container .content-wrapper .image{width:100%;margin:0 auto}@media screen and (min-width:50em){section.ecl-block.text-image-container .content-wrapper .image{width:50%}}section.ecl-block.text-image-container .content-wrapper .image img{width:100%;height:100%;object-fit:cover}section.ecl-block.text-image-container .content-wrapper.reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}@media screen and (min-width:50em){section.ecl-block.text-image-container .content-wrapper.reverse .inner{max-width:720px;margin:40px auto 40px 0}}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper{margin:40px}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container{position:relative;width:100%!important}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-splash{position:absolute;top:0;left:0;right:0;bottom:10%;transition:all .45s}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-splash img{width:100%;height:100%;object-fit:contain}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-splash.hidden{opacity:0;top:25%;left:25%;right:25%;bottom:25%}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container.played .lottie-splash{opacity:0}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;margin:10px auto 0;width:100%;max-width:720px}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls .transport{cursor:pointer;background:#f4f4f4;border:2px solid #007aff;background:#007aff;border-radius:50%;width:42px;height:42px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;transition:background .2s;color:#fff}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls .transport.playing{background:#007aff;color:#fff}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls .transport:hover{background:#fff;color:#007aff}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls .progress-container{-ms-flex:1;flex:1;height:8px;background:#e0e0e0;border-radius:12px;overflow:hidden;cursor:pointer;position:relative}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .progress-controls .progress-container .progress-bar{height:100%;width:0;background:#007aff;transition:width .1s linear}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-transport-wrapper{text-align:center}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-transport-wrapper button.transport{display:inline-block;vertical-align:middle;font-family:"Poppins",sans-serif;-webkit-appearance:none;padding:8px 24px;margin:0 0 1rem;border-radius:96px;text-decoration:none;text-align:center;font-size:1rem;font-style:normal;font-weight:400;line-height:normal;cursor:pointer;color:#fff;border:2px solid #0073ff;background-color:#0073ff;min-width:120px;transition:all .25s}section.ecl-block.text-image-container .content-wrapper .image .lottie-player-wrapper .lottie-container .lottie-transport-wrapper button.transport:hover{color:#0073ff;background-color:transparent}section.ecl-block.choose-your-plan.hidden{display:none}section.ecl-block.choose-your-plan .content-wrapper .inner{max-width:1280px;margin:0 auto}section.ecl-block.choose-your-plan .content-wrapper .inner .temporary-message{text-align:center;max-width:52.5rem;margin-left:auto;margin-right:auto;padding:0 20px}section.ecl-block.choose-your-plan .content-wrapper .inner .temporary-message h2{width:100%;text-align:center}section.ecl-block.choose-your-plan .content-wrapper .inner .plans{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;margin:0 auto;padding:10px 10px 20px}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card{background-color:#fff;width:calc((100% - 40px));box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);-webkit-box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);-moz-box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);border-radius:16px;margin:30px 15px;padding-top:20px;position:relative}@media screen and (min-width:45em){section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card{width:calc((100% - 60px) / 2)}}@media screen and (min-width:60em){section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card{width:calc((100% - 90px) / 3)}}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card.highlight{border:2px solid #0073ff}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .highlight{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;padding:4px 20px;font-size:.875rem;border-radius:48px;background-color:#0073ff}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner{padding:28px;height:100%}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .image{width:72px;height:72px;margin:0 auto 10px 0}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .image img{width:100%;height:100%;object-fit:contain}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content{text-align:left;height:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content h4{text-align:left;font-weight:500;font-size:1.3125rem}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content h2{margin-bottom:0}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content p{margin-bottom:1rem;font-size:.875rem!important}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content h2 span,section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content p.payment-info{width:100%;color:#616161!important;font-size:.75rem!important;font-weight:500}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content .button{border:2px solid #0073ff;width:100%;margin-bottom:0;margin-top:auto}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content .bullets{padding:20px}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content .bullets ul{list-style-type:none}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content .bullets ul li{text-align:left;line-height:1.25rem;margin-bottom:16px;position:relative;color:#616161!important}section.ecl-block.choose-your-plan .content-wrapper .inner .plans .card .inner .content .bullets ul li:before{content:"";position:absolute;width:8px;height:16px;border:none;top:-2px;left:-20px;transform:rotate(40deg);border-right:2px solid #0073ff;border-bottom:2px solid #0073ff}section.ecl-block.choose-your-plan .content-wrapper .inner .note{margin:0 auto;padding:0 10px 30px}section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper{background-color:#fff;width:calc((100% - 40px));box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);-webkit-box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);-moz-box-shadow:2px 2px 8px 4px rgba(0,0,0,.2);border-radius:16px;margin:0 15px;padding:20px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;background:linear-gradient(75deg,#0073ff 10%,#00afff 120%)}section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper .copy h1,section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper .copy h2,section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper .copy h3,section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper .copy h4{color:#fff;text-align:left}section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper .copy p{color:#fff;margin-bottom:0}section.ecl-block.choose-your-plan .content-wrapper .inner .note .wrapper a{margin-bottom:0}section.ecl-block.choose-your-plan .content-wrapper .inner .table{margin:1.5rem}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper{border-radius:1rem;border:1px solid #e5e7eb;overflow:hidden}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy{padding:20px;background:linear-gradient(75deg,#eef2ff,#f0f9ff)}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy h1,section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy h2,section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy h3,section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy h4{color:#140c37;text-align:left}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .copy p{color:#616161;margin-bottom:0}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper .overflow-x-auto{overflow-x:auto;-webkit-overflow-scrolling:touch}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper thead{color:#140c37;background:#f8fafc}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper tbody{color:#616161;box-sizing:border-box;border:0 none #e5e7eb;font-size:.875rem}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper tbody tr{background-color:#fff}section.ecl-block.choose-your-plan .content-wrapper .inner .table .wrapper tbody tr:nth-child(2n){border-bottom:0;background-color:#f8fafc}section.ecl-block a.read-more,section.ecl-blogpost a.read-more{position:relative;padding-left:20px;transition:all .2s}section.ecl-block a.read-more:before,section.ecl-blogpost a.read-more:before{content:"";position:absolute;width:15px;top:0;bottom:0;left:0;font-weight:700;background:url(../images/icon-arrow-right-blue.svg) no-repeat 50%;background-size:contain}section.ecl-block a.read-more:hover,section.ecl-blogpost a.read-more:hover{padding-left:24px;text-decoration:none}section.ecl-block .post-navigation,section.ecl-blogpost .post-navigation{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}section.ecl-block .post-navigation .arrow a,section.ecl-blogpost .post-navigation .arrow a{position:relative;transition:all .2s;padding-left:20px}section.ecl-block .post-navigation .arrow a:before,section.ecl-blogpost .post-navigation .arrow a:before{content:"";position:absolute;width:15px;top:0;bottom:0;left:0;right:auto;font-weight:700;background:url(../images/icon-arrow-left-blue.svg) no-repeat 50%;background-size:contain;transition:all .25s}section.ecl-block .post-navigation .arrow a:hover,section.ecl-blogpost .post-navigation .arrow a:hover{text-decoration:none}section.ecl-block .post-navigation .arrow.arrow-left a:hover:before,section.ecl-blogpost .post-navigation .arrow.arrow-left a:hover:before{left:-4px}section.ecl-block .post-navigation .arrow.arrow-right a,section.ecl-blogpost .post-navigation .arrow.arrow-right a{padding-right:20px}section.ecl-block .post-navigation .arrow.arrow-right a:before,section.ecl-blogpost .post-navigation .arrow.arrow-right a:before{left:auto;right:0;background:url(../images/icon-arrow-right-blue.svg) no-repeat 50%}section.ecl-block .post-navigation .arrow.arrow-right a:hover:before,section.ecl-blogpost .post-navigation .arrow.arrow-right a:hover:before{right:-4px}.off-canvas-content>h1,.off-canvas-content>h2,.off-canvas-content>h3,.off-canvas-content>h4,.off-canvas-content>h5,.off-canvas-content>h6,.off-canvas-content>p{width:100%;max-width:72rem;margin:0 auto 1rem}section.ecl-block.copy-container .content-wrapper{margin-left:auto;margin-right:auto;display:block;padding:0 20px!important}section.ecl-block.copy-container .content-wrapper .icon{width:6rem;height:6rem;margin:3rem auto 1.5rem;position:relative}section.ecl-block.copy-container .content-wrapper .icon .mask-wrapper{position:absolute;top:0;left:0;width:100%;bottom:0;background-color:transparent}section.ecl-block.copy-container .content-wrapper .icon .mask-wrapper .mask{height:100%;width:100%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center center;mask-position:center center;background:#0073ff}section.ecl-block.copy-container .content-wrapper h2{text-align:center}section.ecl-block.copy-container .content-wrapper p.intro{text-align:center;max-width:52.5rem;margin-left:auto;margin-right:auto}section.ecl-block.features-container .content-wrapper .feature{background:transparent}section.ecl-block.features-container .content-wrapper .feature .content .featured-content{max-width:800px}section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns ul.column{width:100%;margin:0;padding:0 30px}@media screen and (min-width:62.5em){section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns ul.column{width:50%}}section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns ul.column li{margin-bottom:24px;position:relative}section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns ul.column li .bullet{position:absolute;color:#0073ff;top:0;right:calc(100% + 8px)}@media screen and (min-width:62.5em){section.ecl-block.features-container .content-wrapper .feature .content .featured-content .bullets-2-columns ul.column li:last-of-type{margin-bottom:0}}section.ecl-block.features-container .content-wrapper .feature .content .featured-content p.cta{margin-top:2rem}section.ecl-block.features-container .content-wrapper .feature:nth-child(odd) .content .featured-content{margin-left:auto;margin-right:0}section.ecl-block.features-container .content-wrapper .feature ul{list-style-type:none}section.ecl-block.features-container .content-wrapper .feature.light-copy h2,section.ecl-block.features-container .content-wrapper .feature.light-copy li,section.ecl-block.features-container .content-wrapper .feature.light-copy p,section.ecl-block.features-container .content-wrapper .feature.light-copy ul{color:#fff}section.ecl-block.contact-container{background:blue}section.ecl-block.contact-container .grid-container{max-width:87.5rem!important}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:40px}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-ms-flex-align:start;align-items:flex-start;margin-bottom:40px}@media screen and (min-width:30em){section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article{width:calc((100% - 40px) / 2)}}@media screen and (min-width:50em){section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article{width:calc((100% - 80px) / 3)}}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article a.icon{width:72px;display:block;margin-bottom:12px}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article a.icon .ratio{padding-top:100%;height:0;position:relative}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article a.icon .ratio .image{position:absolute;top:0;left:0;bottom:0;width:100%}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article a.icon .ratio .image img{width:100%;height:100%;object-fit:contain}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article h4{margin-bottom:.5rem;line-height:1.2}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article p{margin-bottom:1rem}section.ecl-block.services-post-container .content-wrapper .inner.flex-columns .article a.read-more{margin-top:auto}section.ecl-block.parallax-window{background-color:transparent!important}section.ecl-block .content-wrapper,section.ecl-service .content-wrapper{padding:0 20px}section.ecl-block.width-full .content-wrapper,section.ecl-service.width-full .content-wrapper{padding-left:0;padding-right:0}section.ecl-block.width-wide .content-wrapper,section.ecl-service.width-wide .content-wrapper{max-width:87.5rem}section.ecl-block.width-normal .content-wrapper,section.ecl-service.width-normal .content-wrapper{max-width:67.5rem}section.ecl-block.width-narrow .content-wrapper,section.ecl-service.width-narrow .content-wrapper{max-width:45rem}section.ecl-block .content-wrapper,section.ecl-service .content-wrapper{margin-left:auto;margin-right:auto}section.ecl-block.faq-image-block .content-wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}section.ecl-block.faq-image-block .content-wrapper .content{width:100%;padding:40px 20px;display:-ms-flexbox;display:flex}@media screen and (min-width:60em){section.ecl-block.faq-image-block .content-wrapper .content{width:50%}}section.ecl-block.faq-image-block .content-wrapper .content.no-image{width:100%;-ms-flex-pack:center;justify-content:center}section.ecl-block.faq-image-block .content-wrapper .content.no-image .inner{margin:auto!important}section.ecl-block.faq-image-block .content-wrapper .content.no-image .inner .cta-links,section.ecl-block.faq-image-block .content-wrapper .content.no-image .inner h2{text-align:center}section.ecl-block.faq-image-block .content-wrapper .content .inner{max-width:720px;margin-left:auto;margin-right:auto}@media screen and (min-width:60em){section.ecl-block.faq-image-block .content-wrapper .content .inner{margin:auto 0 auto auto}}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers{margin-bottom:20px}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question{width:100%;padding:16px;padding-right:4rem;cursor:pointer;border:none;text-align:left;font-weight:700;transition:all .25s ease;margin-top:10px;margin-bottom:10px;border:2px solid #0073ff;background:#fff;color:#140c37;border-radius:50px;position:relative}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question span.icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;transition:transform .3s ease;width:2rem;height:2rem;position:absolute;right:0;top:50%;transform:translate(-50%,-50%);border-radius:84px;background-color:#0073ff}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question span.icon .bar{position:absolute;width:14px;height:2px;background-color:#fff;transition:transform .3s ease;border-radius:10px}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question span.icon .bar.vertical{transform:rotate(90deg)}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question.active{background:#0073ff;color:#fff}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question.active span.icon .bar{transform:rotate(180deg)}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-question:hover{background:#0073ff;color:#fff}section.ecl-block.faq-image-block .content-wrapper .content .questions-and-answers .faq-answer{max-height:0;overflow:hidden;transition:max-height .25s ease-out,padding .25s ease;padding:0 10px}section.ecl-block.faq-image-block .content-wrapper .image{display:-ms-flexbox;display:flex;width:100%}@media screen and (min-width:60em){section.ecl-block.faq-image-block .content-wrapper .image{width:50%}}section.ecl-block.faq-image-block .content-wrapper .image .ratio{position:relative;margin:auto}section.ecl-block.faq-image-block .content-wrapper .image .ratio:before{content:"";width:1px;margin-left:-1px;float:left;height:0}section.ecl-block.faq-image-block .content-wrapper .image .ratio .inner{overflow:hidden}section.ecl-block.faq-image-block .content-wrapper .image .ratio .inner img{width:100%;height:100%;object-fit:contain}section.ecl-block.faq-image-block .content-wrapper.reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}section.ecl-block.faq-image-block .content-wrapper.reverse .content .inner{margin-left:auto;margin-right:auto}@media screen and (min-width:60em){section.ecl-block.faq-image-block .content-wrapper.reverse .content .inner{margin:auto auto auto 0}}section.ecl-service.single-service .content-wrapper .header .icon{width:96px;height:96px;margin:0 auto 2rem}section.ecl-service.single-service .content-wrapper .header .icon img{width:100%;height:100%;object-fit:contain}section.ecl-service.single-service .content-wrapper .cta{text-align:center}section.ecl-service.single-service .content-wrapper .main-copy{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:40px}section.ecl-service.single-service .content-wrapper .main-copy>div{width:100%}@media screen and (min-width:63.75em){section.ecl-service.single-service .content-wrapper .main-copy>div{width:calc((100% - 40px) / 2)}}section.ecl-service.single-service .content-wrapper .main-copy .image img{width:100%;height:100%;object-fit:contain}footer.footer{position:relative}footer.footer:before{content:"";width:100%;height:10px;position:absolute;top:-10px;background:linear-gradient(#45c0e1,#163cd2)}section.ecl-block.template-download .content-wrapper .inner h2{text-align:center}section.ecl-block.template-download .content-wrapper .inner .all-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:32px;width:100%;max-width:1280px;margin:0 auto;padding:20px}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card{width:100%;box-sizing:border-box;border-radius:12px;background:#fff;padding:32px;box-shadow:0 4px 12px rgba(0,0,0,.08)}@media print,screen and (min-width:64em){section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card{width:calc((100% - 32px) / 2)}}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:16px}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .header .icon{width:48px;height:48px;border-radius:8px;margin-right:8px}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .header h4{margin-bottom:0;font-weight:400}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .bullets ul{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:4px 12px;margin:0;padding:0}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .bullets ul li{width:100%;padding:2px 12px 2px 24px;position:relative;list-style:none}@media print,screen and (min-width:40em){section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .bullets ul li{width:calc((100% - 12px) / 2)}}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .bullets ul li:before{content:"";width:8px;height:8px;border-radius:48px;background:#616161;position:absolute;font-size:21px;left:8px;top:12px}section.ecl-block.template-download .content-wrapper .inner .all-cards .single-card .bullets ul li a{text-decoration:none;color:#616161}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vbi1jcml0aWNhbC9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCJub24tY3JpdGljYWwvbGF5b3V0L19ibG9nLnNjc3MiLCJjcml0aWNhbC9jb21tb24vX2NvbG91cnMuc2NzcyIsIm5vbi1jcml0aWNhbC9wYWdlLXRlbXBsYXRlcy9fYmxvZy5zY3NzIiwibm9uLWNyaXRpY2FsL3BhcnRzL19zaWRlYmFyLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX2NvbnRhY3QtY29udGFpbmVyLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX2NvbnRhY3QtZGV0YWlscy5zY3NzIiwibm9uLWNyaXRpY2FsL3BhcnRzL19jb250YWN0LWZvcm0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwibm9uLWNyaXRpY2FsL3BhcnRzL19jb250ZW50LWJlbmVmaXRzLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX3BhcmFsbGF4LnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX2xhdGVzdC1uZXdzLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX3Rlc3RpbW9uaWFscy5zY3NzIiwibm9uLWNyaXRpY2FsL3BhcnRzL19mZWF0dXJlcy5zY3NzIiwibm9uLWNyaXRpY2FsL3BhcnRzL19mYXFzLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX3ZpZGVvLnNjc3MiLCJub24tY3JpdGljYWwvcGFydHMvX2xvZ29fY2Fyb3VzZWwuc2NzcyIsIm5vbi1jcml0aWNhbC9wYXJ0cy9fY29udGVudC1zb2NpYWwuc2NzcyIsIm5vbi1jcml0aWNhbC9ibG9ja3MvX2Jsb2Nrcy5zY3NzIiwibm9uLWNyaXRpY2FsL2Jsb2Nrcy9fdGVtcGxhdGUtZG93bmxvYWQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoi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ZixTQUFTLEFBQ1QsUUFBUyxDQUNaLEFBaEVqQyxxR0FrRW9DLHFCQUFxQixBQUNyQixhQUFjLENBQ2pCIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEZvb3RlclxuXG5mb290ZXIuZm9vdGVyIHtcbiAgICAvL2JhY2tncm91bmQ6ICRjb2xvci1iYWNrZy1wcmltYXJ5O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG4gICAgLmlubmVyLWZvb3RlciB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIC8vY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci1sb2dvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgLy9wYWRkaW5nLXRvcDogcmVtLWNhbGMoNDApO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygyODApO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbS1jYWxjKDgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmZvb3Rlci1jb3B5cmlnaHQge1xuICAgICAgICAgICAgLy9jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgLy9tYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAvL2NvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgIFxuICAgICAgICAuZm9vdGVyLW1lbnUge1xuICAgICAgICAgIFxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMCk7ICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51IC5hY3RpdmU+YSwgLm1lbnUgLmlzLWFjdGl2ZT5hIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXItc29jaWFsIHtcbiAgICAgICAgICAgIC5zb2NpYWwtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAuc29jaWFsIHtcbiAgICAgICAgICAgICAgICAgICAgLy9mbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAvL2ZvbnQtc2l6ZTogcmVtLWNhbGMoMjYpOyBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgXG4gICAgfVxufVxuXG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBCbG9nIExheW91dFxuXG4uc2luZ2xlIHtcbiAgICAubWFpbiB7XG4gICAgICAgIGFydGljbGUucG9zdCB7XG4gICAgICAgICAgICBoZWFkZXIuYXJ0aWNsZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQ4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VjdGlvbi5lbnRyeS1jb250ZW50IHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvb3Rlci5hcnRpY2xlLWZvb3RlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzJweCAwO1xuICAgICAgICAgICAgICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgMDtcbiAgICAgICAgICAgICAgICAgICAgLnRleHQtbGVmdCxcbiAgICAgICAgICAgICAgICAgICAgLnRleHQtcmlnaHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY3RhLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGN0YS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQpIHJlbS1jYWxjKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYyg5Nik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMjVzIGVhc2Utb3V0LCBjb2xvciAuMjVzIGVhc2Utb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8vIENvbG91cnNcblxuLy8kY29sb3ItbWFpbi1wcmltYXJ5OiByZ2IoMCwgNjEsIDgxKTtcbi8vJGNvbG9yLW1haW4tc2Vjb25kYXJ5OiByZ2IoMjU1LCAyMTcsIDApO1xuLy8kY29sb3ItbWFpbi10ZXJ0aWFyeTogcmdiKDE4NywgMTg3LCAxODcpO1xuXG5cblxuJHdoaXRlOiAjRkZGRkZGO1xuJGJsYWNrOiAjMDAwMDAwO1xuXG4kY29sb3ItYmFzZS1wcmltYXJ5OiAjRURFREVEOyAvLyBsaWdodCBncmV5XG4kY29sb3ItYmFzZS1zZWNvbmRhcnk6ICM5Nzk3OTc7IC8vICBkYXJrIGdyZXlcbiRjb2xvci1iYXNlLXRlcnRpYXJ5OiAjMjgyODI4OyAvLyAgZGFya2VzdCBncmV5XG5cbiRjb2xvci10ZXh0LWRhcms6ICMzNzM3Mzc7IC8vIE1haW4gY29sb3VyIHRvIHVzZSBvbiB3aGl0ZS9saWdodCBiYWNrZ3JvdW5kXG4kY29sb3ItdGV4dC1icmFuZC1jb2xvcjogIzFFNTU4QjsgLy8gVXNpbmcgZGFya2VyIGJyYW5kIGNvbG91clxuJGNvbG9yLXRleHQtd2hpdGU6ICNmZmZmZmY7IC8vIFB1cmUgd2hpdGUsIG9yIHNpbWlsYXJcblxuJGNvbG9yLW1haW4tcHJpbWFyeTogIzFFNTU4QjsgLy8gRGFyayBibHVlXG4kY29sb3ItbWFpbi1zZWNvbmRhcnk6ICMxMDJGNEM7IC8vIGJsdWVcbiRjb2xvci1tYWluLXRlcnRpYXJ5OiAjMmEzMDYwOyAvLyBwdXJwbGVcbiRjb2xvci1tYWluLXF1YXRlcm5hcnk6ICNjY2NjY2M7IC8vIGxpZ2h0IGdyZXlcblxuJGNvbG9yLWZvbnQtdGVydGlhcnk6ICM5Nzk3OTc7XG5cbiRjb2xvci1ib3JkZXItdGVydGlhcnk6ICM5Nzk3OTc7XG5cbiRjb2xvci1ib3JkZXItcXVhdGVybmFyeTogIzk3OTc5NztcblxuXG4vKiBBTFRPIFRlY2ggKi9cbiRjb2xvci10ZXh0LWNvcnBvcmF0ZTogIzAwNzNmZjtcbiRjb2xvcl9tZW51X2hpZ2hsaWdodDogIzAwNzNmZjtcbi8vXG4kY29sb3ItdGV4dC1oZWFkZXI6ICMxNDBDMzc7XG4kY29sb3ItdGV4dC1zdWJoZWFkZXI6ICM2MTYxNjE7XG4kY29sb3ItdGV4dC1ib2R5OiAjNjE2MTYxO1xuLy9cbiRjdGEtdGV4dDogI2ZmZmZmZjtcbiRjdGEtYmFja2dyb3VuZDogIzAwNzNmZjtcbiRjdGEtYmFja2dyb3VuZC1saWdodGVyOiAjZTRlYmZkO1xuLy9cbiRiZy13aGl0ZTogI2ZmZmZmZjtcbiRiZy1saWdodGVyOiAjZjdmOWZmO1xuLy9cbiRoaWdobGlnaHQtYmc6ICNGRUYzQzc7XG4kaGlnaGxpZ2h0LXRleHQ6ICM5MjQwMEU7XG4vKiAqL1xuXG4vKiBBTFRPIFRlY2ggRGV2IE9ubHkgKi9cbi8vJGNvbG9yLXRleHQtY29ycG9yYXRlOiBjeWFuO1xuLy8kY29sb3JfbWVudV9oaWdobGlnaHQ6IHBpbms7XG4vLyRjb2xvci10ZXh0LWhlYWRlcjogcmVkO1xuLy8kY29sb3ItdGV4dC1zdWJoZWFkZXI6IHllbGxvdztcbi8vJGNvbG9yLXRleHQtYm9keTogZ3JlZW47XG4vLyRjdGEtdGV4dDogb3JhbmdlO1xuLy8kY3RhLWJhY2tncm91bmQ6IGJsYWNrO1xuLy8kY3RhLWJhY2tncm91bmQtbGlnaHRlcjogc2lsdmVyO1xuLy9cbi8vJGJnLXdoaXRlOiByZWQ7XG4vLyRiZy1saWdodGVyOiB5ZWxsb3c7XG4vL1xuLy8kaGlnaGxpZ2h0LWJnOiBncmVlbjtcbi8vJGhpZ2hsaWdodC10ZXh0OiBibGFjaztcbi8qICovXG5cblxuXG5cblxuXG5cbi8qXG4kY29sb3ItYmFzZS1wcmltYXJ5OiAjRjFGMUYxO1xuJGNvbG9yLWJhc2Utc2Vjb25kYXJ5OiAjRjFGMUYxO1xuJGNvbG9yLWJhc2UtdGVydGlhcnk6ICNGMUYxRjE7XG5cbiovIiwiLy8gQmxvZyBTdHlsZXMgbm9uZSBjcml0aWNhbFxuXG4ucGFnZS1uYXZpZ2F0aW9uIHtcbiAgICB1bC5wYWdpbmF0aW9uIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgc3Bhbi5jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNSAxMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuXG4ucGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaSB7XG4gICAgICAgIC8vYm9yZGVyOiAycHggc29saWQgJGNvbG9yLW1haW4tc2Vjb25kYXJ5O1xuICAgICAgICAvLy13ZWJraXQtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMjUpO1xuICAgICAgICAvL2JvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDI1KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1zZWNvbmRhcnk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkY29sb3ItbWFpbi1zZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAvL2NvbG9yOiAkY29sb3ItbWFpbi1zZWNvbmRhcnk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg1IDEwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIC8vY29sb3I6ICRjb2xvci1tYWluLXNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIC8vYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbi5hcnRpY2xlLWZvb3RlciB7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICB9XG59XG4iLCIvLyBzaWRlYmFyXG5cbi5zaWRlYmFyIHtcbiAgICAvL2JhY2tncm91bmQ6ICRjb2xvci1tYWluLXByaW1hcnk7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLXByaW1hcnk7XG4gICAgaDQge1xuICAgIFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMyk7XG4gICAgfVxuICAgIGg1IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgXHRjb2xvcjogJGNvbG9yLW1haW4tcHJpbWFyeTtcbiAgICB9XG59XG5cblxuLm1lbnUtc2lkZWJhci1tZW51LWNvbnRhaW5lciB7XG4gICAgLm1lbnUge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwIDEwIDEwIDApO1xuICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICBcbiAgICB9XG59IiwiLy8gY29udGFjdFxuXG4uY29udGFjdC1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1iYXNlLXByaW1hcnk7IFxuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcbiAgICBcbn1cblxuIiwiLy8gY29udGFjdCBkZXRhaWxzXG5cbi5jb250YWN0LWRldGFpbHMge1xuXHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xuXHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIFx0dG9wOiA1MCU7XG4gIFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gIFx0aDQge1xuICBcdFx0bWFyZ2luLWJvdHRvbTogMDtcbiAgXHR9XG5cbiAgICBwIHtcbiAgICAgICAgLy9jb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIGkge1xuICAgIFx0Zm9udC1zaXplOiByZW0tY2FsYyg0MCk7XG4gICAgXHRtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgfVxuXG4gICAgLmVtYWlsIHtcbiAgICBcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAgLnRlbGVwaG9uZSB7XG4gICAgXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgXHRwIHtcbiAgICBcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgXHR9XG4gICAgfVxuXG4gICAgIC5mYXgge1xuICAgIFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuICAgICAuYWRkcmVzcyB7XG4gICAgXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuXHQuY29udGFjdC1pbmZvIHtcblx0XHRwIHtcbiAgICBcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMCk7XG4gICAgXHR9XG5cdH1cblxufSIsIi8vIGNvbnRhY3QgZm9ybVxuXG4uY29udGFjdC1mb3JtLWNvbnRhaW5lciB7XG4gICAgLy9iYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZC10ZXJ0aWFyeTsgXG4gICAgcGFkZGluZzogcmVtLWNhbGMoNDAgNDApO1xuICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg0MCAyMCk7XG4gICAgfVxuXG5cbiAgICAuY29udGFjdC1mb3JtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNDApO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDg0MCk7XG4gICAgICAgIFxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE1KTsgXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygwKTsgXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7IFxuICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgXG5cblxuXG4gICAgICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIFdlYktpdCBicm93c2VycyAqL1xuICAgICAgICAgICAgLy9jb2xvcjogJGNvbG9yLWZvbnQtdGVydGlhcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBNb3ppbGxhIEZpcmVmb3ggNCB0byAxOCAqL1xuICAgICAgICAgICAgLy9jb2xvcjogJGNvbG9yLWZvbnQtdGVydGlhcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgOjotbW96LXBsYWNlaG9sZGVyIHsgLyogTW96aWxsYSBGaXJlZm94IDE5KyAqL1xuICAgICAgICAgICAgLy9jb2xvcjogJGNvbG9yLWZvbnQtdGVydGlhcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIEludGVybmV0IEV4cGxvcmVyIDEwKyAqL1xuICAgICAgICAgICAgLy9jb2xvcjogJGNvbG9yLWZvbnQtdGVydGlhcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWJhc2Utc2Vjb25kYXJ5O1xuICAgICAgICB9XG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIFt0eXBlPWVtYWlsXSwgW3R5cGU9dGVsXSwgW3R5cGU9dGV4dF0sIFt0eXBlPXdlZWtdLCB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQtdGVydGlhcnk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1iYXNlLXNlY29uZGFyeTtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuXG4gICAgfVxufVxuXG5cbi53cGNmNyB7XG4gICBcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRibGFjazsgIFxuICAgICAgICAgICAgLy9mb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgLy9mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7ICBcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuICAgICAgICB9XG4gIFxuXG4gICAgLndwY2Y3LWxpc3QtaXRlbS5maXJzdCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG4gICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgLy9mbG9hdDogcmlnaHQ7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE4MCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMCAxMCAyMCAxMCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiByZW0tY2FsYyg0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNCk7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IDAgIzg1ODU4NTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgIzg1ODU4NTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXByaW1hcnk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG5cbi5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gLjAwMTI1O1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIGJlbmVmaXRzXG5cblxuLmJlbmVmaXRzLWNvbnRhaW5lciB7XG5cbiAgICAvL21heC13aWR0aDogODcuNXJlbTtcbiAgICAvL21hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAvKnBhZGRpbmctcmlnaHQ6IC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtOyovXG4gICAgfVxuICAgIC5iZW5lZml0cy1oZXJvIHtcbiAgICAgICAgLy9wYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgLy9wYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMCk7XG4gICAgICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAvL3BhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzIGVhc2U7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJlbmVmaXRzLWNvbnRlbnQge1xuICAgIFx0cGFkZGluZzogcmVtLWNhbGMoMzAgMjAgMzAgMjApO1xuICAgICAgICAvL3BhZGRpbmctbGVmdDogcmVtLWNhbGMoMjApO1xuICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuICAgICAgICAgICAgJi5mdWxsLXdpZHRoLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTM2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgICAgICAuYmVuZWZpdHMtaW50cm8ge1xuICAgICAgICAgICAgLy9tYXJnaW4tdG9wOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gXG5cbiAgICAgICAgLmJlbmVmaXRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgIC5iZW5lZml0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIC8vY29sb3I6ICRjb2xvci1mb250LXNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG5cblxuXG5cbiIsIi8vIHBhcmFsbGF4XG5cbi5wYXJhbGxheC13aW5kb3cge1xuICAgIG1pbi1oZWlnaHQ6IHJlbS1jYWxjKDQ1MCk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoODApO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcblxuXHQucGFyYWxsYXgtY29udGVudCB7XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYyg4NTApO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoMjApO1xuICAgIFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygyMCk7XG5cbiAgICBcdGgyIHtcbiAgICBcdFx0dGV4dC1zaGFkb3c6IDAgMXB4IDNweCAjNDU0NTQ1O1xuICAgIFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuICAgIFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzgpO1xuICAgIFx0XHR9XG4gICAgXHR9XG5cblx0XHQuY29udGVudCB7XG5cdFx0XHR0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICM0NTQ1NDU7XHRcdFxuXHRcdH1cblxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTggMTApO1xuXHRcdFx0d2lkdGg6IHJlbS1jYWxjKDE4MCk7IFxuXHRcdFx0XG5cdFx0fVxuXG5cdH1cblxufSIsIi8vIHJlY2VudCBhcnRpY2xlc1xuXG4jbGF0ZXN0LW5ld3Mge1xuXG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDYwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNjApO1xuXG5cdGgyIHtcblx0XHQvL2ZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdC8vZm9udC1zaXplOiByZW0tY2FsYyg0NCk7XG5cdFx0fVxuXHR9XG5cdFxuXG5cdC5sYXRlc3QtbmV3cyB7XG5cdFx0Ly9ib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xuXG5cdCAgICAuYXJ0aWNsZSB7XG5cdFx0XHQvL2JvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDIwKTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDIwKTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdC8vaGVpZ2h0OiByZW0tY2FsYygzNTApO1xuXG5cdFx0XHQuaW1hZ2Uge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XG5cblx0XHRcdH1cblxuXHRcdFx0aDQge1xuXHRcdFx0XHRtaW4taGVpZ2h0OiByZW0tY2FsYygxMDApO1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRtaW4taGVpZ2h0OiByZW0tY2FsYygxMDApO1xuXHRcdFx0fVxuXHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0Ly9wb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0bGVmdDogMDsgXG5cdFx0XHRcdFx0cmlnaHQ6IDA7IFxuXHRcdFx0XHRcdGJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvOyBcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDE4MCk7IFxuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEyIDEwKTtcblx0XHRcdH1cblxuXG5cdCAgICB9XG5cblx0fVxuXG5cblx0LmJ1dHRvbi1zb2xpZCB7XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYygzMDApO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDE1IDEwKTtcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDRweCAwICM4NTg1ODU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwICM4NTg1ODU7XG5cdH1cblxufVxuXG4iLCIvLyBUZXN0aW1vbmlhbHMgUGFydGlhbFxuXG5cbiN0ZXN0aW1vbmlhbHMge1xuXHRtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiAwIDIwcHg7XG5cdGgyIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XHRcblx0fVxuXG5cdC50ZXN0aW1vbmlhbHMge1xuXHRcdC50ZXN0aW1vbmlhbCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cdFx0XHRtYXJnaW4tbGVmdDogcmVtLWNhbGMoMjApO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYygyMCk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXHRcdFx0YSB7XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5pbWFnZSB7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDIwIDIwKTtcblx0XHRcblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiByZW0tY2FsYygxNTApO1xuXHRcdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYyg0OCAyNCk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwwLDAsLjEpO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDI4OCk7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdCAgICBmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHQgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IFxuXHRcdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoMjg4KTtcblx0XHRcdFx0fVxuXHRcdFx0XHQuZXhjZXJwdC13cmFwcGVyIHtcblx0XHRcdFx0XHRwOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Lm5hbWUtb3JnYW5pc2F0aW9uLXdyYXBwZXIge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdC5uYW1lIHtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRjb2xvci10ZXh0LWhlYWRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Lm9yZ2FuaXNhdGlvbiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXHRcdFxuXHQuYnV0dG9uLXNvbGlkIHtcblx0XHRtYXgtd2lkdGg6IHJlbS1jYWxjKDMwMCk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMTUgMTApO1xuXHRcdC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IDAgIzg1ODU4NTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgIzg1ODU4NTtcblx0fVxuXG59XG5cblxuXG5cbiIsIi8vIGZlYXR1cmVzXG5cbi5mZWF0dXJlcy1jb250YWluZXIge1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG4uZmVhdHVyZXMge1xuXHRtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG5cdC8vbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG5cdFx0LmZlYXR1cmUge1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyBcblx0XHRcdFx0Ly9tYXgtaGVpZ2h0OiByZW0tY2FsYyg5MDApO1xuXHRcdFx0fVxuXG5cdFx0XG5cdFx0XHQuY29udGVudCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyg1MCk7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygzMCk7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyMCk7XG5cblx0XHRcdFx0LmZlYXR1cmVkLWNvbnRlbnQge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRcdH1cblxuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IFxuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNDApO1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDQwKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHsgXG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYyg2MCk7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoNjApO1xuXG5cdFx0XHRcdFx0LmZ1bGwtd2lkdGgtY29udGFpbmVyIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTM2KTtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDI0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdC5pbWFnZSB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cyBlYXNlO1xuXHRcdFx0XHRcdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRcdCAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblx0XHQgICAgICAgICAgICB3aWR0aDogMTAwJTtcblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JjpudGgtb2YtdHlwZShldmVuKSB7XG5cdFx0XHRcdC5pbWFnZSB7XG5cdFx0XHRcdFx0b3JkZXI6IDE7XG5cdFx0XHRcdH1cblx0XHRcdFx0LmNvbnRlbnQgeyBcblx0XHRcdFx0XHRvcmRlcjogMjtcblxuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkgeyBcblx0XHRcdFx0XHRcdC5mdWxsLXdpZHRoLWNvbnRhaW5lciB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjQpO1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxMzYpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdCY6bnRoLW9mLXR5cGUob2RkKSB7XG5cdFx0XHRcdFx0LmltYWdlIHtcblx0XHRcdFx0XHRcdG9yZGVyOiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQuY29udGVudCB7IFxuXHRcdFx0XHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblx0fVxuXHRcdFxufVxuXG5cbiIsIi8vIGZhcXNcblxuXG4uZmFxLWNvbnRhaW5lciB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG5cdGgyIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHR9XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmFzZS1zZWNvbmRhcnk7XG5cblx0XHQuYWNjb3JkaW9uLXRpdGxlIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRcdH1cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWNjb3JkaW9uLXRpdGxlOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKC05KTtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHQvL2ZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoNDApO1xuXHRcdH1cblx0XHRpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTApO1xuXHRcdFx0Ly9tYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XG5cdFx0XHQvL2Zsb2F0OiBsZWZ0O1xuXHRcdH1cblx0fVxuXG5cdFx0XG59XG5cblxuXG5cbiIsIi8vIHZpZGVvXG5cblxuLnZpZGVvLWNvbnRhaW5lciB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG5cdGgyIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMjAgMzApO1xuXHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYygyNDApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDgpO1xuXHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDgpO1xuXHRcdC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IDAgI0ExQTFBMTtcblx0XHRib3gtc2hhZG93OiAwIDJweCA0cHggMCAjQTFBMUExO1xuXHRcdCY6aG92ZXIge1xuXG5cdFx0fVxuXHR9XG5cblxuXG5cdFx0XG59XG5cblxuXG5cbiIsIi8vIGZlYXR1cmVzXG5cbiNsb2dvLWNhcm91c2VsIHtcblx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdC8vcGFkZGluZy1sZWZ0OiAwO1xuXHQvL3BhZGRpbmctcmlnaHQ6IDA7XG5cblx0aDIge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cdH1cblxuXHQubG9nby1jYXJvdXNlbCB7XG5cdFx0XHQvL2JvcmRlcjogMXB4IHNvbGlkIGJsdWU7XG5cdFx0LmxvZ28ge1xuXHRcdFx0Ly9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdC8vbWF4LWhlaWdodDogMTI1cHg7XG5cdFx0XHRcdG1heC13aWR0aDogMjI1cHg7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDEyNXB4O1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRvYmplY3QtZml0OiBjb250YWluO1xuXHRcdFx0XHQvL3dpZHRoOiAxMDAlO1xuXHRcdFx0XHRmaWx0ZXI6IGdyYXk7IC8qIElFNi05ICovXG5cdFx0XHRcdC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMSk7IC8qIEdvb2dsZSBDaHJvbWUsIFNhZmFyaSA2KyAmIE9wZXJhIDE1KyAqL1xuXHRcdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgxKTsgLyogTWljcm9zb2Z0IEVkZ2UgYW5kIEZpcmVmb3ggMzUrICovXG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcblx0XHRcdFx0b3BhY2l0eTogMC42O1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHQtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDApO1xuXHRcdFx0XHRcdGZpbHRlcjogbm9uZTtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQuc2xpY2stdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnNsaWNrLXRyYWNrIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cdFx0XG59XG5cbiIsIi8vIFNvY2lhbFxuXG4uc29jaWFsLWNvbnRhaW5lciB7XG4gICAgLnNvY2lhbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTUpOyAgXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTsgXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgJjpsaW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gQUNGIEJsb2Nrc1xuXG5ib2R5LCBodG1sIHtcbiAgICAvL21hcmdpbi10b3A6IDgwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICB1cmwoLi4vaW1hZ2VzL2JnLWdyYWRpZW50LnBuZyksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwoLi4vaW1hZ2VzL2JnLWNyYW5lLnN2ZykgO1xuXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6ICByZXBlYXQteCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vLXJlcGVhdDtcblxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICAgIGNlbnRlciB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCAzMjBweDtcblxuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byxcbiAgICAgICAgICAgICAgICAgICAgMzYwcHg7XG5cbiAgICAmLmhvbWUge1xuXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgdXJsKC4uL2ltYWdlcy9iZy1ncmFkaWVudC5wbmcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCguLi9pbWFnZXMvYmctY3JhbmUuc3ZnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwoLi4vaW1hZ2VzL2JnLWNyYW5lLWJvb20uc3ZnKSA7XG5cbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6ICByZXBlYXQteCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuby1yZXBlYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8tcmVwZWF0O1xuXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICAgIGNlbnRlciB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgNDgwcHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0IDIwMHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogICAgYXV0byxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNjBweCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMDBweDtcblxuICAgIH0gLyogKi9cblxufVxuXG5idXR0b24ge1xuICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG59XG5hLmJ1dHRvbntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBjb2xvcjogJGN0YS10ZXh0ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjdGEtYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiA4cHggMjRweDtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk2cHg7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS10ZXh0O1xuICAgIH1cbn1cbmJ1dHRvbi5maWx0ZXItYnRuLFxuYnV0dG9uLnRvZ2dsZS1idG4ge1xuICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3RhLXRleHQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY3RhLWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5NnB4O1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDE2cHgpO1xuICAgICYuY3VycmVudCwgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY3RhLXRleHQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG4uY3RhLWxpbmtzIHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgICYuY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmLmxlZnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cbmg0LnN1YmhlYWRlciB7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LXN1YmhlYWRlcjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDhcbiAgICApO1xuICAgIHNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbn1cbmgxLCBoMiwgaDMsIGg0IHtcbiAgICBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWNvcnBvcmF0ZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbmgxLCBoMiB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCk7XG59XG5wLCB1bCBsaSB7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XG5cblxufVxuXG5zZWN0aW9uLmVjbC1ibG9jayB7XG4gICAgaDEsIGgyLCBoMywgaDQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtaGVhZGVyO1xuICAgICAgICAmLmludHJvIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1zdWJoZWFkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9tZW51X2hpZ2hsaWdodDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9tZW51X2hpZ2hsaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkY3RhLXRleHQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk2cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdGEtdGV4dDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIGEuYnV0dG9uLmhvbGxvdyB7XG4gICAgICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS10ZXh0O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY3RhLWJhY2tncm91bmQ7XG4gICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY3RhLXRleHQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdGEtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhLmJ1dHRvbi5wcmlvcml0eSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY3RhLWJhY2tncm91bmQ7XG4gICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY3RhLWJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtYnJhbmQtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1icmFuZC1jb2xvcjtcblxuICAgICAgICB9XG4gICAgfVxufVxuXG5zZWN0aW9uLmVjbC1ibG9jayxcbnNlY3Rpb24uZWNsLXNlcnZpY2Uge1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgICBtYXJnaW46IDNyZW0gMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAmLnB1c2gtdG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgJi5wdXNoLWJvdHRvbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgICYubm8tcGFkZGluZy10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgJi5uby1wYWRkaW5nLWJvdHRvbSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbiAgICAuYmxvY2staW50cm8ge1xuICAgICAgICBtYXJnaW46IDAgYXV0byAycmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0NXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmRhcmtlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXByaW1hcnk7XG4gICAgICAgIC5ibG9jay1pbnRybyB7XG4gICAgICAgICAgICBIMiwgcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LXdoaXRlO1xuICAgICAgICAgICAgfSAgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3RhLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDAgMDtcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTZyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuI3Rlc3RpbW9uaWFscyB7XG4gICAgLmNvbnRlbnQge1xuICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9ICAgICAgIFxuICAgIH1cbiAgICBcbn1cblxuXG4vKiAqKioqIENvbnRlbnQgcmVwbGFjZSAqKioqICovXG5zZWN0aW9uLmVjbC1ibG9jay5jb250ZW50LXJlcGxhY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC5pbm5lciB7XG4gICAgICAgIG1heC13aWR0aDogMTA4MHB4O1xuICAgICAgICBtYXJnaW46IDQwcHggYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgLmFsbC1yb3dzIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLnNpbmdsZS1yb3cge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg5Nik7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE0NCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb3B5IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjM1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1oZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1oZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pbml0aWFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5yZXBsYWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnNjcm9sbGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygzNik7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b3AsIC5ib3R0b20ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYygzNik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC50b3Age1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzZweCAtIDhweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5ib3R0b20ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN0YS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5waWN0dXJlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgLnJhdGlvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjlmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zNXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmluaXRpYWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnJlcGxhY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb3B5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmNlbnRlci1zdGFnZSB7XG4gICAgICAgICAgICAgICAgICAgIC5zY3JvbGxlciAudG9wIHtcbiAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNik7IFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5jb3B5IC5jb250ZW50IC5pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmluaXRpYWwgeyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYucmVwbGFjZSB7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7IFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5waWN0dXJlIC5pbWFnZSAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLmltYWdlLmluaXRpYWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuaW1hZ2UucmVwbGFjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLyogKioqKiBDb250ZW50IHJlcGxhY2UgKioqKiAqL1xuXG4vKiAqKioqIFBvamVjdCBDYXJkcyAqKioqICovXG5zZWN0aW9uLmVjbC1ibG9jay5wcm9qZWN0LWNhcmRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAuaW5uZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIC5hbGwtY2FyZHMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMHB4IDIwcHg7XG4gICAgICAgICAgICAuZmxpcC1jYXJkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctd2hpdGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA0MHB4KSApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjQwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcGVyc3BlY3RpdmU6IDEwMDBweDsgLyogYWRkcyBkZXB0aCBmb3IgM0QgZWZmZWN0ICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3MjApIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA4MHB4KSAvIDIgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg5NjApIHtcbiAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygoMTAwJSAtIDEyMHB4KSAvIDMgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpob3ZlciAuZmxpcC1jYXJkLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7IC8qIGhvcml6b250YWwgZmxpcCAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5mbGlwLWNhcmQtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICAgICAgICAgICAgICAuZmxpcC1jYXJkLWZyb250LFxuICAgICAgICAgICAgICAgICAgICAuZmxpcC1jYXJkLWJhY2sge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIGhpZGUgdGhlIGJhY2sgd2hlbiBub3QgZmFjaW5nIHZpZXdlciAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJGNvbG9yLXRleHQtY29ycG9yYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDEycHggMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDhweCA0cHggcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggOHB4IDRweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwwLDAsLjEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNTIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDUyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDczZmYsICMwMGFjZmYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbi1jdXN0b20ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAuZmxpcC1jYXJkLWZyb250IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5mbGlwLWNhcmQtYmFjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTsgLyogc28gaXQgc2hvd3MgY29ycmVjdGx5IHdoZW4gZmxpcHBlZCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMyNTYzZWI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3MnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3MnB4OyBcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDEwcHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLm5vdGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyMHB4ICA7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LXRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHggMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnaGxpZ2h0LWJnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4vKiAqKioqIFBvamVjdCBDYXJkcyAqKioqICovXG5cbi8qICoqKiogQ3VzdG9tIFRvZ2dsZSAqKioqICovXG5zZWN0aW9uLmVjbC1ibG9jay5jdXN0b20tdG9nZ2xlIHtcbiAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygxMjgwKSAhaW1wb3J0YW50O1xuICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzIwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLndyYXBwZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwLmhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjA7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzIwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogMTA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnRvZ2dsZS1idG4ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMzA7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzIwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmJhbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAxMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDc1ZGVnLCAjMDA3M2ZmIDEwJSwgIzAwYWZmZiAxMjAlKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMjRweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM2KTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3MjApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzIwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogMzA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuXG59XG4vKiAqKioqIEN1c3RvbSBUb2dnbGUgKioqKiAqL1xuXG5zZWN0aW9uLmVjbC1ibG9jay5pY29ucy1pbi1hLXJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDk5O1xuICAgIC8vaGVpZ2h0OiAxNjBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC53cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDA7XG4gICAgICAgIGJvdHRvbTogLTQwcHg7XG4gICAgICAgIC8vbGVmdDogNTAlO1xuICAgICAgICAvL2JvdHRvbTogMDtcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgICAgICAuZGlhbW9uZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjdGOUZGO1xuICAgICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDY0cHg7IFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweCAwIDAgMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNzU5MkQwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYWxsLWljb25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDgwcHg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygoMTAwJSAtIDQwcHggKSAvIDIgKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDcyMCkge1xuICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNjBweCkgLyAzICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoOTYwKSB7XG4gICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAxMDBweCApIC8gNSApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3MnB4OyBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTBweDtcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cbnNlY3Rpb24uZWNsLWJsb2NrLnRleHQtaW1hZ2UtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg4MDApIHtcbiAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgLmlubmVyIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoODAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNDBweCAwIDQwcHggYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDgwMCkge1xuICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgIC8vbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnJldmVyc2Uge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgLmlubmVyIHsgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg4MDApIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG8gNDBweCAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWFnZSAubG90dGllLXBsYXllci13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogNDBweDtcbiAgICAgICAgICAgIC5sb3R0aWUtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAubG90dGllLXNwbGFzaCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjQ1cztcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuaGlkZGVuIHsgXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyNSU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNSU7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjUlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAyNSU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5wbGF5ZWQge1xuICAgICAgICAgICAgICAgICAgICAubG90dGllLXNwbGFzaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcm9ncmVzcy1jb250cm9scyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggYXV0byAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgICAgICAgICAgICAgLnRyYW5zcG9ydCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICYucGxheWluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwN2FmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDA3YWZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5wcm9ncmVzcy1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2UwZTBlMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA3YWZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5sb3R0aWUtdHJhbnNwb3J0LXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLmxvdHRpZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnRyYW5zcG9ydCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDczZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3M2ZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDA3M2ZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5zZWN0aW9uLmVjbC1ibG9jay5jaG9vc2UteW91ci1wbGFuIHtcbiAgICAmLmhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGJnLWxpZ2h0ZXI7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICAudGVtcG9yYXJ5LW1lc3NhZ2Uge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUyLjVyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnBsYW5zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMjBweDtcbiAgICAgICAgICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA0MHB4KSApO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDhweCA0cHggcmdiYSgwLDAsMCwwLjIwKTtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDhweCA0cHggcmdiYSgwLDAsMCwwLjIwKTtcbiAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2hhZG93OiAycHggMnB4IDhweCA0cHggcmdiYSgwLDAsMCwwLjIwKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzIwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNjBweCkgLyAyICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg5NjApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA5MHB4KSAvIDMgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItdGV4dC1jb3Jwb3JhdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXRleHQtY29ycG9yYXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDcycHg7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDEwcHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAucGF5bWVudC1pbmZvLCBoMiBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1zdWJoZWFkZXIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMikgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjdGEtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5idWxsZXRzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGNvbG9yLXRleHQtY29ycG9yYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItdGV4dC1jb3Jwb3JhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubm90ZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4IDMwcHg7XG4gICAgICAgICAgICAgICAgLndyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNDBweCkgKTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgICAgICAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA4cHggNHB4IHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxNXB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNzVkZWcsICMwMDczRkYgMTAlLCAjMDBBRkZGIDEyMCUpO1xuICAgICAgICAgICAgICAgICAgICAuY29weSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoMSwgaDIsIGgzLCBoNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDI0cHgpO1xuICAgICAgICAgICAgICAgIC53cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgLmNvcHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg3NWRlZywgICNlZWYyZmYsICNmMGY5ZmYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaDEsIGgyLCBoMywgaDQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1oZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLm92ZXJmbG93LXgtYXV0byB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTVlN2ViO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGJvZHkgdHIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxufVxuXG5zZWN0aW9uLmVjbC1ibG9jaywgc2VjdGlvbi5lY2wtYmxvZ3Bvc3Qge1xuICAgIGEge1xuICAgICAgICAmLnJlYWQtbW9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIC8vY29udGVudDogJ1xcMjc5Qyc7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICB1cmwoXCIuLi9pbWFnZXMvaWNvbi1hcnJvdy1yaWdodC1ibHVlLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5wb3N0LW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAgdXJsKFwiLi4vaW1hZ2VzL2ljb24tYXJyb3ctbGVmdC1ibHVlLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFycm93LWxlZnQge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtNHB4OyBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYXJyb3ctcmlnaHQge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7ICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICB1cmwoXCIuLi9pbWFnZXMvaWNvbi1hcnJvdy1yaWdodC1ibHVlLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtNHB4OyBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgIFxuICAgIH1cblxuXG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICYgPiBwLCA+IGgxLCA+IGgyLCA+IGgzLCA+IGg0LCA+IGg1LCA+IGg2ICB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDcycmVtO1xuICAgICAgICBtYXJnaW46IDAgYXV0byAxcmVtO1xuICAgIH1cbn1cblxuLyogKioqKiBIZWFkZXIgJiBDb3B5ICoqKiogKi9cbnNlY3Rpb24uZWNsLWJsb2NrLmNvcHktY29udGFpbmVyICB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDk2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoOTYpO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg0OCkgYXV0byByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAubWFzay13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIC5tYXNrIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA3M2ZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcC5pbnRybyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUyLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cbi8qICoqKiogSGVhZGVyICYgQ29weSAqKioqICovXG5cbi8qICoqKiogRmVhdHVyZXMgKioqKiAqL1xuc2VjdGlvbi5lY2wtYmxvY2suZmVhdHVyZXMtY29udGFpbmVyIHtcbiAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgLmZlYXR1cmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgLmZlYXR1cmVkLWNvbnRlbnQgIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgICAgICAgICAgICAgICAgLmJ1bGxldHMtMi1jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdWwuY29sdW1uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJ1bGxldCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtY29ycG9yYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSArIDhweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDEwMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHAuY3RhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIC5mZWF0dXJlZC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubGlnaHQtY29weSB7XG4gICAgICAgICAgICAgICAgaDIsIHAsIHVsLCBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4vKiAqKioqIEZlYXR1cmVzICoqKiogKi9cblxuLyogKioqKiBDT05UQUNUIFVTICoqKiogKi9cbnNlY3Rpb24uZWNsLWJsb2NrLmNvbnRhY3QtY29udGFpbmVyICB7XG4gICAgYmFja2dyb3VuZDogYmx1ZTtcbiAgICAuZ3JpZC1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDg3LjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG59XG4vKiAqKioqIENPTlRBQ1QgVVMgKioqKiAqL1xuXG4vKiAqKioqIFNFUlZJQ0VTICoqKiogKi9cbnNlY3Rpb24uZWNsLWJsb2NrLnNlcnZpY2VzLXBvc3QtY29udGFpbmVyICB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC8vXG4gICAgICAgIC5pbm5lci5mbGV4LWNvbHVtbnMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgICAgIC5hcnRpY2xlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCAoMTAwJSAtIDApIC8gMSApO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg0ODApIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoICgxMDAlIC0gNDBweCkgLyAyICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoODAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCAoMTAwJSAtIDgwcHggKSAvIDMgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYS5pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDcycHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICAucmF0aW8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYS5yZWFkLW1vcmV7XG4gICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9cbiAgICB9XG59XG4vKiAqKioqIFNFUlZJQ0VTICoqKiogKi9cblxuXG5zZWN0aW9uLmVjbC1ibG9jay5wYXJhbGxheC13aW5kb3cge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbnNlY3Rpb24uZWNsLWJsb2NrLFxuc2VjdGlvbi5lY2wtc2VydmljZSB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG5cbiAgICAmLndpZHRoLWZ1bGwgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gICAgJi53aWR0aC13aWRlIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgbWF4LXdpZHRoOiA4Ny41cmVtO1xuICAgIH1cbiAgICAmLndpZHRoLW5vcm1hbCAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgIG1heC13aWR0aDogNjcuNXJlbTtcbiAgICB9XG4gICAgJi53aWR0aC1uYXJyb3cgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICBtYXgtd2lkdGg6IDQ1cmVtO1xuICAgIH1cbiAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG59XG5cblxuLyogKioqKiBGQVEgSU1BR0UgKioqKiAqL1xuc2VjdGlvbi5lY2wtYmxvY2suZmFxLWltYWdlLWJsb2NrIHtcbiAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoOTYwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm5vLWltYWdlIHtcbiAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gYXV0byBhdXRvIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5jdGEtbGlua3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoOTYwKSB7XG4gICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDAgYXV0byBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5xdWVzdGlvbnMtYW5kLWFuc3dlcnMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgLmZhcS1xdWVzdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4ICAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg2NCk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci10ZXh0LWNvcnBvcmF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBzcGFuLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDg0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdGV4dC1jb3Jwb3JhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAuYmFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXRleHQtY29ycG9yYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmljb24gLmJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10ZXh0LWNvcnBvcmF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5mYXEtYW5zd2VyIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLW91dCwgcGFkZGluZyAwLjI1cyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDk2MCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucmF0aW8ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gYXV0bztcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAvL3BhZGRpbmctdG9wOiA2MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5yZXZlcnNlIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDk2MCkge1xuICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gYXV0byBhdXRvIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4vKiAqKioqIEZBUSBJTUFHRSAqKioqICovXG5cblxuc2VjdGlvbi5lY2wtc2VydmljZS5zaW5nbGUtc2VydmljZSB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAycmVtO1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jdGEge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLWNvcHkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDQwcHg7XG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDIwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCAoMTAwJSAtIDQwcHgpIC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNvcHkge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZm9vdGVyLmZvb3RlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoIzQ1QzBFMSwgIzE2M0NEMik7XG4gICAgfVxufVxuIiwiLy8gQUNGIEJsb2Nrc1xuXG5zZWN0aW9uLmVjbC1ibG9jay50ZW1wbGF0ZS1kb3dubG9hZCB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFsbC1jYXJkcyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTI4MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgLnNpbmdsZS1jYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gMzJweCkgLyAyICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMzJweDtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgICAgICAgICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiB2ZXJ0aWNhbCBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmJ1bGxldHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogNHB4IDEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gMTJweCkgLyAyICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDEycHggMnB4IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzYxNjE2MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNjE2MTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19 */
