*{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{line-height:1.15;-webkit-text-size-adjust:100%}body{width:100%}a,background-color: transparent{display:inline-block}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bold}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input{overflow:visible;font:inherit}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration,-webkit-appearance: none,::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}ul{all:unset;display:block}li{list-style-type:none}:root{--main_prim:#fff;--main_hex_prim:255, 255, 255;--main_second:#2c2c2c;--main_hex_second:44, 44, 44;--main_blck:#1a1a1a;--main_hex_blck:26, 26, 26;--main_gr:#b7b7b7;--main_hex_gr:183, 183, 183;--main_sun:#fe4f18;--main_hex_sun:254, 79, 24;--font_header:'discovery';--font_prim:'manrope';--font_prim_reg:'manrope_reg';--font_prim_med:'manrope_med';--font_prim_sb:'manrope_sb';--font_prim_b:'manrope_b';--font_prim_eb:'manrope_eb';--font_prim_l:'manrope_l';--font_prim_el:'manrope_el';--font_icon:"fontello" sans-serif;--speed:5s;--degree_sec:135deg;--univImgBlockHeight:482px;--univImgBlockWidth:516px}@media only screen and (max-width:1024px){:root{--univImgBlockWidth:440px;--univImgBlockHeight:336px}}@media only screen and (max-width:900px){:root{--univImgBlockWidth:324px;--univImgBlockHeight:248px}}@media only screen and (max-width:768px){:root{--univImgBlockWidth:100%;--univImgBlockHeight:20em}}@font-face{font-family:"discovery";src:url("../fonts/discovery/discovery.otf") format("opentype");font-weight:normal}@font-face{font-family:"manrope_reg";src:url("../fonts/manrope/static/Manrope-Regular.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_med";src:url("../fonts/manrope/static/Manrope-Medium.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_sb";src:url("../fonts/manrope/static/Manrope-SemiBold.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_b";src:url("../fonts/manrope/static/Manrope-Bold.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_eb";src:url("../fonts/manrope/static/Manrope-ExtraBold.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_l";src:url("../fonts/manrope/static/Manrope-Light.ttf") format("truetype");font-style:normal}@font-face{font-family:"manrope_el";src:url("../fonts/manrope/static/Manrope-ExtraLight.ttf") format("truetype");font-style:normal}h1,h2,h3{font-family:var(--font_prim);font-weight:500;letter-spacing:1px;color:var(--main_blck)}h1{font-family:var(--font_prim_eb);font-size:3em;font-weight:900;line-height:1em;text-align:center;letter-spacing:-1px}h2{font-size:2.2em;margin-bottom:1em;color:var(--main_blck);line-height:1.3;font-family:var(--font_prim_eb)}.grid_block_two h2.title{text-align:left;font-size:2em;line-height:1em}h2.title{text-align:center}h3{font-size:1.8em;color:var(--main_blck);margin-bottom:.8em;font-family:h4;font-size:1.3em;color:var(--main_blck);margin-bottom:.5em}p{font-family:var(--font_blck);font-size:1em;text-align:left}a{font-size:1em;text-decoration:none;color:inherit}.subs_block{padding:34px 164px 5px}p.subs{font-size:1.3em;font-weight:400;line-height:1.2em;font-family:var(--font_prim_reg);text-align:center;padding:15px 5px}@media only screen and (max-width:1200px){.subs_block{padding:5px 18px}h2{font-size:2em}}@media only screen and (max-width:1024px){h1{font-size:h3;font-size:1.5em}p{font-size:.9em}a{font-size:.9em}}@media only screen and (max-width:768px){.subs_block{padding:5px 2px}h1{font-size:2em}h2{font-size:1.5em}h3{font-size:1.2em}p.subs{font-size:1.1em;padding:5px}}@media only screen and (max-width:568px){h1{font-size:1.5em}h2{font-size:1.3em}p.subs{font-size:1em}}@media only screen and (max-width:480px){h2{font-size:1.5em}}@media only screen and (max-width:380px){h1{font-size:1em}.hero__subs{font-size:.8em;line-height:1em}h2{font-size:1em}p.subs{font-size:.9em}h4,h4.sub_title{font-size:1em}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font_prim_reg);background:transparent;color:#fff;line-height:1.6;overflow-x:hidden}.container{max-width:100%;margin:0 auto;padding:0 10em}button{font-size:1em;font-weight:600;text-decoration:none;align-items:center;padding:15px 30px;border-radius:50px;border:none;box-shadow:0 10px 20px rgba(212,175,55,0.3);transition:all 0.3s ease;cursor:pointer;position:relative;overflow:hidden;background:var(--main_sun);color:var(--main_prim)}.btn_sec{padding:15px 67px;width:max-content;border-radius:50px;border-radius:91px 14px}.btn_win{padding:15px 14px;width:max-content;font-size:.8em}.btn{display:block}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);transition:left 0.5s}.btn:hover::before{left:100%}button.testBtn{width:50px;text-align:center;background:unset;color:#fff;box-shadow:unset;text-align:center;padding:10px}button.hidden{transform:scale(1) rotate(0)}button#btnUpper::before{position:relative;top:25%;transform:translateY(-50%);padding-top:25px}button.btnUpper{width:50px;height:50px;position:fixed;top:84%;left:95%;transition:all 0.5s;font-size:1.8em;font-weight:900;padding:unset;background:var(--main_prim);color:var(--main_second);transform:scale(0) rotate(-660deg);z-index:100}img{object-fit:fill;max-width:100%;height:auto}.grid_block{display:flex;flex-direction:column;justify-content:center;align-items:center}.grid_block_two{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;justify-content:center;align-items:center}.grid_block_three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;justify-content:center}.grid_block_four{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;justify-content:center}.block_padding_20{width:100%;height:20px}.block_padding_40{width:100%;height:40px}.block_padding_60{width:100%;height:60px}.block_padding_80{width:100%;height:80px}.btn-gift:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(255,107,53,0.4)}section:nth-child(2n+1){background:var(--main_prim);color:var(--main_blck)}section:nth-child(2n+1) .win,section:nth-child(2n+1) .work__win{background:rgba(var(--main_hex_gr), 0.5)}section:nth-child(2n){background:rgba(var(--main_hex_gr), 0.5);color:var(--main_blck)}section:nth-child(2n) .win,section:nth-child(2n) .work__win{background:var(--main_prim)}section{padding:34px 0}.black{background:linear-gradient(var(--degree_sec), var(--main_blck) 0%, var(--main_blck_2) 100%)}.some_black{background:linear-gradient(var(--degree_sec), var(--main_blck_3) 0%, var(--main_blck_2) 100%)}.default{background:inherit}.title__under{border:1px var(--main_sun) solid;width:118px;margin:0 auto}div.nonclass .section-header{padding-top:25px}div.nonclass .maps{padding-bottom:2em}@media only screen and (max-width:1200px){.container{padding:0 2em}}@media only screen and (max-width:768px){.grid_block_two{grid-template-columns:repeat(1,1fr)}.grid_block_three{grid-template-columns:repeat(2,1fr)}.container{padding:0 1.5em}button.btnUpper{top:88%;left:92%}.btn_win{padding:18px 14px;font-size:.7em;border-radius:7px;width:unset}.btn_sec{padding:12px 37px;border-radius:50px}button{font-size:.8em}}@media only screen and (max-width:568px){.btn_sec{padding:10px 34px;width:max-content;border-radius:50px}button.btnUpper{left:86%}button.hidden{transform:scale(.86) rotate(0)}.block_padding_60{height:30px}.grid_block_three{grid-template-columns:repeat(1,1fr)}}@media only screen and (max-width:480px){button.btnUpper{left:82%}.btn{font-size:.9rem}}@media only screen and (max-width:380px){.container{padding:0 .8em}.block_padding_40{height:20px}button,.btn{font-size:.6em}.btn_win{padding:10px 14px}}.about-content{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:center}.about-text p{margin-bottom:1.5rem;color:var(--main_second_2);line-height:1.8}.logo-circle{width:150px;height:150px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.logo-circle::before{content:'';position:absolute;width:200%;height:200%;top:-50%;left:-50%;animation:rotate 8s linear infinite}.logo-circle i{font-size:70px;color:var(--main_blck);z-index:2;animation:pulse 2s infinite ease-in-out}.logo-text{font-family:var(--font_header);font-size:2.5rem;font-weight:700;color:var(--main_prim);text-transform:uppercase;letter-spacing:2px;text-shadow:0 5px 10px rgba(var(--main_hex_blck), 0.3)}@media only screen and (max-width:768px){.about-content{grid-template-columns:1fr;text-align:center}.logo-text{font-size:1.8em}.logo-circle{width:96px;height:auto}}.category-filter-wrapper{margin-bottom:30px;padding:25px;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);border-radius:15px;box-shadow:0 8px 32px rgba(0,0,0,0.1)}.category-filter h3{margin-bottom:15px;font-size:1.3rem;color:#333;font-weight:500}.filter-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;align-items:center}.filter-select{padding:12px 16px;border:2px solid transparent;border-radius:10px;background:#f8f9fa;font-size:14px;transition:all 0.3s ease;cursor:pointer}.filter-select:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px rgba(102,126,234,0.1)}.clear-filters-btn{padding:12px 24px;background:linear-gradient(135deg, #ff6b6b, #ee5a24);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(255,107,107,0.3)}.clear-filters-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,107,107,0.4)}.products-container{margin-top:30px}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.product-item{background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);border-radius:15px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.1);transition:all 0.3s ease;opacity:1;transform:translateY(0);padding:27px}.product-item.hidden{opacity:0;transform:translateY(20px);pointer-events:none;display:none}.product-item:hover{transform:translateY(-5px);box-shadow:0 15px 35px #de6434}.product-image{width:100%;height:200px;overflow:hidden;background:var(--main_prim);position:relative;display:flex;justify-content:center;align-items:center}.product-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.product-item:hover .product-image img{transform:scale(1.05)}.product-content{padding:20px}.product-title{font-size:1em;font-weight:600;color:var(--main_blck);line-height:1.2em}.product-title a{color:#333;text-decoration:none;transition:color 0.3s}.product-title a:hover{color:#667eea}.product-price{font-size:1.1rem;font-weight:bold;color:#28a745;margin-bottom:10px;display:inline-block;background:rgba(40,167,69,0.1);padding:5px 10px;border-radius:20px}.product-excerpt{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:15px}.product-meta{font-size:.8rem;color:#999;margin-bottom:15px}.product-actions{text-align:center}.product-link{display:inline-block;color:var(--main_prim);text-decoration:none;border-radius:7px;font-size:.9rem;font-weight:500;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(102,126,234,0.5);background:#fe4f18;border-radius:31px 0;padding:11px 42px}.product-link:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(102,126,234,0.4)}.no-products,.no-results{grid-column:1/-1;text-align:center;padding:40px 20px;color:#666;background:rgba(255,255,255,0.9);border:1px solid rgba(255,255,255,0.2);border-radius:15px;box-shadow:0 8px 32px rgba(0,0,0,0.1);font-size:1.1rem}@media only screen and (max-width:768px){.title{font-size:2rem}.filter-controls{grid-template-columns:1fr}.products-grid{grid-template-columns:1fr}.product-content{padding:15px}.product-image{height:150px}}canvas{border-radius:8px;display:block;margin-top:10px;object-fit:contain}canvas#c{position:absolute;width:900px;height:600px;left:0;top:0;touch-action:none;user-select:none}#buttons,#elements,#ceilings{margin-bottom:10px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}#ceilings button{background:transparent}#buttons button{padding:8px 12px;border:none;border-radius:6px;cursor:pointer;background:#2563eb;color:#fff;transition:background 0.2s}#buttons button.active{background:#10b981}#buttons button.save{background:#f59e0b}#buttons button.reset{background:#ef4444}#elements button{width:70px;height:70px;border:none;border-radius:10px;background-color:transparent;background-size:cover;background-position:center;cursor:pointer;box-shadow:0 0 5px rgba(0,0,0,0.2);transition:transform 0.2s, box-shadow 0.2s}#elements button:hover{transform:scale(1.1);box-shadow:0 0 10px rgba(0,0,0,0.4)}#elements button.active{outline:3px solid #0078ff}#ceilings{gap:10px;justify-content:center}#ceilings button{width:80px;height:80px;border:none;border-radius:10px;background-size:cover;background-position:center;box-shadow:0 0 5px rgba(0,0,0,0.3);cursor:pointer;transition:transform 0.2s}#ceilings button:hover{transform:scale(1.1)}#ceilings button.active{outline:3px solid #00bfff}.canvas-container{margin:auto}@media (max-width:768px){canvas#c{width:100% !important;height:auto !important}.container{width:100%;padding:10px;box-sizing:border-box}h2{font-size:18px;text-align:center;margin-bottom:12px}#buttons{flex-direction:column;align-items:center;gap:6px}#buttons button{width:100%;max-width:250px;font-size:14px;padding:10px 0;border-radius:10px}#ceilings,#elements{justify-content:center;gap:6px;margin-bottom:12px}#ceilings button,#elements button{width:60px;height:60px;border-radius:8px;box-shadow:0 0 3px rgba(0,0,0,0.25);background-size:cover;background-position:center}#elements button:hover,#ceilings button:hover{transform:none;box-shadow:0 0 5px rgba(0,0,0,0.3)}canvas{width:100%;height:auto;max-height:400px;border-radius:8px;object-fit:contain;margin-top:10px}}@media (max-width:480px){canvas,.canvas-container{width:100%!important}!important
h2{font-size:16px}#buttons button{font-size:13px;padding:8px 0}#elements button,#ceilings button{width:50px;height:50px}canvas{max-height:300px}}.contact__content{gap:55px}.contact .maps__btm > div{background:var(--main_gr)}.contact__img{position:relative;height:268px;overflow:hidden;width:100%}.contact__img > img{object-fit:cover;width:100%;height:100%;object-position:bottom}.contact__img h2{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact__btm{gap:55px;align-items:flex-start}.contact__cont{padding:29px;background:rgba(var(--main_hex_gr), 0.3)}li.contact__main_list{font-weight:900;font-size:1.1em;font-family:var(--font_prim_eb)}li.contact__main_list > i{color:var(--main_sun);padding-right:8px}ul.sec_list{font-weight:100;font-family:var(--font_prim_reg);font-size:.8em;padding-left:36px;padding-bottom:11px}ul.sec_list li{line-height:1.8em}.sec_list--red{color:var(--main_sun);font-weight:800}@media only screen and (max-width:768px){.contact__img{height:158px}}.form input{padding:12px;border-radius:12px;border-color:var(--main_sun)}.form__btn .form{width:500px;margin:0 auto}.form__btn{display:flex;flex-direction:column;justify-content:center;align-items:center}.universal form.wpcf7-form.init p,.universal form.wpcf7-form.sent p,.universal form.wpcf7-form.invalid p,.universal form.wpcf7-form.submitting p{display:flex;gap:5px}.universal .form input{width:147px}.form__btn .btn_win{width:100%}form .btn_win{border-radius:15px;height:68px;padding:20px 30px}.form__btn form.wpcf7-form.init input,.form__btn form.wpcf7-form.invalid input,.form__btn form.wpcf7-form.sent input,.form__btn form.wpcf7-form.submitting input{border:2px solid var(--main_sun);box-sizing:border-box;border-radius:8px;padding:14px 20px;margin:12px 0;width:100%;font-family:var(--font_prim);font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#000;background:#fff}@media only screen and (max-width:768px){form.form{grid-template-columns:1fr;gap:5px;padding-top:2em}.form__btn .form{width:100%}}.modal-backdrop{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.7);justify-content:center;align-items:center;transition:opacity 0.3s ease-out;opacity:0}.modal-content{background-color:#fefefe;padding:20px;border-radius:8px;width:90%;max-width:400px;position:relative;box-shadow:0 4px 15px rgba(0,0,0,0.4);transition:transform 0.3s ease-out;transform:translateY(-50px) scale(.95)}.modal-show{display:flex;opacity:1}.modal-show .modal-content{transform:translateY(0) scale(1)}.close-btn{color:#aaa;float:right;font-size:28px;font-weight:bold;cursor:pointer}.close-btn:hover,.close-btn:focus{color:#333;text-decoration:none;cursor:pointer}.modal-content input,.modal-content textarea{width:100%;padding:10px;margin:8px 0;box-sizing:border-box;border:1px solid #ccc;border-radius:4px}.modal-content button[type="submit"]{background-color:col(sun);color:#fff;padding:10px 15px;border:none;border-radius:4px;cursor:pointer;font-size:16px;margin-top:10px}.wpcf7-response-output{color:#46b450}.slide_img{width:300px}.hero{position:relative;padding:unset}.hero__backImg{width:100%;height:681px}.hero__backImg img{width:100%;height:100%;object-fit:cover}.hero__backImg_light img{max-width:100%;object-fit:contain}.hero__content{gap:47px;position:absolute;top:50%;transform:translateY(-50%);padding:0 15em;left:0;width:100%}.hero__subs{color:var(--main_blck);font-family:var(--font_prim_reg);font-weight:600;font-size:1.3em;text-align:center}@media only screen and (max-width:1024px){.hero__content{gap:14px;padding:0 1em}}@media only screen and (max-width:768px){.hero__backImg{height:452px}.hero__content{padding:0 1em}.hero__subs{font-size:1em}}@media only screen and (max-width:568px){.hero__subs{font-size:.9em;line-height:1.2em}}@media only screen and (max-width:380px){h1{font-size:1em}.hero__subs{font-size:.8em;line-height:1em}}.maps__btm{justify-self:center;gap:34px}.maps__btm > div{overflow:hidden;border-radius:15px;height:100%}@media only screen and (max-width:768px){.maps__btm > div{height:252px}}@media only screen and (max-width:380px){.maps__btm > div{height:200px}}.parent_cat{padding:40px 0;background-color:#f8f8fa}.parent_cat__contant{padding:0 10px}.splide__arrows{display:none}.splide__list{align-items:stretch}.splide__slide{padding:15px}.card{height:100%;text-decoration:none;display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px;background-color:#fff;border-radius:12px;box-shadow:0 5px 18px rgba(0,0,0,0.15);transition:transform 0.3s ease, box-shadow 0.3s ease}.card:hover{transform:translateY(-8px);box-shadow:0 10px 25px rgba(0,123,255,0.25)}.card__image-wrapper{width:130px;height:130px;overflow:hidden;border-radius:50%;margin-bottom:15px;border:4px solid var(--main_sun);box-shadow:0 0 10px rgba(74,144,226,0.6)}.card__image{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.card:hover .card__image{transform:scale(1.05)}.card__title{font-size:1.15rem;font-weight:600;color:#2c3e50;margin:0;line-height:1.3}.works-header{text-align:center}.works-title{color:#333;font-size:2.5rem;font-weight:300;margin-bottom:10px}.works-filter{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.filter-btn{padding:12px 24px;background:#777f87;border:2px solid #ddd;border-radius:38px 0;cursor:pointer;font-size:14px;font-weight:500;transition:all 0.3s ease}.filter-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,0.1)}.filter-btn.active{background:linear-gradient(135deg, #afa395, #fe4f18);color:var(--main_prim)}.works-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.work-item{background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);border-radius:15px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.1);transition:all 0.3s ease;opacity:1;transform:translateY(0)}.work-item.hidden{opacity:0;transform:translateY(20px);pointer-events:none;display:none}.work-item:hover{transform:translateY(-5px);box-shadow:0 15px 35px rgba(0,0,0,0.15)}.work-image{width:100%;height:200px;overflow:hidden;background:linear-gradient(135deg, #f5f7fa, #c3cfe2);position:relative}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.work-item:hover .work-image img{transform:scale(1.05)}.work-content{padding:20px}.work-title{margin:0 0 10px 0;font-size:1.2rem;font-weight:600;color:#333}.work-description{color:#666;font-size:.9rem;line-height:1.5;margin:0}.no-works{grid-column:1/-1;text-align:center;padding:40px 20px;color:#666;background:rgba(255,255,255,0.9);border:1px solid rgba(255,255,255,0.2);border-radius:15px;box-shadow:0 8px 32px rgba(0,0,0,0.1);font-size:1.1rem}@media only screen and (max-width:768px){.works-title{font-size:2rem}.works-filter{gap:10px}.filter-btn{padding:10px 20px;font-size:12px}.works-gallery{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.work-content{padding:15px}.work-image{height:150px}}.prof__btm{justify-content:flex-start;align-items:flex-start;gap:15px;position:relative;justify-self:center}.prof__btm li.splide__slide{padding:15px 5px}.prof__win{display:flex;flex-direction:column;gap:25px;justify-content:center;align-items:center;border-radius:15px;height:282px;width:max-content;max-width:249px}.prof__img{border-radius:50%;width:119px;height:119px;overflow:hidden;position:absolute;top:-1px}.prof__text{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:156px;padding:25px 10px 19px;border-radius:15px;background:var(--main_prim)}.prof__img > img{width:100%;height:100%;object-fit:cover}.experiens{color:var(--main_sun);text-align:center}.splide__arrow--prev{left:-3em !important}.splide__arrow--next{right:-3em !important}.project__btm{gap:44px}.project__btm .win{background:rgba(var(--main_hex_gr), 0.18)}.project__btm .win__top{position:relative}.min__pic{position:absolute;bottom:0;left:0;width:100%}.min__pic .splide__slide{opacity:.6;transition:opacity 0.3s}.min__pic .splide__slide.is-active{opacity:1}.splide__track--nav .splide__list .splide__slide.is-active{border:2px #fff solid;border-radius:5px}.project__btm .btn{display:inline}.project__btm .win__text{gap:6px}.project__btm p.subs{padding:1px}.project__btm p.subs_bold{color:var(--main_sun)}@media only screen and (max-width:768px){.project__btm{gap:11px}.project__btm .win__text{padding:23px 9px}}.rec__content{padding:62px 25px;background:#f00;border-radius:15px;background:linear-gradient(274deg, #c73709 48%, rgba(255,255,255,0.62))}@media only screen and (max-width:768px){.rec__content{padding:17px 3px}}.rev__block{gap:48px;display:flex;justify-content:center;flex-wrap:wrap}.rev__win{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-radius:15px;background:rgba(var(--main_hex_gr), 0.2);padding:24px;max-width:22em;width:20em;min-width:18em}.subs_bold_down{color:var(--main_sun)}.rev__win .subs{text-align:left;font-size:1em;line-height:1.5em}.rev_icon{background:var(--main_sun);padding:12px;border-radius:50%;width:50px;height:50px;text-align:center;color:var(--main_prim);font-weight:900;font-family:var(--font_prim_eb)}@media only screen and (max-width:718px){.rev__win{width:45%}.win__text_left .subs_bold{font-size:1em}}@media only screen and (max-width:668px){.rev__win{max-width:90%;width:80%}}.service{color:var(--main_blck)}h3.title{font-weight:600;font-family:var(--font_prim_eb);text-transform:none;font-size:1.8em;letter-spacing:-.5px}.service__btm{gap:20px;align-items:flex-start}.win{background:var(--main_gr);border-radius:15px;overflow:hidden;color:var(--main_blck)}.win__img{position:relative;width:100%;height:299px}.win__img img{object-fit:cover;width:100%;height:100%}.win__link{display:none;position:absolute;opacity:0;top:50%;left:50%;transform:translate(-50%,-50%);border:2px #fff solid;border-radius:15px;padding:15px;background:var(--main_sun);transition:all 0.3s ease}a.win__link:hover{color:#fff;background:var(--main_sun)}.win:hover .win__link{display:block;opacity:1}.win__text{padding:23px 22px;align-items:unset;gap:18px}.win__text h3{font-family:var(--font_prim_eb);text-align:left;text-transform:capitalize}.win__text_up{display:flex;gap:15px;align-items:center}.icon_type1{background:#fff3cc;border-radius:7px;font-size:2em;color:#d98103;align-self:auto}.win__text p{font-size:.9em;text-align:left;line-height:1.4em}.win_btm{width:100%;text-align:right}@media only screen and (max-width:768px){.icon_type1{font-size:1.5em}}@media only screen and (max-width:568px){.grid_block_two{grid-template-columns:repeat(1,1fr)}}@media only screen and (max-width:480px){.grid_block_two{grid-template-columns:repeat(1,1fr)}}#splide .splide__pagination{display:none}.img_template{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:35px;justify-content:center;align-items:start;justify-items:center}.slide_grid{width:218px;min-width:100%;max-width:100%;height:368px;min-height:365px;max-height:368px;overflow:hidden;border-radius:15px;background:rgba(101,84,60,0.212);padding:12px;text-align:center}.slide_grid img{max-width:100%;height:100%;text-align:center;object-fit:cover;border-radius:8px}@media only screen and (max-width:598px){.slide_grid{min-width:100%;max-width:100%;height:114px;min-height:unset;max-height:unset}}.universal__content{gap:67px}.universal__text{align-items:unset}.subs_bold{font-weight:900;font-size:1.3em}.universal .img_block{border-radius:80px 0 80px;width:var(--univImgBlockWidth);max-width:var(--univImgBlockWidth);height:var(--univImgBlockHeight);max-height:var(--univImgBlockHeight);min-height:var(--univImgBlockHeight);background:linear-gradient(282deg, #f0f0f0, #f0efee);background-size:cover;background-position:center;background-repeat:no-repeat}b.sing{position:relative}p.subs_left{padding-left:18px}b.sing::before{content:"⁕";position:absolute;left:-19px;top:-1px;color:var(--main_sun);font-weight:900;font-family:var(--font_prim_eb)}ul.sub_mebel > li{list-style-type:disc;list-style-position:inside}.sub_mebel{padding-top:17px;align-items:flex-start}.sub_rec{background:#fff4cc;justify-content:left;align-items:flex-start;border-radius:15px;padding:25px}.sub_rec .fontello-phone{color:var(--main_sun)}.sub_rec p.subs{font-size:.8em;text-align:left}section.videos{padding:5px}section.section.videos{background:#fff}section.videos .splide__slide{text-align:center;border-radius:40px}section.videos h2.title{color:var(--main_blck)}video.code_videos{width:100%;height:700px;object-fit:contain;object-position:bottom}video.videos .splide__slide{display:flex;justify-content:center}video{width:100%;max-width:600px}video::-webkit-media-controls{border-radius:5px}video::-webkit-media-controls-play-button{background-color:#f00;border-radius:50%}video::-webkit-media-controls-volume-slider{background-color:#0f0}.custom-controls{display:flex;gap:10px;margin-top:10px}video button{padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:5px;cursor:pointer}video button:hover{background-color:#0056b3}video input[type="range"]{width:100px;accent-color:#007bff}@media only screen and (max-width:768px){.splide__arrows.splide__arrows--ltr{display:none}}.work__btm{display:grid;grid-template-columns:repeat(5,1fr);gap:32px;justify-content:center;align-items:flex-start}.work__win{border-radius:15px;display:flex;flex-direction:column;gap:18px;background:rgba(var(--main_hex_prim), 1);padding:25px}.sub_title{font-family:var(--font_prim_eb);font-size:1.1em;text-align:center;line-height:1.3em}.sub_subs{font-family:var(--font_prim_reg);font-weight:700;text-align:center;color:var(--main_second);font-size:.8em}.work__icon{text-align:center;padding:16px;color:var(--main_prim);border-radius:15px;position:relative;overflow:hidden}.work__ungle{background:var(--main_prim);position:absolute;bottom:0;right:-2px;border-radius:50%;width:18px;height:18px;text-align:center;color:var(--main_blck);font-style:normal;font-weight:900;font-size:.8em}.work__icon{background:var(--main_sun)}.min_rec{background:linear-gradient(80deg, rgba(var(--main_hex_sun), 0.5), rgba(var(--main_hex_prim), 0.5), rgba(var(--main_hex_sun), 0.5));border-radius:15px;position:relative;width:80%}.min_rec p.subs{padding:48px 82px;font-size:1em;font-weight:800}.min_rec::after{content:"";width:20px;height:20px;position:absolute;left:15px;top:15px;background:var(--main_sun);border-radius:50%}@media only screen and (max-width:1024px){.work__btm{grid-template-columns:repeat(3,1fr)}}@media only screen and (max-width:768px){.work__btm{grid-template-columns:repeat(2,1fr)}.min_rec{width:unset}}@media only screen and (max-width:568px){.work__btm{grid-template-columns:repeat(1,1fr);gap:18px}.min_rec p.subs{padding:34px}}footer{padding:44px 0;background:linear-gradient(180deg, #0a0a0a, #4b4a46, #0a0a0a)}footer h3{color:var(--main_prim);font-family:var(--font_prim_reg);font-size:1em}.footer__logo{align-self:center}.footer__logo p{padding:14px 0}.footer__content{display:grid;grid-template-columns:30% 70%;justify-items:center;justify-content:center;align-items:flex-start;gap:15px}.footer__left{display:flex;width:100%;justify-content:space-around}nav#footer__menu{width:max-content}.footer__menu .menu__list{display:flex;flex-direction:column;color:var(--main_gr)}.footer__menu .menu-item{transition:all 0.3s;padding:4px 0}.footer__menu .current-menu-item{color:var(--main_prim)}.footer__menu .menu-item:hover{color:var(--main_prim)}.footer__contact p{color:var(--main_gr);padding:10px 0;line-height:31px}@media only screen and (max-width:768px){.footer__content{display:flex;flex-wrap:wrap;row-gap:2em}.footer__menu{order:2}.footer__menu,.footer__list{width:24%}.footer__logo{padding:0 3em;order:3}}@media only screen and (max-width:480px){.footer__logo,.footer__logo p,.footer__contact,.footer__contact p,nav#footer__menu{text-align:center}.footer__left{flex-direction:column;align-items:center;gap:22px}}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvZGVmYXVsdC9fbm9ybWlsaXNlLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL3ZlbmRvci5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL25vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9mbGV4LnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL292ZXJmbG93LnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX3ZhcmlhYmxlLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9kZWZhdWx0L190eXBvZ3JhcGh5LnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX21haW5Db2RlLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2JvcmRlci1yYWRpdXMuc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vYWJvdXQuc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9jYXRlZ29yeV9maWx0ZXIuc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9jb25zdHJ1Y3Rvci5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2NvbnRhY3Quc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9mb3JtLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vZm9ybV9tb2RhbC5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2dhbGFyeS5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2hlcm8uc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9tYXBzLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vcGFyZW50X2NhdC5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3BvcnRmb2xpby5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3Byb2Zlc3Npb25hbHMuc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9wcm9qZWN0LnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vcmVjLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vcmV2aWV3cy5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3NlcnZpY2Uuc3R5bCIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9zaW5nbGVfZ2FsYXJ5LnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vdW5pdmVyc2FsLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vdmlkZW9zLnN0eWwiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vd29yay5zdHlsIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3N0eWx1cy9mb290ZXIuc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxFQUNDLE9BQVEsRUFDUixRQUFTLEVDeUNRLG1CQUFHLFdBQUgsZ0JBQUcsV0FSTixXQUFHLFdEOUJsQixLQUNDLFlBQWEsS0FDYix5QkFBMEIsS0FFM0IsS0FDQyxNQUFNLEtBRVAsRUFDRyw4QkVTQyxR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QUFILFlBQUcsTzZCd0RWLElBQUsiLCJmaWxlIjoic3R5bGUubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiogXG5cdG1hcmdpbjogMFxuXHRwYWRkaW5nOiAwXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3hcblxuaHRtbCBcblx0bGluZS1oZWlnaHQ6IDEuMTVcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlXG5cbmJvZHkgXG5cdHdpZHRoIDEwMCVcblxuYSBcbiAgXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFxuXHRkaXNwbGF5OmlubGluZS1ibG9ja1xuICBcbmFiYnJbdGl0bGVdIFxuXHRib3JkZXItYm90dG9tOiBub25lIFxuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkIFxuXG5iLFxuc3Ryb25nIFxuXHRmb250LXdlaWdodDogYm9sZFxuXG5jb2RlLFxua2JkLFxuc2FtcCBcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlIFxuXHRmb250LXNpemU6IDFlbSBcblxuc3ViIFxuXHRib3R0b206IC0wLjI1ZW1cblxuc3VwIFxuXHR0b3A6IC0wLjVlbVxuXG5pbWcgXG5cdGJvcmRlci1zdHlsZTogbm9uZVxuXG5idXR0b24sXG5pbnB1dCAgXG5cdG92ZXJmbG93OiB2aXNpYmxlXG5cdGZvbnQ6IGluaGVyaXRcblxuYnV0dG9uLFxuc2VsZWN0ICBcblx0dGV4dC10cmFuc2Zvcm06IG5vbmVcblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0gXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIFxuXHRib3JkZXItc3R5bGU6IG5vbmVcblx0XG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyBcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0XG5cbmZpZWxkc2V0IFxuXHRwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW1cblxubGVnZW5kIFxuXHRjb2xvcjogaW5oZXJpdCBcblx0ZGlzcGxheTogdGFibGUgXG5cdG1heC13aWR0aDogMTAwJSBcblx0d2hpdGUtc3BhY2U6IG5vcm1hbCBcblxucHJvZ3Jlc3MgXG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxuXG50ZXh0YXJlYSBcblx0b3ZlcmZsb3c6IGF1dG9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0gXG5cdHBhZGRpbmc6IDAgXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24gXG5cdGhlaWdodDogYXV0b1xuXG5bdHlwZT1cInNlYXJjaFwiXSBcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQgXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4IFxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiBcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXG5cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiBcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b24gXG5cdGZvbnQ6IGluaGVyaXQgXG5cbnVsXG5cdGFsbDogdW5zZXRcblx0ZGlzcGxheTogYmxvY2sgXG5saVxuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmVcblxuIiwidXNlKCcuLi9ub2Rlcy92ZW5kb3ItaGVscGVycy5qcycpXG5AaW1wb3J0ICdjb25maWcnXG5cbi8qXG4gKiBBbGlhcyBcIm5vd3JhcFwiIGFzIFwibm8td3JhcFwiLlxuICovXG5cbm5vLXdyYXAgPSB1bnF1b3RlKCdub3dyYXAnKVxuXG4vKlxuICogSGVscGVyIHRvIGZpbmQgb3V0IGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB3aWR0aFxuICovXG5cbmlzLXdpZHRoKHZhbClcbiAgaWYgYXV0byA9PSB2YWxcbiAgICByZXR1cm4gdHJ1ZVxuICBlbHNlIGlmIHZhbCAmJiAndW5pdCcgPT0gdHlwZSh2YWwpXG4gICAgLy8gU3R5bHVzIGRvZXMgbm90IHNob3J0IGNpcmN1aXQgc28gd2UgbmVlZCB0byBwZXJmb3JtIHRoaXMgYXMgYSBkaXN0aW5jdFxuICAgIC8vIG9wZXJhdGlvbiB0byBwcmV2ZW50IGVycm9yc1xuICAgIHJldHVybiAnJyAhPSB1bml0KHZhbClcbiAgcmV0dXJuIGZhbHNlXG5cbi8qXG4gKiBWZW5kb3Igc3VwcG9ydCBmb3IgdGhlIGdpdmVuIHByb3AgLyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGVcbiAqIG9ubHkgcHJlZml4ZXMgdG8gdXRpbGl6ZSwgb3IgdGhvc2Ugd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQuXG4gKi9cblxudmVuZG9yKHByb3AsIGFyZ3MsIG9ubHkgPSBudWxsLCBpZ25vcmUgPSBudWxsLCB2ZW5kb3ItcHJvcGVydHkgPSB0cnVlKVxuICBuZWVkX25vcm1hbGl6ZSA9ICF2ZW5kb3ItcHJvcGVydHkgb3IgcHJvcCBpbiAoJ3RyYW5zaXRpb24nICd0cmFuc2l0aW9uLXByb3BlcnR5JyAnYm9yZGVyLWltYWdlJyAnYm9yZGVyLWltYWdlLXNsaWNlJylcbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKVxuICAgICAgaWYgb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpKVxuICAgICAgICBlbHNlXG4gICAgICAgICAge3Byb3B9OiBhcmdzXG4gICAgICBlbHNlXG4gICAgICAgIG5ld3Byb3AgPSBwcm9wXG4gICAgICAgIG5ld3Byb3AgPSAnLScgKyBwcmVmaXggKyAnLScgKyBwcm9wIGlmIHZlbmRvci1wcm9wZXJ0eVxuXG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge25ld3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpLHByZWZpeClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtuZXdwcm9wfTogYXJnc1xuLypcbiAqIFZlbmRvcml6ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4gKi9cblxudmVuZG9yLXZhbHVlKGFyZywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwpXG4gIHByb3AgPSBjdXJyZW50LXByb3BlcnR5WzBdXG4gIGZvciBwcmVmaXggaW4gdmVuZG9yLXByZWZpeGVzXG4gICAgdW5sZXNzIChvbmx5IGFuZCAhKHByZWZpeCBpbiBvbmx5KSkgb3IgKGlnbm9yZSBhbmQgcHJlZml4IGluIGlnbm9yZSkgb3Igb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICBhZGQtcHJvcGVydHkocHJvcCwgJy0lcy0lcycgJSAocHJlZml4IGFyZykpXG4gIGFyZ1xuXG4vKlxuICogVmVuZG9yIFwiYm94LXNoYWRvd1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXNoYWRvdygpXG4gIHZlbmRvcignYm94LXNoYWRvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidXNlci1zZWxlY3RcIiBzdXBwb3J0LlxuICovXG5cbnVzZXItc2VsZWN0KClcbiAgdmVuZG9yKCd1c2VyLXNlbGVjdCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWNvdW50KClcbiAgdmVuZG9yKCdjb2x1bW4tY291bnQnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZ2FwXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZ2FwKClcbiAgdmVuZG9yKCdjb2x1bW4tZ2FwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLWNvbG9yXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS1jb2xvcigpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtY29sb3InLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtd2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXdpZHRoJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLXN0eWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1zdHlsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXdpZHRoKClcbiAgdmVuZG9yKCdjb2x1bW4td2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tc3BhblwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXNwYW4oKVxuICB2ZW5kb3IoJ2NvbHVtbi1zcGFuJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZmlsbFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWZpbGwoKVxuICB2ZW5kb3IoJ2NvbHVtbi1maWxsJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBMZWdhY3kgc3ludGF4IHN1cHBvcnQgZm9yIGJhY2tncm91bmQtY2xpcCBhbmQgYmFja2dyb3VuZC1vcmlnaW5cbiAqL1xuXG5sZWdhY3ktYmctdmFsdWVzKHByb3BlcnR5LCBhcmdzKVxuICBsZWdhY3lfYXJncyA9ICgpXG4gIGltcG9ydGFuY2UgPSB1bnF1b3RlKCcnKVxuICBmb3Igc3ViYXJncyBpbiBhcmdzXG4gICAgZm9yIGFyZyBpbiBzdWJhcmdzXG4gICAgICBpZiBhcmcgaW4gKGJvcmRlci1ib3ggcGFkZGluZy1ib3ggY29udGVudC1ib3gpXG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2JvcmRlcicpICBpZiBhcmcgPT0gYm9yZGVyLWJveFxuICAgICAgICBhcmcgPSB1bnF1b3RlKCdwYWRkaW5nJykgaWYgYXJnID09IHBhZGRpbmctYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2NvbnRlbnQnKSBpZiBhcmcgPT0gY29udGVudC1ib3hcbiAgICAgIGlmIGFyZyAhPSAnIWltcG9ydGFudCdcbiAgICAgICAgcHVzaChsZWdhY3lfYXJncyxhcmcpXG4gICAgICBlbHNlXG4gICAgICAgIGltcG9ydGFuY2UgPSAhaW1wb3J0YW50XG4gIHZlbmRvcihwcm9wZXJ0eSwgdW5xdW90ZShqb2luKCcsICcsbGVnYWN5X2FyZ3MpKSBpbXBvcnRhbmNlLCBvbmx5OiBtb3ogd2Via2l0KVxuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1jbGlwXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLWNsaXAoKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gdGV4dFxuICAgIHZlbmRvcignYmFja2dyb3VuZC1jbGlwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG4gIGVsc2VcbiAgICBsZWdhY3ktYmctdmFsdWVzKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMpXG4gICAgYmFja2dyb3VuZC1jbGlwOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLW9yaWdpbigpXG4gIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtb3JpZ2luJywgYXJndW1lbnRzKVxuICBiYWNrZ3JvdW5kLW9yaWdpbjogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm1cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybSgpXG4gIHZlbmRvcigndHJhbnNmb3JtJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cbnRyYW5zZm9ybS1vcmlnaW4oKVxuICAgIHZlbmRvcigndHJhbnNmb3JtLW9yaWdpbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNmb3JtLXN0eWxlKClcbiAgdmVuZG9yKCd0cmFuc2Zvcm0tc3R5bGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3JkZXItaW1hZ2VcIiBzdXBwb3J0LlxuICovXG5cbmJvcmRlci1pbWFnZSgpXG4gIHZlbmRvcignYm9yZGVyLWltYWdlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1wcm9wZXJ0eSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1wcm9wZXJ0eScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZHVyYXRpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1kZWxheSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tmYWNlLXZpc2liaWxpdHkoKVxuICB2ZW5kb3IoJ2JhY2tmYWNlLXZpc2liaWxpdHknLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJwZXJzcGVjdGl2ZVwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUoKVxuICBpZiBtaXhpblxuICAgIHZlbmRvcigncGVyc3BlY3RpdmUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG4gIGVsc2VcbiAgICAncGVyc3BlY3RpdmUoJXMpJyAlIGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmUtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5wZXJzcGVjdGl2ZS1vcmlnaW4oKVxuICB2ZW5kb3IoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIE9wYWNpdHkgd2l0aCBjb25kaXRpb25hbCBJRSBzdXBwb3J0LlxuICovXG5cbm9wYWNpdHkobiwgYXJncy4uLilcbiAgb3BhY2l0eTogbiBhcmdzXG4gIGlmIHN1cHBvcnQtZm9yLWllXG4gICAgaWYgbiA9PSBpbmhlcml0IG9yIG4gPT0gaW5pdGlhbFxuICAgICAgLW1zLWZpbHRlcjogbiBhcmdzXG4gICAgICBmaWx0ZXI6IG4gYXJnc1xuICAgIGVsc2VcbiAgICAgIHZhbCA9IHJvdW5kKG4gKiAxMDApXG4gICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgIC1tcy1maWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgICBmaWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgZWxzZVxuICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWwgYXJnc1xuICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWwgYXJnc1xuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiXG4gKi9cblxudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cylcblxuLypcbiAqIEFsaWFzIHRoZSBcIndoaXRlLXNwYWNlXCIgcHJvcGVydHkuXG4gKi9cblxud2hpdGVzcGFjZSgpXG4gIHdoaXRlLXNwYWNlOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJveC1zaXppbmdcIiBzdXBwb3J0LlxuICovXG5cbmJveC1zaXppbmcoKVxuICB2ZW5kb3IoJ2JveC1zaXppbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JpZW50XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JpZW50KClcbiAgdmVuZG9yKCdib3gtb3JpZW50JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWZsZXgtZ3JvdXBcIiBzdXBwb3J0LlxuICovXG5cbmJveC1mbGV4LWdyb3VwKClcbiAgdmVuZG9yKCdib3gtZmxleC1ncm91cCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1vcmRpbmFsLWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JkaW5hbC1ncm91cCgpXG4gIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cblxuLypcbiAqIFZlbmRvciBcImJveC1hbGlnblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWFsaWduKClcbiAgdmVuZG9yKCdib3gtYWxpZ24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtcGFja1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXBhY2soKVxuICB2ZW5kb3IoJ2JveC1wYWNrJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWRpcmVjdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWRpcmVjdGlvbigpXG4gIHZlbmRvcignYm94LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24nLCBhcmd1bWVudHMpXG5cblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1uYW1lXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tbmFtZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLW5hbWUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kdXJhdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWRlbGF5XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgdmVuZG9yKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLXBsYXktc3RhdGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZmlsbC1tb2RlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZmlsbC1tb2RlKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZmlsbC1tb2RlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiaHlwaGVuc1wiIHN1cHBvcnQuXG4gKi9cblxuaHlwaGVucygpXG4gIHZlbmRvcignaHlwaGVucycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFwcGVhcmFuY2VcIiBzdXBwb3J0LlxuICovXG5cbmFwcGVhcmFuY2UoKVxuICB2ZW5kb3IoJ2FwcGVhcmFuY2UnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0YWItc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxudGFiLXNpemUoKVxuICB2ZW5kb3IoJ3RhYi1zaXplJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogbyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcIm92ZXJmbG93LXNjcm9sbGluZ1wiIHN1cHBvcnQuXG4gKi9cblxub3ZlcmZsb3ctc2Nyb2xsaW5nKClcbiAgdmVuZG9yKCdvdmVyZmxvdy1zY3JvbGxpbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcInRleHQtb3ZlcmZsb3dcIiBzdXBwb3J0LCAsIC1vLSBmb3Igb3BlcmEgOS4qIC0gMTAuKlxuICovXG5cbnRleHQtb3ZlcmZsb3coKVxuICB2ZW5kb3IoJ3RleHQtb3ZlcmZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIG8pXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LXNpemUtYWRqdXN0XCIgc3VwcG9ydC5cbiAqL1xudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cywgb25seTogb2ZmaWNpYWwgd2Via2l0IG1zKVxuXG4vKlxuICogVmVuZG9yIFwiZm9udC1zbW9vdGhpbmdcIiBzdXBwb3J0LCB3ZWJraXQgb25seS5cbiAqL1xuZm9udC1zbW9vdGhpbmcoKVxuICB2ZW5kb3IoJ2ZvbnQtc21vb3RoaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG5cblxuLyoqXG4gKiBWZW5kb3IgaW5wdXQtcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIgc3VwcG9ydC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAgIC8vIERlZmF1bHQgc3ludGF4XG4gKiAgICBib2R5XG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yICMzMzMsIGZvbnQtd2VpZ2h0IG5vcm1hbClcbiAqXG4gKiAgICAvLyBUaGUgY29tbWEgaXMgaW1wb3J0YW50XG4gKiAgICAucGxhY2Vob2xkZXItcmVkXG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yIHJlZCwpXG4gKlxuICogICAgLy8gV2UgY2FuIHBhc3MgYSBmdW5jdGlvblxuICogICAgZ3JlZW4tcGxhY2Vob2xkZXIoKVxuICogICAgICBjb2xvciBncmVlblxuICogICAgLnBsYWNlaG9sZGVyLWdyZWVuXG4gKiAgICAgIHBsYWNlaG9sZGVyKGdyZWVuLXBsYWNlaG9sZGVyKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgaGFzaFxuICogICAgdGV4dGFyZWFcbiAqICAgICAgcGxhY2Vob2xkZXIoKGZvbnQtc3R5bGUgaXRhbGljKSAoZm9udC13ZWlnaHQgYm9sZCkgKHBhZGRpbmcgJzRweCAxMHB4JykpXG4gKi9cbnBsYWNlaG9sZGVyKClcbiAgZm9yIHYgaW4gJzotd2Via2l0LWlucHV0JyAnLW1veicgJzotbW96JyAnLW1zLWlucHV0J1xuICAgICY6e3Z9LXBsYWNlaG9sZGVyXG4gICAgICBmb3IgcGFpciBpbiBhcmd1bWVudHNcbiAgICAgICAgaWYgdHlwZW9mKHBhaXIpID09ICdmdW5jdGlvbidcbiAgICAgICAgICBwYWlyKClcbiAgICAgICAgZWxzZSBpZiBwYWlyIGlzIG5vdCBudWxsICYmIHBhaXJbMF0gaXMgbm90IG51bGxcbiAgICAgICAgICB7cGFpclswXX06IHR5cGUocGFpclsxXSkgPT0gJ3N0cmluZycgPyBzKHBhaXJbMV0pIDogcGFpclsxXVxuaW5wdXQtcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclxuXG4vKlxuICogVmVuZG9yIGJhY2tncm91bmQgc3VwcG9ydCAoZ3JhZGllbnRzKS5cbiAqL1xuXG5iYWNrZ3JvdW5kKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kIGFyZ3VtZW50c1xuXG5iYWNrZ3JvdW5kLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kLWltYWdlIGFyZ3VtZW50c1xuXG5jdXJzb3IoKVxuICBpZiBtYXRjaCgnLWdyYWRpZW50XFwoJywgJycrYXJndW1lbnRzKVxuICAgIHZlbmRvcignY3Vyc29yJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgY3Vyc29yIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlLWltYWdlIGFyZ3VtZW50c1xuIiwiLypcbiAqIFZlbmRvciBcImRpc3BsYXk6IGZsZXhcIiBzdXBwb3J0IHdpdGggZmFsbGJhY2sgdG8gb2Jzb2xldGUgdmVyc2lvbnMuXG4gKi9cblxuZmxleC12ZXJzaW9uID89IGJveCBmbGV4XG5cbi8vXG4vLyAxLiBEaXNwbGF5IHZhbHVlc1xuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXgtY29udGFpbmVyc1xuLy9cbmRpc3BsYXkodHlwZSwgYXJncy4uLilcbiAgaWYgZmxleCA9PSB0eXBlIHx8IGlubGluZS1mbGV4ID09IHR5cGVcbiAgICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgICBpZiBmbGV4ID09IHR5cGVcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgICBlbHNlXG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCBhcmdzXG4gICAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShpbmxpbmUtYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbCkgLy8gb3ZlcndyaXRlcyBvbGQgd2Via2l0XG4gIGVsc2VcbiAgICBkaXNwbGF5OiBhcmd1bWVudHNcblxuLypcbiAqIE5ldyBzeW50YXggZm9yIGJyb3dzZXJzIGxpa2UgR29vZ2xlIENocm9tZS5cbiAqIFBsdXMgYSB0cmFuc2xhdGlvbiB0byB0aGUgb2xkIHN5bnRheCwgaWYgcG9zc2libGUuXG4gKi9cblxuXG4vL1xuLy8gNS4gT3JkZXJpbmcgYW5kIE9yaWVudGF0aW9uXG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jb3JkZXJpbmctYW5kLW9yaWVudGF0aW9uXG4vL1xuLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGRpcmVjdGlvbilcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIGlmIHJvdy1yZXZlcnNlID09IGRpcmVjdGlvbiB8fCBjb2x1bW4tcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LWRpcmVjdGlvbicsIHJldmVyc2UsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgICBpZiByb3cgPT0gZGlyZWN0aW9uIHx8IHJvdy1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtb3JpZW50JywgaG9yaXpvbnRhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcbiAgICBlbHNlIGlmIGNvbHVtbiA9PSBkaXJlY3Rpb24gfHwgY29sdW1uLXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1vcmllbnQnLCB2ZXJ0aWNhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuLWZsZXgtb2Jzb2xldGUtd3JhcCh2YWx1ZSlcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIC8vIFdBUk46IHdyYXAtcmV2ZXJzZSBkb2VzIG5vdCBoYXZlIGEgYm94IGVxdWl2YWxlbnQuIFRoaXMgd2lsbCByZW5kZXIgaW4gZGlmZmVyZW50IG1hbm5lcnNcbiAgICAvLyAgICBvbiBib3ggdnMuIGZsZXggdmFsdWVzLlxuICAgIGlmICd3cmFwJyA9PSB2YWx1ZSB8fCB3cmFwLXJldmVyc2UgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgbXVsdGlwbGUsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG4gICAgZWxzZSBpZiBub3dyYXAgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgc2luZ2xlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG5mbGV4LWRpcmVjdGlvbihkaXJlY3Rpb24pXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihkaXJlY3Rpb24pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LXdyYXAodmFsdWUpXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAodmFsdWUpXG5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtd3JhcCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LWZsb3coKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzBdKVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzFdKVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKGFyZ3VtZW50c1swXSlcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcChhcmd1bWVudHNbMV0pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG5vcmRlcigpXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1vcmRpbmFsLWdyb3VwJywgYXJndW1lbnRzLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1vcmRlcicsIGFyZ3VtZW50cywgb25seTogbXMpXG4gICAgdmVuZG9yKCdvcmRlcicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5cbi8vXG4vLyA3LiBGbGV4aWJpbGl0eVxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXhpYmlsaXR5XG4vL1xuZmxleC1ncm93KGdyb3d0aClcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LWZsZXgnLCBncm93dGgpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWdyb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuZmxleC1iYXNpcygpXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWJhc2lzJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgtc2hyaW5rKClcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtc2hyaW5rJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgoZ3Jvd3RoKVxuXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICBzaHJpbmsgPSAxXG5cbiAgICBpZiBub25lID09IGdyb3d0aCB8fCBpbml0aWFsID09IGdyb3d0aFxuICAgICAgLy8gV2VsbCBrbm93biB2YWx1ZXNcbiAgICAgIHNocmluayA9IDAgaWYgbm9uZSA9PSBncm93dGhcbiAgICAgIGdyb3d0aCA9IDBcbiAgICBlbHNlIGlmIGlzLXdpZHRoKGdyb3d0aCkgPT0gdHJ1ZVxuICAgICAgLy8gQmFzaXMgaXMgZGVmaW5lZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyXG4gICAgICBncm93dGggPSBhcmd1bWVudHNbMV0gfHwgMFxuICAgICAgc2hyaW5rID0gYXJndW1lbnRzWzJdIGlmIDMgPD0gbGVuZ3RoKGFyZ3VtZW50cylcbiAgICBlbHNlIGlmIGFyZ3VtZW50c1sxXSAmJiBpcy13aWR0aChhcmd1bWVudHNbMV0pID09IGZhbHNlXG4gICAgICAvLyBHcm93dGggaXMgZmlyc3QgYW5kIHNocmluayBpcyBzZWNvbmRcbiAgICAgIHNocmluayA9IGFyZ3VtZW50c1sxXVxuXG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgbWFrZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBncm93aW5nIGFuZCBzaHJpbmtpbmcgaW4gdGhlIGJveCBtb2RlbCwgdGFrZVxuICAgIC8vIHRoZSBvbmUgdGhhdCBwcm92aWRlcyB0aGUgbW9zdCBmbGV4aWJpbGl0eS5cbiAgICB2ZW5kb3IoJ2JveC1mbGV4JywgbWF4KGdyb3d0aCwgc2hyaW5rKSwgaWdub3JlOiBtcylcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG4vLyBjb252ZXJ0cyB0aGUganVzdGlmaWNhdGlvbiBhbGlnbm1lbnRcbi1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pXG4gIGlmIGZsZXgtc3RhcnQgPT0gYWxpZ25cbiAgICByZXR1cm4gc3RhcnRcbiAgZWxzZSBpZiBmbGV4LWVuZCA9PSBhbGlnblxuICAgIHJldHVybiBlbmRcbiAgZWxzZSBpZiBzcGFjZS1hcm91bmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZGlzdHJpYnV0ZVxuICBlbHNlIGlmIHNwYWNlLWJldHdlZW4gPT0gYWxpZ25cbiAgICByZXR1cm4ganVzdGlmeVxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbi8vXG4vLyA4LiBBbGlnbm1lbnRcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNhbGlnbm1lbnRcbi8vXG5qdXN0aWZ5LWNvbnRlbnQoYWxpZ24pXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXBhY2snLCAtY29udmVydC1qdXN0aWZ5KGFsaWduKSwgb25seTogbXMpXG4gICAgdmVuZG9yKCdqdXN0aWZ5LWNvbnRlbnQnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5hbGlnbi1jb250ZW50KGFsaWduKVxuICAvLyBXQVJOOiBPYnNvbGV0ZSBzcGVjIGRvZXMgbm90IGFsbG93IGZvciBhZGp1c3RtZW50IGhlcmVcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtbGluZS1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24tY29udGVudCcsIGFsaWduLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8vIGNvbnZlcnRzIGFsaWdubWVudCBmcm9tICdmbGV4JyB0byBub3JtYWwgdmFsdWVcbi1jb252ZXJ0LWFsaWdubWVudChhbGlnbilcbiAgaWYgZmxleC1zdGFydCA9PSBhbGlnblxuICAgIHJldHVybiBzdGFydFxuICBlbHNlIGlmIGZsZXgtZW5kID09IGFsaWduXG4gICAgcmV0dXJuIGVuZFxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbmFsaWduLWl0ZW1zKGFsaWduKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24taXRlbXMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuYWxpZ24tc2VsZihhbGlnbilcbiAgLy8gV0FSTjogT2Jzb2xldGUgc3BlYyBkb2VzIG5vdCBhbGxvdyBmb3Igb3ZlcnJpZGluZyBhbGlnbm1lbnQgb24gaW5kaXZpZHVhbCBpdGVtcy5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2FsaWduLXNlbGYnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuICAgIHZlbmRvcignZmxleC1pdGVtLWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgb25seTogbXMpXG4iLCIvKlxuICogT3ZlcmZsb3cgdXRpbGl0eS4gTWFwcyB0byByZWd1bGFyIG92ZXJmbG93LCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB2YWx1ZS5cbiAqXG4gKiBTeW5vcHNpczpcbiAqXG4gKiAgIG92ZXJmbG93OiA8dHlwZT5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgb3ZlcmZsb3c6IGF1dG9cbiAqICAgICBvdmVyZmxvdzogaGlkZGVuXG4gKiAgICAgb3ZlcmZsb3c6IGVsbGlwc2lzXG4gKlxuICovXG5cbm92ZXJmbG93KClcbiAgaWYgYXJndW1lbnRzWzBdID09IGVsbGlwc2lzXG4gICAgZWxsaXBzaXMoKVxuICBlbHNlXG4gICAgb3ZlcmZsb3c6IGFyZ3VtZW50c1xuIiwiY29sb3JzID0ge1xuICAgIHByaW06ICNmZmZmZmYsXG4gICAgc2Vjb25kOiAjMkMyQzJDLFxuICAgIGJsY2s6ICMxQTFBMUEsXG4gICAgZ3I6ICNCN0I3QjdcbiAgICBzdW46I0ZFNEYxOCxcbn1cblxuLy8g0LfQsNC30LzQtdGA0Ysg0LTQu9GPINCw0LTQsNC/0YLQsNGG0LjRjyBcbi8vINGI0YDQuNGE0YIg0L7Qv9GA0LXQtNC10LvRj9C10YIg0YHQv9C10YbQuNCw0LvRjNC90YvQuSDQutC+0LQg0LLQvdC40LfRgyBcbmZvbnRzID0ge1xuICAgIGhlYWRlcjogJ2Rpc2NvdmVyeSdcbiAgICBwcmltOiAnbWFucm9wZSdcbiAgICBwcmltX3JlZzogJ21hbnJvcGVfcmVnJ1xuICAgIHByaW1fbWVkOiAnbWFucm9wZV9tZWQnXG4gICAgcHJpbV9zYjogJ21hbnJvcGVfc2InXG4gICAgcHJpbV9iOiAnbWFucm9wZV9iJ1xuICAgIHByaW1fZWI6ICdtYW5yb3BlX2ViJ1xuICAgIHByaW1fbDogJ21hbnJvcGVfbCdcbiAgICBwcmltX2VsOiAnbWFucm9wZV9lbCdcbiAgICBpY29uOiBcImZvbnRlbGxvXCIgc2Fucy1zZXJpZlxufVxuXG4vLyBpbWdTaXplID0ge1xuLy8gICAgIHNtYWxsOiAxNnB4XG4vLyAgICAgbWVkaXVtOiAyNHB4XG4vLyAgICAgbGFyZ2U6IDMycHhcbi8vICAgICB4bGFyZ2U6IDQ4cHhcbi8vICAgICB4eGxhcmdlOiA2NHB4XG4vLyB9XG4vLyDQvtC/0YDQtdC00LXQu9GP0LXQvCDQv9C10YDQtdC80LXQvdC90YvQuSAgXG46cm9vdFxuICAgIC8vINC+0L/RgNC10LTQtdC70Y/QtdC8INGG0LLQtdGC0LAgIFxuICAgIGZvciBuYW1lLCBjb2xvciBpbiBjb2xvcnMgXG4gICAgICAgIC0tbWFpbl97bmFtZX06Y29sb3JcbiAgICAgICAgLy8g0L7Qv9GA0LXQtNC10LvQtdC90LjQtSAxNiDRgNC40YfQvdGL0YUg0YbQstC10YLQvtCyIFxuICAgICAgICAtLW1haW5faGV4X3tuYW1lfTogdW5xdW90ZShqb2luKFwiLCBcIiwgcmVkKGNvbG9yKSBncmVlbihjb2xvcikgYmx1ZShjb2xvcikpKVxuICAgIFxuICAgIC8vINC+0L/RgNC10LTQtdC70Y/QtdC8INGI0YDQuNGE0YJcbiAgICBmb3IgbmFtZSwgZm9udCBpbiBmb250cyBcbiAgICAgICAgLS1mb250X3tuYW1lfTpmb250XG5cbiAgICAtLXNwZWVkOjA1c1xuICAgIC0tZGVncmVlX3NlYzoxMzVkZWdcblxuICAgIC8vIGltZ1NpemVcbiAgICAtLXVuaXZJbWdCbG9ja0hlaWdodDo0ODJweCAgXG4gICAgLS11bml2SW1nQmxvY2tXaWR0aDo1MTZweCAgXG5cblxuXG5cbi8vINC+0L/RgNC10LTQtdC70Y/QtdC8INGA0LDQt9C80LXRgNGLICBcbmV4dHJhTGFyZ2UgPSAxNDAwcHhcbmVsID0gZXh0cmFMYXJnZVxuXG5sYXJnZSA9IDEyMDBweFxubCA9IGxhcmdlXG5cbmRlc2t0b3AgPSAxMDI0cHhcbmQgPSBkZXNrdG9wXG5cbnRhYmxldCA9IDc2OHB4XG50ID0gdGFibGV0XG5cbm1vYmlsZSA9IDU2OHB4XG5tID0gbW9iaWxlXG5cbnNtYWxsTW9iaWxlID0gNDgwcHhcbnNtID0gc21hbGxNb2JpbGVcblxuZXh0cmFTbWFsbE1vYmlsZSA9IDM4MHB4XG5lc20gPSBleHRyYVNtYWxsTW9iaWxlXG5cblxuK2JlbG93KGQpXG4gICAgOnJvb3RcbiAgICAgICAgLS11bml2SW1nQmxvY2tXaWR0aDo0NDBweFxuICAgICAgICAtLXVuaXZJbWdCbG9ja0hlaWdodDozMzZweCAgXG4gICAgICAgIFxuK2JlbG93KDkwMHB4KVxuICAgIDpyb290XG4gICAgICAgIC0tdW5pdkltZ0Jsb2NrV2lkdGg6IDMyNHB4O1xuICAgICAgICAtLXVuaXZJbWdCbG9ja0hlaWdodDogMjQ4cHg7XG5cbitiZWxvdyh0KVxuICAgIDpyb290XG4gICAgICAgIC0tdW5pdkltZ0Jsb2NrV2lkdGg6IDEwMCU7XG4gICAgICAgIC0tdW5pdkltZ0Jsb2NrSGVpZ2h0OjIwZW1cblxuXG4vLyB0ZXN0ICBcbi8vIGJvZHlcbi8vIHVuaXZJbWdCbG9ja1dpZHRoID0gNTE2cHggIFxuLy8gdW5pdkltZ0Jsb2NrSGVpZ2h0ID0gNDgycHggIFxuLy8gK2JlbG93KGQpXG4vLyAgICAgdW5pdkltZ0Jsb2NrV2lkdGggPSA0NDBweFxuLy8gICAgIHVuaXZJbWdCbG9ja0hlaWdodCA9IDMzNnB4IiwiYmFzZS1mb250LXNpemUgPz0gMTZweFxucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMgPz0gZmFsc2VcblxucnVwdHVyZSA9IHtcbiAgcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXM6IHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzXG4gIG1vYmlsZS1jdXRvZmY6IDQwMHB4XG4gIGRlc2t0b3AtY3V0b2ZmOiAxMDUwcHhcbiAgaGQtY3V0b2ZmOiAxODAwcHhcbiAgZW5hYmxlLWVtLWJyZWFrcG9pbnRzOiBmYWxzZVxuICBiYXNlLWZvbnQtc2l6ZTogYmFzZS1mb250LXNpemVcbiAgYW50aS1vdmVybGFwOiBmYWxzZVxuICBkZW5zaXR5LXF1ZXJpZXM6ICdkcHB4JyAnd2Via2l0JyAnbW96JyAnZHBpJ1xuICByZXRpbmEtZGVuc2l0eTogMS41XG4gIHVzZS1kZXZpY2Utd2lkdGg6IGZhbHNlXG59XG5ydXB0dXJlLnNjYWxlID0gMCAocnVwdHVyZS5tb2JpbGUtY3V0b2ZmKSA2MDBweCA4MDBweCAocnVwdHVyZS5kZXNrdG9wLWN1dG9mZikgKHJ1cHR1cmUuaGQtY3V0b2ZmKVxucnVwdHVyZS5zY2FsZS1uYW1lcyA9ICd4cycgJ3MnICdtJyAnbCcgJ3hsJyAnaGQnXG5cbi1pcy1zdHJpbmcodmFsKVxuICBpZiB0eXBlb2YodmFsKSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgdmFsIGlzIGEgJ3N0cmluZycgb3IgdmFsIGlzIGEgJ2lkZW50J1xuICAgICAgdHJ1ZVxuICAgIGVsc2VcbiAgICAgIGZhbHNlXG4gIGVsc2VcbiAgICBmYWxzZVxuXG4tZ2V0LXNjYWxlLW51bWJlcihzY2FsZS1uYW1lKVxuICBmb3IgbGlzdC1pdGVtLCBpIGluIHJ1cHR1cmUuc2NhbGUtbmFtZXNcbiAgICBpZiBsaXN0LWl0ZW0gaXMgc2NhbGUtbmFtZVxuICAgICAgcmV0dXJuIGkgKyAxXG4gIHJldHVybiBmYWxzZVxuXG4tY29udmVydC10byh0by11bml0LCB2YWx1ZSwgY29udGV4dCA9IHJ1cHR1cmUuYmFzZS1mb250LXNpemUpXG4gIGZyb20tdW5pdCA9IHVuaXQodmFsdWUpXG4gIHJldHVybiB2YWx1ZSBpZiB0by11bml0IGlzIGZyb20tdW5pdFxuICBpZiB0by11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB2YWx1ZSBpZiBmcm9tLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlIC8gY29udGV4dCksIHRvLXVuaXQpXG4gIGlmIHRvLXVuaXQgaXMgJ3B4J1xuICAgIHJldHVybiB1bml0KCh2YWx1ZSAqIGNvbnRleHQpLCAncHgnKVxuXG4tb24tc2NhbGUobilcbiAgcmV0dXJuIHVuaXQobikgaXMgJydcblxuLWxhcmdlci10aGFuLXNjYWxlKG4pXG4gIHJldHVybiAobiA+IChsZW5ndGgocnVwdHVyZS5zY2FsZSkgLSAxKSkgYW5kIC1vbi1zY2FsZShuKVxuXG4taXMtemVybyhuKVxuICByZXR1cm4gbiBpcyAwXG5cbi1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgc2hpZnQtdW5pdCA9IHVuaXQobilcbiAgYW50aS1vdmVybGFwID0gMHB4IHVubGVzcyBhbnRpLW92ZXJsYXBcbiAgYW50aS1vdmVybGFwID0gMXB4IGlmIGFudGktb3ZlcmxhcCBpcyB0cnVlXG4gIGlmIGxlbmd0aChhbnRpLW92ZXJsYXApIGlzIDFcbiAgICByZXR1cm4gLWNvbnZlcnQtdG8oc2hpZnQtdW5pdCwgYW50aS1vdmVybGFwKVxuICBmb3IgdmFsIGluIGFudGktb3ZlcmxhcFxuICAgIHJldHVybiB2YWwgaWYgdW5pdCh2YWwpIGlzIHNoaWZ0LXVuaXRcblxuLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgbiwgc2lkZSA9ICdtaW4nKVxuICAtc2hpZnQgPSAtb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIGlmIChzaWRlIGlzICdtaW4nIGFuZCAtc2hpZnQgPiAwKSBvciAoc2lkZSBpcyAnbWF4JyBhbmQgLXNoaWZ0IDwgMClcbiAgICBuID0gbiArIC1zaGlmdFxuICByZXR1cm4gblxuXG4taXMtcG9zaXRpdmUobilcbiAgcmV0dXJuIG4gPj0gMFxuXG4tZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gIGlmIHR5cGVvZihkZW5zaXR5KSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgbm90IC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSAnJXMnICUgZGVuc2l0eVxuICBkZW5zaXR5ID0gcnVwdHVyZS5yZXRpbmEtZGVuc2l0eSBpZiBkZW5zaXR5IGlzICdyZXRpbmEnXG4gIHF1ZXJpZXMgPSAoKVxuICBmb3IgcXVlcnkgaW4gcnVwdHVyZS5kZW5zaXR5LXF1ZXJpZXNcbiAgICBpZiBxdWVyeSBpcyAnd2Via2l0J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdtb3onXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ28nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMvMSknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ3JhdGlvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBpJ1xuICAgICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgICBkZW5zaXR5PWNvbnZlcnQoZGVuc2l0eSlcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcGkpJyAlIChyb3VuZChkZW5zaXR5ICogOTYsIDEpKSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcHB4J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwcHgpJyAlIChkZW5zaXR5KSlcbiAgcmV0dXJuIHF1ZXJpZXNcblxuY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBjbGFzcylcbiAgL3snJyArIGNsYXNzICsgJyAnICsgc2VsZWN0ZWR9XG4gICAge2Jsb2NrfVxuXG4vLyArYmV0d2VlbihtaW4sIG1heClcbi8vIHVzYWdlIChzY2FsZSBjYW4gYmUgbWl4ZWQgd2l0aCBjdXN0b20gdmFsdWVzKTpcbi8vICAgLSArYmV0d2VlbigxLCAzKSBzY2FsZTpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDAsIDMpIDAgd2lkdGg6c2NhbGVcbi8vICAgLSArYmV0d2VlbigyMDBweCwgNTAwcHgpIGN1c3RvbTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigwLCAzMDBweCkgMCB3aWR0aDpjdXN0b21cbi8vICAgLSArYmV0d2VlbigxLCAzMDBweCkgc2NhbGU6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDQpIGN1c3RvbTpzY2FsZVxuXG5iZXR3ZWVuKG1pbiwgbWF4LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcblxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gIGlmIC1pcy1zdHJpbmcobWluKVxuICAgIG1pbiA9IC1nZXQtc2NhbGUtbnVtYmVyKG1pbilcbiAgaWYgLWlzLXN0cmluZyhtYXgpXG4gICAgbWF4ID0gLWdldC1zY2FsZS1udW1iZXIobWF4KVxuXG4gIC1taW4gPSBydXB0dXJlLnNjYWxlW21pbiAtIDFdIHVubGVzcyAtaXMtemVybyhtaW4pIG9yIChub3QgLW9uLXNjYWxlKG1pbikpXG4gIC1tYXggPSBydXB0dXJlLnNjYWxlW21heF0gdW5sZXNzIG5vdCAtb24tc2NhbGUobWF4KVxuICAtbWluID89IG1pblxuICAtbWF4ID89IG1heFxuXG4gIGlmIChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIG5vdCAoZGVuc2l0eSBvciAtbWF4IG9yIG9yaWVudGF0aW9uKVxuICAgICAge2Jsb2NrfVxuICBlbHNlXG4gICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuJ1xuICAgIHVzZS1kZXZpY2Utd2lkdGggPSB1c2UtZGV2aWNlLXdpZHRoID8gJ2RldmljZS0nIDogJydcbiAgICB1bmxlc3MgLW1pbiBpcyAwXG4gICAgICAtbWluID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1pbikgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1taW4gPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWluLCBzaWRlOiAnbWluJylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtaW4tJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1pbilcbiAgICB1bmxlc3MgLWxhcmdlci10aGFuLXNjYWxlKG1heClcbiAgICAgIC1tYXggPSAtY29udmVydC10bygnZW0nLCAtbWF4KSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1heCA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1tYXgsIHNpZGU6ICdtYXgnKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1heC0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWF4KVxuICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgaWYgZGVuc2l0eVxuICAgICAgY29uZGl0aW9ucyA9ICgpXG4gICAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbiArICcgYW5kICVzJyAlIChxdWVyeSkpXG4gICAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAge2Jsb2NrfVxuXG5hdChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZnJvbS13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgbGVuZ3RoKHJ1cHR1cmUuc2NhbGUpLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmFib3ZlID0gZnJvbS13aWR0aFxuXG50by13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbigxLCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5iZWxvdyA9IHRvLXdpZHRoXG5cbm1vYmlsZShhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZWxvdyhydXB0dXJlLm1vYmlsZS1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxudGFibGV0KGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4ocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlc2t0b3AoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5oZChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmhkLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZW5zaXR5KGRlbnNpdHksIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4gYW5kICVzJyAlIChxdWVyeSlcbiAgICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uKVxuICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG5cbnBpeGVsLXJhdGlvID0gZGVuc2l0eVxuXG5yZXRpbmEob3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gICtkZW5zaXR5KCdyZXRpbmEnLCBvcmllbnRhdGlvbiwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5sYW5kc2NhcGUoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogbGFuZHNjYXBlLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucG9ydHJhaXQoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogcG9ydHJhaXQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG5cbnJ1cHR1cmUtaG92ZXIoZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBjb25kaXRpb24gPSBcIm9ubHkgc2NyZWVuIGFuZCAoaG92ZXI6IGhvdmVyKVwiO1xuICBAbWVkaWEgKHtjb25kaXRpb259KVxuICAgIHtibG9ja31cblxuaG92ZXIgPSBydXB0dXJlLWhvdmVyXG4iLCJAZm9udC1mYWNlIFxyXG4gICAgZm9udC1mYW1pbHk6IFwiZGlzY292ZXJ5XCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL2Rpc2NvdmVyeS9kaXNjb3Zlcnkub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHJcbi8qIFJlZ3VsYXIgKi9cclxuQGZvbnQtZmFjZSBcclxuICBmb250LWZhbWlseTogXCJtYW5yb3BlX3JlZ1wiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWFucm9wZS9zdGF0aWMvTWFucm9wZS1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcblxyXG4vKiBNZWRpdW0gKi9cclxuQGZvbnQtZmFjZSBcclxuICBmb250LWZhbWlseTogXCJtYW5yb3BlX21lZFwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWFucm9wZS9zdGF0aWMvTWFucm9wZS1NZWRpdW0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHJcbi8qIFNlbWlCb2xkICovXHJcbkBmb250LWZhY2UgXHJcbiAgZm9udC1mYW1pbHk6IFwibWFucm9wZV9zYlwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWFucm9wZS9zdGF0aWMvTWFucm9wZS1TZW1pQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuLyogQm9sZCAqL1xyXG5AZm9udC1mYWNlIFxyXG4gIGZvbnQtZmFtaWx5OiBcIm1hbnJvcGVfYlwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbWFucm9wZS9zdGF0aWMvTWFucm9wZS1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcblxyXG4vKiBFeHRyYUJvbGQgKi9cclxuQGZvbnQtZmFjZSBcclxuICBmb250LWZhbWlseTogXCJtYW5yb3BlX2ViXCI7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9tYW5yb3BlL3N0YXRpYy9NYW5yb3BlLUV4dHJhQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuLyogTGlnaHQgKi9cclxuQGZvbnQtZmFjZSBcclxuICBmb250LWZhbWlseTogXCJtYW5yb3BlX2xcIjtcclxuICBzcmM6IHVybChcIi4uL2ZvbnRzL21hbnJvcGUvc3RhdGljL01hbnJvcGUtTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHJcbi8qIEV4dHJhTGlnaHQgKi9cclxuQGZvbnQtZmFjZSBcclxuICBmb250LWZhbWlseTogXCJtYW5yb3BlX2VsXCI7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9tYW5yb3BlL3N0YXRpYy9NYW5yb3BlLUV4dHJhTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHJcbmgxLCBoMiwgaDNcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQocHJpbSlcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgY29sb3I6IGNscihibGNrKVxyXG5cclxuaDFcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQocHJpbV9lYik7XHJcbiAgICBmb250LXNpemU6IDNlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XHJcblxyXG5oMlxyXG4gICAgZm9udC1zaXplOiAyLjJlbVxyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtXHJcbiAgICBjb2xvcjogY2xyKGJsY2spO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX2ViKTtcclxuXHJcbi5ncmlkX2Jsb2NrX3R3byBoMi50aXRsZSBcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxZW07XHJcblxyXG5oMi50aXRsZSBcclxuICAgIHRleHQtYWxpZ246IGNlbnRlclxyXG5cclxuaDNcclxuICAgIGZvbnQtc2l6ZTogMS44ZW1cclxuICAgIGNvbG9yOiBjbHIoYmxjayk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhlbVxyXG4gICAgZm9udC1mYW1pbHk6IFxyXG5cclxuaDRcclxuICAgIGZvbnQtc2l6ZTogMS4zZW1cclxuICAgIGNvbG9yOiBjbHIoYmxjayk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbVxyXG5cclxucCBcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQoYmxjaylcclxuICAgIGZvbnQtc2l6ZTogMWVtXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XHJcblxyXG5hXHJcbiAgICBmb250LXNpemU6IDFlbVxyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXHJcbiAgICBjb2xvcjogaW5oZXJpdFxyXG5cclxuICBcclxuLnN1YnNfYmxvY2tcclxuICAgIHBhZGRpbmc6IDM0cHggMTY0cHggNXB4O1xyXG5cclxucC5zdWJzIFxyXG4gICAgZm9udC1zaXplOiAxLjNlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICBmb250LWZhbWlseTogZm50KHByaW1fcmVnKTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDE1cHggNXB4XHJcblxyXG5cclxuK2JlbG93KGwpXHJcbiAgICAuc3Vic19ibG9ja1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAxOHB4XHJcblxyXG4gICAgaDJcclxuICAgICAgICBmb250LXNpemU6IDJlbVxyXG5cclxuK2JlbG93KGQpXHJcblxyXG4gICAgaDEgXHJcbiAgICAgICAgZm9udC1zaXplOiBcclxuXHJcbiAgICBoMyBcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG5cclxuICAgIHAgXHJcbiAgICAgICAgZm9udC1zaXplOiAuOWVtXHJcbiAgICBcclxuICAgIGFcclxuICAgICAgICBmb250LXNpemU6IC45ZW0gXHJcblxyXG4rYmVsb3codClcclxuICAgIC5zdWJzX2Jsb2NrXHJcbiAgICAgICAgcGFkZGluZzogNXB4IDJweFxyXG5cclxuICAgIGgxICBcclxuICAgICAgICBmb250LXNpemU6IDJlbVxyXG5cclxuICAgIGgyXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbVxyXG4gICAgXHJcbiAgICBoMyBcclxuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xyXG5cclxuICAgIHAuc3Vic1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xZW1cclxuICAgICAgICBwYWRkaW5nOiA1cHhcclxuXHJcbitiZWxvdyhtKVxyXG4gICAgaDFcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtXHJcblxyXG4gICAgaDJcclxuICAgICAgICBmb250LXNpemU6IDEuM2VtXHJcblxyXG4gICAgcC5zdWJzXHJcbiAgICAgICAgZm9udC1zaXplOiAxZW1cclxuXHJcbitiZWxvdyhzbSlcclxuICAgIGgyIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW1cclxuICAgIFxyXG4rYmVsb3coZXNtKVxyXG4gICAgaDEgXHJcbiAgICAgICAgZm9udC1zaXplOiAxZW1cclxuXHJcbiAgICAuaGVyb19fc3VicyBcclxuICAgICAgICBmb250LXNpemU6IC44ZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcclxuICAgIGgyXHJcbiAgICAgICAgZm9udC1zaXplOiAxZW1cclxuICAgIFxyXG4gICAgcC5zdWJzXHJcbiAgICAgICAgZm9udC1zaXplOiAuOWVtXHJcbiAgICBcclxuICAgIGg0LCBcclxuICAgIGg0LnN1Yl90aXRsZVxyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtXHJcblxyXG4gICAiLCIqIFxyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG5odG1sIFxyXG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcblxyXG5ib2R5IFxyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX3JlZylcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcblxyXG4uY29udGFpbmVyIFxyXG4gICAgbWF4LXdpZHRoOiAxMDAlXHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHBhZGRpbmc6IDAgMTBlbTtcclxuXHJcbi8vINC60L3QvtC/0LrQuCAgXHJcbmJ1dHRvblxyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDE1cHggMzBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYmFja2dyb3VuZDogY2xyKHN1bilcclxuICAgIGNvbG9yOiBjbHIocHJpbSk7XHJcblxyXG4uYnRuX3NlYyBcclxuICAgIHBhZGRpbmc6IDE1cHggNjdweDtcclxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5MXB4IDE0cHg7XHJcblxyXG4uYnRuX3dpblxyXG4gICAgcGFkZGluZzogMTVweCAxNHB4XHJcbiAgICB3aWR0aCBtYXgtY29udGVudFxyXG4gICAgZm9udC1zaXplOiAuOGVtXHJcblxyXG4uYnRuIFxyXG4gICAgZGlzcGxheTpibG9ja1xyXG5cclxuLmJ0bjo6YmVmb3JlIFxyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAtMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsMjU1LDI1NSwwLjIpLCB0cmFuc3BhcmVudCk7XHJcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuNXM7XHJcblxyXG4uYnRuOmhvdmVyOjpiZWZvcmUgXHJcbiAgICBsZWZ0OiAxMDAlO1xyXG5cclxuYnV0dG9uLnRlc3RCdG5cclxuICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdW5zZXQ7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJveC1zaGFkb3c6IHVuc2V0O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuXHJcblxyXG5idXR0b24uaGlkZGVuXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpICByb3RhdGUoMClcclxuXHJcbmJ1dHRvbiNidG5VcHBlcjo6YmVmb3JlIFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAyNSU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBwYWRkaW5nLXRvcDogMjVweCBcclxuXHJcblxyXG5idXR0b24uYnRuVXBwZXJcclxuICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiA4NCU7XHJcbiAgICBsZWZ0OiA5NSU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzXHJcbiAgICBmb250LXNpemU6IDEuOGVtXHJcbiAgICBmb250LXdlaWdodDogOTAwXHJcbiAgICBwYWRkaW5nOiB1bnNldFxyXG4gICAgYmFja2dyb3VuZDogY2xyKHByaW0pXHJcbiAgICBjb2xvcjogY2xyKHNlY29uZClcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgcm90YXRlKC02NjBkZWcpXHJcbiAgICB6LWluZGV4IDEwMFxyXG5cclxuXHJcbi8vINC+0LHRidC40Lkg0LrQvtC0IFxyXG5cclxuaW1nXHJcbiAgICBvYmplY3QtZml0OiBmaWxsO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuLmdyaWRfYmxvY2sgICAgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG4gICBcclxuXHJcbi5ncmlkX2Jsb2NrX3R3b1xyXG4gICAgZGlzcGxheTogZ3JpZFxyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwxZnIpXHJcbiAgICBnYXAgMTBweFxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4uZ3JpZF9ibG9ja190aHJlZVxyXG4gICAgZGlzcGxheTogZ3JpZFxyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywxZnIpXHJcbiAgICBnYXAgMTBweFxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcclxuXHJcbi5ncmlkX2Jsb2NrX2ZvdXJcclxuICAgIGRpc3BsYXk6IGdyaWRcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsMWZyKVxyXG4gICAgZ2FwIDEwcHhcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyXHJcblxyXG4uYmxvY2tfcGFkZGluZ18yMFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiAyMHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ180MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA0MHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ182MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA2MHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ184MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA4MHB4XHJcblxyXG4vLyDQtNC70Y8g0LDQvdC40LzQsNGG0LjRjyBcclxuYW5pbVN1YkxpbmUoKVxyXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcclxuXHJcbiAgICAmOmhvdmVyIFxyXG4gICAgICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxuICAgICY6OmFmdGVyXHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogLTVweDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICBjbHIocHJpbSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIFxyXG4gICAgJjpob3Zlcjo6YWZ0ZXIgXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4uYnRuLWdpZnQ6aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI1NSwgMTA3LCA1MywgMC40KTtcclxuXHJcbi8vINC+0L/RgNC10LTQtdC70LXQvdC40LUg0YHQtdC60YbQuNC40Lgg0YbQstC10YLQvtCyINGC0LXQvNC90YvQuSAxLDMsNSBcclxuc2VjdGlvbjpudGgtY2hpbGQoMm4rMSkgXHJcbiAgICBiYWNrZ3JvdW5kOiBjbHIocHJpbSlcclxuICAgIGNvbG9yIGNscihibGNrKVxyXG4gICAgXHJcbnNlY3Rpb246bnRoLWNoaWxkKDJuKzEpIFxyXG4gICAgLndpbixcclxuICAgIC53b3JrX193aW4gXHJcbiAgICAgICAgYmFja2dyb3VuZDogY2xyZ2IoZ3IsIC41KVxyXG4gICAgXHJcblxyXG4vLyDQvtC/0YDQtdC00LXQu9C10L3QuNC1INGB0LXQutGG0LjQuNC4INGG0LLQtdGC0L7QsiDRgtC10LzQvdGL0LkgMiw0LDYgXHJcbnNlY3Rpb246bnRoLWNoaWxkKDJuKVxyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IoZ3IsIC41KVxyXG4gICAgY29sb3IgY2xyKGJsY2spXHJcblxyXG5zZWN0aW9uOm50aC1jaGlsZCgybikgXHJcbiAgICAud2luLFxyXG4gICAgLndvcmtfX3dpbiBcclxuICAgICAgICBiYWNrZ3JvdW5kOiBjbHIocHJpbSlcclxuXHJcbnNlY3Rpb24gXHJcbiAgICBwYWRkaW5nOiAzNHB4IDA7XHJcblxyXG5cclxuLy8g0LTQu9GPINGE0LvQtdC60YEgXHJcbi5ibGFja1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KGRlZyhzZWMpLCBjbHIoYmxjaykgMCUsIGNscihibGNrXzIpIDEwMCUpO1xyXG4gICAgXHJcbi5zb21lX2JsYWNrXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoZGVnKHNlYyksIGNscihibGNrXzMpIDAlLCBjbHIoYmxja18yKSAxMDAlKTtcclxuXHJcbi5kZWZhdWx0XHJcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0XHJcblxyXG5cclxuLnRpdGxlX191bmRlclxyXG4gICAgYm9yZGVyOiAxcHggY2xyKHN1bikgc29saWQ7XHJcbiAgICB3aWR0aDogMTE4cHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbmRpdi5ub25jbGFzcyAuc2VjdGlvbi1oZWFkZXJcclxuICAgIHBhZGRpbmctdG9wOiAyNXB4IFxyXG5cclxuZGl2Lm5vbmNsYXNzIC5tYXBzICBcclxuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XHJcblxyXG4rYmVsb3cobClcclxuICAgIC5jb250YWluZXIgXHJcbiAgICAgICAgcGFkZGluZzogMCAyZW07XHJcbitiZWxvdyh0KVxyXG5cclxuICAgIC5ncmlkX2Jsb2NrX3R3byBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG5cclxuICAgIC5ncmlkX2Jsb2NrX3RocmVlIFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcblxyXG4gICAgLmNvbnRhaW5lciBcclxuICAgICAgICBwYWRkaW5nOiAwIDEuNWVtO1xyXG5cclxuICAgIGJ1dHRvbi5idG5VcHBlciBcclxuICAgICAgICB0b3A6IDg4JTtcclxuICAgICAgICBsZWZ0OiA5MiU7XHJcblxyXG4gICAgLmJ0bl93aW5cclxuICAgICAgICBwYWRkaW5nOiAxOHB4IDE0cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAuN2VtO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDdweFxyXG4gICAgICAgIHdpZHRoIHVuc2V0XHJcblxyXG4gICAgLmJ0bl9zZWMgXHJcbiAgICAgICAgcGFkZGluZzogMTJweCAzN3B4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcblxyXG5cclxuICAgIGJ1dHRvbiAgXHJcbiAgICAgICAgZm9udC1zaXplOiAuOGVtXHJcblxyXG5cclxuK2JlbG93KG0pXHJcblxyXG4gICAgLmJ0bl9zZWMgXHJcbiAgICAgICAgcGFkZGluZzogMTBweCAzNHB4O1xyXG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgYnV0dG9uLmJ0blVwcGVyIFxyXG4gICAgICAgIGxlZnQgODYlXHJcbiAgICAgICAgXHJcbiAgICBidXR0b24uaGlkZGVuIFxyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjg2KSByb3RhdGUoMCk7XHJcblxyXG4gICAgLmJsb2NrX3BhZGRpbmdfNjAgXHJcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgIFxyXG4gICAgLmdyaWRfYmxvY2tfdGhyZWVcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG5cclxuK2JlbG93KHNtKVxyXG5cclxuICAgIGJ1dHRvbi5idG5VcHBlclxyXG4gICAgICAgIGxlZnQ6IDgyJTtcclxuXHJcbiAgICAuYnRuIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG5cclxuK2JlbG93KGVzbSlcclxuICAgIC5jb250YWluZXJcclxuICAgICAgICBwYWRkaW5nOiAwIC44ZW1cclxuICAgIFxyXG4gICAgLmJsb2NrX3BhZGRpbmdfNDBcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcblxyXG4gICAgYnV0dG9uLFxyXG4gICAgLmJ0blxyXG4gICAgICAgIGZvbnQtc2l6ZTogLjZlbVxyXG5cclxuICAgIC5idG5fd2luIFxyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcclxuXHJcblxyXG4iLCIvKlxuICogSGVscGVyIGZvciBib3JkZXItcmFkaXVzKCkuXG4gKi9cblxuLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICBpZiBsZW5ndGgocG9zKSA9PSAzXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPHRvcCB8IGJvdHRvbT4gPGxlZnQgfCByaWdodD4gPG4+XG4gICAgeSA9IHBvc1swXVxuICAgIHggPSBwb3NbMV1cbiAgICAvLyBXZSBkb24ndCB1c2UgdmVuZG9yIGZvciBib2Rlci1yYWRpdXMgYW55bW9yZVxuICAgIC8vIHZlbmRvcignYm9yZGVyLXJhZGl1cy0lcyVzJyAlIHBvcywgcG9zWzJdLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgeydib3JkZXItJXMtJXMtcmFkaXVzJyAlIHBvc306IHBvc1syXSBpbXBvcnRhbmNlXG4gIGVsc2UgaWYgcG9zWzBdIGluICh0b3AgYm90dG9tKVxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxuPlxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvc1swXSBsZWZ0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gcmlnaHQgcG9zWzFdLCBpbXBvcnRhbmNlKVxuICBlbHNlIGlmIHBvc1swXSBpbiAobGVmdCByaWdodClcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8bGVmdCB8IHJpZ2h0PiA8bj5cbiAgICB1bnNoaWZ0KHBvcywgdG9wKTtcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgcG9zWzBdID0gYm90dG9tXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuXG4vKlxuICogYm9yZGVyLXJhZGl1cyBzdXBwb3J0aW5nIGF1Z21lbnRlZCBiZWhhdmlvci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICBib3JkZXItcmFkaXVzOiAycHggNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgNXB4IGJvdHRvbSAxMHB4XG4gKiAgICBib3JkZXItcmFkaXVzOiBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4IGJvdHRvbSByaWdodCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDEwcHgsIGJvdHRvbSByaWdodCA1cHhcbiAqXG4gKi9cblxuYm9yZGVyLXJhZGl1cygpXG4gIHBvcyA9ICgpXG4gIGF1Z21lbnRlZCA9IGZhbHNlXG4gIGltcG9ydGFuY2UgPSBhcmd1bWVudHNbbGVuZ3RoKGFyZ3VtZW50cykgLSAxXSA9PSAhaW1wb3J0YW50ID8gIWltcG9ydGFudCA6IHVucXVvdGUoJycpXG5cbiAgZm9yIGFyZ3MgaW4gYXJndW1lbnRzXG4gICAgZm9yIGFyZyBpbiBhcmdzXG4gICAgICBpZiBhcmcgaXMgYSAnaWRlbnQnXG4gICAgICAgIGFwcGVuZChwb3MsIGFyZylcbiAgICAgICAgYXVnbWVudGVkID0gdHJ1ZVxuICAgICAgZWxzZVxuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGlmIGF1Z21lbnRlZFxuICAgICAgICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgICAgICAgICBwb3MgPSAoKVxuICBib3JkZXItcmFkaXVzIHBvcyB1bmxlc3MgYXVnbWVudGVkXG4iLCIvKlxuICogYm9yZGVyOiA8Y29sb3I+XG4gKiBib3JkZXI6IC4uLlxuICovXG5cbmJvcmRlcihjb2xvciwgYXJncy4uLilcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IgYXJnc1xuICBlbHNlXG4gICAgYm9yZGVyOiBhcmd1bWVudHNcbiIsIi5hYm91dC1jb250ZW50IFxyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcclxuICAgIGdhcDogM3JlbTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4uYWJvdXQtdGV4dCBwIFxyXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gICAgY29sb3IgY2xyKHNlY29uZF8yKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcblxyXG4ubG9nby1jaXJjbGUgXHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4ubG9nby1jaXJjbGU6OmJlZm9yZSBcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDIwMCU7XHJcbiAgICBoZWlnaHQ6IDIwMCU7XHJcbiAgICB0b3A6IC01MCU7XHJcbiAgICBsZWZ0OiAtNTAlO1xyXG4gICAgYW5pbWF0aW9uOiByb3RhdGUgOHMgbGluZWFyIGluZmluaXRlO1xyXG5cclxuXHJcbi5sb2dvLWNpcmNsZSBpIFxyXG4gICAgZm9udC1zaXplOiA3MHB4O1xyXG4gICAgY29sb3I6IGNscihibGNrKTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xyXG5cclxuLmxvZ28tdGV4dCBcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQoaGVhZGVyKVxyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgIHRleHQtc2hhZG93OiAwIDVweCAxMHB4IGNscmdiKGJsY2ssLjMpXHJcblxyXG5cclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLmFib3V0LWNvbnRlbnQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIC5sb2dvLXRleHRcclxuICAgICAgICBmb250LXNpemU6IDEuOGVtXHJcbiAgICBcclxuICAgIC5sb2dvLWNpcmNsZVxyXG4gICAgICAgIHdpZHRoIDk2cHhcclxuICAgICAgICBoZWlnaHQ6IGF1dG9cclxuXHJcblxyXG4gICAgIiwiXHJcblxyXG4uY2F0ZWdvcnktZmlsdGVyLXdyYXBwZXIgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgcGFkZGluZzogMjVweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblxyXG5cclxuLmNhdGVnb3J5LWZpbHRlciBoMyBcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcblxyXG4uZmlsdGVyLWNvbnRyb2xzIFxyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAxNXB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblxyXG4uZmlsdGVyLXNlbGVjdCBcclxuICAgIHBhZGRpbmc6IDEycHggMTZweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHJcbi5maWx0ZXItc2VsZWN0OmZvY3VzIFxyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJvcmRlci1jb2xvcjogIzY2N2VlYTtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjEpO1xyXG5cclxuXHJcbi5jbGVhci1maWx0ZXJzLWJ0biBcclxuICAgIHBhZGRpbmc6IDEycHggMjRweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjZiNmIsICNlZTVhMjQpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuMyk7XHJcblxyXG5cclxuLmNsZWFyLWZpbHRlcnMtYnRuOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuNCk7XHJcblxyXG5cclxuLnByb2R1Y3RzLWNvbnRhaW5lciBcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcblxyXG5cclxuLnByb2R1Y3RzLWdyaWQgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzUwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAyMHB4O1xyXG5cclxuXHJcbi5wcm9kdWN0LWl0ZW0gXHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgcGFkZGluZzogMjdweDtcclxuXHJcbi5wcm9kdWN0LWl0ZW0uaGlkZGVuIFxyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbi5wcm9kdWN0LWl0ZW06aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2IoMjIyIDEwMCA1Mik7XHJcblxyXG4ucHJvZHVjdC1pbWFnZSBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAvLyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjVmN2ZhLCAjYzNjZmUyKTtcclxuICAgIGJhY2tncm91bmQ6IGNscihwcmltKVxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbi5wcm9kdWN0LWltYWdlIGltZyBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xyXG5cclxuLnByb2R1Y3QtaXRlbTpob3ZlciAucHJvZHVjdC1pbWFnZSBpbWcgXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG5cclxuXHJcbi5wcm9kdWN0LWNvbnRlbnQgXHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG5cclxuLnByb2R1Y3QtdGl0bGUgXHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjb2xvcjogY2xyKGJsY2spXHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcblxyXG4ucHJvZHVjdC10aXRsZSBhIFxyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xyXG5cclxuLnByb2R1Y3QtdGl0bGUgYTpob3ZlciBcclxuICAgIGNvbG9yOiAjNjY3ZWVhO1xyXG5cclxuLnByb2R1Y3QtcHJpY2UgXHJcbiAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICMyOGE3NDU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSg0MCwgMTY3LCA2OSwgMC4xKTtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuXHJcbi5wcm9kdWN0LWV4Y2VycHQgXHJcbiAgICBjb2xvcjogIzY2NjtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4ucHJvZHVjdC1tZXRhIFxyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICBjb2xvcjogIzk5OTtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4ucHJvZHVjdC1hY3Rpb25zIFxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuLnByb2R1Y3QtbGluayBcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGNvbG9yOiBjbHIocHJpbSlcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcclxuICAgIGZvbnQtc2l6ZTogLjlyZW07XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjUpO1xyXG4gICAgYmFja2dyb3VuZDogI2ZlNGYxODtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMxcHggMDtcclxuICAgIHBhZGRpbmc6IDExcHggNDJweDtcclxuXHJcbi5wcm9kdWN0LWxpbms6aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC40KTtcclxuXHJcbi5uby1wcm9kdWN0cywgLm5vLXJlc3VsdHMgXHJcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogNDBweCAyMHB4O1xyXG4gICAgY29sb3I6ICM2NjY7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBmb250LXNpemU6IDEuMXJlbTtcclxuXHJcbitiZWxvdyh0KSBcclxuICAgIC50aXRsZSBcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBcclxuXHJcbiAgICAuZmlsdGVyLWNvbnRyb2xzIFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgXHJcblxyXG4gICAgLnByb2R1Y3RzLWdyaWQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICBcclxuXHJcbiAgICAucHJvZHVjdC1jb250ZW50IFxyXG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICBcclxuXHJcbiAgICAucHJvZHVjdC1pbWFnZSBcclxuICAgICAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gICAgXHJcblxyXG5cclxuIiwiXHJcbmNhbnZhc1xyXG4gICAgLy8gYm9yZGVyIDFweCBzb2xpZCAjY2NjXHJcbiAgICBib3JkZXItcmFkaXVzIDhweFxyXG4gICAgZGlzcGxheSBibG9ja1xyXG4gICAgbWFyZ2luLXRvcCAxMHB4XHJcbiAgICBvYmplY3QtZml0IGNvbnRhaW5cclxuXHJcbmNhbnZhcyNjIFxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDkwMHB4O1xyXG4gICAgaGVpZ2h0OiA2MDBweDtcclxuICAgIGxlZnQ6IDBweDtcclxuICAgIHRvcDogMHB4O1xyXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4jYnV0dG9ucyxcclxuI2VsZW1lbnRzLFxyXG4jY2VpbGluZ3NcclxuICAgIG1hcmdpbi1ib3R0b20gMTBweFxyXG4gICAgZGlzcGxheSBmbGV4XHJcbiAgICBmbGV4LXdyYXAgd3JhcFxyXG4gICAgZ2FwIDhweFxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcclxuXHJcbiNjZWlsaW5ncyBidXR0b25cclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cclxuI2J1dHRvbnMgYnV0dG9uXHJcbiAgICBwYWRkaW5nIDhweCAxMnB4XHJcbiAgICBib3JkZXIgbm9uZVxyXG4gICAgYm9yZGVyLXJhZGl1cyA2cHhcclxuICAgIGN1cnNvciBwb2ludGVyXHJcbiAgICBiYWNrZ3JvdW5kICMyNTYzZWJcclxuICAgIGNvbG9yIHdoaXRlXHJcbiAgICB0cmFuc2l0aW9uIGJhY2tncm91bmQgMC4yc1xyXG5cclxuI2J1dHRvbnMgYnV0dG9uLmFjdGl2ZVxyXG4gICAgYmFja2dyb3VuZCAjMTBiOTgxXHJcblxyXG4jYnV0dG9ucyBidXR0b24uc2F2ZVxyXG4gICAgYmFja2dyb3VuZCAjZjU5ZTBiXHJcblxyXG4jYnV0dG9ucyBidXR0b24ucmVzZXRcclxuICAgIGJhY2tncm91bmQgI2VmNDQ0NFxyXG5cclxuI2VsZW1lbnRzIGJ1dHRvblxyXG4gICAgd2lkdGggNzBweFxyXG4gICAgaGVpZ2h0IDcwcHhcclxuICAgIGJvcmRlciBub25lXHJcbiAgICBib3JkZXItcmFkaXVzIDEwcHhcclxuICAgIGJhY2tncm91bmQtY29sb3IgdHJhbnNwYXJlbnRcclxuICAgIGJhY2tncm91bmQtc2l6ZSBjb3ZlclxyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbiBjZW50ZXJcclxuICAgIGN1cnNvciBwb2ludGVyXHJcbiAgICBib3gtc2hhZG93IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpXHJcbiAgICB0cmFuc2l0aW9uIHRyYW5zZm9ybSAwLjJzLCBib3gtc2hhZG93IDAuMnNcclxuXHJcbiNlbGVtZW50cyBidXR0b246aG92ZXJcclxuICAgIHRyYW5zZm9ybSBzY2FsZSgxLjEpXHJcbiAgICBib3gtc2hhZG93IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC40KVxyXG5cclxuI2VsZW1lbnRzIGJ1dHRvbi5hY3RpdmVcclxuICAgIG91dGxpbmUgM3B4IHNvbGlkICMwMDc4ZmZcclxuXHJcbiNjZWlsaW5nc1xyXG4gICAgZ2FwIDEwcHggXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQgY2VudGVyXHJcblxyXG4jY2VpbGluZ3MgYnV0dG9uXHJcbiAgICB3aWR0aCA4MHB4XHJcbiAgICBoZWlnaHQgODBweFxyXG4gICAgYm9yZGVyIG5vbmVcclxuICAgIGJvcmRlci1yYWRpdXMgMTBweFxyXG4gICAgYmFja2dyb3VuZC1zaXplIGNvdmVyXHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uIGNlbnRlclxyXG4gICAgYm94LXNoYWRvdyAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKVxyXG4gICAgY3Vyc29yIHBvaW50ZXJcclxuICAgIHRyYW5zaXRpb24gdHJhbnNmb3JtIDAuMnNcclxuXHJcbiNjZWlsaW5ncyBidXR0b246aG92ZXJcclxuICAgIHRyYW5zZm9ybSBzY2FsZSgxLjEpXHJcblxyXG4jY2VpbGluZ3MgYnV0dG9uLmFjdGl2ZVxyXG4gICAgb3V0bGluZSAzcHggc29saWQgIzAwYmZmZlxyXG5cclxuLmNhbnZhcy1jb250YWluZXIgXHJcbiAgICBtYXJnaW46IGF1dG87XHJcblxyXG5cclxuLy8gPT09PT09PT0gTU9CSUxFIEFEQVBUSVZFID09PT09PT09XHJcbi8vINCU0LvRjyDRjdC60YDQsNC90L7QsiDQvNC10L3RjNGI0LUgNzY4cHhcclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KVxyXG4gICAgY2FudmFzI2MgXHJcbiAgICAgICAgd2lkdGggMTAwJSAhaW1wb3J0YW50XHJcbiAgICAgICAgaGVpZ2h0IGF1dG8gIWltcG9ydGFudFxyXG4gICAgICAgIFxyXG4gICAgLmNvbnRhaW5lclxyXG4gICAgICAgIHdpZHRoIDEwMCVcclxuICAgICAgICBwYWRkaW5nIDEwcHhcclxuICAgICAgICBib3gtc2l6aW5nIGJvcmRlci1ib3hcclxuXHJcbiAgICBoMlxyXG4gICAgICAgIGZvbnQtc2l6ZSAxOHB4XHJcbiAgICAgICAgdGV4dC1hbGlnbiBjZW50ZXJcclxuICAgICAgICBtYXJnaW4tYm90dG9tIDEycHhcclxuXHJcbiAgICAjYnV0dG9uc1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxyXG4gICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxyXG4gICAgICAgIGdhcCA2cHhcclxuXHJcbiAgICAjYnV0dG9ucyBidXR0b25cclxuICAgICAgICB3aWR0aCAxMDAlXHJcbiAgICAgICAgbWF4LXdpZHRoIDI1MHB4XHJcbiAgICAgICAgZm9udC1zaXplIDE0cHhcclxuICAgICAgICBwYWRkaW5nIDEwcHggMFxyXG4gICAgICAgIGJvcmRlci1yYWRpdXMgMTBweFxyXG5cclxuICAgICNjZWlsaW5ncyxcclxuICAgICNlbGVtZW50c1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudCBjZW50ZXJcclxuICAgICAgICBnYXAgNnB4XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbSAxMnB4XHJcblxyXG4gICAgI2NlaWxpbmdzIGJ1dHRvbixcclxuICAgICNlbGVtZW50cyBidXR0b25cclxuICAgICAgICB3aWR0aCA2MHB4XHJcbiAgICAgICAgaGVpZ2h0IDYwcHhcclxuICAgICAgICBib3JkZXItcmFkaXVzIDhweFxyXG4gICAgICAgIGJveC1zaGFkb3cgMCAwIDNweCByZ2JhKDAsMCwwLDAuMjUpXHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplIGNvdmVyXHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbiBjZW50ZXJcclxuXHJcbiAgICAjZWxlbWVudHMgYnV0dG9uOmhvdmVyLFxyXG4gICAgI2NlaWxpbmdzIGJ1dHRvbjpob3ZlclxyXG4gICAgICAgIHRyYW5zZm9ybSBub25lXHJcbiAgICAgICAgYm94LXNoYWRvdyAwIDAgNXB4IHJnYmEoMCwwLDAsMC4zKVxyXG5cclxuICAgIGNhbnZhc1xyXG4gICAgICAgIHdpZHRoIDEwMCVcclxuICAgICAgICBoZWlnaHQgYXV0b1xyXG4gICAgICAgIG1heC1oZWlnaHQgNDAwcHhcclxuICAgICAgICBib3JkZXItcmFkaXVzIDhweFxyXG4gICAgICAgIG9iamVjdC1maXQgY29udGFpblxyXG4gICAgICAgIG1hcmdpbi10b3AgMTBweFxyXG5cclxuLy8gPT09PT09PT0gRVhUUkEgU01BTEwgUEhPTkVTID09PT09PT09XHJcbi8vINCU0LvRjyDQvtGH0LXQvdGMINC80LDQu9C10L3RjNC60LjRhSDRjdC60YDQsNC90L7QsiAo0LTQviA0ODBweClcclxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KVxyXG5cclxuICAgIGNhbnZhc1xyXG4gICAgLmNhbnZhcy1jb250YWluZXJcclxuICAgICAgICB3aWR0aCAxMDAlOyAhaW1wb3J0YW50XHJcbiAgICBoMlxyXG4gICAgICAgIGZvbnQtc2l6ZSAxNnB4XHJcblxyXG4gICAgI2J1dHRvbnMgYnV0dG9uXHJcbiAgICAgICAgZm9udC1zaXplIDEzcHhcclxuICAgICAgICBwYWRkaW5nIDhweCAwXHJcblxyXG4gICAgI2VsZW1lbnRzIGJ1dHRvbixcclxuICAgICNjZWlsaW5ncyBidXR0b25cclxuICAgICAgICB3aWR0aCA1MHB4XHJcbiAgICAgICAgaGVpZ2h0IDUwcHhcclxuXHJcbiAgICBjYW52YXNcclxuICAgICAgICBtYXgtaGVpZ2h0IDMwMHB4XHJcbiIsIi5jb250YWN0X19jb250ZW50XHJcbiAgICBnYXAgNTVweFxyXG5cclxuLmNvbnRhY3QgLm1hcHNfX2J0bSA+IGRpdlxyXG4gICAgYmFja2dyb3VuZDogY2xyKGdyKVxyXG5cclxuLmNvbnRhY3RfX2ltZ1xyXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcclxuICAgIGhlaWdodCAyNjhweFxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxyXG4gICAgd2lkdGggMTAwJVxyXG5cclxuLmNvbnRhY3RfX2ltZyA+IGltZ1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG9iamVjdC1wb3NpdGlvbjogYm90dG9tO1xyXG5cclxuLmNvbnRhY3RfX2ltZyBoMiBcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSBcclxuICAgIHRvcDogNTAlXHJcbiAgICBsZWZ0OiA1MCVcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpXHJcblxyXG4uY29udGFjdF9fYnRtXHJcbiAgICBnYXA6IDU1cHggXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydFxyXG5cclxuLmNvbnRhY3RfX2NvbnRcclxuICAgIHBhZGRpbmc6IDI5cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihnciwuMyk7XHJcblxyXG5saS5jb250YWN0X19tYWluX2xpc3RcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDBcclxuICAgIGZvbnQtc2l6ZTogMS4xZW1cclxuICAgIGZvbnQtZmFtaWx5OiBmbnQocHJpbV9lYilcclxuXHJcbmxpLmNvbnRhY3RfX21haW5fbGlzdCA+IGkgIFxyXG4gICAgY29sb3IgY2xyKHN1bilcclxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcclxuXHJcbnVsLnNlY19saXN0ICAgXHJcbiAgICBmb250LXdlaWdodDogMTAwXHJcbiAgICBmb250LWZhbWlseTogZm50KHByaW1fcmVnKVxyXG4gICAgZm9udC1zaXplOiAuOGVtXHJcbiAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTFweDtcclxuXHJcbnVsLnNlY19saXN0IGxpICBcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjhlbVxyXG5cclxuLnNlY19saXN0LS1yZWRcclxuICAgIGNvbG9yIGNscihzdW4pXHJcbiAgICBmb250LXdlaWdodDogODAwXHJcblxyXG4rYmVsb3codClcclxuICAgIC5jb250YWN0X19pbWcgXHJcbiAgICAgICAgaGVpZ2h0OiAxNThweCIsIi5mb3JtIGlucHV0XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJvcmRlci1jb2xvcjogY2xyKHN1biwgLjgpO1xyXG5cclxuLmZvcm1fX2J0biAuZm9ybVxyXG4gICAgd2lkdGg6IDUwMHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4uZm9ybV9fYnRuIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cclxuLnVuaXZlcnNhbCBcclxuICAgIGZvcm0ud3BjZjctZm9ybS5pbml0IHAgICAgIFxyXG4gICAgZm9ybS53cGNmNy1mb3JtLnNlbnQgcCBcclxuICAgIGZvcm0ud3BjZjctZm9ybS5pbnZhbGlkIHAgXHJcbiAgICBmb3JtLndwY2Y3LWZvcm0uc3VibWl0dGluZyBwIFxyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZ2FwOiA1cHg7XHJcblxyXG4udW5pdmVyc2FsIC5mb3JtIGlucHV0XHJcbiAgICB3aWR0aDogMTQ3cHg7XHJcblxyXG4uZm9ybV9fYnRuIC5idG5fd2luXHJcbiAgICB3aWR0aCAxMDAlXHJcblxyXG5mb3JtIC5idG5fd2luXHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiA2OHB4O1xyXG4gICAgcGFkZGluZzogMjBweCAzMHB4O1xyXG5cclxuLmZvcm1fX2J0biBmb3JtLndwY2Y3LWZvcm0uaW5pdCBpbnB1dCxcclxuLmZvcm1fX2J0biBmb3JtLndwY2Y3LWZvcm0uaW52YWxpZCBpbnB1dCxcclxuLmZvcm1fX2J0biBmb3JtLndwY2Y3LWZvcm0uc2VudCBpbnB1dCxcclxuLmZvcm1fX2J0biBmb3JtLndwY2Y3LWZvcm0uc3VibWl0dGluZyBpbnB1dFxyXG4gICAgYm9yZGVyOiAycHggc29saWQgY2xyKHN1bilcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBwYWRkaW5nOiAxNHB4IDIwcHg7XHJcbiAgICBtYXJnaW46IDEycHggMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltKVxyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG5cclxuXHJcbitiZWxvdyh0KVxyXG4gICAgZm9ybS5mb3JtXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnJcclxuICAgICAgICBnYXA6IDVweDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMmVtO1xyXG5cclxuICAgIC5mb3JtX19idG4gLmZvcm1cclxuICAgICAgICB3aWR0aDogMTAwJTsiLCIubW9kYWwtYmFja2Ryb3AgXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogMTAwMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLW91dDtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4ubW9kYWwtY29udGVudCBcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgd2lkdGg6IDkwJTtcclxuICAgIG1heC13aWR0aDogNDAwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KSBzY2FsZSgwLjk1KTtcclxuXHJcbi5tb2RhbC1zaG93IFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG9wYWNpdHk6IDE7XHJcblxyXG4ubW9kYWwtc2hvdyAubW9kYWwtY29udGVudCBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcclxuXHJcbi5jbG9zZS1idG4gXHJcbiAgICBjb2xvcjogI2FhYTtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuLmNsb3NlLWJ0bjpob3ZlcixcclxuLmNsb3NlLWJ0bjpmb2N1cyBcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuLm1vZGFsLWNvbnRlbnQgaW5wdXQsXHJcbi5tb2RhbC1jb250ZW50IHRleHRhcmVhIFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgbWFyZ2luOiA4cHggMDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG5cclxuLm1vZGFsLWNvbnRlbnQgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0gXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2woc3VuKVxyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuXHJcblxyXG4ud3BjZjctcmVzcG9uc2Utb3V0cHV0XHJcbiAgICBjb2xvciAjNDZiNDUwIiwiLnNsaWRlX2ltZ1xyXG4gICAgd2lkdGggMzAwcHgiLCJcclxuLmhlcm9cclxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXHJcbiAgICBwYWRkaW5nOiB1bnNldCAgICBcclxuXHJcbi5oZXJvX19iYWNrSW1nXHJcbiAgICB3aWR0aCAxMDAlXHJcbiAgICBoZWlnaHQ6IDY4MXB4O1xyXG5cclxuLmhlcm9fX2JhY2tJbWcgaW1nXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJVxyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcblxyXG4uaGVyb19fYmFja0ltZ19saWdodCBpbWcgXHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG5cclxuLmhlcm9fX2NvbnRlbnRcclxuICAgIGdhcDogNDdweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBwYWRkaW5nIDAgMTVlbVxyXG4gICAgbGVmdDogMFxyXG4gICAgd2lkdGggMTAwJVxyXG5cclxuLmhlcm9fX3N1YnNcclxuICAgIGNvbG9yIGNscihibGNrKTtcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQocHJpbV9yZWcpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxyXG4gICAgZm9udC1zaXplOiAxLjNlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblxyXG4rYmVsb3coZClcclxuICAgIC5oZXJvX19jb250ZW50XHJcbiAgICAgICAgZ2FwIDE0cHhcclxuICAgICAgICBwYWRkaW5nIDAgMWVtICAgXHJcblxyXG4rYmVsb3codClcclxuICAgIC5oZXJvX19iYWNrSW1nXHJcbiAgICAgICAgaGVpZ2h0OiA0NTJweFxyXG4gICAgICAgIFxyXG4gICAgLmhlcm9fX2NvbnRlbnRcclxuICAgICAgICBwYWRkaW5nIDAgMWVtICAgXHJcbiAgICBcclxuICAgIC5oZXJvX19zdWJzIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtXHJcblxyXG4rYmVsb3cobSlcclxuXHJcbiAgICAuaGVyb19fc3VicyBcclxuICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG5cclxuK2JlbG93KGVzbSlcclxuICAgIGgxIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtXHJcblxyXG4gICAgLmhlcm9fX3N1YnMgXHJcbiAgICAgICAgZm9udC1zaXplOiAuOGVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IiwiLm1hcHNfX2J0bVxyXG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXJcclxuICAgIGdhcCAzNHB4IFxyXG5cclxuLm1hcHNfX2J0bSA+IGRpdiAgXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIGhlaWdodDogMTAwJVxyXG4gICAgLy8gbWF4LWhlaWdodDogMjUycHhcclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLm1hcHNfX2J0bSA+IGRpdiAgXHJcbiAgICAgICAgaGVpZ2h0OiAgMjUycHhcclxuXHJcbitiZWxvdyhlc20pXHJcbiAgICAubWFwc19fYnRtID4gZGl2XHJcbiAgICAgICAgaGVpZ2h0OiAyMDBweFxyXG4iLCIucGFyZW50X2NhdFxyXG4gICAgcGFkZGluZyA0MHB4IDBcclxuICAgIGJhY2tncm91bmQtY29sb3IgI2Y4ZjhmYVxyXG5cclxuLnBhcmVudF9jYXRfX2NvbnRhbnRcclxuICAgIHBhZGRpbmcgMCAxMHB4XHJcblxyXG4uc3BsaWRlX19hcnJvd3NcclxuICAgIGRpc3BsYXkgbm9uZVxyXG5cclxuLnNwbGlkZV9fbGlzdFxyXG4gICAgYWxpZ24taXRlbXMgc3RyZXRjaFxyXG5cclxuLnNwbGlkZV9fc2xpZGVcclxuICAgIHBhZGRpbmcgMTVweFxyXG5cclxuLmNhcmRcclxuICAgIGhlaWdodCAxMDAlXHJcbiAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxyXG4gICAgZGlzcGxheSBmbGV4XHJcbiAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cclxuICAgIGFsaWduLWl0ZW1zIGNlbnRlclxyXG4gICAgdGV4dC1hbGlnbiBjZW50ZXJcclxuICAgIHBhZGRpbmcgMjBweFxyXG4gICAgYmFja2dyb3VuZC1jb2xvciAjZmZmZmZmXHJcbiAgICBib3JkZXItcmFkaXVzIDEycHhcclxuICAgIGJveC1zaGFkb3cgMCA1cHggMThweCByZ2JhKDAsIDAsIDAsIDAuMTUpXHJcbiAgICB0cmFuc2l0aW9uIHRyYW5zZm9ybSAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4zcyBlYXNlXHJcblxyXG4uY2FyZDpob3ZlclxyXG4gICAgdHJhbnNmb3JtIHRyYW5zbGF0ZVkoLThweClcclxuICAgIGJveC1zaGFkb3cgMCAxMHB4IDI1cHggcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSlcclxuXHJcbi5jYXJkX19pbWFnZS13cmFwcGVyXHJcbiAgICB3aWR0aCAxMzBweFxyXG4gICAgaGVpZ2h0IDEzMHB4XHJcbiAgICBvdmVyZmxvdyBoaWRkZW5cclxuICAgIGJvcmRlci1yYWRpdXMgNTAlXHJcbiAgICBtYXJnaW4tYm90dG9tIDE1cHhcclxuICAgIGJvcmRlciA0cHggc29saWQgY2xyKHN1bilcclxuICAgIGJveC1zaGFkb3cgMCAwIDEwcHggcmdiYSg3NCwgMTQ0LCAyMjYsIDAuNilcclxuXHJcbi5jYXJkX19pbWFnZVxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0IDEwMCVcclxuICAgIG9iamVjdC1maXQgY292ZXJcclxuICAgIHRyYW5zaXRpb24gdHJhbnNmb3JtIDAuM3MgZWFzZVxyXG5cclxuLmNhcmQ6aG92ZXIgLmNhcmRfX2ltYWdlXHJcbiAgICB0cmFuc2Zvcm0gc2NhbGUoMS4wNSlcclxuXHJcbi5jYXJkX190aXRsZVxyXG4gICAgZm9udC1zaXplIDEuMTVyZW1cclxuICAgIGZvbnQtd2VpZ2h0IDYwMFxyXG4gICAgY29sb3IgIzJjM2U1MFxyXG4gICAgbWFyZ2luIDBcclxuICAgIGxpbmUtaGVpZ2h0IDEuMyIsIi53b3Jrcy1oZWFkZXIgXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4ud29ya3MtdGl0bGUgXHJcbiAgICBjb2xvcjogIzMzMztcclxuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4ud29ya3MtZmlsdGVyIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiAxNXB4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuLmZpbHRlci1idG4gXHJcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNzc3Zjg3O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2RkZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDM4cHggMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cclxuLmZpbHRlci1idG46aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMCwwLDAsMC4xKTtcclxuXHJcbi5maWx0ZXItYnRuLmFjdGl2ZSBcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNhZmEzOTUsICNmZTRmMTgpO1xyXG4gICAgLy8gdHJhbnNpdGlvbiBhbGwgLjNzXHJcbiAgICBjb2xvcjogY2xyKHByaW0pO1xyXG4gICAgXHJcblxyXG4vLyAuZmlsdGVyLWJ0bi5hY3RpdmU6aG92ZXJcclxuXHJcblxyXG4ud29ya3MtZ2FsbGVyeSBcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzMDBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDIwcHg7XHJcblxyXG4ud29yay1pdGVtIFxyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuXHJcbi53b3JrLWl0ZW0uaGlkZGVuIFxyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbi53b3JrLWl0ZW06aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG5cclxuLndvcmstaW1hZ2UgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y1ZjdmYSwgI2MzY2ZlMik7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4ud29yay1pbWFnZSBpbWcgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuXHJcbi53b3JrLWl0ZW06aG92ZXIgLndvcmstaW1hZ2UgaW1nIFxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuXHJcbi53b3JrLWNvbnRlbnQgXHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG5cclxuLndvcmstdGl0bGUgXHJcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjb2xvcjogIzMzMztcclxuXHJcblxyXG4ud29yay1kZXNjcmlwdGlvbiBcclxuICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuLm5vLXdvcmtzIFxyXG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDQwcHggMjBweDtcclxuICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgZm9udC1zaXplOiAxLjFyZW07XHJcblxyXG4rYmVsb3codCkgXHJcbiAgICAud29ya3MtdGl0bGUgXHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgXHJcbiAgICAud29ya3MtZmlsdGVyIFxyXG4gICAgICAgIGdhcDogMTBweDtcclxuICAgIFxyXG4gICAgLmZpbHRlci1idG4gXHJcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIFxyXG4gICAgLndvcmtzLWdhbGxlcnkgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjUwcHgsIDFmcikpO1xyXG4gICAgICAgIGdhcDogMTVweDtcclxuICAgIFxyXG4gICAgLndvcmstY29udGVudCBcclxuICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgXHJcbiAgICAud29yay1pbWFnZSBcclxuICAgICAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gICAgXHJcblxyXG5cclxuIiwiLnByb2ZfX2J0bVxyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydFxyXG4gICAgZ2FwIDE1cHhcclxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXHJcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcclxuXHJcbi5wcm9mX19idG0gbGkuc3BsaWRlX19zbGlkZSBcclxuICAgIHBhZGRpbmc6IDE1cHggNXB4XHJcblxyXG4ucHJvZl9fd2luXHJcbiAgICBkaXNwbGF5OiBmbGV4XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAyNXB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweFxyXG4gICAgaGVpZ2h0OiAyODJweFxyXG4gICAgd2lkdGggbWF4LWNvbnRlbnRcclxuICAgIG1heC13aWR0aCAyNDlweFxyXG5cclxuLnByb2ZfX2ltZ1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlXHJcbiAgICB3aWR0aCAxMTlweFxyXG4gICAgaGVpZ2h0OiBAd2lkdGhcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xcHg7XHJcblxyXG4ucHJvZl9fdGV4dFxyXG4gICAgZGlzcGxheTogZmxleFxyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDE1NnB4O1xyXG4gICAgcGFkZGluZzogMjVweCAxMHB4IDE5cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgYmFja2dyb3VuZDogY2xyKHByaW0pXHJcblxyXG4ucHJvZl9faW1nID4gaW1nIFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiAxMDAlXHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuXHJcbi5leHBlcmllbnNcclxuICAgIGNvbG9yIGNscihzdW4pXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cclxuLnNwbGlkZV9fYXJyb3ctLXByZXYgXHJcbiAgICBsZWZ0OiAtM2VtICFpbXBvcnRhbnRcclxuXHJcbi5zcGxpZGVfX2Fycm93LS1uZXh0XHJcbiAgICByaWdodDogLTNlbSAgIWltcG9ydGFudFxyXG4iLCIucHJvamVjdF9fYnRtXHJcbiAgICBnYXA6IDQ0cHg7XHJcblxyXG4ucHJvamVjdF9fYnRtIC53aW4gXHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihnciwgLjE4KVxyXG5cclxuLnByb2plY3RfX2J0bSAud2luX190b3AgXHJcbiAgICBwb3NpdGlvbiByZWxhdGl2ZSBcclxuXHJcbi5taW5fX3BpYyBcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMFxyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuLm1pbl9fcGljIC5zcGxpZGVfX3NsaWRlXHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XHJcblxyXG4ubWluX19waWMgLnNwbGlkZV9fc2xpZGUuaXMtYWN0aXZlXHJcbiAgICBvcGFjaXR5IDEgXHJcblxyXG4vLyAubWluX19waWMgLnNwbGlkZV9fc2xpZGUuaXMtYWN0aXZlXHJcbi5zcGxpZGVfX3RyYWNrLS1uYXYgLnNwbGlkZV9fbGlzdCAuc3BsaWRlX19zbGlkZS5pcy1hY3RpdmVcclxuICAgIGJvcmRlcjogMnB4IHdoaXRlIHNvbGlkXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHhcclxuXHJcblxyXG4ucHJvamVjdF9fYnRtIC5idG5cclxuICAgIGRpc3BsYXk6IGlubGluZVxyXG5cclxuLnByb2plY3RfX2J0bSAud2luX190ZXh0XHJcbiAgICBnYXAgNnB4IFxyXG5cclxuLnByb2plY3RfX2J0bSBwLnN1YnMgXHJcbiAgICBwYWRkaW5nOiAxcHg7XHJcblxyXG4ucHJvamVjdF9fYnRtIHAuc3Vic19ib2xkXHJcbiAgICBjb2xvcjogY2xyKHN1bikgXHJcblxyXG4rYmVsb3codClcclxuICAgIC5wcm9qZWN0X19idG0gXHJcbiAgICAgICAgZ2FwOiAxMXB4O1xyXG5cclxuICAgIC5wcm9qZWN0X19idG0gLndpbl9fdGV4dFxyXG4gICAgICAgIHBhZGRpbmc6IDIzcHggOXB4OyAiLCIucmVjX19jb250ZW50IFxyXG4gICAgcGFkZGluZzogNjJweCAyNXB4O1xyXG4gICAgYmFja2dyb3VuZDogcmVkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNzRkZWcsICNjNzM3MDkgNDglLCAjZmZmZmZmOWUpO1xyXG5cclxuXHJcbitiZWxvdyh0KSBcclxuICAgIC5yZWNfX2NvbnRlbnQgXHJcbiAgICAgICAgcGFkZGluZzogMTdweCAzcHg7IiwiLnJldl9fYmxvY2tcclxuICAgIGdhcCA0OHB4XHJcbiAgICBkaXNwbGF5OiBmbGV4XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxyXG4gICAgZmxleC13cmFwOiB3cmFwXHJcblxyXG5cclxuLnJldl9fd2luXHJcbiAgICBkaXNwbGF5OiBmbGV4XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydFxyXG4gICAgZ2FwIDEwcHhcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHhcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKGdyLCAuMilcclxuICAgIHBhZGRpbmc6IDI0cHhcclxuICAgIG1heC13aWR0aDogMjJlbSBcclxuICAgIHdpZHRoIDIwZW1cclxuICAgIG1pbi13aWR0aDogMThlbVxyXG5cclxuLnN1YnNfYm9sZF9kb3duXHJcbiAgICBjb2xvciBjbHIoc3VuKVxyXG5cclxuLnJldl9fd2luIC5zdWJzXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuXHJcbi5yZXZfaWNvblxyXG4gICAgYmFja2dyb3VuZDogY2xyKHN1bilcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiBjbHIocHJpbSlcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBmb250LWZhbWlseTogZm50KHByaW1fZWIpO1xyXG5cclxuK2JlbG93KDcxOHB4KVxyXG4gICAgLnJldl9fd2luXHJcbiAgICAgICAgd2lkdGggKDkwJS8yKVxyXG5cclxuICAgIC53aW5fX3RleHRfbGVmdCAuc3Vic19ib2xkXHJcbiAgICAgICAgZm9udC1zaXplOiAxZW1cclxuICAgIFxyXG4rYmVsb3coNjY4cHgpXHJcbiAgICAucmV2X193aW5cclxuICAgICAgICBtYXgtd2lkdGggOTAlXHJcbiAgICAgICAgd2lkdGggODAlIiwiLnNlcnZpY2UgXHJcbiAgICBjb2xvciBjbHIoYmxjaylcclxuXHJcbmgzLnRpdGxlXHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX2ViKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgZm9udC1zaXplOiAxLjhlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcblxyXG4uc2VydmljZV9fYnRtXHJcbiAgICBnYXAgMjBweFxyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnRcclxuXHJcbi53aW5cclxuICAgIGJhY2tncm91bmQ6IGNscihncilcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuXHJcbiAgICBjb2xvcjogY2xyKGJsY2spXHJcblxyXG4ud2luX19pbWcgXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjk5cHg7XHJcblxyXG4ud2luX19pbWcgaW1nIFxyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbi53aW5fX2xpbmsgXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8qINCe0LHRitC10LTQuNC90Y/QtdC8IHRyYW5zbGF0ZVgg0LggdHJhbnNsYXRlWSAqL1xyXG4gICAgYm9yZGVyOiAycHggI2ZmZiBzb2xpZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgYmFja2dyb3VuZDogY2xyKHN1bik7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cclxuYS53aW5fX2xpbms6aG92ZXJcclxuICAgIGNvbG9yOndoaXRlO1xyXG4gICAgYmFja2dyb3VuZDpjbHIoc3VuKTtcclxuXHJcbi53aW46aG92ZXIgLndpbl9fbGluayBcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIFxyXG4ud2luX190ZXh0XHJcbiAgICBwYWRkaW5nOiAyM3B4IDIycHg7XHJcbiAgICBhbGlnbi1pdGVtczogdW5zZXRcclxuICAgIGdhcCAxOHB4XHJcbiAgICBcclxuLndpbl9fdGV4dCBoM1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX2ViKVxyXG4gICAgdGV4dC1hbGlnbjogbGVmdFxyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemVcclxuXHJcbi53aW5fX3RleHRfdXAgXHJcbiAgICBkaXNwbGF5OiBmbGV4XHJcbiAgICBnYXA6IDE1cHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuLmljb25fdHlwZTFcclxuICAgIGJhY2tncm91bmQ6ICNmZmYzY2M7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIGNvbG9yOiAjZDk4MTAzO1xyXG4gICAgYWxpZ24tc2VsZjogYXV0bztcclxuXHJcbi53aW5fX3RleHQgcCBcclxuICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcblxyXG4ud2luX2J0bVxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLmljb25fdHlwZTFcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtXHJcblxyXG4rYmVsb3cobSlcclxuICAgIC5ncmlkX2Jsb2NrX3R3byBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG5cclxuK2JlbG93KHNtKVxyXG4gICAgLmdyaWRfYmxvY2tfdHdvIFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7IiwiI3NwbGlkZSAuc3BsaWRlX19wYWdpbmF0aW9uIFxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbi5pbWdfdGVtcGxhdGUgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIDFmcik7XHJcbiAgICBnYXA6IDM1cHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcclxuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxuXHJcblxyXG4uc2xpZGVfZ3JpZCBcclxuICAgIHdpZHRoOiAyMThweDtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMzY4cHg7XHJcbiAgICBtaW4taGVpZ2h0OiAzNjVweDtcclxuICAgIG1heC1oZWlnaHQ6IDM2OHB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNjU1NDNjMzY7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHJcbi5zbGlkZV9ncmlkIGltZyBcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG5cclxuK2JlbG93KDU5OHB4KVxyXG4gICAgLnNsaWRlX2dyaWQgXHJcbiAgICAgICAgLy8gd2lkdGggMTAwJVxyXG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMTRweDtcclxuICAgICAgICBtaW4taGVpZ2h0OiB1bnNldFxyXG4gICAgICAgIG1heC1oZWlnaHQ6IHVuc2V0XHJcbiAgICAgICAiLCIudW5pdmVyc2FsX19jb250ZW50XHJcbiAgICBnYXA6IDY3cHg7XHJcblxyXG4udW5pdmVyc2FsX190ZXh0IFxyXG4gICAgYWxpZ24taXRlbXM6dW5zZXQgICAgXHJcblxyXG4uc3Vic19ib2xkXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiAxLjNlbTtcclxuXHJcblxyXG4udW5pdmVyc2FsIC5pbWdfYmxvY2sgXHJcbiAgICBib3JkZXItcmFkaXVzOiA4MHB4IDAgODBweDtcclxuICAgIHdpZHRoOiB2YXIoLS11bml2SW1nQmxvY2tXaWR0aCk7XHJcbiAgICBtYXgtd2lkdGg6IEB3aWR0aDtcclxuICAgIGhlaWdodDogdmFyKC0tdW5pdkltZ0Jsb2NrSGVpZ2h0KTtcclxuICAgIG1heC1oZWlnaHQ6IEBoZWlnaHQ7XHJcbiAgICBtaW4taGVpZ2h0OiBAaGVpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI4MmRlZywgI2YwZjBmMCwgI2YwZWZlZSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHJcblxyXG5iLnNpbmdcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxyXG5cclxucC5zdWJzX2xlZnRcclxuICAgIHBhZGRpbmctbGVmdCAxOHB4XHJcblxyXG5iLnNpbmc6OmJlZm9yZVxyXG4gICAgY29udGVudDogXCLigZVcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0xOXB4O1xyXG4gICAgdG9wOiAtMXB4O1xyXG4gICAgY29sb3I6IGNscihzdW4pXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX2ViKVxyXG5cclxudWwuc3ViX21lYmVsID4gbGlcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzY1xyXG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlXHJcblxyXG4uc3ViX21lYmVsXHJcbiAgICBwYWRkaW5nLXRvcDogMTdweDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cclxuLnN1Yl9yZWNcclxuICAgIGJhY2tncm91bmQ6ICNmZmY0Y2M7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBwYWRkaW5nOiAyNXB4O1xyXG5cclxuLnN1Yl9yZWMgLmZvbnRlbGxvLXBob25lIFxyXG4gICAgY29sb3I6IGNscihzdW4pXHJcblxyXG4uc3ViX3JlYyBwLnN1YnNcclxuICAgIGZvbnQtc2l6ZTogLjhlbTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4vLyArYmVsb3coZClcclxuLy8gICAgIC51bml2ZXJzYWwgLmltZ19ibG9ja1xyXG4vLyAgICAgICAgIHdpZHRoOiA0ODJweDtcclxuLy8gICAgICAgICBoZWlnaHQ6IDMzNnB4OyIsInNlY3Rpb24udmlkZW9zXHJcbiAgICBwYWRkaW5nOiA1cHhcclxuICAgIC8vIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggMTUxZGVnLCAjMDAwMDBlLCAjNzM3MzczKVxyXG5cclxuc2VjdGlvbi5zZWN0aW9uLnZpZGVvcyB7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxufVxyXG5cclxuc2VjdGlvbi52aWRlb3MgLnNwbGlkZV9fc2xpZGVcclxuICAgIHRleHQtYWxpZ246IGNlbnRlclxyXG4gICAgLy8gYmFja2dyb3VuZDogYmxhY2tcclxuICAgIGJvcmRlci1yYWRpdXM6IDQwcHhcclxuXHJcbnNlY3Rpb24udmlkZW9zIGgyLnRpdGxlXHJcbiAgICBjb2xvciBjbHIoYmxjaylcclxuXHJcbnZpZGVvLmNvZGVfdmlkZW9zIFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDcwMHB4XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgb2JqZWN0LXBvc2l0aW9uOiBib3R0b207XHJcblxyXG5cclxuXHJcbnZpZGVvLnZpZGVvcyAuc3BsaWRlX19zbGlkZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbnZpZGVvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA2MDBweDtcclxufVxyXG5cclxuLyog0KHRgtC40LvQuNC30LDRhtC40Y8g0L/QsNC90LXQu9C4INGD0L/RgNCw0LLQu9C10L3QuNGPICjRgNCw0LHQvtGC0LDQtdGCINCyIFdlYktpdC3QsdGA0LDRg9C30LXRgNCw0YUpICovXHJcbnZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzIHtcclxuICAgIC8qIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgKi9cclxuICAgIC8qINCk0L7QvSDQv9Cw0L3QtdC70Lgg0YPQv9GA0LDQstC70LXQvdC40Y8gKi9cclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuLyog0KHRgtC40LvQuNC30LDRhtC40Y8g0LrQvdC+0L/QutC4INCy0L7RgdC/0YDQvtC40LfQstC10LTQtdC90LjRjyAqL1xyXG52aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwMDAwO1xyXG4gICAgLyog0KbQstC10YIg0LrQvdC+0L/QutC4IHBsYXkgKi9cclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxufVxyXG5cclxuLyog0KHRgtC40LvQuNC30LDRhtC40Y8g0L/QvtC70LfRg9C90LrQsCDQs9GA0L7QvNC60L7RgdGC0LggKi9cclxudmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZjAwO1xyXG4gICAgLyog0KbQstC10YIg0L/QvtC70LfRg9C90LrQsCAqL1xyXG59XHJcblxyXG4vKiDQodGC0LjQu9C40LfQsNGG0LjRjyDQstGA0LXQvNC10L3QvdC+0Lkg0YjQutCw0LvRiyAqL1xyXG52aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7XHJcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOyAqL1xyXG4gICAgLyog0KbQstC10YIg0YjQutCw0LvRiyDQv9GA0L7Qs9GA0LXRgdGB0LAgKi9cclxuICAgIFxyXG59XHJcblxyXG4uY3VzdG9tLWNvbnRyb2xzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG52aWRlbyBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxudmlkZW8gYnV0dG9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU2YjM7XHJcbn1cclxuXHJcbnZpZGVvIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICBhY2NlbnQtY29sb3I6ICMwMDdiZmY7XHJcbiAgICAvKiDQptCy0LXRgiDQv9C+0LvQt9GD0L3QutCwICovXHJcbn1cclxuXHJcblxyXG5cclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLnNwbGlkZV9fYXJyb3dzLnNwbGlkZV9fYXJyb3dzLS1sdHJcclxuICAgICAgICBkaXNwbGF5OiBub25lXHJcblxyXG5cclxuICAiLCIvLyBzZWN0aW9uLndvcmtcclxuLy8gICAgIGJhY2tncm91bmQ6IGNscihncilcclxuXHJcbi53b3JrX19idG1cclxuICAgIGRpc3BsYXk6IGdyaWRcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcilcclxuICAgIGdhcCAzMnB4XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0XHJcblxyXG4ud29ya19fd2luXHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgZGlzcGxheTogZmxleFxyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMThweDtcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHByaW0sIDEpXHJcbiAgICBwYWRkaW5nOiAyNXB4O1xyXG5cclxuLnN1Yl90aXRsZVxyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX2ViKVxyXG4gICAgZm9udC1zaXplOiAxLjFlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuXHJcbi5zdWJfc3Vic1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX3JlZyk7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXHJcbiAgICBjb2xvciBjbHIoc2Vjb25kKVxyXG4gICAgZm9udC1zaXplOiAuOGVtXHJcblxyXG4ud29ya19faWNvblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMTZweDtcclxuICAgIGNvbG9yOiBjbHIocHJpbSlcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBwb3NpdGlvbiByZWxhdGl2ZVxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxyXG5cclxuLndvcmtfX3VuZ2xlXHJcbiAgICBiYWNrZ3JvdW5kOmNscihwcmltKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgd2lkdGg6IDE4cHg7XHJcbiAgICBoZWlnaHQ6IEB3aWR0aDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiBjbHIoYmxjaylcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBmb250LXNpemU6IC44ZW07XHJcblxyXG5cclxuXHJcbi53b3JrX19pY29uXHJcbiAgICBiYWNrZ3JvdW5kOiBjbHIoc3VuKVxyXG5cclxuLy8gLndvcmtfX2ljb24ucGhvbmUtY2FsbCBcclxuLy8gICAgIGJhY2tncm91bmQ6ICM0NzgxZjFcclxuXHJcbi8vIC53b3JrX19pY29uLm1lc3NhZ2UtYnViYmxlMSBcclxuLy8gICAgIGJhY2tncm91bmQ6ICMzYmI4NjFcclxuXHJcbi8vIC53b3JrX19pY29uLm9ubGluZS1zaG9wcGluZy1jYXJ0MSBcclxuLy8gICAgIGJhY2tncm91bmQ6ICNhYjViZjNcclxuXHJcbi8vIC53b3JrX19pY29uLmxpY2Vuc2UtZG9jdW1lbnQxIFxyXG4vLyAgICAgYmFja2dyb3VuZDogI2YzNzUzMFxyXG5cclxuLy8gLndvcmtfX2ljb24ub2tcclxuLy8gICAgIGJhY2tncm91bmQ6ICNmODYwNDdcclxuXHJcbi5taW5fcmVjXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODBkZWcsIGNscmdiKHN1biwuNSksY2xyZ2IocHJpbSwgLjUpLGNscmdiKHN1biwuNSkpXHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcclxuICAgIHdpZHRoOiA4MCU7XHJcblxyXG4ubWluX3JlYyBwLnN1YnMgXHJcbiAgICBwYWRkaW5nOiA0OHB4IDgycHggXHJcbiAgICBmb250LXNpemU6IDFlbVxyXG4gICAgZm9udC13ZWlnaHQ6IDgwMFxyXG5cclxuLm1pbl9yZWM6OmFmdGVyIFxyXG4gICAgY29udGVudDogXCJcIlxyXG4gICAgd2lkdGggMjBweFxyXG4gICAgaGVpZ2h0OiBAd2lkdGhcclxuICAgIHBvc2l0aW9uIGFic29sdXRlXHJcbiAgICBsZWZ0OiAxNXB4XHJcbiAgICB0b3A6IEBsZWZ0XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHIoc3VuKVxyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlXHJcblxyXG4rYmVsb3coZCkgXHJcbiAgICAud29ya19fYnRtXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywxZnIpXHJcblxyXG4rYmVsb3codClcclxuICAgIC53b3JrX19idG1cclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLDFmcilcclxuXHJcbiAgICAubWluX3JlY1xyXG4gICAgICAgIHdpZHRoIHVuc2V0XHJcbiAgICBcclxuXHJcbitiZWxvdyhtKVxyXG4gICAgLndvcmtfX2J0bVxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsMWZyKVxyXG4gICAgICAgIGdhcCAxOHB4XHJcbiAgICAgICAgXHJcbiAgICAubWluX3JlYyBwLnN1YnMgXHJcbiAgICAgICAgcGFkZGluZzogMzRweDsiLCJmb290ZXJcclxuICAgIHBhZGRpbmcgNDRweCAwXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMGEwYTBhLCAjNGI0YTQ2LCAjMGEwYTBhKTtcclxuXHJcbmZvb3RlciBoM1xyXG4gICAgY29sb3IgY2xyKHByaW0pO1xyXG4gICAgZm9udC1mYW1pbHk6IGZudChwcmltX3JlZylcclxuICAgIGZvbnQtc2l6ZTogMWVtXHJcbiAgXHJcbi5mb290ZXJfX2xvZ29cclxuICAgIGFsaWduLXNlbGY6IGNlbnRlclxyXG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyXHJcblxyXG4uZm9vdGVyX19sb2dvIHAgIFxyXG4gICAgcGFkZGluZyAxNHB4IDBcclxuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlclxyXG4gICAgXHJcbi8vIC5mb290ZXJfX2xvZ28gLmZvb3Rlcl9fc3VicyAgICAgXHJcbi8vICAgICBjb2xvcjogY29scihncilcclxuLy8gICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgIFxyXG4uZm9vdGVyX19jb250ZW50XHJcbiAgICBkaXNwbGF5OiBncmlkXHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwJSA3MCU7XHJcbiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgZ2FwOiAxNXB4O1xyXG5cclxuLmZvb3Rlcl9fbGVmdFxyXG4gICAgZGlzcGxheTogZmxleFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgIFxyXG5uYXYjZm9vdGVyX19tZW51IFxyXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuLmZvb3Rlcl9fbWVudSAubWVudV9fbGlzdFxyXG4gICAgZGlzcGxheTogZmxleFxyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxyXG4gICAgY29sb3IgY2xyKGdyKVxyXG4gICBcclxuLmZvb3Rlcl9fbWVudSAubWVudS1pdGVtXHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzXHJcbiAgICBwYWRkaW5nIDRweCAwIFxyXG4gICAgXHJcbi5mb290ZXJfX21lbnUgLmN1cnJlbnQtbWVudS1pdGVtXHJcbiAgICBjb2xvcjogY2xyKHByaW0pXHJcblxyXG4uZm9vdGVyX19tZW51IC5tZW51LWl0ZW06aG92ZXIgXHJcbiAgICBjb2xvcjogY2xyKHByaW0pXHJcblxyXG5cclxuLy8gLmZvb3Rlcl9fY29udGFjdCBcclxuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlclxyXG5cclxuLmZvb3Rlcl9fY29udGFjdCBwICBcclxuICAgIGNvbG9yOiBjbHIoZ3IpXHJcbiAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMzFweDtcclxuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlclxyXG5cclxuK2JlbG93KHQpIFxyXG4gICAgLmZvb3Rlcl9fY29udGVudFxyXG4gICAgICAgIGRpc3BsYXk6ICBmbGV4ICBcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXBcclxuICAgICAgICByb3ctZ2FwOiAyZW1cclxuICAgIFxyXG4gICAgLmZvb3Rlcl9fbWVudVxyXG4gICAgICAgIG9yZGVyIDJcclxuXHJcbiAgICAuZm9vdGVyX19tZW51LFxyXG4gICAgLmZvb3Rlcl9fbGlzdFxyXG4gICAgICAgIHdpZHRoIDI0JVxyXG5cclxuICAgIC5mb290ZXJfX2xvZ28gXHJcbiAgICAgICAgcGFkZGluZzogMCAzZW1cclxuICAgICAgICBvcmRlciAzXHJcblxyXG4rYmVsb3coc20pXHJcbiAgICAuZm9vdGVyX19sb2dvLCBcclxuICAgIC5mb290ZXJfX2xvZ28gcCBcclxuICAgIC5mb290ZXJfX2NvbnRhY3QsXHJcbiAgICAuZm9vdGVyX19jb250YWN0IHAsIFxyXG4gICAgbmF2I2Zvb3Rlcl9fbWVudSBcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgXHJcblxyXG4gICAgLmZvb3Rlcl9fbGVmdCBcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAyMnB4O1xyXG4gICAgXHJcbi8vICtiZWxvdyh0KSAiXX0= */