@charset "UTF-8";.row{-ms-flex-flow:row wrap;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-flow:row wrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-flow:row wrap;margin-left:auto;margin-right:auto;max-width:90rem}.row .row{margin-left:-.3125rem;margin-right:-.3125rem}.row .row.collapse{margin-left:0;margin-right:0}.row.expanded,.row.expanded .row,.row:not(.expanded) .row{max-width:none}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse>.column>.row,.row.collapse>.columns>.row,.row.is-collapse-child{margin-left:0;margin-right:0}.column,.columns{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;flex:1 1 0px;min-width:0;padding-left:.3125rem;padding-right:.3125rem}.column.row.row,.row.row.columns{display:block;float:none}.row .column.row.row,.row .row.row.columns{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.small-1{-ms-flex:0 0 8.33333%;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.small-offset-0{margin-left:0}.small-2{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-offset-2{margin-left:16.66667%}.small-4{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-offset-3{margin-left:25%}.small-5{-ms-flex:0 0 41.66667%;-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-offset-5{margin-left:41.66667%}.small-7{-ms-flex:0 0 58.33333%;-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.small-offset-6{margin-left:50%}.small-8{-ms-flex:0 0 66.66667%;-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{-ms-flex:0 0 75%;-webkit-box-flex:0;-webkit-flex:0 0 75%;flex:0 0 75%;max-width:75%}.small-offset-8{margin-left:66.66667%}.small-10{-ms-flex:0 0 83.33333%;-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.small-offset-9{margin-left:75%}.small-11{-ms-flex:0 0 91.66667%;-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-1>.column,.small-up-1>.columns{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-up-2{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-2>.column,.small-up-2>.columns{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-up-3{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-3>.column,.small-up-3>.columns{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-up-4{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-4>.column,.small-up-4>.columns{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-up-5{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-5>.column,.small-up-5>.columns{-ms-flex:0 0 20%;-webkit-box-flex:0;-webkit-flex:0 0 20%;flex:0 0 20%;max-width:20%}.small-up-6{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-6>.column,.small-up-6>.columns{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-up-7{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-7>.column,.small-up-7>.columns{-ms-flex:0 0 14.28571%;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.small-up-8{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.small-up-8>.column,.small-up-8>.columns{-ms-flex:0 0 12.5%;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.small-collapse>.column,.small-collapse>.columns{padding-left:0;padding-right:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-left:.3125rem;padding-right:.3125rem}.row.large-unstack>.column,.row.large-unstack>.columns,.row.medium-unstack>.column,.row.medium-unstack>.columns{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%}.shrink{-ms-flex:0 0 auto;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;max-width:100%}.large-unstack .shrink,.medium-unstack .shrink{-ms-flex:0 0 auto!important;-webkit-box-flex:0!important;-webkit-flex:0 0 auto!important;flex:0 0 auto!important}.column-block{margin-bottom:.625rem}.column-block>:last-child{margin-bottom:0}.align-left{-ms-flex-pack:start;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.align-right{-ms-flex-pack:end;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.align-center{-ms-flex-pack:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.align-justify{-ms-flex-pack:justify;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.align-spaced{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.align-left.vertical.menu>li>a{-ms-flex-pack:start;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.align-right.vertical.menu>li>a{-ms-flex-pack:end;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.align-center.vertical.menu>li>a{-ms-flex-pack:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.align-top{-ms-flex-align:start;-webkit-align-items:flex-start;-webkit-box-align:start;align-items:flex-start}.align-self-top{-ms-flex-item-align:start;-webkit-align-self:flex-start;align-self:flex-start}.align-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;-webkit-box-align:end;align-items:flex-end}.align-self-bottom{-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end}.align-middle{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;align-items:center}.align-self-middle{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center}.align-stretch{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch}.align-self-stretch{-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch}.align-center-middle{-ms-flex-align:center;-ms-flex-line-pack:center;-ms-flex-pack:center;-webkit-align-content:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-pack:center;-webkit-justify-content:center;align-content:center;align-items:center;justify-content:center}.small-order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.small-order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.small-order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.small-order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.small-order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.small-order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-ms-flex:1 1 auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-ms-flex:1 0 auto;-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-ms-flex:0 1 auto;-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-ms-flex-direction:row;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-ms-flex-direction:row-reverse;-webkit-box-direction:reverse;-webkit-box-orient:horizontal;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-ms-flex-direction:column-reverse;-webkit-box-direction:reverse;-webkit-box-orient:vertical;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif;line-height:1.15}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}a:active,a:hover{outline-width:0}abbr[title]{-moz-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}[hidden],template{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{box-sizing:border-box;font-size:100%}*,:after,:before{box-sizing:inherit}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background:#fefefe;color:#01010f;font-family:Open-Sans,Arial,sans-serif;font-weight:400;line-height:1.5;margin:0;padding:0}img{-ms-interpolation-mode:bicubic;display:inline-block;height:auto;max-width:100%;vertical-align:middle}textarea{border-radius:0;height:auto;min-height:50px}select{box-sizing:border-box;width:100%}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:0;cursor:auto;line-height:1;padding:0}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{font-size:inherit;line-height:1.6;margin-bottom:1rem;text-rendering:optimizeLegibility}em,i{font-style:italic}b,em,i,strong{line-height:inherit}b,strong{font-weight:700}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:inherit;font-family:Proxima-Nova,Arial,sans-serif;font-style:normal;font-weight:400;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#cacaca;line-height:0}.h1,h1{font-size:2.25rem}.h1,.h2,h1,h2{font-weight:300;line-height:1.33;margin-bottom:.5rem;margin-top:0}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.25rem;font-weight:300;line-height:1.33;margin-bottom:.5rem;margin-top:0}.h4,h4{font-weight:500}.h4,.h5,h4,h5{font-size:1.125rem;line-height:1.33;margin-bottom:.5rem;margin-top:0}.h5,h5{font-weight:600}.h6,h6{font-size:1.125rem;font-weight:400;line-height:1.33;margin-bottom:.5rem;margin-top:0}a{cursor:pointer;line-height:inherit;text-decoration:none}p>a,p>a:focus,p>a:hover{text-decoration:underline}a,a.icom-after:after,a.icom-before:before,a.icom:before{color:#2279bc}a:focus,a:focus.icom-after:after,a:focus.icom-before:before,a:focus.icom:before,a:hover,a:hover.icom-after:after,a:hover.icom-before:before,a:hover.icom:before{color:#54a4e2}a img,hr{border:0}hr{border-bottom:1px solid #cacaca;clear:both;height:0;margin:1.25rem auto;max-width:90rem}dl,ol,ul{line-height:1.6;list-style-position:outside;margin-bottom:1rem}li{font-size:inherit}ul{list-style-type:disc}ol,ul{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0;margin-left:1.25rem}dl{margin-bottom:1rem}dl dt{font-weight:700;margin-bottom:.3rem}blockquote{border-left:1px solid #cacaca;margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem}blockquote,blockquote p{color:#8a8a8a;line-height:1.6}cite{color:#8a8a8a;display:block;font-size:.8125rem}cite:before{content:"￯﾿ﾢ￯ﾾﾀ￯ﾾﾔ "}abbr,abbr[title]{border-bottom:1px dotted #01010f;cursor:help;text-decoration:none}figure{margin:0}code{border:1px solid #cacaca;font-weight:400;padding:.125rem .3125rem .0625rem}code,kbd{background-color:#e6e6e6;color:#01010f;font-family:Consolas,Liberation Mono,Courier,monospace}kbd{margin:0;padding:.125rem .25rem 0}.subheader{color:#8a8a8a;font-weight:400;line-height:1.4;margin-bottom:.5rem;margin-top:.2rem}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{list-style:none;margin-left:0}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.show-for-print{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{-moz-appearance:none;-webkit-appearance:none;-webkit-transition:box-shadow .5s,border-color .25s ease-in-out;appearance:none;background-color:#fefefe;border:1px solid #cacaca;border-radius:0;box-shadow:inset 0 1px 2px rgba(1,1,15,.1);box-sizing:border-box;color:#01010f;display:block;font-family:inherit;font-size:1rem;font-weight:400;height:2.4375rem;line-height:1.5;margin:0 0 1rem;padding:.5rem;transition:box-shadow .5s,border-color .25s ease-in-out;width:100%}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{-webkit-transition:box-shadow .5s,border-color .25s ease-in-out;background-color:#fefefe;border:1px solid #8a8a8a;box-shadow:0 0 5px #cacaca;outline:none;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#cacaca}input::-moz-placeholder,textarea::-moz-placeholder{color:#cacaca}input:-ms-input-placeholder,input::-ms-input-placeholder,textarea:-ms-input-placeholder,textarea::-ms-input-placeholder{color:#cacaca}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-moz-appearance:none;-webkit-appearance:none;appearance:none;border-radius:0;cursor:pointer}input[type=search]{box-sizing:border-box}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;margin-bottom:0;margin-left:.5rem;margin-right:1rem;vertical-align:baseline}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{color:#01010f;display:block;font-size:.875rem;font-weight:400;line-height:1.8;margin:0}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{color:#01010f;font-size:.8125rem;font-style:italic;margin-top:-.5rem}.input-group{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;width:100%}.input-group>:first-child,.input-group>:last-child>*{border-radius:0 0 0 0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{-ms-flex:0 0 auto;-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;align-items:center;background:#e6e6e6;border:1px solid #cacaca;color:#01010f;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex:0 0 auto;padding:0 1rem;text-align:center;white-space:nowrap}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;border-radius:0;flex:1 1 0px;min-width:0}.input-group-button{-ms-flex:0 0 auto;-webkit-box-flex:0;-webkit-flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex:0 0 auto;padding-bottom:0;padding-top:0;text-align:center}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;font-size:1rem;height:auto;padding-bottom:0;padding-top:0}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:.5rem;max-width:100%}.fieldset{border:1px solid #cacaca;margin:1.125rem 0;padding:1.25rem}.fieldset legend{margin:0 0 0 -.1875rem;padding:0 .1875rem}select{-moz-appearance:none;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;border:1px solid #cacaca;border-radius:0;color:#01010f;font-family:inherit;font-size:1rem;font-weight:400;height:2.4375rem;line-height:1.5;margin:0 0 1rem;padding:.5rem 1.5rem .5rem .5rem}select,select:focus{-webkit-transition:box-shadow .5s,border-color .25s ease-in-out;background-color:#fefefe;transition:box-shadow .5s,border-color .25s ease-in-out}select:focus{border:1px solid #8a8a8a;box-shadow:0 0 5px #cacaca;outline:none}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{background-image:none;height:auto}.is-invalid-input:not(:focus){background-color:#f9ecea;border-color:#cc4b37}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder,.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.form-error,.is-invalid-label{color:#cc4b37}.form-error{display:none;font-size:.75rem;font-weight:700;margin-bottom:1rem;margin-top:-.5rem}.form-error.is-visible{display:block}.hide{display:none!important}.invisible{visibility:hidden}.show-for-sr,.show-on-focus{-webkit-clip-path:inset(50%);border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;width:1px}.show-on-focus:active,.show-on-focus:focus{-webkit-clip-path:none;clip:auto;clip-path:none;height:auto;overflow:visible;position:static!important;white-space:normal;width:auto}.hide-for-portrait,.show-for-landscape{display:block!important}.hide-for-landscape,.show-for-portrait{display:none!important}.breadcrumbs{list-style:none;margin:0 0 1rem}.breadcrumbs:after,.breadcrumbs:before{-ms-flex-order:1;-ms-flex-preferred-size:0;-webkit-box-ordinal-group:2;-webkit-flex-basis:0;-webkit-order:1;content:" ";display:table;flex-basis:0;order:1}.breadcrumbs:after{clear:both}.breadcrumbs li{color:#01010f;cursor:default;float:left;font-size:.6875rem;text-transform:uppercase}.breadcrumbs li:not(:last-child):after{color:#cacaca;content:"\2f";margin:0 .75rem;opacity:1;position:relative}.breadcrumbs a{color:#2279bc}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.accordion{background:#fefefe;list-style-type:none;margin-left:0}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child,.accordion-item:last-child>:last-child{border-radius:0 0 0 0}.accordion-title{border:1px solid #e6e6e6;border-bottom:0;color:#2279bc;display:block;font-size:.75rem;line-height:1;padding:1.25rem 1rem;position:relative}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0 0 0 0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title:before{content:"+";margin-top:-.5rem;position:absolute;right:1rem;top:50%}.is-active>.accordion-title:before{content:"\2013"}.accordion-content{background-color:#fefefe;border:1px solid #e6e6e6;border-bottom:0;color:#01010f;display:none;padding:1rem}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.tabs{-ms-flex-align:end;-webkit-align-items:flex-end;-webkit-box-align:end;align-items:flex-end;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;list-style-type:none;margin:0}.tabs:after,.tabs:before{-ms-flex-order:1;-ms-flex-preferred-size:0;-webkit-box-ordinal-group:2;-webkit-flex-basis:0;-webkit-order:1;content:" ";display:table;flex-basis:0;order:1}.tabs:after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:transparent}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#2073b3}.tabs-title+.tabs-title{margin-left:30px}.tabs-title>a{border-bottom:7px solid transparent;color:#01010f;display:block;padding:.25rem 0}.tabs-title>a:hover{color:#54a4e2}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{border-bottom-color:#2279bc;color:#2279bc;outline:none}.tabs-content.vertical{border-left:0}.tabs-panel{display:none}.tabs-panel.is-active{display:block}table{border-collapse:collapse;border-radius:0;margin-bottom:1rem;width:100%}tbody,tfoot,thead{background-color:#fefefe;border:1px solid #f1f1f1}caption{font-weight:700;padding:.5rem .625rem .625rem}thead{background:#f8f8f8}tfoot,thead{color:#01010f}tfoot{background:#f1f1f1}tfoot tr,thead tr{background:transparent}tfoot td,tfoot th,thead td,thead th{font-weight:700;padding:.5rem .625rem .625rem;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(2n){background-color:#f1f1f1;border-bottom:0}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{background-color:#fefefe;border-bottom:1px solid #f1f1f1}table.scroll{display:block;overflow-x:auto;width:100%}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(2n):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.table-scroll table{width:auto}.has-tip{cursor:help;display:inline-block;position:relative}.tooltip{background-color:#01010f;border-radius:0;color:#fefefe;font-size:80%;max-width:10rem;padding:.75rem;top:-webkit-calc(100% + .6495rem);top:calc(100% + .6495rem);z-index:1200}.tooltip,.tooltip:before{position:absolute}.tooltip.bottom:before{border-color:transparent transparent #01010f;border-style:inset inset solid;border-width:0 .75rem .75rem;bottom:100%;content:"";display:block;height:0;width:0}.tooltip.bottom.align-center:before{-webkit-transform:translateX(-50%);left:50%;transform:translateX(-50%)}.tooltip.top:before{border-color:#01010f transparent transparent;border-style:solid inset inset;border-width:.75rem .75rem 0;bottom:auto;content:"";display:block;height:0;top:100%;width:0}.tooltip.top.align-center:before{-webkit-transform:translateX(-50%);left:50%;transform:translateX(-50%)}.tooltip.left:before{border-color:transparent transparent transparent #01010f;border-style:inset inset inset solid;border-width:.75rem 0 .75rem .75rem;content:"";display:block;height:0;left:100%;width:0}.tooltip.left.align-center:before{-webkit-transform:translateY(-50%);bottom:auto;top:50%;transform:translateY(-50%)}.tooltip.right:before{border-color:transparent #01010f transparent transparent;border-style:inset solid inset inset;border-width:.75rem .75rem .75rem 0;content:"";display:block;height:0;left:auto;right:100%;width:0}.tooltip.right.align-center:before{-webkit-transform:translateY(-50%);bottom:auto;top:50%;transform:translateY(-50%)}.tooltip.align-top:before{bottom:auto;top:10%}.tooltip.align-bottom:before{bottom:10%;top:auto}.tooltip.align-left:before{left:10%;right:auto}.tooltip.align-right:before{left:auto;right:10%}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.row .row{margin-left:-.3125rem;margin-right:-.3125rem}.medium-1{-ms-flex:0 0 8.33333%;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.medium-offset-0{margin-left:0}.medium-2{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-offset-2{margin-left:16.66667%}.medium-4{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-offset-3{margin-left:25%}.medium-5{-ms-flex:0 0 41.66667%;-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-offset-5{margin-left:41.66667%}.medium-7{-ms-flex:0 0 58.33333%;-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.medium-offset-6{margin-left:50%}.medium-8{-ms-flex:0 0 66.66667%;-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{-ms-flex:0 0 75%;-webkit-box-flex:0;-webkit-flex:0 0 75%;flex:0 0 75%;max-width:75%}.medium-offset-8{margin-left:66.66667%}.medium-10{-ms-flex:0 0 83.33333%;-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.medium-offset-9{margin-left:75%}.medium-11{-ms-flex:0 0 91.66667%;-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-1>.column,.medium-up-1>.columns{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-up-2{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-2>.column,.medium-up-2>.columns{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-up-3{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-3>.column,.medium-up-3>.columns{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-up-4{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-4>.column,.medium-up-4>.columns{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-up-5{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-5>.column,.medium-up-5>.columns{-ms-flex:0 0 20%;-webkit-box-flex:0;-webkit-flex:0 0 20%;flex:0 0 20%;max-width:20%}.medium-up-6{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-6>.column,.medium-up-6>.columns{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-up-7{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-7>.column,.medium-up-7>.columns{-ms-flex:0 0 14.28571%;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.medium-up-8{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.medium-up-8>.column,.medium-up-8>.columns{-ms-flex:0 0 12.5%;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.row.medium-unstack>.column,.row.medium-unstack>.columns{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;flex:1 1 0px}.medium-collapse>.column,.medium-collapse>.columns{padding-left:0;padding-right:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-left:.3125rem;padding-right:.3125rem}.medium-order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.medium-order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.medium-order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.medium-order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.medium-order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.medium-order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-ms-flex:1 1 auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-ms-flex:1 0 auto;-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-ms-flex:0 1 auto;-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-ms-flex-direction:row;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-ms-flex-direction:row-reverse;-webkit-box-direction:reverse;-webkit-box-orient:horizontal;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-ms-flex-direction:column-reverse;-webkit-box-direction:reverse;-webkit-box-orient:vertical;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.h1,h1{font-size:3rem;font-weight:200}.h2,h2{font-size:2.25rem}.h3,h3{font-size:1.875rem}.h4,h4{font-size:1.5rem}.h5,.h6,h5,h6{font-size:1.25rem}.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}.hide-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (min-width:40em){.medium-expand{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;flex:1 1 0px}}@media screen and (min-width:40em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.row .row{margin-left:-.3125rem;margin-right:-.3125rem}.large-1{-ms-flex:0 0 8.33333%;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.large-offset-0{margin-left:0}.large-2{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-offset-2{margin-left:16.66667%}.large-4{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-offset-3{margin-left:25%}.large-5{-ms-flex:0 0 41.66667%;-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-offset-5{margin-left:41.66667%}.large-7{-ms-flex:0 0 58.33333%;-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.large-offset-6{margin-left:50%}.large-8{-ms-flex:0 0 66.66667%;-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{-ms-flex:0 0 75%;-webkit-box-flex:0;-webkit-flex:0 0 75%;flex:0 0 75%;max-width:75%}.large-offset-8{margin-left:66.66667%}.large-10{-ms-flex:0 0 83.33333%;-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.large-offset-9{margin-left:75%}.large-11{-ms-flex:0 0 91.66667%;-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-1>.column,.large-up-1>.columns{-ms-flex:0 0 100%;-webkit-box-flex:0;-webkit-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-up-2{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-2>.column,.large-up-2>.columns{-ms-flex:0 0 50%;-webkit-box-flex:0;-webkit-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-up-3{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-3>.column,.large-up-3>.columns{-ms-flex:0 0 33.33333%;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-up-4{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-4>.column,.large-up-4>.columns{-ms-flex:0 0 25%;-webkit-box-flex:0;-webkit-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-up-5{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-5>.column,.large-up-5>.columns{-ms-flex:0 0 20%;-webkit-box-flex:0;-webkit-flex:0 0 20%;flex:0 0 20%;max-width:20%}.large-up-6{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-6>.column,.large-up-6>.columns{-ms-flex:0 0 16.66667%;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-up-7{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-7>.column,.large-up-7>.columns{-ms-flex:0 0 14.28571%;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.large-up-8{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.large-up-8>.column,.large-up-8>.columns{-ms-flex:0 0 12.5%;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.row.large-unstack>.column,.row.large-unstack>.columns{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;flex:1 1 0px}.large-collapse>.column,.large-collapse>.columns{padding-left:0;padding-right:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-left:.3125rem;padding-right:.3125rem}.large-order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.large-order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.large-order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.large-order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.large-order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.large-order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-ms-flex:1 1 auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-ms-flex:1 0 auto;-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-ms-flex:0 1 auto;-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-ms-flex-direction:row;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-ms-flex-direction:row-reverse;-webkit-box-direction:reverse;-webkit-box-orient:horizontal;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-ms-flex-direction:column-reverse;-webkit-box-direction:reverse;-webkit-box-orient:vertical;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.h1,h1{font-size:4.5rem}.h2,h2{font-size:2.625rem}.h3,h3{font-size:2.25rem}.h4,h4{font-size:1.625rem}.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}.hide-for-large{display:none!important}.tabs-title+.tabs-title{margin-left:60px}}@media print,screen and (min-width:64em) and (min-width:64em){.large-expand{-ms-flex:1 1 0px;-webkit-box-flex:1;-webkit-flex:1 1 0px;flex:1 1 0px}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}@media screen and (min-width:0\0){select{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==")}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}table.stack tfoot,table.stack thead{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}@media print{*{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}@media screen and (max-width:39.9375em){.hide-for-small-only,.show-for-medium{display:none!important}}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}.hide-for-landscape,.show-for-portrait{display:block!important}}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3Mvc2V0dGluZ3MvX3NldHRpbmdzLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL19ub3JtYWxpemUtbWl4aW4uc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZhcmlhYmxlcy5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwicHJvamVjdF9pZGMvcmVzb3VyY2VzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsInByb2plY3RfaWRjL3Jlc291cmNlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStlRSxpQkNoWEEsQUN3RWlDLEtEM0ovQix1QkFBQSxBQWxCbUIsNkJBa0JuQixBQWxCbUIsOEJBa0JuQixBQWxCbUIsMkJBaUJuQixBQWpCbUIsb0JBaUJuQixBQUFhLHFCQUFiLEFBQWEsb0JBQWIsQUFBYSxhQUFBLEFBQ2IsbUJBTEEsQUFibUIsaUJBWW5CLEFBQ2lCLGtCRTBEbkIsQUYzRG9CLGVHa0RtQyxDSGtGdEQsQUEzQ0QsVUUxQ0Usc0JBREEsQUFGK0Qsc0JBQUEsQ0Z3RDlELEFBWEgsbUJBU00sY0FEQSxBQUNjLGNBREMsQ0FFaEIsQUFWTCwwREU5QkEsY0FIYSxDRjZEVixBQTVCSCw2Q0l4R0UsZUFEQSxBRHVFUyxlQUFBLENIbUVOLEFBakNMLDhFQXlDSSxjQURBLEFBQ2MsY0FEQyxDQUVoQixBQUlILGlCQXpEQSxpQkFBQSxBQXhEYyxtQkF3RGQsQUF4RGMscUJBd0RkLEFBeERjLGFBQUEsQUE2QlosWUlsRUEsQUprRVksc0JJbkVaLEFBRnFDLHNCQUFBLENKMkp0QyxBQUlELGlDQUVFLGNBREEsQUFDYyxVQURILENBRVosQUFHRCwyQ0FFRSxjQURBLEFBQ2MsZUFEQyxBQUdmLGVBREEsQUFDZSxlQURDLENBRWpCLEFBS0csU0FDRSxzQkFBQSxBS3ZLK0MsbUJMdUsvQyxBS3ZLK0MsMEJMdUsvQyxBS3ZLK0Msa0JBQUEsQUx3Sy9DLGtCS3hLK0MsQ0x5S2hELEFBS0QsZ0JNaktKLGFEaEJnQyxDTG1MM0IsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0osb0JEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytDLGFBQUEsQUx3Sy9DLGFLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsdUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLDJCTHVLL0MsQUt2SytDLG1CQUFBLEFMd0svQyxtQkt4SytDLENMeUtoRCxBQUtELGdCTWpLSixlRGJxRCxDTGdMaEQsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytDLGFBQUEsQUx3Sy9DLGFLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsdUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLDJCTHVLL0MsQUt2SytDLG1CQUFBLEFMd0svQyxtQkt4SytDLENMeUtoRCxBQUtELGdCTWpLSixlRGJxRCxDTGdMaEQsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytDLGFBQUEsQUx3Sy9DLGFLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFVBQ0UsdUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLDJCTHVLL0MsQUt2SytDLG1CQUFBLEFMd0svQyxtQkt4SytDLENMeUtoRCxBQUtELGdCTWpLSixlRGJxRCxDTGdMaEQsQUFWRCxVQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxpQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFVBQ0Usa0JBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHNCTHVLL0MsQUt2SytDLGNBQUEsQUx3Sy9DLGNLeEsrQyxDTHlLaEQsQUFLRCxpQk1qS0oscUJEYnFELENMZ0xoRCxBQUtELFlBN0dKLG1CQUFBLEFBQWUsdUJBQWYsQUFBZSxjQUFBLENBK0dWLEFBN0dMLHlDQUdFLGtCQUFBLEFBRnNCLG1CQUV0QixBQUZzQixzQkFFdEIsQUFGc0IsY0FBQSxBQUd0QixjQUhzQixDQUl2QixBQXNHRyxZQTdHSixtQkFBQSxBQUFlLHVCQUFmLEFBQWUsY0FBQSxDQStHVixBQTdHTCx5Q0FHRSxpQkFBQSxBQUZzQixtQkFFdEIsQUFGc0IscUJBRXRCLEFBRnNCLGFBQUEs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QUEsQUx3Sy9DLG1CS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLG9CRGJxRCxDTGdMaEQsQUFWRCxVQUNFLGlCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQyxxQkx1Sy9DLEFLdksrQyxhQUFBLEFMd0svQyxhS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLHFCRGJxRCxDTGdMaEQsQUFWRCxVQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxpQk1qS0osZURicUQsQ0xnTGhELEFBVkQsVUFDRSx1QkFBQSxBS3ZLK0MsbUJMdUsvQyxBS3ZLK0MsMkJMdUsvQyxBS3ZLK0MsbUJBQUEsQUx3Sy9DLG1CS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLHFCRGJxRCxDTGdMaEQsQUFWRCxVQUNFLGlCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQyxxQkx1Sy9DLEFLdksrQyxhQUFBLEFMd0svQyxhS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLHFCRGJxRCxDTGdMaEQsQUFWRCxVQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxpQk1qS0osZURicUQsQ0xnTGhELEFBVkQsVUFDRSx1QkFBQSxBS3ZLK0MsbUJMdUsvQyxBS3ZLK0MsMkJMdUsvQyxBS3ZLK0MsbUJBQUEsQUx3Sy9DLG1CS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLHFCRGJxRCxDTGdMaEQsQUFWRCxVQUNFLGlCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQyxxQkx1Sy9DLEFLdksrQyxhQUFBLEFMd0svQyxhS3hLK0MsQ0x5S2hELEFBS0QsaUJNaktKLHFCRGJxRCxDTGdMaEQsQUFWRCxXQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxpQk1qS0osZURicUQsQ0xnTGhELEFB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REMsU0FDRSxzQkFBQSxBS3ZLK0MsbUJMdUsvQyxBS3ZLK0MsMEJMdUsvQyxBS3ZLK0Msa0JBQUEsQUx3Sy9DLGtCS3hLK0MsQ0x5S2hELEFBS0QsZ0JNaktKLGFEaEJnQyxDTG1MM0IsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0osb0JEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytDLGFBQUEsQUx3Sy9DLGFLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsdUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLDJCTHVLL0MsQUt2SytDLG1CQUFBLEFMd0svQyxtQkt4SytDLENMeUtoRCxBQUtELGdCTWpLSixlRGJxRCxDTGdMaEQsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytDLGFBQUEsQUx3Sy9DLGFLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsdUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLDJCTHVLL0MsQUt2SytDLG1CQUFBLEFMd0svQyxtQkt4SytDLENMeUtoRCxBQUtELGdCTWpLSixlRGJxRCxDTGdMaEQsQUFWRCxTQUNFLHVCQUFBLEFLdksrQyxtQkx1Sy9DLEFLdksrQywyQkx1Sy9DLEFLdksrQyxtQkFBQSxBTHdLL0MsbUJLeEsrQyxDTHlLaEQsQUFLRCxnQk1qS0oscUJEYnFELENMZ0xoRCxBQVZELFNBQ0UsaUJBQUEsQUt2SytDLG1CTHVLL0MsQUt2SytDLHFCTHVLL0MsQUt2SytD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Q0FTSSxzQkFBd0IsQ0FFM0IsQUFFRCx1Q0FTSSx1QkFBeUIsQ0FFNUIsQ0FiQSIsImZpbGUiOiJwcm9qZWN0X2lkYy9yZXNvdXJjZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxyXG4vLy8vXHJcblxyXG4vLyBCYXNlIFR5cG9ncmFwaHlcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxyXG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cclxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cclxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxyXG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XHJcbi8vICAgLSBBbmNob3JzIDxhPlxyXG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxyXG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cclxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxyXG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XHJcbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxyXG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxyXG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxyXG5cclxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XHJcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRoZWFkZXItc3R5bGVzOiAoXHJcbiAgc21hbGw6IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcclxuICApLFxyXG4gIG1lZGl1bTogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxyXG4gICksXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XHJcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcclxuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcclxuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xyXG4gICRoZWFkZXItc3R5bGVzOiAoKTtcclxuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XHJcbiAgICAkaGVhZGVyLW1hcDogKCk7XHJcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcclxuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxyXG4gICAgfVxyXG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xyXG4gIH1cclxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xyXG59XHJcblxyXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxyXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xyXG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcclxufVxyXG5cclxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXHJcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIGltbWVkaWF0ZWx5IGluc2lkZSBwYXJhZ3JhcGguXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGlubGluZS1hbmNob3ItdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIGltbWVkaWF0ZWx5IGluc2lkZSBwYXJhZ3JhcGggb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGlubGluZS1hbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xyXG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXHJcbiAgZGl2LFxyXG4gIGRsLFxyXG4gIGR0LFxyXG4gIGRkLFxyXG4gIHVsLFxyXG4gIG9sLFxyXG4gIGxpLFxyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2LFxyXG4gIHByZSxcclxuICBmb3JtLFxyXG4gIHAsXHJcbiAgYmxvY2txdW90ZSxcclxuICB0aCxcclxuICB0ZCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gUGFyYWdyYXBoc1xyXG4gIHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG5cclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcclxuICB9XHJcblxyXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxyXG4gIGVtLFxyXG4gIGkge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBTdHJvbmcgdGV4dFxyXG4gIHN0cm9uZyxcclxuICBiIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBTbWFsbCB0ZXh0XHJcbiAgc21hbGwge1xyXG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBIZWFkaW5nc1xyXG4gIGgxLCAuaDEsXHJcbiAgaDIsIC5oMixcclxuICBoMywgLmgzLFxyXG4gIGg0LCAuaDQsXHJcbiAgaDUsIC5oNSxcclxuICBoNiwgLmg2IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XHJcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcclxuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xyXG5cclxuICAgIHNtYWxsIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBIZWFkaW5nIHN0eWxlc1xyXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XHJcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xyXG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcclxuXHJcbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcclxuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xyXG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XHJcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xyXG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcclxuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xyXG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XHJcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XHJcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcclxuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcclxuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXdlaWdodCkge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtd2VpZ2h0KTtcclxuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKTtcclxuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpbmtzXHJcbiAgYSB7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XHJcblxyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgIHAgPiAme1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246ICRpbmxpbmUtYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGlubGluZS1hbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJixcclxuICAgICYuaWNvbTpiZWZvcmUsXHJcbiAgICAmLmljb20tYmVmb3JlOmJlZm9yZSxcclxuICAgICYuaWNvbS1hZnRlcjphZnRlcntcclxuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAmLFxyXG4gICAgICAmLmljb206YmVmb3JlLFxyXG4gICAgICAmLmljb20tYmVmb3JlOmJlZm9yZSxcclxuICAgICAgJi5pY29tLWFmdGVyOmFmdGVye1xyXG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xyXG4gICAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhvcml6b250YWwgcnVsZVxyXG4gIGhyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG5cclxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xyXG5cclxuICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0c1xyXG4gIHVsLFxyXG4gIG9sLFxyXG4gIGRsIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XHJcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLy8gTGlzdCBpdGVtc1xyXG4gIGxpIHtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xyXG4gIHVsIHtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xyXG4gIH1cclxuXHJcbiAgLy8gT3JkZXJlZCBsaXN0c1xyXG4gIG9sIHtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xyXG4gIH1cclxuXHJcbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXHJcbiAgdWwsIG9sIHtcclxuICAgICYgJiB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERlZmluaXRpb24gbGlzdHNcclxuICBkbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICBkdCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBCbG9ja3F1b3Rlc1xyXG4gIGJsb2NrcXVvdGUge1xyXG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcclxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcclxuXHJcbiAgICAmLCBwIHtcclxuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcclxuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ2l0YXRpb25zXHJcbiAgY2l0ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xyXG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBYmJyZXZpYXRpb25zXHJcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xyXG4gICAgY3Vyc29yOiBoZWxwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLy8gRmlndXJlc1xyXG4gIGZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC8vIENvZGVcclxuICBjb2RlIHtcclxuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XHJcblxyXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xyXG5cclxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcclxuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcclxuICB9XHJcblxyXG4gIC8vIEtleXN0cm9rZXNcclxuICBrYmQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcclxuXHJcbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xyXG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXHJcbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIGhhdmUgcm93IHdyYXBwaW5nIGJlaGF2aW9yIHNldCB0byBub3dyYXBcclxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXHJcbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxyXG4gICRiZWhhdmlvcjogbnVsbCxcclxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxyXG4gICRjb2x1bW5zOiBudWxsLFxyXG4gICRiYXNlOiB0cnVlLFxyXG4gICR3cmFwOiB0cnVlLFxyXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gICRtYXJnaW46IGF1dG87XHJcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xyXG5cclxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xyXG5cclxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICB9XHJcblxyXG4gIEBpZiAkYmFzZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxyXG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXHJcbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxyXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XHJcbiAgJGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XHJcblxyXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xyXG4gICAgJGZsZXg6IDAgMCBhdXRvO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xyXG4gICAgJGZsZXg6IDAgMCBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRmbGV4O1xyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIGNvbHVtbiBmb3IgYSBmbGV4IGdyaWQuIEJ5IGRlZmF1bHQsIHRoZSBjb2x1bW4gd2lsbCBzdHJldGNoIHRvIHRoZSBmdWxsIHdpZHRoIG9mIGl0cyBjb250YWluZXIsIGJ1dCB0aGlzIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggc2l6aW5nIGNsYXNzZXMsIG9yIGJ5IHVzaW5nIHRoZSBgdW5zdGFja2AgY2xhc3Mgb24gdGhlIHBhcmVudCBmbGV4IHJvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzIHdpZHRoLiBTZWUgdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXJgIG1peGluLlxyXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcclxuICAkY29sdW1uczogZXhwYW5kLFxyXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIC8vIEJhc2UgcHJvcGVydGllc1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKCRjb2x1bW5zKTtcclxuXHJcbiAgLy8gR3V0dGVyc1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xyXG5cclxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXHJcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ5MzQ1ODYvd2hpdGUtc3BhY2Utbm93cmFwLWFuZC1mbGV4Ym94LWRpZC1ub3Qtd29yay1pbi1jaHJvbWVcclxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgYmxvY2sgZ3JpZCBmb3IgYSBmbGV4IGdyaWQgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIC0gU2VsZWN0b3IgdG8gdXNlIHRvIHRhcmdldCBjb2x1bW5zIHdpdGhpbiB0aGUgcm93LlxyXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcclxuICAkbixcclxuICAkc2VsZWN0b3I6ICcuY29sdW1uJ1xyXG4pIHtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gID4gI3skc2VsZWN0b3J9IHtcclxuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XHJcblxyXG4gICAgZmxleDogMCAwICRwY3Q7XHJcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ2hhbmdlcyB0aGUgd2lkdGggZmxleCBncmlkIGNvbHVtbi5cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXHJcbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xyXG4gICRjb2x1bW5zOiAkY29sdW1ucyBvciBleHBhbmQ7XHJcblxyXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xyXG5cclxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcclxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xyXG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcclxuICAvLyBSb3dcclxuICAucm93IHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XHJcblxyXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxyXG4gICAgJiAucm93IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xyXG5cclxuICAgICAgJi5jb2xsYXBzZSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXhwYW5kZWQgcm93XHJcbiAgICAmLmV4cGFuZGVkIHtcclxuICAgICAgLy8ucm93IHtcclxuICAgICAgLy8gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgLy8gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAvL31cclxuICAgICAgJixcclxuICAgICAgJiAucm93e1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jb2xsYXBzZSB7XHJcbiAgICAgID4gLmNvbHVtbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcclxuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXHJcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxyXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbHVtblxyXG4gIC5jb2x1bW4ge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcclxuICB9XHJcblxyXG4gIC8vIENvbHVtbiByb3dcclxuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XHJcbiAgLmNvbHVtbi5yb3cucm93IHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcclxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcclxuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxyXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcclxuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcclxuICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gT2Zmc2V0c1xyXG4gICAgICAkbzogJGkgLSAxO1xyXG5cclxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBCbG9jayBncmlkXHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xyXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcclxuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xyXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcclxuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcclxuICAgICAgICAgID4gLmNvbHVtbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xyXG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xyXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XHJcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JC16Zi1zaXplfS11bmNvbGxhcHNlIHtcclxuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNpemluZyAoc2hyaW5rKVxyXG4gIC5zaHJpbmsge1xyXG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xyXG4gICAgLm1lZGl1bS11bnN0YWNrICYsXHJcbiAgICAubGFyZ2UtdW5zdGFjayAme1xyXG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXHJcbiAgLmNvbHVtbi1ibG9jayB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XHJcbiAgfVxyXG5cclxuICAuY29sdW1ucyB7XHJcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXHJcblxyXG4gIH1cclxufVxyXG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3NcclxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vICBUYWJsZSBvZiBDb250ZW50czpcclxuLy9cclxuLy8gICAxLiBHbG9iYWxcclxuLy8gICAyLiBCcmVha3BvaW50c1xyXG4vLyAgIDMuIFRoZSBHcmlkXHJcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXHJcbi8vICAgNi4gQWJpZGVcclxuLy8gICA3LiBBY2NvcmRpb25cclxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxyXG4vLyAgIDkuIEJhZGdlXHJcbi8vICAxMC4gQnJlYWRjcnVtYnNcclxuLy8gIDExLiBCdXR0b25cclxuLy8gIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gIDEzLiBDYWxsb3V0XHJcbi8vICAxNC4gQ2FyZFxyXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxyXG4vLyAgMTYuIERyaWxsZG93blxyXG4vLyAgMTcuIERyb3Bkb3duXHJcbi8vICAxOC4gRHJvcGRvd24gTWVudVxyXG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXHJcbi8vICAyMC4gRm9ybXNcclxuLy8gIDIxLiBMYWJlbFxyXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxyXG4vLyAgMjMuIE1lbnVcclxuLy8gIDI0LiBNZXRlclxyXG4vLyAgMjUuIE9mZi1jYW52YXNcclxuLy8gIDI2LiBPcmJpdFxyXG4vLyAgMjcuIFBhZ2luYXRpb25cclxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcclxuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxyXG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxyXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxyXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XHJcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xyXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcclxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcclxuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cclxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxyXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3JcclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XHJcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xyXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXHJcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxyXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXHJcbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXHJcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxyXG4vLyAgNDcuIFJldmVhbFxyXG4vLyAgNDguIFNsaWRlclxyXG4vLyAgNDkuIFN3aXRjaFxyXG4vLyAgNTAuIFRhYmxlXHJcbi8vICA1MS4gVGFic1xyXG4vLyAgNTIuIFRodW1ibmFpbFxyXG4vLyAgNTMuIFRpdGxlIEJhclxyXG4vLyAgNTQuIFRvb2x0aXBcclxuLy8gIDU1LiBUb3AgQmFyXHJcbi8vICA1Ni4gWHkgR3JpZFxyXG5cclxuQGltcG9ydCAnLi4vdXRpbC91dGlsJztcclxuXHJcblxyXG5cclxuLy8gMS4gR2xvYmFsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XHJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE0NDApO1xyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICMyMjc5YmMsXHJcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxyXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXHJcbiAgd2FybmluZzogI2ZmYWUwMCxcclxuICBhbGVydDogI2NjNGIzNyxcclxuKTtcclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTY7XHJcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcclxuJGRhcmstZ3JheTogIzhhOGE4YTtcclxuJGJsYWNrOiAjMDEwMTBmO1xyXG4kd2hpdGU6ICNmZWZlZmU7XHJcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xyXG4kYm9keS1mb250LWZhbWlseTogJ09wZW4tU2FucycsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcclxuJGdsb2JhbC1tYXJnaW46IDFyZW07XHJcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XHJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XHJcbiRnbG9iYWwtcmFkaXVzOiAwO1xyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW07XHJcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xyXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XHJcbiRnbG9iYWwtZmxleGJveDogdHJ1ZTtcclxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xyXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG87XHJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDA7XHJcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcclxuXHJcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcclxuXHJcbi8vIDIuIEJyZWFrcG9pbnRzXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnJlYWtwb2ludHM6IChcclxuICAgICAgc21hbGw6IDAsXHJcbiAgICAgIG1lZGl1bTogNjQwcHgsXHJcbiAgICAgIGxhcmdlOiAxMDI0cHgsXHJcbiAgICAgIHhsYXJnZTogMTIwMHB4LFxyXG4gICAgICB4eGxhcmdlOiAxNDQwcHgsXHJcbik7XHJcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XHJcblxyXG4vLyAzLiBUaGUgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xyXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAxMHB4O1xyXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcclxuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XHJcbiRibG9jay1ncmlkLW1heDogODtcclxuXHJcblxyXG5cclxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGhlYWRlci1mb250LWZhbWlseTogJ1Byb3hpbWEtTm92YScsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xyXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdDtcclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjMzO1xyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJGhlYWRlci1zdHlsZXM6IChcclxuICBzbWFsbDogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzNiwgJ2ZvbnQtd2VpZ2h0JzogMzAwKSxcclxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjQsICdmb250LXdlaWdodCc6IDMwMCksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDIwLCAnZm9udC13ZWlnaHQnOiAzMDApLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCwgJ2ZvbnQtd2VpZ2h0JzogNTAwKSxcclxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTgsICdmb250LXdlaWdodCc6IDYwMCksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcclxuICApLFxyXG4gIG1lZGl1bTogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCwgJ2ZvbnQtd2VpZ2h0JzogMjAwKSxcclxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzYpLFxyXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMCksXHJcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcclxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxyXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAyMCksXHJcbiAgKSxcclxuICBsYXJnZTogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA3MiksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQyKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzYpLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNilcclxuICApLFxyXG4pO1xyXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XHJcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuJGNvZGUtY29sb3I6ICRibGFjaztcclxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XHJcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRhbmNob3ItY29sb3ItaG92ZXI6ICM1NGE0ZTI7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcclxuJGlubGluZS1hbmNob3ItdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiRpbmxpbmUtYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjogdW5kZXJsaW5lO1xyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XHJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XHJcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xyXG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XHJcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XHJcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcclxuXHJcbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xyXG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XHJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XHJcblxyXG4vLyA2LiBBYmlkZVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGFiaWRlLWlucHV0czogdHJ1ZTtcclxuJGFiaWRlLWxhYmVsczogdHJ1ZTtcclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuXHJcbi8vIDcuIEFjY29yZGlvblxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xyXG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XHJcblxyXG4vLyA4LiBBY2NvcmRpb24gTWVudVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XHJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XHJcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XHJcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbDtcclxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XHJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcclxuXHJcbi8vIDkuIEJhZGdlXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xyXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XHJcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XHJcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XHJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcclxuXHJcbi8vIDEwLiBCcmVhZGNydW1ic1xyXG4vLyAtLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XHJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWU7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDExLiBCdXR0b25cclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xyXG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XHJcbiRidXR0b24tZmlsbDogc29saWQ7XHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xyXG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xyXG4kYnV0dG9uLXNpemVzOiAoXHJcbiAgdGlueTogMC42cmVtLFxyXG4gIHNtYWxsOiAwLjc1cmVtLFxyXG4gIGRlZmF1bHQ6IDAuOXJlbSxcclxuICBsYXJnZTogMS4yNXJlbSxcclxuKTtcclxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xyXG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XHJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcclxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcclxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZTtcclxuXHJcbi8vIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcclxuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XHJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xyXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XHJcblxyXG4vLyAxMy4gQ2FsbG91dFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcclxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XHJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XHJcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcclxuXHJcbi8vIDE0LiBDYXJkXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4kY2FyZC1zaGFkb3c6IG5vbmU7XHJcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuLy8gMTUuIENsb3NlIEJ1dHRvblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcclxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXHJcbiAgc21hbGw6IDAuNjZyZW0sXHJcbiAgbWVkaXVtOiAxcmVtLFxyXG4pO1xyXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXHJcbiAgc21hbGw6IDAuMzNlbSxcclxuICBtZWRpdW06IDAuNXJlbSxcclxuKTtcclxuJGNsb3NlYnV0dG9uLXNpemU6IChcclxuICBzbWFsbDogMS41ZW0sXHJcbiAgbWVkaXVtOiAyZW0sXHJcbik7XHJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xyXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xyXG5cclxuLy8gMTYuIERyaWxsZG93blxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcblxyXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XHJcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XHJcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xyXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XHJcblxyXG4vLyAxNy4gRHJvcGRvd25cclxuLy8gLS0tLS0tLS0tLS0tXHJcblxyXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XHJcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XHJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kZHJvcGRvd24tc2l6ZXM6IChcclxuICB0aW55OiAxMDBweCxcclxuICBzbWFsbDogMjAwcHgsXHJcbiAgbGFyZ2U6IDQwMHB4LFxyXG4pO1xyXG5cclxuLy8gMTguIERyb3Bkb3duIE1lbnVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xyXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xyXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcclxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XHJcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XHJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XHJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMDtcclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcclxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XHJcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xyXG5cclxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xyXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xyXG5cclxuLy8gMjAuIEZvcm1zXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XHJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xyXG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xyXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xyXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XHJcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XHJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xyXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kaW5wdXQtY29sb3I6ICRibGFjaztcclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XHJcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcclxuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xyXG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XHJcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcclxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjEuIExhYmVsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XHJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjIuIE1lZGlhIE9iamVjdFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XHJcblxyXG4vLyAyMy4gTWVudVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJG1lbnUtbWFyZ2luOiAwO1xyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XHJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW07XHJcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XHJcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xyXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xyXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZTtcclxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XHJcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xyXG5cclxuLy8gMjQuIE1ldGVyXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJG1ldGVyLWhlaWdodDogMXJlbTtcclxuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xyXG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xyXG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvcjtcclxuXHJcbi8vIDI1LiBPZmYtY2FudmFzXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kb2ZmY2FudmFzLXNpemVzOiAoXHJcbiAgc21hbGw6IDI1MHB4LFxyXG4pO1xyXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXHJcbiAgc21hbGw6IDI1MHB4LFxyXG4pO1xyXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XHJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XHJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XHJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XHJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XHJcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xyXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xyXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xyXG5cclxuLy8gMjYuIE9yYml0XHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XHJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XHJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xyXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XHJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XHJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XHJcblxyXG4vLyAyNy4gUGFnaW5hdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XHJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XHJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcclxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2U7XHJcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcclxuXHJcbi8vIDI4LiBQcm9ncmVzcyBCYXJcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjkuIFByb3RvdHlwZSBBcnJvd1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcclxuICBkb3duLFxyXG4gIHVwLFxyXG4gIHJpZ2h0LFxyXG4gIGxlZnRcclxuKTtcclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XHJcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcclxuXHJcbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcblxyXG4vLyAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG5cclxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xyXG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtZGlzcGxheTogKFxyXG4gIGlubGluZSxcclxuICBpbmxpbmUtYmxvY2ssXHJcbiAgYmxvY2ssXHJcbiAgdGFibGUsXHJcbiAgdGFibGUtY2VsbFxyXG4pO1xyXG5cclxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XHJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcblxyXG4vLyAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxyXG4gIGRpc2MsXHJcbiAgY2lyY2xlLFxyXG4gIHNxdWFyZVxyXG4pO1xyXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxyXG4gIGRlY2ltYWwsXHJcbiAgbG93ZXItYWxwaGEsXHJcbiAgbG93ZXItbGF0aW4sXHJcbiAgbG93ZXItcm9tYW4sXHJcbiAgdXBwZXItYWxwaGEsXHJcbiAgdXBwZXItbGF0aW4sXHJcbiAgdXBwZXItcm9tYW5cclxuKTtcclxuXHJcbi8vIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcclxuICB2aXNpYmxlLFxyXG4gIGhpZGRlbixcclxuICBzY3JvbGxcclxuKTtcclxuXHJcbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtcG9zaXRpb246IChcclxuICBzdGF0aWMsXHJcbiAgcmVsYXRpdmUsXHJcbiAgYWJzb2x1dGUsXHJcbiAgZml4ZWRcclxuKTtcclxuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzU7XHJcblxyXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpO1xyXG5cclxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3JcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlcjtcclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKTtcclxuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbi8vIDQwLiBQcm90b3R5cGUgU2hhZG93XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XHJcblxyXG4vLyA0MS4gUHJvdG90eXBlIFNpemluZ1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXNpemluZzogKFxyXG4gIHdpZHRoLFxyXG4gIGhlaWdodFxyXG4pO1xyXG4kcHJvdG90eXBlLXNpemVzOiAoXHJcbiAgMjU6IDI1JSxcclxuICA1MDogNTAlLFxyXG4gIDc1OiA3NSUsXHJcbiAgMTAwOiAxMDAlXHJcbik7XHJcblxyXG4vLyA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XHJcblxyXG4vLyA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcclxuICBvdmVybGluZSxcclxuICB1bmRlcmxpbmUsXHJcbiAgbGluZS10aHJvdWdoLFxyXG4pO1xyXG5cclxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxyXG4gIGxvd2VyY2FzZSxcclxuICB1cHBlcmNhc2UsXHJcbiAgY2FwaXRhbGl6ZVxyXG4pO1xyXG5cclxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xyXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcclxuICBkZWZhdWx0OiA0IGJ5IDMsXHJcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcclxuKTtcclxuXHJcbi8vIDQ3LiBSZXZlYWxcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xyXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xyXG5cclxuLy8gNDguIFNsaWRlclxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XHJcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XHJcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xyXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA0OS4gU3dpdGNoXHJcbi8vIC0tLS0tLS0tLS1cclxuXHJcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XHJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XHJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XHJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xyXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xyXG5cclxuLy8gNTAuIFRhYmxlXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcclxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XHJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XHJcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWU7XHJcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtc3RyaXBlOiBldmVuO1xyXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMik7XHJcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XHJcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xyXG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xyXG5cclxuLy8gNTEuIFRhYnNcclxuLy8gLS0tLS0tLS1cclxuXHJcbiR0YWItbWFyZ2luOiAzMHB4O1xyXG4kdGFiLWNvbG9yOiAkYmxhY2s7XHJcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJHRhYi1ob3Zlci1jb2xvcjogIzU0YTRlMjtcclxuJHRhYi1pdGVtLXBhZGRpbmc6IDAuMjVyZW0gMDtcclxuJHRhYi1leHBhbmQtbWF4OiA2O1xyXG5cclxuLy8gNTIuIFRodW1ibmFpbFxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcblxyXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcclxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcclxuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XHJcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gNTMuIFRpdGxlIEJhclxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcblxyXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xyXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcclxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcclxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XHJcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XHJcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XHJcblxyXG4vLyA1NC4gVG9vbHRpcFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGhhcy10aXAtY3Vyc29yOiBoZWxwO1xyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xyXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XHJcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XHJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XHJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW07XHJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDU1LiBUb3AgQmFyXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbTtcclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XHJcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XHJcblxyXG4vLyA1Ni4gWHkgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJHh5LWdyaWQ6IHRydWU7XHJcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcclxuJGdyaWQtY29sdW1uczogMTI7XHJcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXHJcbiAgc21hbGw6IDIwcHgsXHJcbiAgbWVkaXVtOiAzMHB4XHJcbik7XHJcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XHJcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XHJcbiRncmlkLWNvbnRhaW5lci1tYXg6ICRnbG9iYWwtd2lkdGg7XHJcbiR4eS1ibG9jay1ncmlkLW1heDogODtcclxuXHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxyXG4vLy8gQGNvbnRlbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cclxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cclxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cclxuQG1peGluIGdyaWQtY29udGV4dChcclxuICAkY29sdW1ucyxcclxuICAkcm9vdDogZmFsc2VcclxuKSB7XHJcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XHJcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJHJvb3Qge1xyXG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcblxyXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcclxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cclxuLy8vIEBjb250ZW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXHJcbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cclxuQG1peGluIGdyaWQtcm93KFxyXG4gICRjb2x1bW5zOiBudWxsLFxyXG4gICRiZWhhdmlvcjogbnVsbCxcclxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxyXG4gICRjZjogdHJ1ZSxcclxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICAkbWFyZ2luOiBhdXRvO1xyXG5cclxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xyXG5cclxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICB9XHJcblxyXG4gIEBpZiAkY2Yge1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxyXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xyXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xyXG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xyXG5cclxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcclxuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXHJcbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcclxuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcclxuICAgICRzaXplOiBub25lO1xyXG4gIH1cclxuXHJcbiAgbWF4LXdpZHRoOiAkc2l6ZTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXHJcbi8vLy9cclxuXHJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xyXG5cclxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXHJcbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xyXG4gICRyZW0tdmFsdWVzOiAoKTtcclxuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcclxuXHJcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxyXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcclxuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcclxuICB9XHJcblxyXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxyXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcclxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcclxuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XHJcbiAgfVxyXG5cclxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXHJcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvdW50ID09IDEge1xyXG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcclxuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXHJcbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XHJcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcclxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XHJcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cclxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xyXG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcclxuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcclxuICB9XHJcblxyXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XHJcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcclxuICB9XHJcblxyXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcclxuICBAaWYgJHZhbHVlID09IDByZW0ge1xyXG4gICAgJHZhbHVlOiAwO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG5cclxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXHJcbiAgQGlmICRiYXNlID09IG51bGwge1xyXG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xyXG4gIH1cclxuXHJcbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXHJcblxyXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxyXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xyXG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcclxuICB9XHJcblxyXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xyXG4gIH1cclxuXHJcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcclxuICB9XHJcblxyXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cclxuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XHJcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xyXG4gIH1cclxuXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XHJcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xyXG4gIH1cclxuXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcclxuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XHJcbiAgfVxyXG5cclxuICAvLyAncHgnXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcclxuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XHJcbiAgfVxyXG5cclxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xyXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcclxuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXHJcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxyXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XHJcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxyXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cclxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxyXG4gICRndXR0ZXI6IGF1dG8sXHJcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcclxuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XHJcblxyXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cclxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XHJcbn1cclxuXHJcbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcclxuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXHJcbiAgJGd1dHRlcjogYXV0byxcclxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcclxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxyXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XHJcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xyXG59XHJcblxyXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXHJcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxyXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxyXG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cclxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXHJcbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXHJcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcclxuICAkbWFyZ2luOiBhdXRvLFxyXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XHJcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICA+IDpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGdyaWRcclxuLy8vL1xyXG5cclxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcclxuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XHJcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cclxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxyXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cclxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XHJcbiAgJHdpZHRoOiAwJTtcclxuXHJcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXHJcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcclxuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xyXG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcclxuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XHJcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcclxuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XHJcbiAgQGVsc2Uge1xyXG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkd2lkdGg7XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cclxuQG1peGluIGdyaWQtY29sdW1uKFxyXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXHJcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XHJcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcclxuXHJcbiAgLy8gR3V0dGVyc1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xyXG5cclxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcclxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xyXG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cclxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcclxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdztcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xyXG5cclxuICAmLFxyXG4gICY6bGFzdC1jaGlsZCB7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxyXG5AZnVuY3Rpb24gZ3JpZC1jb2woXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxyXG4pIHtcclxuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXHJcbkBtaXhpbiBncmlkLWNvbChcclxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxyXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XHJcbkBtaXhpbiBncmlkLWNvbC1yb3coXHJcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XHJcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xyXG4gIH1cclxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcclxuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XHJcbiAgcG9zaXRpb246IHN0YXRpYztcclxuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xyXG4gIG1hcmdpbi1yaWdodDogMDtcclxuICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcclxuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XHJcbn1cclxuXHJcbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cclxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XHJcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcclxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XHJcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXHJcbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxyXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XHJcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxyXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIEZsZXhib3ggVXRpbGl0aWVzXHJcbi8vLy9cclxuLy9cclxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3VudCBvZiBzb3VyY2Ugb3JkZXJpbmdgXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xyXG5cclxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcclxuICAuZmxleC1jb250YWluZXIge1xyXG4gICAgQGluY2x1ZGUgZmxleDtcclxuICB9XHJcblxyXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgfVxyXG5cclxuICAuZmxleC1jaGlsZC1ncm93IHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcclxuICAgIGZsZXg6IDAgMSBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XHJcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xyXG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcclxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XHJcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xyXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1zaHJpbmsge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcclxuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcclxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcclxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xyXG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcclxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xyXG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcclxuICAgICAgJi52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHsgXHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcclxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcclxuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcclxuICAgIH1cclxuXHJcbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxyXG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcclxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcclxuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXHJcbiAgQGluY2x1ZGUgZmxleC1oZWxwZXJzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XHJcbiAgJC16Zi1mbGV4LWp1c3RpZnk6IChcclxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxyXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxyXG4gICAgJ2NlbnRlcic6IGNlbnRlcixcclxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcclxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXHJcbiAgKTtcclxuXHJcbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcclxufVxyXG5cclxuXHJcbiQtemYtZmxleC1hbGlnbjogKFxyXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxyXG4gICdib3R0b20nOiBmbGV4LWVuZCxcclxuICAnbWlkZGxlJzogY2VudGVyLFxyXG4gICdzdHJldGNoJzogc3RyZXRjaCxcclxuKTtcclxuXHJcbiQtemYtZmxleC1kaXJlY3Rpb246IChcclxuICAncm93Jzogcm93LFxyXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxyXG4gICdjb2x1bW4nOiBjb2x1bW4sXHJcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXHJcbik7XHJcblxyXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXHJcbkBtaXhpbiBmbGV4IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XHJcbiAgQGlmICR4IHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcclxuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJHkge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcclxuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xyXG4gIGFsaWduLWl0ZW1zOiAkeTtcclxufVxyXG5cclxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxyXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XHJcbiAgQGlmICR5IHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XHJcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxpZ24tc2VsZjogJHk7XHJcbn1cclxuXHJcbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cclxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XHJcbiAgb3JkZXI6ICRvcmRlcjtcclxufVxyXG5cclxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcclxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXHJcbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXHJcbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxyXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xyXG59XHJcbiIsIi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIG5vcm1hbGl6ZSgpIG1peGluLlxyXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xyXG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXHJcbiAgQGlmIG5vdCBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKF9ub3JtYWxpemUtaW5jbHVkZSkge1xyXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcclxuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XHJcbiAgfVxyXG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cclxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XHJcbiAgICAkaW5jbHVkZTogJHNlY3Rpb247XHJcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcclxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cclxuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6IGlmKHR5cGUtb2YoJGluY2x1ZGUpID09ICdsaXN0JywgJGluY2x1ZGUsICgkaW5jbHVkZSkpICFnbG9iYWw7XHJcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xyXG4gICAgQHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXHJcbiAgQGlmIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsICRzZWN0aW9uKSB7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIC8vIElmICRpbmNsdWRlIGlzIHNldCB0byAoYWxsKSwgbWFrZSBzdXJlICRzZWN0aW9uIGlzIG5vdCBpbiAkZXhjbHVkZS5cclxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcclxuICAgIEByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xyXG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxyXG4gICRpbml0OiBfbm9ybWFsaXplLWluY2x1ZGUoJGluY2x1ZGUsICRleGNsdWRlKTtcclxuXHJcbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cclxuICBAaWYgJGJhc2UtZm9udC1zaXplICE9IDE2cHhcclxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcclxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xyXG4gICAgb3IgJGgxLWZvbnQtc2l6ZSAhPSAyICAgICogJGJhc2UtZm9udC1zaXplXHJcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcclxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxyXG4gICAgb3IgJGg0LWZvbnQtc2l6ZSAhPSAxICAgICogJGJhc2UtZm9udC1zaXplXHJcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcclxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XHJcbiAgICAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogdHJ1ZSAhZ2xvYmFsO1xyXG4gIH1cclxuXHJcbiAgLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cclxuXHJcbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xyXG4gICAgLyogRG9jdW1lbnRcclxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXHJcbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXHJcbiAgICAgKi9cclxuXHJcbiAgICBodG1sIHtcclxuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXHJcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XHJcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XHJcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cclxuICAgICAgICBmb250LXNpemU6ICgkYmFzZS1mb250LXNpemUgLyAxNnB4KSAqIDEwMCU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cclxuICAgICAgfVxyXG4gICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xyXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcclxuICAgIC8qIFNlY3Rpb25zXHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXHJcbiAgICAgKi9cclxuXHJcbiAgICBib2R5IHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKi9cclxuXHJcbiAgICBhcnRpY2xlLFxyXG4gICAgYXNpZGUsXHJcbiAgICBmb290ZXIsXHJcbiAgICBoZWFkZXIsXHJcbiAgICBuYXYsXHJcbiAgICBzZWN0aW9uIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXHJcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxyXG4gICAgICovXHJcblxyXG4gICAgaDEge1xyXG4gICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMS1mb250LXNpemUpO1xyXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xyXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcclxuICAgICAgICAvKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucy4gKi9cclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xyXG4gICAgICBoMiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMi1mb250LXNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoMyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMy1mb250LXNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoNCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNC1mb250LXNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoNSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNS1mb250LXNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoNiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNi1mb250LXNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XHJcbiAgICAvKiBHcm91cGluZyBjb250ZW50XHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgIGJsb2NrcXVvdGUge1xyXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRsLFxyXG4gICAgICBvbCxcclxuICAgICAgdWwge1xyXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgIG9sLFxyXG4gICAgICB1bCB7XHJcbiAgICAgICAgb2wsXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZGQge1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9sLFxyXG4gICAgICB1bCB7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxyXG4gICAgICovXHJcblxyXG4gICAgZmlnY2FwdGlvbixcclxuICAgIGZpZ3VyZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxyXG4gICAgICovXHJcblxyXG4gICAgZmlndXJlIHtcclxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcclxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cclxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gICAgICovXHJcblxyXG4gICAgaHIge1xyXG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xyXG4gICAgICBoZWlnaHQ6IDA7IC8qIDEgKi9cclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxyXG4gICAgICovXHJcblxyXG4gICAgbWFpbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgIHAsXHJcbiAgICAgIHByZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXHJcblxyXG4gICAgcHJlIHtcclxuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XHJcbiAgICAvKiBMaW5rc1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cclxuICAgICAqL1xyXG5cclxuICAgIGEge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xyXG4gICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcclxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gICAgICovXHJcblxyXG4gICAgYTphY3RpdmUsXHJcbiAgICBhOmhvdmVyIHtcclxuICAgICAgb3V0bGluZS13aWR0aDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xyXG4gICAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcclxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXHJcbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxyXG4gICAgICovXHJcblxyXG4gICAgYWJiclt0aXRsZV0ge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXHJcbiAgICAgKi9cclxuXHJcbiAgICBiLFxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxyXG4gICAgICovXHJcblxyXG4gICAgYixcclxuICAgIHN0cm9uZyB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXHJcblxyXG4gICAgY29kZSxcclxuICAgIGtiZCxcclxuICAgIHNhbXAge1xyXG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cclxuICAgICAqL1xyXG5cclxuICAgIGRmbiB7XHJcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cclxuICAgICAqL1xyXG5cclxuICAgIG1hcmsge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xyXG4gICAgICBjb2xvcjogIzAwMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXHJcblxyXG4gICAgc21hbGwge1xyXG4gICAgICBmb250LXNpemU6IDgwJTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxyXG4gICAgICogYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXHJcblxyXG4gICAgc3ViLFxyXG4gICAgc3VwIHtcclxuICAgICAgZm9udC1zaXplOiA3NSU7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxuICAgIH1cclxuXHJcbiAgICBzdWIge1xyXG4gICAgICBib3R0b206IC0wLjI1ZW07XHJcbiAgICB9XHJcblxyXG4gICAgc3VwIHtcclxuICAgICAgdG9wOiAtMC41ZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XHJcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKi9cclxuXHJcbiAgICBhdWRpbyxcclxuICAgIHZpZGVvIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cclxuICAgICAqL1xyXG5cclxuICAgIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxyXG4gICAgICovXHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXHJcbiAgICAgKi9cclxuXHJcbiAgICBzdmc6bm90KDpyb290KSB7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XHJcbiAgICAvKiBGb3Jtc1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXHJcbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbiAgICAgKi9cclxuXHJcbiAgICBidXR0b24sXHJcbiAgICBpbnB1dCxcclxuICAgIG9wdGdyb3VwLFxyXG4gICAgc2VsZWN0LFxyXG4gICAgdGV4dGFyZWEge1xyXG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cclxuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXHJcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDEgKi9cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICAgICAgfVxyXG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxyXG4gICAgICovXHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICAgICAqL1xyXG5cclxuICAgIGJ1dHRvbixcclxuICAgIHNlbGVjdCB7IC8qIDEgKi9cclxuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcclxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cclxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAgICAgKi9cclxuXHJcbiAgICBidXR0b24sXHJcbiAgICBodG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXHJcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxyXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbixcclxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxyXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcclxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xyXG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cclxuICAgICAqL1xyXG5cclxuICAgIGlucHV0IHtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXHJcbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxyXG4gICAgICovXHJcblxyXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcclxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cclxuICAgICAqL1xyXG5cclxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cclxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gICAgICovXHJcblxyXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4gICAgICovXHJcblxyXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XHJcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXHJcbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gICAgICovXHJcblxyXG4gICAgZmllbGRzZXQge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gICAgICBtYXJnaW46IDAgMnB4O1xyXG4gICAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxyXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxyXG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICAgKi9cclxuXHJcbiAgICBsZWdlbmQge1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXHJcbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xyXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXHJcbiAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxyXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgICAqL1xyXG5cclxuICAgIHByb2dyZXNzIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cclxuICAgICAqL1xyXG5cclxuICAgIHRleHRhcmVhIHtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XHJcbiAgICAvKiBJbnRlcmFjdGl2ZVxyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgICAvKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxyXG4gICAgICovXHJcblxyXG4gICAgZGV0YWlscyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICAgKi9cclxuXHJcbiAgICBzdW1tYXJ5IHtcclxuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICAgICAqL1xyXG5cclxuICAgIG1lbnUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxyXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cclxuICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXHJcbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7IC8qIDIgKi9cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIG1lbnUgJixcclxuICAgICAgICBvbCAmLFxyXG4gICAgICAgIHVsICYge1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzY3JpcHRpbmcpIHtcclxuICAgIC8qIFNjcmlwdGluZ1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxyXG4gICAgICovXHJcblxyXG4gICAgY2FudmFzIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXHJcbiAgICAgKi9cclxuXHJcbiAgICB0ZW1wbGF0ZSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGhpZGRlbikge1xyXG4gICAgLyogSGlkZGVuXHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxyXG4gICAgICovXHJcblxyXG4gICAgW2hpZGRlbl0ge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvL1xyXG4vLyBWYXJpYWJsZXNcclxuLy9cclxuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xyXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxyXG5cclxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxyXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cclxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXHJcbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxyXG4kYmFzZS11bml0OiAnZW0nICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXHJcbiRiYXNlLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxyXG4kaDEtZm9udC1zaXplOiAyICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kaDQtZm9udC1zaXplOiAxICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxyXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxyXG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xyXG4vLyB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHBhZ2UsIHdoaWNoIGRpZmZlcnMgZnJvbSB0aGUgb3JpZ2luYWwgTm9ybWFsaXplLmNzcy5cclxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxyXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxyXG4kbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogZmFsc2UgIWRlZmF1bHQ7XHJcbiIsIi8vXHJcbi8vIFZlcnRpY2FsIFJoeXRobVxyXG4vL1xyXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxyXG4vLyBsaWJyYXJ5LiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHRhcmFudG8vdHlwZXlcclxuXHJcbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XHJcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSBweCB7XHJcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcclxuICB9XHJcbiAgQGlmICR1bml0ID09IHJlbSB7XHJcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHVuaXQgPT0gZW0ge1xyXG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcclxuICB9XHJcbiAgQGVsc2UgeyAvLyAkdW5pdCA9PSBweFxyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncHgnIHtcclxuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xyXG4gIH1cclxuICBmb250LXNpemU6IG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG8pO1xyXG59XHJcblxyXG5AbWl4aW4gbm9ybWFsaXplLXJoeXRobSgkcHJvcGVydHksICR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XHJcbiAgJHNlcDogc3BhY2U7XHJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ2xpc3QnIHtcclxuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcclxuICB9XHJcblxyXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcclxuICAgIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAkdmFsdWUgIT0gMCB7XHJcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcclxuICAgIH1cclxuICAgICRub3JtYWxpemVkLXZhbHVlczogYXBwZW5kKCRub3JtYWxpemVkLXZhbHVlcywgJHZhbHVlLCAkc2VwKTtcclxuICB9XHJcbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XHJcbn1cclxuXHJcbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShtYXJnaW4sICR2YWx1ZXMsICRyZWxhdGl2ZS10byk7XHJcbn1cclxuXHJcbkBtaXhpbiBub3JtYWxpemUtbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJG1pbi1saW5lLXBhZGRpbmc6IDJweCkge1xyXG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xyXG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxyXG4gIEBpZiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplKSA8ICgkbWluLWxpbmUtcGFkZGluZyAqIDIpIHtcclxuICAgICRsaW5lczogJGxpbmVzICsgMTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShsaW5lLWhlaWdodCwgJGxpbmVzLCAkZm9udC1zaXplKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcclxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4gKiBWZXJzaW9uIDYuNC40LXJjMVxyXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG4gKi9cbi5yb3cge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC4zMTI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4zMTI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuMzEyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjMxMjVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjMxMjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC4zMTI1cmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCxcbiAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLnJvdzpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnJvdy5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93LFxuICAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMgPiAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICBmbGV4OiAxIDEgMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjMxMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC4zMTI1cmVtO1xuICBtaW4td2lkdGg6IDA7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLTEge1xuICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC11cC0zIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtdXAtNCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG5cbi5zbWFsbC11cC02IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtNyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTgge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjMxMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC4zMTI1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uLCAubWVkaXVtLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uLCAubWVkaXVtLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uLCAubWVkaXVtLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLm1lZGl1bS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uLCAubWVkaXVtLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLm1lZGl1bS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uLCAubWVkaXVtLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMzEyNXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLmxhcmdlLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG4ucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMzEyNXJlbTsgfSB9XG5cbi5zaHJpbmsge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tdW5zdGFjayAuc2hyaW5rLFxuICAubGFyZ2UtdW5zdGFjayAuc2hyaW5rIHtcbiAgICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50OyB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmFsaWduLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLWp1c3RpZnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLmFsaWduLXNwYWNlZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5hbGlnbi1sZWZ0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLXJpZ2h0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5hbGlnbi10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tc2VsZi10b3Age1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLmFsaWduLXNlbGYtYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cblxuLmFsaWduLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmFsaWduLXNlbGYtbWlkZGxlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5hbGlnbi1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLmFsaWduLXNlbGYtc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLmFsaWduLWNlbnRlci1taWRkbGUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogY2VudGVyOyB9XG5cbi5zbWFsbC1vcmRlci0xIHtcbiAgb3JkZXI6IDE7IH1cblxuLnNtYWxsLW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4uc21hbGwtb3JkZXItMyB7XG4gIG9yZGVyOiAzOyB9XG5cbi5zbWFsbC1vcmRlci00IHtcbiAgb3JkZXI6IDQ7IH1cblxuLnNtYWxsLW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4uc21hbGwtb3JkZXItNiB7XG4gIG9yZGVyOiA2OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1lZGl1bS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLm1lZGl1bS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5sYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5sYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5mbGV4LWNoaWxkLWF1dG8ge1xuICBmbGV4OiAxIDEgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87IH1cblxuLmZsZXgtZGlyLXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLmZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbi8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG4vKiBEb2N1bWVudFxyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxyXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxyXG4gICAgICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcclxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gICAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcclxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcclxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXHJcbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cclxuICAgICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcclxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXHJcbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cclxuICAgICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxyXG4gICAgICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBMaW5rc1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxyXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxyXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXHJcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cclxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxyXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cclxuICAgICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXHJcbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXHJcbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxyXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cclxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxyXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcclxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxyXG4gICAgICogYWxsIGJyb3dzZXJzLlxyXG4gICAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICAgICAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXHJcbiAgICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcclxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxyXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXHJcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICAgICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEZvcm1zXHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxyXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICAgICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcclxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxyXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAvKipcclxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICAgICAgICovXG4gIC8qKlxyXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXHJcbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxyXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cclxuICAgICAqL1xuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcclxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cclxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXHJcbiAgICAgKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXHJcbiAgICAgKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cclxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxyXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcclxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXHJcbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cclxuICAgICAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXHJcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxyXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxyXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxyXG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICAgKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxyXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXHJcbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcclxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxyXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICAgICAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAgICAgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBTY3JpcHRpbmdcclxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxyXG4gICAgICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXHJcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cclxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxyXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiT3Blbi1TYW5zXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzAxMDEwZjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUHJveGltYS1Ob3ZhXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLCAuaDIgc21hbGwsXG4gIGgzIHNtYWxsLCAuaDMgc21hbGwsXG4gIGg0IHNtYWxsLCAuaDQgc21hbGwsXG4gIGg1IHNtYWxsLCAuaDUgc21hbGwsXG4gIGg2IHNtYWxsLCAuaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuaDUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuaDYsIC5oNiB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7IH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtOyB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cbiAgaDQsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtOyB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMi42MjVyZW07IH1cbiAgaDMsIC5oMyB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtOyB9XG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIHAgPiBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIHAgPiBhOmhvdmVyLCBwID4gYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhLCBhLmljb206YmVmb3JlLCBhLmljb20tYmVmb3JlOmJlZm9yZSwgYS5pY29tLWFmdGVyOmFmdGVyIHtcbiAgICBjb2xvcjogIzIyNzliYzsgfVxuICBhOmhvdmVyLCBhOmhvdmVyLmljb206YmVmb3JlLCBhOmhvdmVyLmljb20tYmVmb3JlOmJlZm9yZSwgYTpob3Zlci5pY29tLWFmdGVyOmFmdGVyLCBhOmZvY3VzLCBhOmZvY3VzLmljb206YmVmb3JlLCBhOmZvY3VzLmljb20tYmVmb3JlOmJlZm9yZSwgYTpmb2N1cy5pY29tLWFmdGVyOmFmdGVyIHtcbiAgICBjb2xvcjogIzU0YTRlMjsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogOTByZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDEwMTBmO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAxMDEwZjsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMDEwMTBmOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMSwgMSwgMTUsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDEwMTBmO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwMTAxMGY7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNTYyNXJlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzAxMDEwZjsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMDEwMTBmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBtaW4td2lkdGg6IDA7IH1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bzsgfVxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG4uZmllbGRzZXQge1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMC4xODc1cmVtOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDEwMTBmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHNlbGVjdFttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjllY2VhOyB9XG4gIC5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uYnJlYWRjcnVtYnMge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgY29sb3I6ICMwMTAxMGY7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCJcXDJmXCI7XG4gICAgICBjb2xvcjogI2NhY2FjYTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMyMjc5YmM7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5hY2NvcmRpb25bZGlzYWJsZWRdIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzIyNzliYzsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBjb250ZW50OiAnKyc7IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxMyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY29sb3I6ICMwMTAxMGY7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLnRhYnMge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbWFyZ2luOiAwOyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogYXV0bzsgfVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwOyB9XG4gIC50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICMyMDczYjM7IH1cblxuLnRhYnMtdGl0bGUgKyAudGFicy10aXRsZSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnRhYnMtdGl0bGUgKyAudGFicy10aXRsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogNjBweDsgfSB9XG5cbi50YWJzLXRpdGxlID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gIGNvbG9yOiAjMDEwMTBmO1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzU0YTRlMjsgfVxuICAudGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgIGNvbG9yOiAjMjI3OWJjO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzIyNzliYzsgfVxuXG4udGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLnRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC50YWJzLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgIGNvbG9yOiAjMDEwMTBmOyB9XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICAgIGNvbG9yOiAjMDEwMTBmOyB9XG4gIHRoZWFkIHRyLFxuICB0Zm9vdCB0ciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgdGhlYWQgdGgsXG4gIHRoZWFkIHRkLFxuICB0Zm9vdCB0aCxcbiAgdGZvb3QgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRib2R5IHRoLFxuICB0Ym9keSB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG4gIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAgIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICB0YWJsZS5zdGFjayB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0cixcbiAgdGFibGUuc3RhY2sgdGgsXG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbnRhYmxlLnNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG50YWJsZS5ob3ZlciB0aGVhZCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7IH1cblxudGFibGUuaG92ZXIgdGZvb3QgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOyB9XG5cbnRhYmxlLmhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgfVxuXG50YWJsZS5ob3Zlcjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOyB9XG5cbi50YWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC50YWJsZS1zY3JvbGwgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbi5oYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAwLjY0OTVyZW0pO1xuICB6LWluZGV4OiAxMjAwO1xuICBtYXgtd2lkdGg6IDEwcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwMTBmO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRvb2x0aXA6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC50b29sdGlwLmJvdHRvbTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDEwMTBmO1xuICAgIGJvdHRvbTogMTAwJTsgfVxuICAudG9vbHRpcC5ib3R0b20uYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMwMTAxMGYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bzsgfVxuICAudG9vbHRpcC50b3AuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAubGVmdDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDEwMTBmO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLnRvb2x0aXAubGVmdC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDEwMTBmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLnRvb2x0aXAucmlnaHQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTsgfVxuICAudG9vbHRpcC5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTsgfVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGdsb2JhbFxyXG4vLy8vXHJcblxyXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICMyMjc5YmMsXHJcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxyXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXHJcbiAgd2FybmluZzogI2ZmYWUwMCxcclxuICBhbGVydDogI2NjNGIzNyxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxyXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcclxuXHJcbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xyXG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XHJcbn1cclxuXHJcbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxyXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XHJcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XHJcblxyXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xyXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcclxuXHJcbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXHJcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xyXG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XHJcblxyXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxyXG4gIC5mb3VuZGF0aW9uLW1xIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcclxuICB9XHJcblxyXG4gIGh0bWwge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XHJcbiAgfVxyXG5cclxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xyXG4gICosXHJcbiAgKjo6YmVmb3JlLFxyXG4gICo6OmFmdGVyIHtcclxuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXHJcbiAgYm9keSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcblxyXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuXHJcbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XHJcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcclxuICB9XHJcblxyXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxyXG4gIHRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuICB9XHJcblxyXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcclxuICBzZWxlY3Qge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxyXG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXHJcbiAgLm1hcF9jYW52YXMsXHJcbiAgLm1xYS1kaXNwbGF5IHtcclxuICAgIGltZyxcclxuICAgIGVtYmVkLFxyXG4gICAgb2JqZWN0IHtcclxuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXHJcbiAgYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgY3Vyc29yOiAkZ2xvYmFsLWJ1dHRvbi1jdXJzb3I7XHJcbiAgfVxyXG5cclxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXHJcbiAgcHJlIHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxyXG4gIGJ1dHRvbixcclxuICBpbnB1dCxcclxuICBvcHRncm91cCxcclxuICBzZWxlY3QsXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XHJcbiAgLmlzLXZpc2libGUge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5pcy1oaWRkZW4ge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuQG1peGluIC16Zi1ub3JtYWxpemUge1xyXG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxyXG4vLy8gXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cclxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxyXG4gICRzaWRlOiBib3R0b20sXHJcbiAgJHNpemU6IDIwcHgsXHJcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcclxuKSB7XHJcblxyXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XHJcblxyXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcclxuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcclxuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcclxuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxyXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxyXG4gICR0cmlhbmdsZS1zaXplLFxyXG4gICR0cmlhbmdsZS1jb2xvcixcclxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXHJcbikge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuXHJcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcclxuXHJcbiAgY29udGVudDogJyc7XHJcblxyXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XHJcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XHJcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XHJcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XHJcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xyXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXHJcbkBtaXhpbiBoYW1idXJnZXIoXHJcbiAgJGNvbG9yOiAkYmxhY2ssXHJcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxyXG4gICR3aWR0aDogMjBweCxcclxuICAkaGVpZ2h0OiAxNnB4LFxyXG4gICR3ZWlnaHQ6IDJweCxcclxuICAkYmFyczogM1xyXG4pIHtcclxuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcclxuICAkc2hhZG93OiAoKTtcclxuICAkaG92ZXItc2hhZG93OiAoKTtcclxuXHJcbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXHJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XHJcblxyXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcclxuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XHJcbiAgfVxyXG5cclxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcclxuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XHJcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAvLyBJY29uIGNvbnRhaW5lclxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGhlaWdodDogJGhlaWdodDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIC8vIEljb24gYmFyc1xyXG4gICY6OmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcblxyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogJHdlaWdodDtcclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xyXG5cclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgLy8gSG92ZXIgc3RhdGVcclxuICBAaWYgJGNvbG9yLWhvdmVyIHtcclxuICAgIC8vIEdlbmVyYXRlIENTU1xyXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XHJcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XHJcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyOjphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcclxuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxyXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cclxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcclxuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XHJcblxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XHJcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xyXG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXHJcbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xyXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcclxuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YmVmb3JlLFxyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgY29udGVudDogJyAnO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4LWJhc2lzOiAwO1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cclxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1NcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxyXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcclxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xyXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXHJcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcclxuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cclxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XHJcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cclxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcclxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXHJcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXHJcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xyXG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcclxuICB3aWR0aDogYXV0bztcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgY2xpcDogYXV0bztcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIGNsaXAtcGF0aDogbm9uZTtcclxufVxyXG5cclxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxyXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcclxuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXHJcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xyXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG59XHJcblxyXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXHJcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xyXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cclxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcclxuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcclxuXHJcbiAgQGlmIG5vdCAkc21hbGwge1xyXG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xyXG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xyXG5cclxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxyXG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxyXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cclxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXHJcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXHJcbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcclxuICAkbmFtZTogYXV0byxcclxuICAkbWFwOiBudWxsXHJcbikge1xyXG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcclxuICAgIC8vIFwiYXV0b1wiXHJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcclxuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xyXG4gICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxyXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcclxuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBicmVha3BvaW50IHZhbHVlXHJcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcclxuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXHJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XHJcbiAgLy8gPGhlYWRlcj5cclxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cclxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cclxuICAvLyA8L2hlYWRlcj5cclxuICAuc3ViaGVhZGVyIHtcclxuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XHJcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcclxuICB9XHJcblxyXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cclxuICAubGVhZCB7XHJcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcclxuICAuc3RhdCB7XHJcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG5cclxuICAgIHAgKyAmIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bCwgb2wge1xyXG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XHJcbiAgICAmLm5vLWJ1bGxldCB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcclxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XHJcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbi8vLyBAZ3JvdXAgZ2xvYmFsXHJcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcclxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xyXG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxuICBAbWVkaWEgcHJpbnQge1xyXG4gICAgKiB7XHJcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuXHJcbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXHJcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxyXG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XHJcbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XHJcbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XHJcbiAgICBhLFxyXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxyXG4gICAgQGlmICRwcmludC1ocmVmcyB7XHJcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xyXG4gICAgLmlyIGE6YWZ0ZXIsXHJcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxyXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cclxuXHJcbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcclxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cclxuXHJcbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXHJcbiAgICBwcmUsXHJcbiAgICBibG9ja3F1b3RlIHtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcclxuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGg1YnAuY29tL3RcclxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XHJcblxyXG4gICAgdHIsXHJcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cclxuXHJcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxyXG5cclxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxyXG5cclxuICAgIHAsXHJcbiAgICBoMixcclxuICAgIGgzIHtcclxuICAgICAgb3JwaGFuczogMztcclxuICAgICAgd2lkb3dzOiAzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xyXG4gICAgaDIsXHJcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XHJcblxyXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxyXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XHJcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBGb250XHJcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xyXG5cclxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xyXG5cclxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxyXG4vLy8gQHR5cGUgQ3Vyc29yXHJcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xyXG5cclxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIFRyYW5zaXRpb25cclxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xyXG5cclxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvcm0tZWxlbWVudCB7XHJcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogJGhlaWdodDtcclxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xyXG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xyXG5cclxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcclxuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xyXG5cclxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xyXG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XHJcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcclxuXHJcbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xyXG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XHJcbiAgfVxyXG5cclxuICAvLyBGb2N1cyBzdGF0ZVxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xyXG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcclxuXHJcbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XHJcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcclxuICAvLyBUZXh0IGlucHV0c1xyXG4gICN7dGV4dC1pbnB1dHMoKX0sXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIFRleHQgYXJlYXNcclxuICB0ZXh0YXJlYSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgJltyb3dzXSB7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0LFxyXG4gIHRleHRhcmVhIHtcclxuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcclxuICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxyXG4gICAgJjpkaXNhYmxlZCxcclxuICAgICZbcmVhZG9ubHldIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XHJcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcclxuICBbdHlwZT0nc3VibWl0J10sXHJcbiAgW3R5cGU9J2J1dHRvbiddIHtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXHJcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG5cclxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXHJcbiAgW3R5cGU9J251bWJlciddIHtcclxuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XHJcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcclxuXHJcbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcclxuICBbdHlwZT0nZmlsZSddLFxyXG4gIFt0eXBlPSdjaGVja2JveCddLFxyXG4gIFt0eXBlPSdyYWRpbyddIHtcclxuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXHJcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcclxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxuXHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuICAgICZbZm9yXSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcclxuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxyXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XHJcbiAgfVxyXG5cclxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxyXG4gIFt0eXBlPSdmaWxlJ10ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvcm0tbGFiZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogMDtcclxuXHJcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xyXG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcclxuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XHJcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XHJcblxyXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xyXG4gIGxhYmVsIHtcclxuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XHJcblxyXG4gICAgJi5taWRkbGUge1xyXG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xyXG4gIC5oZWxwLXRleHQge1xyXG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xyXG5cclxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xyXG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xyXG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XHJcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcclxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcclxuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7O1xyXG5cclxuICAuaW5wdXQtZ3JvdXAge1xyXG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgfVxyXG5cclxuICAgID4gOmZpcnN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xyXG4gICAgfVxyXG5cclxuICAgID4gOmxhc3QtY2hpbGQge1xyXG4gICAgICA+ICoge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcclxuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xyXG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XHJcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xyXG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xyXG5cclxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIHdpZHRoOiAxJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcclxuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcclxuICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XHJcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICB3aWR0aDogMSU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBhLFxyXG4gICAgaW5wdXQsXHJcbiAgICBidXR0b24sXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xyXG5cclxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xyXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmaWVsZHNldCB7XHJcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xyXG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xyXG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcclxuXHJcbiAgbGVnZW5kIHtcclxuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xyXG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XHJcbiAgZmllbGRzZXQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIGxlZ2VuZCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkc2V0IHtcclxuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xyXG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcclxuXHJcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XHJcblxyXG4gIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcclxuXHJcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcclxuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XHJcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcclxuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xyXG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XHJcblxyXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcclxuXHJcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcclxuICB9XHJcblxyXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcclxuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgLy8gRm9jdXMgc3RhdGVcclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcclxuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xyXG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERpc2FibGVkIHN0YXRlXHJcbiAgJjpkaXNhYmxlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcclxuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXHJcbiAgJjo6LW1zLWV4cGFuZCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJlttdWx0aXBsZV0ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcclxuICBzZWxlY3Qge1xyXG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBhYmlkZVxyXG4vLy8vXHJcblxyXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcclxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcclxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcclxuKSB7XHJcbiAgJjpub3QoOmZvY3VzKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXHJcbkBtaXhpbiBmb3JtLWVycm9yIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xyXG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcclxuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xyXG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xyXG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcclxuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xyXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xyXG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRhYmlkZS1sYWJlbHMge1xyXG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcclxuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcclxuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcclxuICAuZm9ybS1lcnJvciB7XHJcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xyXG5cclxuICAgICYuaXMtdmlzaWJsZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxyXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcclxuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcclxuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XHJcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XHJcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcclxuXHJcbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxyXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xyXG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxyXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcclxuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxyXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xyXG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXHJcbiAgLmhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmludmlzaWJsZSB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xyXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcclxuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xyXG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcclxuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XHJcbiAgLnNob3ctZm9yLXNyLFxyXG4gIC5zaG93LW9uLWZvY3VzIHtcclxuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXHJcbiAgLnNob3ctb24tZm9jdXMge1xyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XHJcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcclxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcclxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBicmVhZGNydW1ic1xyXG4vLy8vXHJcblxyXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzZXBlcmF0b3IgYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cclxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XHJcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDtcclxufVxyXG5cclxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IuXHJcbi8vLyBAdHlwZSBDb250ZW50XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cclxuLy8vIEB0eXBlIENvbnRlbnRcclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCcgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IgaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cclxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XHJcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXHJcbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAvLyBJdGVtIHdyYXBwZXJcclxuICBsaSB7XHJcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xyXG5cclxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xyXG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcblxyXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XHJcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcclxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XHJcblxyXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XHJcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUGFnZSBsaW5rc1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcclxuICAuYnJlYWRjcnVtYnMge1xyXG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xyXG5cclxuICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcclxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGFjY29yZGlvblxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XHJcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXHJcbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcclxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXHJcbikge1xyXG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICZbZGlzYWJsZWRdIHtcclxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxyXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xyXG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xyXG4gIH1cclxuXHJcbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxyXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcclxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXHJcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXHJcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXHJcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcclxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcclxuKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG5cclxuICBib3JkZXI6ICRib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMDtcclxuXHJcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcclxuICB9XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcblxyXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xyXG4gICAgICBjb250ZW50OiAnKyc7XHJcbiAgICB9XHJcblxyXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXHJcbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXHJcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxyXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXHJcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXHJcbikge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcblxyXG4gIGJvcmRlcjogJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICBjb2xvcjogJGNvbG9yO1xyXG5cclxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcclxuICAuYWNjb3JkaW9uIHtcclxuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XHJcbiAgfVxyXG5cclxuICAuYWNjb3JkaW9uLWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XHJcbiAgfVxyXG5cclxuICAuYWNjb3JkaW9uLXRpdGxlIHtcclxuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcclxuICB9XHJcblxyXG4gIC5hY2NvcmRpb24tY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRhYnNcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgaGVhZGluZyBpdGVtc1xyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWItbWFyZ2luOiAzMHB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFiLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWN0aXZlIGZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXHJcbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXHJcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW5cclxuKSB7XHJcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxyXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xyXG4gID4gbGkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXHJcbkBtaXhpbiB0YWJzLXRpdGxlIChcclxuICAkcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmcsXHJcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXHJcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxyXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxyXG4gICRjb2xvci1ob3ZlcjogJHRhYi1ob3Zlci1jb2xvclxyXG4pIHtcclxuICArIC50YWJzLXRpdGxle1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4qMjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICAgIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yLWFjdGl2ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxyXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsICgpIHtcclxuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXHJcbkBtaXhpbiB0YWJzLXBhbmVsICgpIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xyXG4gIC50YWJzIHtcclxuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xyXG4gIH1cclxuXHJcbiAgLy8gVmVydGljYWxcclxuICAudGFicy52ZXJ0aWNhbCB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcclxuICB9XHJcblxyXG4gIC8vIFNpbXBsZVxyXG4gIC50YWJzLnNpbXBsZSB7XHJcbiAgICA+IGxpID4gYSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUHJpbWFyeSBjb2xvclxyXG4gIC50YWJzLnByaW1hcnkge1xyXG5cclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy10aXRsZSB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XHJcbiAgfVxyXG5cclxuICAudGFicy1wYW5lbCB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0ICdtYXRoJztcclxuXHJcbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cclxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcclxuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXHJcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxyXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xyXG4gICRyZ2JhMjogKCk7XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XHJcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcclxuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XHJcblxyXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xyXG5cclxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcclxufVxyXG5cclxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cclxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcclxuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXHJcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxyXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xyXG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xyXG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcclxuXHJcbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xyXG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xyXG4gIH1cclxuXHJcbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcclxuXHJcbiAgQHJldHVybiAkcmF0aW87XHJcbn1cclxuXHJcbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxyXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xyXG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XHJcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcclxuXHJcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xyXG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcclxuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XHJcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xyXG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XHJcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRiZXN0O1xyXG59XHJcblxyXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cclxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cclxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxyXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcclxuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcclxuICAgICRzY2FsZTogLSRzY2FsZTtcclxuICB9XHJcbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XHJcbn1cclxuXHJcbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxyXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcclxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxyXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XHJcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcclxuICB9XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xyXG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XHJcbiAgfVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XHJcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHN1Y2Nlc3MtY29sb3I6ICMzYWRiNzYgIWdsb2JhbDtcclxuICB9XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcclxuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xyXG4gIH1cclxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcclxuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcclxuICB9IEBlbHNlIHtcclxuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0YWJsZVxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIExpc3RcclxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxyXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxyXG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xyXG5cclxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xyXG4gIHRyIHtcclxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXHJcbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcclxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxyXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xyXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xyXG4gIHRyIHtcclxuICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcclxuICB0aGVhZCxcclxuICB0Ym9keSxcclxuICB0Zm9vdCB7XHJcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcclxuICB9XHJcblxyXG4gIC8vIENhcHRpb25cclxuICBjYXB0aW9uIHtcclxuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiAgfVxyXG5cclxuICAvLyBUYWJsZSBoZWFkXHJcbiAgdGhlYWQge1xyXG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgLy8gVGFibGUgZm9vdFxyXG4gIHRmb290IHtcclxuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcclxuICB9XHJcblxyXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcclxuICB0aGVhZCxcclxuICB0Zm9vdCB7XHJcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XHJcbiAgICB0ciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUYWJsZSByb3dzXHJcbiAgdGJvZHkge1xyXG4gICAgdGgsXHJcbiAgICB0ZCB7XHJcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXHJcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xyXG4gICAgdGJvZHkge1xyXG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xyXG4gICAgfVxyXG5cclxuICAgICYudW5zdHJpcGVkIHtcclxuICAgICAgdGJvZHkge1xyXG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXHJcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xyXG4gICAgdGJvZHkge1xyXG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0cmlwZWQge1xyXG4gICAgICB0Ym9keSB7XHJcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxyXG5AbWl4aW4gdGFibGUoXHJcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcclxuICAkbmVzdDogZmFsc2VcclxuKSB7XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbiAgQGlmICRuZXN0IHtcclxuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEBhdC1yb290IHtcclxuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cclxuQG1peGluIHRhYmxlLXNjcm9sbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxufVxyXG5cclxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXHJcbkBtaXhpbiB0YWJsZS1ob3ZlciB7XHJcbiAgdGhlYWQgdHIge1xyXG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0Zm9vdCB0ciB7XHJcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRib2R5IHRyIHtcclxuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xyXG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXHJcbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XHJcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXHJcbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XHJcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XHJcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cclxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcclxuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXHJcbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XHJcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxyXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XHJcbiAgQGlmICRoZWFkZXIge1xyXG4gICAgdGhlYWQge1xyXG4gICAgICB0aCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgdGhlYWQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGZvb3Qge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHRyLFxyXG4gIHRoLFxyXG4gIHRkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xyXG4gIHRhYmxlIHtcclxuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZS5zdGFjayB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZS5zY3JvbGwge1xyXG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xyXG4gIH1cclxuXHJcbiAgdGFibGUuaG92ZXIge1xyXG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XHJcbiAgfVxyXG5cclxuICAudGFibGUtc2Nyb2xsIHtcclxuICAgIG92ZXJmbG93LXg6IGF1dG87XHJcblxyXG4gICAgdGFibGUge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRvb2x0aXBcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGhhcy10aXAge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIC8vYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcclxuICAvL2ZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcclxuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcclxufVxyXG5cclxuQG1peGluIHRvb2x0aXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xyXG4gIHotaW5kZXg6IDEyMDA7XHJcblxyXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xyXG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XHJcblxyXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xyXG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB9XHJcblxyXG4gICYuYm90dG9tIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHVwKTtcclxuICAgICAgYm90dG9tOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYudG9wIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xyXG4gICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIGJvdHRvbTogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmxlZnQge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xyXG4gICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xyXG4gICAgICBib3R0b206IGF1dG87XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnJpZ2h0IHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xyXG4gICAgICByaWdodDogMTAwJTtcclxuICAgICAgbGVmdDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcclxuICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XHJcbiAgICBib3R0b206IGF1dG87XHJcbiAgICB0b3A6IDEwJTtcclxuICB9XHJcblxyXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xyXG4gICAgYm90dG9tOiAxMCU7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgfVxyXG5cclxuICAmLmFsaWduLWxlZnQ6OmJlZm9yZSB7XHJcbiAgICBsZWZ0OiAxMCU7XHJcbiAgICByaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgcmlnaHQ6IDEwJTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xyXG4gIC5oYXMtdGlwIHtcclxuICAgIEBpbmNsdWRlIGhhcy10aXA7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcCB7XHJcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcclxuLy8vL1xyXG5cclxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cclxuLy8vIEB0eXBlIE1hcFxyXG4kYnJlYWtwb2ludHM6IChcclxuICBzbWFsbDogMCxcclxuICBtZWRpdW06IDY0MHB4LFxyXG4gIGxhcmdlOiAxMDI0cHgsXHJcbiAgeGxhcmdlOiAxMjAwcHgsXHJcbiAgeHhsYXJnZTogMTQ0MHB4LFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xyXG5cclxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xyXG5cclxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XHJcblxyXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XHJcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xyXG59XHJcbkBlbHNlIHtcclxuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xyXG59XHJcblxyXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xyXG5cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xyXG4gIC8vIFNpemUgb3Iga2V5d29yZFxyXG4gICRicDogbnRoKCR2YWwsIDEpO1xyXG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xyXG4gICRicC1tYXg6IDA7XHJcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcclxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcclxuICAvLyBFdmVudHVhbCBvdXRwdXRcclxuICAkc3RyOiAnJztcclxuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xyXG4gICRuYW1lZDogZmFsc2U7XHJcblxyXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcclxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcclxuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XHJcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcclxuICB9XHJcblxyXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcclxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xyXG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xyXG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XHJcbiAgICAgICRuYW1lZDogdHJ1ZTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJGJwOiAwO1xyXG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxyXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XHJcbiAgQGlmICRicC1tYXgge1xyXG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXHJcbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcclxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xyXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xyXG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxyXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcclxuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXHJcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XHJcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcclxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcclxuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XHJcblxyXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcclxuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcclxuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcclxuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXHJcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XHJcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcclxuXHJcbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxyXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXHJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcclxuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcclxuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcclxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XHJcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRzdHI7XHJcbn1cclxuXHJcbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XHJcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cclxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxyXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXHJcbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxyXG4vLy9cclxuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxyXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcclxuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XHJcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XHJcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XHJcblxyXG4gICRvbGQtemYtc2l6ZTogbnVsbDtcclxuXHJcbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcclxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xyXG4gICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XHJcbiAgfVxyXG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xyXG5cclxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXHJcbiAgQGlmICRzdHIgPT0gJycge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxyXG4gIEBlbHNlIHtcclxuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcclxuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xyXG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG9sZC16Zi1zaXplICE9IG51bGwge1xyXG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxyXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcclxuICB9IEBlbHNlIHtcclxuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cclxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xyXG4gICRzdHI6ICcnO1xyXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcclxuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XHJcbiAgfVxyXG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XHJcblxyXG4gIEByZXR1cm4gJHN0cjtcclxufVxyXG5cclxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXHJcbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXHJcbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xyXG5cclxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxyXG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xyXG5cclxuICAkaTogMDtcclxuXHJcbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxyXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcclxuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XHJcbiAgfVxyXG5cclxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXHJcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXHJcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXHJcbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcclxuICAkbGlzdDogKCk7XHJcbiAgJGZvdW5kX2tleTogZmFsc2U7XHJcblxyXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XHJcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcclxuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcclxuICAgIH1cclxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XHJcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxyXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2luZyAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbmcuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xyXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcclxuICAkZm91bmQ6IGZhbHNlO1xyXG5cclxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgQGlmIG5vdCAkZm91bmQge1xyXG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XHJcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkbGFzdDogJGtleTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbGFzdDtcclxufVxyXG5cclxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXHJcbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxyXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXHJcbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cclxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xyXG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxyXG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcclxuICAgIEByZXR1cm4gJG1hcDtcclxuICB9XHJcblxyXG5cclxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxyXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXHJcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XHJcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xyXG4gIH1cclxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXHJcbiAgQGVsc2Uge1xyXG4gICAgJGFuY2hvcjogbnVsbDtcclxuICAgICRmb3VuZDogZmFsc2U7XHJcblxyXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgICBAaWYgbm90ICRmb3VuZCB7XHJcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcclxuICAgICAgICAgICRhbmNob3I6ICRrZXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XHJcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xyXG4gIH1cclxufVxyXG5cclxuJHNtYWxsLXVwOiAnJztcclxuJHNtYWxsLW9ubHk6ICcnO1xyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcclxuICAkc21hbGwtdXA6IHNjcmVlbjtcclxuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XHJcbn1cclxuXHJcbiRtZWRpdW0tdXA6ICcnO1xyXG4kbWVkaXVtLW9ubHk6ICcnO1xyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XHJcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcclxuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcclxufVxyXG5cclxuJGxhcmdlLXVwOiAnJztcclxuJGxhcmdlLW9ubHk6ICcnO1xyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcclxuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcclxuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbiR4bGFyZ2UtdXA6ICcnO1xyXG4keGxhcmdlLW9ubHk6ICcnO1xyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XHJcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcclxuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcclxufVxyXG5cclxuJHh4bGFyZ2UtdXA6ICcnO1xyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xyXG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcclxufVxyXG4iXX0= */
