/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1,.alpha{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{font-size:100%;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{padding:0;margin:0;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5;color:#4D4D4D;background:#F1F1F1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px;border-radius:3px}select{width:100%;border-radius:3px}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object,.mqa-display img,.mqa-display embed,.mqa-display object{max-width:none !important}button{-webkit-appearance:none;-moz-appearance:none;background:transparent;padding:0;border:0;border-radius:3px;line-height:1}.is-visible{display:block !important}.is-hidden{display:none !important}.row{max-width:75rem;margin-left:auto;margin-right:auto;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.row .row{margin-left:-0.625rem;margin-right:-0.625rem}@media screen and (min-width: 40em){.row .row{margin-left:-0.9375rem;margin-right:-0.9375rem}}.row.expanded{max-width:none}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.column,.columns{padding-left:0.625rem;padding-right:0.625rem;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media screen and (min-width: 40em){.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem}}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{padding-left:0;padding-right:0;margin-left:0;margin-right:0}.small-1{-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.small-offset-0{margin-left:0%}.small-2{-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.small-offset-1{margin-left:8.3333333333%}.small-3{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-offset-2{margin-left:16.6666666667%}.small-4{-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.small-offset-3{margin-left:25%}.small-5{-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.small-offset-4{margin-left:33.3333333333%}.small-6{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-offset-5{margin-left:41.6666666667%}.small-7{-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.small-offset-6{margin-left:50%}.small-8{-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.small-offset-7{margin-left:58.3333333333%}.small-9{-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.small-offset-8{margin-left:66.6666666667%}.small-10{-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.small-offset-9{margin-left:75%}.small-11{-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.small-offset-10{margin-left:83.3333333333%}.small-12{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-offset-11{margin-left:91.6666666667%}.small-order-1{-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-order:6;-ms-flex-order:6;order:6}.small-collapse>.column,.small-collapse>.columns{padding-left:0;padding-right:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-left:0.625rem;padding-right:0.625rem}@media screen and (min-width: 40em){.medium-1{-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.medium-offset-0{margin-left:0%}.medium-2{-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.medium-offset-1{margin-left:8.3333333333%}.medium-3{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-offset-2{margin-left:16.6666666667%}.medium-4{-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.medium-offset-3{margin-left:25%}.medium-5{-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.medium-offset-4{margin-left:33.3333333333%}.medium-6{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-offset-5{margin-left:41.6666666667%}.medium-7{-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.medium-offset-6{margin-left:50%}.medium-8{-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.medium-offset-7{margin-left:58.3333333333%}.medium-9{-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.medium-offset-8{margin-left:66.6666666667%}.medium-10{-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.medium-offset-9{margin-left:75%}.medium-11{-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.medium-offset-10{margin-left:83.3333333333%}.medium-12{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-offset-11{margin-left:91.6666666667%}.medium-order-1{-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-order:6;-ms-flex-order:6;order:6}}@media screen and (min-width: 40em) and (min-width: 40em){.medium-expand{-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.row.medium-unstack .column,.row.medium-unstack .columns{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}@media screen and (min-width: 40em){.row.medium-unstack .column,.row.medium-unstack .columns{-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media screen and (min-width: 40em){.medium-collapse>.column,.medium-collapse>.columns{padding-left:0;padding-right:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem}}@media screen and (min-width: 64em){.large-1{-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.large-offset-0{margin-left:0%}.large-2{-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.large-offset-1{margin-left:8.3333333333%}.large-3{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-offset-2{margin-left:16.6666666667%}.large-4{-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.large-offset-3{margin-left:25%}.large-5{-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.large-offset-4{margin-left:33.3333333333%}.large-6{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-offset-5{margin-left:41.6666666667%}.large-7{-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.large-offset-6{margin-left:50%}.large-8{-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.large-offset-7{margin-left:58.3333333333%}.large-9{-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.large-offset-8{margin-left:66.6666666667%}.large-10{-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.large-offset-9{margin-left:75%}.large-11{-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.large-offset-10{margin-left:83.3333333333%}.large-12{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-offset-11{margin-left:91.6666666667%}.large-order-1{-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-order:6;-ms-flex-order:6;order:6}}@media screen and (min-width: 64em) and (min-width: 64em){.large-expand{-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.row.large-unstack .column,.row.large-unstack .columns{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}@media screen and (min-width: 64em){.row.large-unstack .column,.row.large-unstack .columns{-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media screen and (min-width: 64em){.large-collapse>.column,.large-collapse>.columns{padding-left:0;padding-right:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem}}.shrink{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%}.row.align-right{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.row.align-center{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.row.align-justify{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.row.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.row.align-top{-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.column.align-top,.align-top.columns{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.row.align-bottom{-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.column.align-bottom,.align-bottom.columns{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.row.align-middle{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.column.align-middle,.align-middle.columns{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.row.align-stretch{-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.column.align-stretch,.align-stretch.columns{-webkit-align-self:stretch;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}div,dl,dt,dd,ul,ol,li,h1,.alpha,h2,.beta,h3,.gamma,h4,.delta,.menu.dropdown li,h5,.epsilon,.nav--global.nav--global li,label,.link--back,.drilldown-back,.link--close,.link--all,h6,.zeta,.nav--small li,.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count,pre,form,p,blockquote,th,td{margin:0;padding:0}p{font-size:inherit;line-height:1.6;margin-bottom:1rem;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:500;line-height:inherit}small{font-size:80%;line-height:inherit}h1,.alpha,h2,.beta,h3,.gamma,h4,.delta,.menu.dropdown li,h5,.epsilon,.nav--global.nav--global li,label,.link--back,.drilldown-back,.link--close,.link--all,h6,.zeta,.nav--small li,.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;font-style:normal;color:inherit;text-rendering:optimizeLegibility;margin-top:0;margin-bottom:0.5rem;line-height:1.4}h1 small,.alpha small,h2 small,.beta small,h3 small,.gamma small,h4 small,.delta small,.menu.dropdown li small,h5 small,.epsilon small,.nav--global.nav--global li small,label small,.link--back small,.drilldown-back small,.link--close small,.link--all small,h6 small,.zeta small,.nav--small li small,.tabs .tabs-title>a small,.tabs .tabs-title .pagination__page-count small{color:#F1F1F1;line-height:0}h1,.alpha{font-size:1.5rem}h2,.beta{font-size:1.25rem}h3,.gamma{font-size:1rem}h4,.delta,.menu.dropdown li{font-size:0.9375rem}h5,.epsilon,.nav--global.nav--global li,label,.link--back,.drilldown-back,.link--close,.link--all{font-size:0.8125rem}h6,.zeta,.nav--small li,.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{font-size:0.875rem}@media screen and (min-width: 40em){h1,.alpha{font-size:2.1875rem}h2,.beta{font-size:1.5rem}h3,.gamma{font-size:1.125rem}h4,.delta,.menu.dropdown li{font-size:0.9375rem}h5,.epsilon,.nav--global.nav--global li,label,.link--back,.drilldown-back,.link--close,.link--all{font-size:0.8125rem}h6,.zeta,.nav--small li,.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{font-size:0.875rem}}a{color:#3F3B93;text-decoration:none;line-height:inherit;cursor:pointer}a:hover,a:focus{color:#36337e}a img{border:0}hr{max-width:100%;height:0;border-right:0;border-top:0;border-bottom:1px solid #E3E3E3;border-left:0;margin:0 auto;clear:both}ul,ol,dl{line-height:1.6;margin-bottom:1rem;list-style-position:outside}li{font-size:inherit}ul{list-style-type:disc;margin-left:1.25rem}ol{margin-left:1.25rem}ul ul,ol ul,ul ol,ol ol{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:0.3rem;font-weight:500}blockquote{margin:0 0 1rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #F1F1F1}blockquote,blockquote p{line-height:1.6;color:#E3E3E3}cite{display:block;font-size:0.8125rem;color:#E3E3E3}cite:before{content:'\2014 \0020'}abbr{color:#4D4D4D;cursor:help;border-bottom:1px dotted #000}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#000;background-color:#F7F7F7;border:1px solid #F1F1F1;padding:0.125rem 0.3125rem 0.0625rem}kbd{padding:0.125rem 0.25rem 0;margin:0;background-color:#F7F7F7;color:#000;font-family:Consolas,"Liberation Mono",Courier,monospace}.subheader{margin-top:0.2rem;margin-bottom:0.5rem;font-weight:400;line-height:1.4;color:#E3E3E3}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media screen and (min-width: 40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media screen and (min-width: 64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none !important}@media print{*{background:transparent !important;color:black !important;box-shadow:none !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{display:table-cell !important}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^='javascript:']:after,a[href^='#']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,.beta,h3,.gamma{orphans:3;widows:3}h2,.beta,h3,.gamma{page-break-after:avoid}}.button{display:inline-block;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;transition:background-color 0.25s ease-out, color 0.25s ease-out;vertical-align:middle;border:1px solid transparent;border-radius:3px;padding:1em 1.6em;margin:0;font-size:0.875rem;background-color:#3F3B93;color:#fff}[data-whatinput='mouse'] .button{outline:0}.button:hover,.button:focus{background-color:#fff;color:#fff}.button.tiny{font-size:0.6rem}.button.small{font-size:0.75rem}.button.large{font-size:1.1rem}.button.expanded{display:block;width:100%;margin-left:0;margin-right:0}.button.primary{background-color:#3F3B93;color:#fff}.button.primary:hover,.button.primary:focus{background-color:#322f76;color:#fff}.button.secondary{background-color:#fff;color:#fff}.button.secondary:hover,.button.secondary:focus{background-color:#ccc;color:#fff}.button.success{background-color:#3adb76;color:#fff}.button.success:hover,.button.success:focus{background-color:#22bb5b;color:#fff}.button.alert{background-color:#ec5840;color:#fff}.button.alert:hover,.button.alert:focus{background-color:#da3116;color:#fff}.button.warning{background-color:#ffae00;color:#fff}.button.warning:hover,.button.warning:focus{background-color:#cc8b00;color:#fff}.button.hollow{border:1px solid #3F3B93;color:#3F3B93}.button.hollow,.button.hollow:hover,.button.hollow:focus{background-color:transparent}.button.hollow:hover,.button.hollow:focus{border-color:#201e4a;color:#201e4a}.button.hollow.primary{border:1px solid #3F3B93;color:#3F3B93}.button.hollow.primary:hover,.button.hollow.primary:focus{border-color:#201e4a;color:#201e4a}.button.hollow.secondary{border:1px solid #fff;color:#fff}.button.hollow.secondary:hover,.button.hollow.secondary:focus{border-color:gray;color:gray}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:hover,.button.hollow.success:focus{border-color:#157539;color:#157539}.button.hollow.alert{border:1px solid #ec5840;color:#ec5840}.button.hollow.alert:hover,.button.hollow.alert:focus{border-color:#881f0e;color:#881f0e}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:hover,.button.hollow.warning:focus{border-color:#805700;color:#805700}.button.disabled,.button[disabled]{opacity:0.25;cursor:not-allowed;pointer-events:none}.button.dropdown::after{content:'';display:block;width:0;height:0;border:inset 0.4em;border-color:#fff transparent transparent;border-top-style:solid;border-bottom-width:0;position:relative;top:0.4em;float:right;margin-left:1.6em;display:inline-block}.button.arrow-only::after{margin-left:0;float:none;top:0.2em}[type='text'],[type='password'],[type='date'],[type='datetime'],[type='datetime-local'],[type='month'],[type='week'],[type='email'],[type='number'],[type='search'],[type='tel'],[type='time'],[type='url'],[type='color'],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;padding:0.5rem;border:1px solid #F1F1F1;margin:0 0 1rem;font-family:inherit;font-size:1rem;color:#4D4D4D;background-color:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);border-radius:3px;transition:box-shadow 0.5s,border-color 0.25s ease-in-out;-webkit-appearance:none;-moz-appearance:none}[type='text']:focus,[type='password']:focus,[type='date']:focus,[type='datetime']:focus,[type='datetime-local']:focus,[type='month']:focus,[type='week']:focus,[type='email']:focus,[type='number']:focus,[type='search']:focus,[type='tel']:focus,[type='time']:focus,[type='url']:focus,[type='color']:focus,textarea:focus{border:1px solid #E3E3E3;background-color:#fff;outline:none;box-shadow:0 0 5px #F1F1F1;transition:box-shadow 0.5s,border-color 0.25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#F7F7F7;cursor:default}[type='submit'],[type='button']{border-radius:3px;-webkit-appearance:none;-moz-appearance:none}input[type='search']{box-sizing:border-box}[type='file'],[type='checkbox'],[type='radio']{margin:0 0 1rem}[type='checkbox']+label,[type='radio']+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}label>[type='checkbox'],label>[type='label']{margin-right:0.5rem}[type='file']{width:100%}label{display:block;margin:0;font-size:0.875rem;font-weight:400;line-height:1.8;color:#4D4D4D}label.middle{margin:0 0 1rem;padding:0.5625rem 0}.help-text,.ninja-forms-field-error,.ninja-forms-required-items{margin-top:-0.5rem;font-size:0.8125rem;font-style:normal;color:#767676}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group>:first-child{border-radius:3px 0 0 3px}.input-group>:last-child>*{border-radius:0 3px 3px 0}.input-group-label,.input-group-field,.input-group-button{display:table-cell;margin:0;vertical-align:middle}.input-group-label{text-align:center;width:1%;height:100%;padding:0 1rem;background:#F7F7F7;color:#000;border:1px solid #F1F1F1;white-space:nowrap}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;height:2.5rem}.input-group-button{height:100%;padding-top:0;padding-bottom:0;text-align:center;width:1%}.input-group-button a,.input-group-button input,.input-group-button button{margin:0}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:0.5rem;max-width:100%}.fieldset{border:1px solid #F1F1F1;padding:1.25rem;margin:1.125rem 0}.fieldset legend{background:#F1F1F1;padding:0 0.1875rem;margin:0;margin-left:-0.1875rem}select{height:2.4375rem;padding:0.5rem;border:1px solid #F1F1F1;margin:0 0 1rem;font-size:1rem;font-family:inherit;line-height:normal;color:#4D4D4D;background-color:#fff;border-radius:3px;-webkit-appearance:none;-moz-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%2851, 51, 51%29"></polygon></svg>');background-size:9px 6px;background-position:right center;background-origin:content-box;background-repeat:no-repeat}@media screen and (min-width: 0\0){select{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==")}}select:disabled{background-color:#F7F7F7;cursor:default}select::-ms-expand{display:none}select[multiple]{height:auto}.is-invalid-input:not(:focus){background-color:rgba(236,88,64,0.1);border-color:#ec5840}.is-invalid-label{color:#ec5840}.form-error{display:none;margin-top:-0.5rem;margin-bottom:1rem;font-size:0.75rem;font-weight:500;color:#ec5840}.form-error.is-visible{display:block}.hide{display:none !important}.invisible{visibility:hidden}@media screen and (min-width: 0em) and (max-width: 39.9375em){.hide-for-small-only{display:none !important}}@media screen and (max-width: 0em), screen and (min-width: 40em){.show-for-small-only{display:none !important}}@media screen and (min-width: 40em){.hide-for-medium{display:none !important}}@media screen and (max-width: 39.9375em){.show-for-medium{display:none !important}}@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 screen and (min-width: 64em){.hide-for-large{display:none !important}}@media screen and (max-width: 63.9375em){.show-for-large{display:none !important}}@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}}.show-for-sr,.show-on-focus{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0)}.show-on-focus:active,.show-on-focus:focus{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.show-for-landscape,.hide-for-portrait{display:block !important}@media screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:block !important}}@media screen and (orientation: portrait){.show-for-landscape,.hide-for-portrait{display:none !important}}.hide-for-landscape,.show-for-portrait{display:none !important}@media screen and (orientation: landscape){.hide-for-landscape,.show-for-portrait{display:none !important}}@media screen and (orientation: portrait){.hide-for-landscape,.show-for-portrait{display:block !important}}.float-left{float:left !important}.float-right{float:right !important}.float-center{display:block;margin-left:auto;margin-right:auto}.clearfix::before,.clearfix::after{content:' ';display:table}.clearfix::after{clear:both}.close-button{position:absolute;color:#3F3B93;right:1rem;top:0.5rem;font-size:2em;line-height:1;cursor:pointer}[data-whatinput='mouse'] .close-button{outline:0}.close-button:hover,.close-button:focus{color:#7878B2}.is-drilldown{position:relative;overflow:hidden}.is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;height:100%;width:100%;background:#fff;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);transform:translateX(100%)}[data-whatinput='mouse'] .dropdown.menu a{outline:0}.no-js .dropdown.menu ul{display:none}.dropdown.menu:not(.vertical) .is-dropdown-submenu.first-sub{top:100%;left:0;right:auto}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;left:auto;right:0}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-menu.vertical>li .is-dropdown-submenu{top:0;left:100%}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{float:right;margin-top:3px;margin-left:10px}.is-dropdown-submenu-parent.is-left-arrow.opens-inner .is-dropdown-submenu{right:0;left:auto}.is-dropdown-submenu-parent.is-right-arrow.opens-inner .is-dropdown-submenu{left:0;right:auto}.is-dropdown-submenu-parent.opens-inner .is-dropdown-submenu{top:100%}.is-dropdown-submenu-parent.opens-left .is-dropdown-submenu{left:auto;right:100%}.is-dropdown-submenu{display:none;position:absolute;top:0;left:100%;min-width:170px;z-index:1;background:transparent;border:0}.is-dropdown-submenu .is-dropdown-submenu{margin-top:0}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu:not(.js-dropdown-nohover)>.is-dropdown-submenu-parent:hover>.is-dropdown-submenu,.is-dropdown-submenu.js-dropdown-active{display:block}.flex-video{position:relative;height:0;padding-bottom:75%;margin-bottom:0;overflow:hidden}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen{padding-bottom:56.25%}.flex-video.vimeo{padding-top:0}.menu{margin:0;list-style-type:none}.menu>li{display:table-cell;vertical-align:middle}[data-whatinput='mouse'] .menu>li{outline:0}.menu>li>a{display:block;padding:0.7rem 0.7rem;line-height:1}.menu input,.menu a,.menu button{margin-bottom:0}.menu>li>a>img,.menu>li>a>i{vertical-align:middle}.menu>li>a>span{vertical-align:middle}.menu>li>a>img,.menu>li>a>i{display:inline-block;margin-right:0.25rem}.menu>li{display:table-cell}.menu.vertical>li{display:block}@media screen and (min-width: 40em){.menu.medium-horizontal>li{display:table-cell}.menu.medium-vertical>li{display:block}}@media screen and (min-width: 64em){.menu.large-horizontal>li{display:table-cell}.menu.large-vertical>li{display:block}}.menu.simple li{line-height:1;display:inline-block;margin-right:0.7rem}.menu.simple a{padding:0}.menu.align-right>li{float:right}.menu.expanded{display:table;table-layout:fixed;width:100%}.menu.expanded>li:first-child:last-child{width:100%}.menu.icon-top>li>a{text-align:center}.menu.icon-top>li>a>img,.menu.icon-top>li>a>i{display:block;margin:0 auto 0.25rem}.menu.nested{margin-left:1rem}.menu-text{font-weight:bold;color:inherit;line-height:1;padding-top:0;padding-bottom:0;padding:0.7rem 0.7rem}.no-js [data-responsive-menu] ul{display:none}html,body{height:100%}.off-canvas-wrapper{width:100%;overflow-x:hidden;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:auto}.off-canvas-wrapper-inner{position:relative;width:100%;transition:-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99), -webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.off-canvas-wrapper-inner::before,.off-canvas-wrapper-inner::after{content:' ';display:table}.off-canvas-wrapper-inner::after{clear:both}.off-canvas-content,.off-canvas-content{min-height:100%;background:#F1F1F1;transition:-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99), -webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;box-shadow:0 0 0}.js-off-canvas-exit{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);cursor:pointer;transition:background 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.off-canvas{position:absolute;background:#E3E3E3;z-index:-1;max-height:100%;overflow-y:auto;-webkit-transform:translateX(0);transform:translateX(0)}[data-whatinput='mouse'] .off-canvas{outline:0}.off-canvas.position-left{left:-350px;top:0;width:350px}.is-open-left{-webkit-transform:translateX(350px);transform:translateX(350px)}.off-canvas.position-right{right:-350px;top:0;width:350px}.is-open-right{-webkit-transform:translateX(-350px);transform:translateX(-350px)}@media screen and (min-width: 40em){.position-left.reveal-for-medium{left:0;z-index:auto;position:fixed}.position-left.reveal-for-medium ~ .off-canvas-content{margin-left:350px}.position-right.reveal-for-medium{right:0;z-index:auto;position:fixed}.position-right.reveal-for-medium ~ .off-canvas-content{margin-right:350px}}@media screen and (min-width: 64em){.position-left.reveal-for-large{left:0;z-index:auto;position:fixed}.position-left.reveal-for-large ~ .off-canvas-content{margin-left:350px}.position-right.reveal-for-large{right:0;z-index:auto;position:fixed}.position-right.reveal-for-large ~ .off-canvas-content{margin-right:350px}}.tabs{margin:0;list-style-type:none;background:#fff;border:1px solid transparent}.tabs::before,.tabs::after{content:' ';display:table}.tabs::after{clear:both}.tabs.vertical>li{width:auto;float:none;display:block}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:transparent}.tabs.primary{background:#3F3B93}.tabs.primary>li>a{color:#fff}.tabs.primary>li>a:hover,.tabs.primary>li>a:focus{background:#3c388c}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.5rem 1.5rem;line-height:1;font-size:12px;color:#3F3B93}.tabs-title>a:hover{background:#fff}.tabs-title>a:focus,.tabs-title>a[aria-selected='true']{background:#fff}.tabs-content{background:transparent;transition:all 0.5s ease;border:1px solid transparent;border-top:0}.tabs-content.vertical{border:1px solid transparent;border-left:0}.tabs-panel{display:none;padding:0}.tabs-panel.is-active{display:block}*,*::before,*::after{box-sizing:border-box}html,body,button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased}body{position:relative}body::after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;width:100%;z-index:9;display:none;background-image:linear-gradient(to bottom, rgba(0,0,0,0.15) 95%, rgba(0,0,0,0.15) 100%);background-size:100% 26px}body.debug::after{display:block;pointer-events:none}.main{min-height:25rem}.container{position:relative;margin-left:auto;margin-right:auto}@media screen and (min-width: 64em){.container{padding-left:3.75rem;padding-right:3.75rem}}.container--archive{padding-top:1.875rem}.background--primary{background:#3F3B93 !important}.border--primary{border-color:#3F3B93}.border-right--primary{border-right:1px solid #3F3B93}.border-left--primary{border-left:1px solid #3F3B93}.border-top--primary{border-top:1px solid #3F3B93}.border-bottom--primary{border-bottom:1px solid #3F3B93}.color--primary{color:#3F3B93}.fill--primary{fill:#3F3B93 !important}.background--white{background:#fff !important}.border--white{border-color:#fff}.border-right--white{border-right:1px solid #fff}.border-left--white{border-left:1px solid #fff}.border-top--white{border-top:1px solid #fff}.border-bottom--white{border-bottom:1px solid #fff}.color--white{color:#fff}.fill--white{fill:#fff !important}.make-center{display:block;margin:auto}.make-block{display:block;width:100%}.bg{background-repeat:no-repeat;background-size:cover}.push-half--off-left{left:-0.9375rem;position:relative}@media screen and (min-width: 0em) and (max-width: 39.9375em){.hard--small{padding:0}}@media screen and (max-width: 74.9375em){.show-for-xlarge{display:none !important}}.align-right{text-align:right}.push{margin:1.875rem !important}.push--top{margin-top:1.875rem !important}.push--right{margin-right:1.875rem !important}.push--bottom{margin-bottom:1.875rem !important}.push--left{margin-left:1.875rem !important}.push--ends{margin-top:1.875rem !important;margin-bottom:1.875rem !important}.push--sides{margin-right:1.875rem !important;margin-left:1.875rem !important}.push-half{margin:0.9375rem !important}.push-half--top{margin-top:0.9375rem !important}.push-half--right{margin-right:0.9375rem !important}.push-half--bottom{margin-bottom:0.9375rem !important}.push-half--left{margin-left:0.9375rem !important}.push-half--ends{margin-top:0.9375rem !important;margin-bottom:0.9375rem !important}.push-half--sides{margin-right:0.9375rem !important;margin-left:0.9375rem !important}.push-double{margin:3.75rem !important}.push-double--top{margin-top:3.75rem !important}.push-double--right{margin-right:3.75rem !important}.push-double--bottom{margin-bottom:3.75rem !important}.push-double--left{margin-left:3.75rem !important}.push-double--ends{margin-top:3.75rem !important;margin-bottom:3.75rem !important}.push-double--sides{margin-right:3.75rem !important;margin-left:3.75rem !important}.flush{margin:0 !important}.flush--top{margin-top:0 !important}.flush--right{margin-right:0 !important}.flush--bottom{margin-bottom:0 !important}.flush--left{margin-left:0 !important}.flush--ends{margin-top:0 !important;margin-bottom:0 !important}.flush--sides{margin-right:0 !important;margin-left:0 !important}.soft{padding:1.875rem !important}.soft--top{padding-top:1.875rem !important}.soft--right{padding-right:1.875rem !important}.soft--bottom{padding-bottom:1.875rem !important}.soft--left{padding-left:1.875rem !important}.soft--ends{padding-top:1.875rem !important;padding-bottom:1.875rem !important}.soft--sides{padding-right:1.875rem !important;padding-left:1.875rem !important}.soft-half{padding:0.9375rem !important}.soft-half--top{padding-top:0.9375rem !important}.soft-half--right{padding-right:0.9375rem !important}.soft-half--bottom{padding-bottom:0.9375rem !important}.soft-half--left{padding-left:0.9375rem !important}.soft-half--ends{padding-top:0.9375rem !important;padding-bottom:0.9375rem !important}.soft-half--sides{padding-right:0.9375rem !important;padding-left:0.9375rem !important}.soft-double{padding:3.75rem !important}.soft-double--top{padding-top:3.75rem !important}.soft-double--right{padding-right:3.75rem !important}.soft-double--bottom{padding-bottom:3.75rem !important}.soft-double--left{padding-left:3.75rem !important}.soft-double--ends{padding-top:3.75rem !important;padding-bottom:3.75rem !important}.soft-double--sides{padding-right:3.75rem !important;padding-left:3.75rem !important}.soft-triple{padding:5.625rem !important}.soft-triple--top{padding-top:5.625rem !important}.soft-triple--right{padding-right:5.625rem !important}.soft-triple--bottom{padding-bottom:5.625rem !important}.soft-triple--left{padding-left:5.625rem !important}.soft-triple--ends{padding-top:5.625rem !important;padding-bottom:5.625rem !important}.soft-triple--sides{padding-right:5.625rem !important;padding-left:5.625rem !important}.hard{padding:0 !important}.hard--top{padding-top:0 !important}.hard--right{padding-right:0 !important}.hard--bottom{padding-bottom:0 !important}.hard--left{padding-left:0 !important}.hard--ends{padding-top:0 !important;padding-bottom:0 !important}.hard--sides{padding-right:0 !important;padding-left:0 !important}.icon{display:inline-block;width:100%;height:100%;max-width:1.875rem;max-height:1.875rem;position:relative;fill:#3F3B93;transition:fill 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.icon--small{max-width:1.125rem;max-height:1.125rem}.icon--small.icon--google{max-width:1.375rem}.icon--xxsmall{max-width:0.625rem;max-height:0.625rem}.icon--xsmall{max-width:0.9375rem;max-height:0.9375rem}.icon--medium{max-width:13.125rem;max-height:3.75rem}.icon--full{max-height:100%;max-width:100%}.header{padding:0;background-color:#3F3B93;background-position:center center;background-repeat:no-repeat;background-size:cover;background-image:url("../images/mast-mobile.png");z-index:1}@media screen and (min-width: 40em){.header{background-image:url("../images/mast.png")}}@media screen and (min-width: 64em){.header{padding-right:3.75rem;padding-left:3.75rem;padding-top:1.875rem}}.page .header,.single .header{height:7.5rem;padding-bottom:0;padding-top:0}@media screen and (min-width: 40em){.page .header,.single .header{height:3.75rem}}.header>.row{position:relative}.mast__links{background:#fff;border-bottom:1px solid #E3E3E3}@media screen and (min-width: 40em){.mast__links{background:none;border:none}}.footer{background:#1D0537;padding-top:1.875rem;padding-bottom:3.75rem}@media screen and (min-width: 40em){.footer{padding-right:1.875rem;padding-left:1.875rem}}@media screen and (min-width: 64em){.footer{padding-right:3.75rem;padding-left:3.75rem}}.footer__logo{max-height:3.75rem;max-width:12.5rem;margin:auto}.footer__credit p{font-size:0.75rem}.footer__credit p,.footer__credit p a{color:#fff}.logo{line-height:3.75rem;height:3.75rem;display:block;max-width:100%}@media screen and (min-width: 40em){.logo{max-width:80%}}@media screen and (min-width: 64em){.logo{margin-top:0.9375rem;margin-bottom:0.9375rem}.fr .logo{margin-top:0}}.page .logo,.single .logo{margin-bottom:0}@media screen and (min-width: 64em){.page .logo,.single .logo{max-width:65%}}.logo .logo__icon{max-width:100%;margin:0.9375rem 0}@media screen and (min-width: 64em){.logo .logo__icon{margin:0}}.nav--center li,.nav--center a{text-align:center;margin:auto}.nav--center-items li,.nav--center-items a{text-align:center;display:inline-block;margin:auto}.nav--inverted a{color:#fff}.nav--inverted a:hover{color:#fff}.nav--share li{max-width:3.75rem !important;position:relative}.nav--share .nav__label--inline{position:absolute;right:0;top:50%;-webkit-transform:translate(0, -50%);transform:translate(0, -50%)}.nav--share ul{max-width:17.5rem;margin:auto}.nav--share ul.vertical li{width:100% !important;margin:0.9375rem auto}.nav--muted a{text-decoration:underline}.nav--muted a:hover{text-decoration:none}.nav--with-comma>.menu>li>a{display:inline;padding:0 !important}.nav--with-comma li{position:relative}.nav--with-comma li:after{display:inline;content:',';padding-right:0.234375rem}.nav--with-comma li:last-child:after{display:none}.nav--with-seperation li{position:relative}.nav--with-seperation li:before{top:50%;bottom:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%);position:absolute;width:1px;height:40%;background:#E3E3E3;content:'';left:0;opacity:0.3}.nav--with-seperation li:first-child:before{display:none}.nav--global.nav--global{position:absolute;top:0;right:0;overflow:hidden}.nav--global.nav--global ul{margin-right:-1.5rem}.nav--global.nav--global li{padding:0 1.5625rem}.nav--global.nav--global li a{position:relative;padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;margin:0.46875rem 0;height:2.8125rem;line-height:2.8125rem}.nav--global.nav--global li a:before{-webkit-transform-origin:0 0;transform-origin:0 0;height:1px;background:#fff;width:0.9375rem;position:absolute;content:'';transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);top:0;-webkit-transform:scaleX(0);transform:scaleX(0);top:auto;bottom:0.46875rem}.nav--global.nav--global li a:hover{color:#fff}.nav--global.nav--global li a:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.archive .nav--global.nav--global li.menu-item-31 a:before{width:100%;-webkit-transform:scale(1);transform:scale(1)}.nav--footer.nav--footer li a{text-decoration:underline;padding-top:1.25rem;padding-bottom:1.25rem}.nav--footer.nav--footer li a:hover{text-decoration:none}.progress{position:fixed;width:100%;z-index:100;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);opacity:0;top:0}.progress svg{fill:#1D0537;height:2px}.progress svg *{stroke:#1D0537 !important}.is-loading .progress{opacity:1}.header,.footer,.main{transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);opacity:1;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.is-loading .header,.is-loading .footer,.is-loading .main{-webkit-transform:translate3d(0, 3.75rem, 0);transform:translate3d(0, 3.75rem, 0);opacity:0}.is-off-canvas-open .header,.is-off-canvas-open .footer,.is-off-canvas-open .main{opacity:0.8}.nav--global,.logo{opacity:1;-webkit-transform:translate(0, 0);transform:translate(0, 0);transition:all 450ms 75ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.is-off-canvas-open .nav--global,.is-loading .nav--global,.is-off-canvas-open .logo,.is-loading .logo{opacity:0;-webkit-transform:translate(0, -200%);transform:translate(0, -200%)}.page__mast{padding:1.875rem}.page__content{background:#fff}@media screen and (min-width: 40em){.page__content{padding:0 1.875rem}}@media screen and (min-width: 64em){.page__content{padding:0 3.75rem}}.site-map__item{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid}.single__content{background:#fff;border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1}.single__mast{padding-bottom:0}.single__tabs{position:relative}.single__tabs:before{position:absolute;left:0;right:0;content:' ';transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);background:#F1F1F1;height:0.0625rem;top:auto;bottom:0px}.single__tabs.single__tabs--static:before{height:0.1875rem;background:#7878B2;z-index:1}.single__tabs--2{margin-top:0.9375rem}@media screen and (min-width: 40em){.single__tabs--2{margin-top:0}}.search-form{position:relative;margin:0 -0.625rem}@media screen and (min-width: 40em){.search-form{margin:0 -0.9375rem}}@media screen and (min-width: 64em){.search-form{margin:0 0 1.875rem}.single .search-form{margin:0}}.search-field{padding-left:4.21875rem;height:3.75rem;margin-bottom:0;border-radius:0;font-weight:500;-webkit-appearance:none;border-radius:0;-webkit-border-radius:0px}@media screen and (min-width: 40em){.search-field{font-size:1.5rem}}.page .search-field,.single .search-field{background:#7878B2;border:1px solid #3F3B93;color:#fff}.page .search-field::-moz-placeholder,.single .search-field::-moz-placeholder{color:#F1F1F1}.page .search-field::-webkit-input-placeholder,.single .search-field::-webkit-input-placeholder{color:#F1F1F1}@media screen and (min-width: 40em){.page .search-field,.single .search-field{font-size:1.125rem}}.search-form__icon{position:absolute;left:1.875rem;top:0.9375rem;width:1.25rem;fill:#3F3B93}.page .search-form__icon,.single .search-form__icon{fill:#fff;width:0.9375rem}.off-canvas{background:none}.off-canvas.position-right{right:-3.75rem;top:0;width:3.75rem;bottom:0;background:#1D0537}.off-canvas.position-right .close-button{left:50%;right:auto;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.is-open-right{-webkit-transform:translateX(-3.75rem);transform:translateX(-3.75rem)}a,.link{text-decoration:none;color:#3F3B93;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.link--is-active a,a:hover,.link--is-active .link,.link:hover{color:#1D0537}p>a,p>.link{text-decoration:underline;color:#7878B2}.link--share{display:block;height:2.1875rem;width:2.1875rem;position:relative;margin:auto}.link--share .icon{left:50%;top:50%;bottom:auto;right:auto;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);z-index:1;position:absolute;fill:#3F3B93}.link--share:before,.link--share:after{border-radius:50%;height:auto;width:auto;position:absolute;top:0;bottom:0;right:0;left:0;content:''}.link--share:before{border:1px solid #3F3B93;background:#fff}.link--share:after{transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);background:#3F3B93;-webkit-transform:scale(0);transform:scale(0);opacity:0}.link--share:hover .icon{fill:#fff}.link--share:hover:after{-webkit-transform:scale(1);transform:scale(1);opacity:1}.link--share.link--share--white .icon{fill:#fff}.link--share.link--share--white:before{border:1px solid #fff;background:none}.link--share.link--share--white:after{background:#fff}.link--share.link--share--white:hover .icon{fill:#3F3B93}.footer .link--share.link--share--white:hover .icon{fill:#1D0537}.link--with-arrow{position:relative;padding-top:1.21875rem;padding-right:0;padding-bottom:0.9375rem;padding-left:2.8125rem;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);display:block;margin:0 -0.625rem;color:#3F3B93}.link--with-arrow span{display:inline-block;position:relative;padding:0 0 0 2.8125rem}.link--with-arrow .link__arrow{top:50%;bottom:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%);position:absolute;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);left:0.9375rem;top:55%}.link--with-arrow:hover{padding-left:3rem}.link--with-arrow:hover .link__arrow{-webkit-transform:translate(-0.3125rem, -50%);transform:translate(-0.3125rem, -50%)}.link--with-arrow.link--with-arrow--right span{padding:0 2.8125rem 0 0}.link--with-arrow.link--with-arrow--right .link__arrow{left:auto;right:0.9375rem}.link--with-arrow.link--with-arrow--right:hover{padding-right:6rem}.link--with-arrow.link--with-arrow--right:hover .link__arrow{-webkit-transform:translate(0.3125rem, -50%);transform:translate(0.3125rem, -50%)}.link--with-arrow.link--with-arrow--share{padding-right:5.625rem;padding-left:0.9375rem;border-left:1px solid #E3E3E3}.link--with-arrow.link--with-arrow--share .link__arrow{left:auto;right:3.75rem}.link--with-arrow.link--with-arrow--share:hover{padding-right:6rem}.link--with-arrow.link--with-arrow--share:hover .link__arrow{-webkit-transform:translate(0.3125rem, -50%);transform:translate(0.3125rem, -50%)}.link--disabled{color:#767676 !important}.link--remove{font-size:1.875rem;float:right}img{opacity:1;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}img.is-loading{opacity:0.1}form{margin:0 0}input{margin:0}textarea{min-height:9.375rem}::-webkit-input-placeholder{color:#909090}::-moz-placeholder{color:#909090}:-ms-input-placeholder{color:#909090}textarea,input[type="search"],input[type="text"],input[type="button"]{-webkit-appearance:none;border-radius:0}.hp-wrap{display:none}.ninja-forms-req-symbol{color:#ec5840}.ninja-forms-field-error,.ninja-forms-required-items{margin-bottom:0.9375rem}.ninja-forms-field-error{color:#ec5840}.button{font-weight:500;border:2px solid #3F3B93;box-shadow:0 0 1px rgba(0,0,0,0.3);max-width:18.75rem;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.button.hard,.button.hard:hover{border-radius:0;max-width:100%;box-shadow:0 0 0}.button.secondary{border:2px solid #fff;color:#3F3B93}.button.tertiary{text-align:left;background-color:#fff;color:#3F3B93;border:2px solid #fff;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);position:relative;font-size:1em;border-radius:0;box-shadow:0 0 0;max-width:100%;white-space:nowrap}.button.tertiary.is-active,.button.tertiary:focus,.button.tertiary:hover{border:2px solid #fff;color:#7878B2 !important}.button.tertiary.is-active{color:#7878B2;background:#F1F1F1;border:none}@media screen and (min-width: 40em){.button.tertiary.is-active{background:#fff}}@media screen and (min-width: 40em){.button.tertiary{box-shadow:0 0 1px rgba(0,0,0,0.3);text-align:center;border-radius:3px}.button.tertiary.is-active,.button.tertiary:focus,.button.tertiary:hover{border:2px solid #3F3B93}.button.tertiary.is-active{color:#3F3B93}}.button.tertiary.dropdown{padding-right:1.40625rem}.button.tertiary.dropdown::after{content:'';display:block;width:0;height:0;border:inset 0.3rem;border-color:#3F3B93 transparent transparent;border-top-style:solid;border-bottom-width:0;position:relative;top:0.4em;float:right;margin-left:1.6em;display:inline-block}.button.tertiary.dropdown:after{top:50%;bottom:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:0.46875rem;display:none;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);margin-top:0 !important;margin-left:0rem !important;position:absolute}@media screen and (min-width: 40em){.button.tertiary.dropdown:after{display:block}}.button.is-active,.button.secondary:hover,.button:hover{color:#3F3B93;background:#fff;border:2px solid #3F3B93}.button.secondary:focus,.button.secondary:active,.button:active,.button:focus{color:#1D0537;background:#fff}.button.button.hollow:focus,.button.button.hollow:hover{background:rgba(120,120,178,0.7);border:1px solid #fff;color:#fff}.button--split{display:inline-block;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;transition:background-color 0.25s ease-out, color 0.25s ease-out;vertical-align:middle;border:1px solid transparent;border-radius:3px;padding:1em 1.6em;margin:0;font-size:0.875rem;background-color:#fff;color:#3F3B93;display:block;width:100%;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;width:auto;margin:0 -0.9375rem;font-size:0;max-width:none;text-align:center;border:0;position:relative;overflow:hidden;border-radius:0;color:#3F3B93;font-weight:500}[data-whatinput='mouse'] .button--split{outline:0}.button--split:hover,.button--split:focus{background-color:#fff;color:#3F3B93}@media screen and (min-width: 64em){.button--split{margin:0;box-shadow:0 0 5px rgba(0,0,0,0.3);border-radius:3px}}.button--split:hover{box-shadow:0 0 1px rgba(0,0,0,0.3);border:none}.button__icon,.button__text{vertical-align:middle;line-height:3.75rem;display:block}@media screen and (min-width: 40em) and (max-width: 63.9375em){.button__icon,.button__text{line-height:7.5rem}}@media screen and (min-width: 64em){.button__icon,.button__text{display:inline-block}}.button__icon{max-width:100%;max-height:100%;width:25%;height:3.75rem;padding:1.25rem;border-right:1px solid #E3E3E3;background:#F7F7F7;position:absolute;left:0}@media screen and (min-width: 40em) and (max-width: 63.9375em){.button__icon{height:7.5rem;background:none;border:none}}.button__text{background:#fff;width:auto}@media screen and (min-width: 40em){.button__text{padding-left:20%}}@media screen and (min-width: 64em){.button__text{padding-left:25%}}.button--with-icon{position:relative;padding-left:2.8125rem !important;overflow:hidden}.button--with-icon:hover .button__arrow{fill:#3F3B93;-webkit-animation:icon--move-down 600ms 1;animation:icon--move-down 600ms 1}.button__arrow{top:50%;bottom:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%);fill:#fff;position:absolute;left:1.40625rem;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}@-webkit-keyframes icon--move-down{0%{-webkit-transform:translateY(-50%);transform:translateY(-50%)}50%{-webkit-transform:translateY(200%);transform:translateY(200%)}52%{-webkit-transform:translateY(-200%);transform:translateY(-200%)}100%{-webkit-transform:translateY(-50%);transform:translateY(-50%)}}@keyframes icon--move-down{0%{-webkit-transform:translateY(-50%);transform:translateY(-50%)}50%{-webkit-transform:translateY(200%);transform:translateY(200%)}52%{-webkit-transform:translateY(-200%);transform:translateY(-200%)}100%{-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.button.disabled,.button[disabled]{color:#7878B2}.button.ninja-forms-field{font-weight:700;font-size:0.875rem}p{font-size:0.875rem;max-width:31.25rem}h2,.beta{font-weight:700}h5,.epsilon,.nav--global.nav--global li,label,.link--back,.drilldown-back,.link--close,.link--all{text-transform:uppercase;font-weight:700;letter-spacing:0.125rem}h5.micro,.micro.epsilon,.nav--xsmall li.epsilon,.nav--xsmall .nav--global.nav--global li,.nav--global.nav--global .nav--xsmall li,.nav--xsmall li.link--back,.nav--xsmall li.drilldown-back,.nav--xsmall li.link--close,.nav--xsmall li.link--all,.nav--global.nav--global li.micro,.nav--global.nav--global li.link--back,.nav--global.nav--global li.drilldown-back,.nav--global.nav--global li.link--close,.nav--global.nav--global li.link--all,label,.link--back,.drilldown-back,.link--close,.link--all,h5.link--back,.link--back.epsilon,label.link--back,.link--back.drilldown-back,.link--back.link--close,.link--back.link--all,h5.small,.small.epsilon,.nav--global.nav--global li.small,label.small,.small.link--back,.small.drilldown-back,.small.link--close,.small.link--all{letter-spacing:0.0625rem}h6,.zeta,.nav--small li,.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{font-weight:500}.small-caps{font-variant:small-caps}.milli,.small{font-size:0.875rem}.micro,.nav--xsmall li,label,.link--back,.drilldown-back,.link--close,.link--all{font-size:0.75rem}.emphasis{font-style:italic}.strong{font-weight:700}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cap-width{max-width:21.875rem}@media screen and (min-width: 40em){.cap-width{max-width:21.875rem}}.nowrap{white-space:nowrap}.muted,.nav--muted a{color:#767676 !important}.prime{color:#4D4D4D !important}.text-columns-3{-webkit-columns:3 15.625rem;-moz-columns:3 15.625rem;columns:3 15.625rem;-webkit-column-gap:1.875rem;-moz-column-gap:1.875rem;column-gap:1.875rem;-webkit-column-fill:auto;-moz-column-fill:auto;column-fill:auto}.text-columns-2{-webkit-columns:2 21.875rem;-moz-columns:2 21.875rem;columns:2 21.875rem;-webkit-column-gap:1.875rem;-moz-column-gap:1.875rem;column-gap:1.875rem;-webkit-column-fill:auto;-moz-column-fill:auto;column-fill:auto}.text-columns__span{-webkit-column-span:all;-moz-column-span:all;column-span:all}.container--quick-links{padding:0}@media screen and (min-width: 64em){.container--quick-links{padding-right:3.75rem;padding-left:3.75rem;padding-top:2.8125rem;padding-bottom:0.9375rem}}.container--quick-links .row div a{margin-bottom:1.875rem}.item{margin-bottom:1.875rem;box-shadow:0 0 5px rgba(0,0,0,0.3);border-radius:3px;overflow:hidden;padding:1.875rem;background:#fff;position:relative;min-height:21.875rem;height:21.875rem}.featured .item{height:auto}.item__link{display:block;width:auto;position:absolute;left:0;right:0;top:0;bottom:0}.item__title,.item__text{padding-left:0.9375rem;padding-right:0.9375rem;padding-bottom:0;position:relative}.featured .item__title,.featured .item__text{padding-right:1.875rem;padding-left:1.875rem}@media screen and (min-width: 40em){.featured .item__title,.featured .item__text{padding-right:3.75rem;padding-left:3.75rem;width:70%}}@media screen and (min-width: 64em){.featured .item__title,.featured .item__text{width:60%}}@media screen and (min-width: 40em){.item__title,.item__text{padding-right:1.875rem;padding-left:1.875rem}.featured:nth-child(odd) .item__title,.featured:nth-child(odd) .item__text{margin-left:30%}}@media screen and (min-width: 64em){.featured:nth-child(odd) .item__title,.featured:nth-child(odd) .item__text{margin-left:40%}}.item__title{padding-top:0.9375rem;text-align:center}@media screen and (min-width: 40em){.featured .item__title{padding-top:2.8125rem;text-align:left}.featured .item__title h4,.featured .item__title .delta,.featured .item__title .menu.dropdown li,.menu.dropdown .featured .item__title li{font-size:1.5rem}}.item__text{padding-top:0.9375rem;padding-bottom:0.9375rem;display:none}@media screen and (min-width: 40em){.item__text{display:block}}.item__image{overflow:hidden;position:relative;height:14.5833333333rem;border-bottom:1px solid #E3E3E3}.item__image img{max-width:none;width:auto;left:50%;position:absolute;height:100%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}@media screen and (min-width: 40em){.featured .item__image{height:auto;position:absolute;width:auto;height:auto;top:0;bottom:0;left:0;right:0;margin:0}.featured .item__image img{left:50%;top:50%;bottom:auto;right:auto;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);position:absolute;width:auto;min-height:100%;min-width:100%;max-width:none;max-height:100%}}@media screen and (min-width: 40em){.featured:nth-child(even) .item__image{left:70%}.featured:nth-child(odd) .item__image{right:70%}}@media screen and (min-width: 64em){.featured:nth-child(even) .item__image{left:60%}.featured:nth-child(odd) .item__image{right:60%}}.item__icon{position:absolute;bottom:0.9375rem;right:0.9375rem}.item__overlay,.item__overlay:before{position:absolute;top:0;bottom:0;right:0;left:0;top:0;height:auto;width:auto;text-align:center}.item__overlay:before{content:'';transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);opacity:0;background:rgba(63,59,147,0.9)}.item__overlay .overlay__target{transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);opacity:0;position:absolute;top:1.875rem;left:50%;margin:0;padding-left:2.8125rem;padding-right:2.8125rem}.item.is-active .item__overlay .overlay__target,.item__link:focus .item__overlay .overlay__target,.item__link:hover .item__overlay .overlay__target{-webkit-transform:translate(-50%, 0%);transform:translate(-50%, 0%);opacity:1;top:3.75rem}.item.is-active .item__overlay:before,.item__link:focus .item__overlay:before,.item__link:hover .item__overlay:before{opacity:1}.overlay__nav{transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);-webkit-transform:translate(0%, 100%);transform:translate(0%, 100%);opacity:0;position:absolute;bottom:3.75rem;left:0;right:0}.overlay__nav ul{max-width:15.625rem}.overlay__nav .menu__label{position:relative}.overlay__nav .menu__label:before{-webkit-transform-origin:0 0;transform-origin:0 0;height:1px;background:#fff;width:0.9375rem;position:absolute;content:'';transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);top:0;-webkit-transform:scaleX(0);transform:scaleX(0);left:50%;right:auto;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:translate(-50%, 0) scaleX(0);transform:translate(-50%, 0) scaleX(0)}.overlay__nav .menu__label:hover{color:#fff}.overlay__nav .menu__label:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform:translate(-50%, 0) scaleX(1);transform:translate(-50%, 0) scaleX(1)}.overlay__nav .menu__label:before{top:-175%;transition-delay:150ms}.item.is-active .overlay__nav,.item__link:focus+.overlay__nav,.item__link:hover+.overlay__nav{-webkit-transform:translate(0%, 0%);transform:translate(0%, 0%);opacity:1}.item.is-active .overlay__nav .menu__label:before,.item__link:focus+.overlay__nav .menu__label:before,.item__link:hover+.overlay__nav .menu__label:before{-webkit-transform:translate(-50%, 0) scaleX(1);transform:translate(-50%, 0) scaleX(1)}.overlay__button--secondary{position:absolute;top:7.5rem;z-index:1;padding:.5rem 0;color:#fff;left:50%;-webkit-transform:translate(-50%, 100%);transform:translate(-50%, 100%);font-size:0.75rem;transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);opacity:0;padding-right:0.9375rem;overflow:hidden}.overlay__button--secondary .button__target{font-weight:500;transition:border 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}.overlay__button--secondary .button__arrow{top:50%;left:auto;right:0;-webkit-transform:translate(0%, -50%);transform:translate(0%, -50%)}.item.is-active .overlay__button--secondary,.item__link:focus+.overlay__button--secondary,.item__link:hover+.overlay__button--secondary{-webkit-transform:translate(-50%, 0%);transform:translate(-50%, 0%);color:#fff;opacity:1}.overlay__button--secondary:hover{color:#fff}.overlay__button--secondary:hover .button__target{border-bottom:1px solid}.overlay__button--secondary:hover .button__arrow{-webkit-animation:icon--move-down 600ms 1;animation:icon--move-down 600ms 1}@media screen and (min-width: 40em){.container--archive{padding-top:0}}.container--filters{padding-top:0}@media screen and (min-width: 40em){.container--filters{padding-top:1.875rem;padding-bottom:1.875rem}}.filters{background:#fff;opacity:0;transition:opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);position:absolute;width:auto;left:0;right:0;top:0;-webkit-transform:translate(0, -100%);transform:translate(0, -100%);z-index:1}.filters--is-visible .filters{opacity:1;-webkit-transform:translate(0, 0%);transform:translate(0, 0%)}@media screen and (min-width: 40em){.filters{-webkit-transform:translate(0, 0%);transform:translate(0, 0%);display:block;opacity:1;height:auto;position:relative;background:none}}.filters .menu li a{padding-right:0.3125rem}.filters .menu li a:hover{color:#7878B2}@media screen and (min-width: 0em) and (max-width: 39.9375em){.filters .menu li a{background:#fff;font-weight:500;line-height:3.75rem;height:3.75rem;padding:0 1.875rem;border-bottom:1px solid #F7F7F7 !important}.filters .menu li a.is-active{background:#F1F1F1;border:none;border-bottom:1px solid #F7F7F7 !important;color:#7878B2}}.filters__toggle{text-align:center !important;margin:0 -0.625rem;transition:opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);transition:transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),opacity 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99),-webkit-transform 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);display:block;opacity:1;-webkit-transform:translate(0, 0%);transform:translate(0, 0%);max-width:none !important}.filters--is-visible .filters__toggle{opacity:0;-webkit-transform:translate(0, -100%);transform:translate(0, -100%)}.menu.dropdown .is-top-level,.menu.dropdown .is-dropdown-submenu-parent{padding:0 0.46875rem 0 0}.menu.dropdown .is-top-level .submenu.first-sub,.menu.dropdown .is-dropdown-submenu-parent .submenu.first-sub{left:-0.46875rem}.menu.dropdown .is-top-level ~ .is-top-level,.menu.dropdown .is-top-level ~ .is-dropdown-submenu-parent,.menu.dropdown .is-dropdown-submenu-parent ~ .is-top-level,.menu.dropdown .is-dropdown-submenu-parent ~ .is-dropdown-submenu-parent{padding:0 0.46875rem}.menu.dropdown .is-top-level ~ .is-dropdown-submenu-parent .submenu.first-sub,.menu.dropdown .is-dropdown-submenu-parent ~ .is-dropdown-submenu-parent .submenu.first-sub{left:0}.menu.dropdown .is-dropdown-submenu-parent ul{transition:all 150ms cubic-bezier(0.75, 0.01, 0.07, 0.99);display:block;pointer-events:none;margin-left:0.4rem;width:100%}.menu.dropdown .is-dropdown-submenu-parent ul:before{position:absolute;top:-2.8125rem;left:-0.9375rem;right:-0.9375rem;bottom:-0.9375rem;height:auto;width:auto;content:' ';background:#fff;box-shadow:0 0 15px rgba(0,0,0,0.5);transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99);opacity:0;-webkit-transform:translate(0, -0.9375rem) scaleY(0);transform:translate(0, -0.9375rem) scaleY(0);-webkit-transform-origin:0 0;transform-origin:0 0}.menu.dropdown .is-dropdown-submenu-parent ul.has-active:before{top:-4.6875rem}.menu.dropdown .is-dropdown-submenu-parent ul li{opacity:0;transition:all 150ms cubic-bezier(0.75, 0.01, 0.07, 0.99);-webkit-transform:translate(0, -0.9375rem);transform:translate(0, -0.9375rem)}.menu.dropdown .is-dropdown-submenu-parent ul .link--back{position:absolute;top:0;-webkit-transform:translate(0, -180%);transform:translate(0, -180%)}.menu.dropdown .is-dropdown-submenu-parent ul a{font-weight:500;padding:0.2rem 0.2rem 0.2rem  1rem}.menu.dropdown .is-dropdown-submenu-parent ul a:hover{color:#7878B2}.menu.dropdown .is-dropdown-submenu-parent.is-active{z-index:3}.menu.dropdown .is-dropdown-submenu-parent.is-active ul{top:auto;opacity:1;-webkit-transform:translate(0, 0);transform:translate(0, 0);pointer-events:auto}.menu.dropdown .is-dropdown-submenu-parent.is-active ul li{opacity:1;transition:all 450ms cubic-bezier(0.75, 0.01, 0.07, 0.99);-webkit-transform:translate(0, 0);transform:translate(0, 0)}.menu.dropdown .is-dropdown-submenu-parent.is-active ul .link--back{-webkit-transform:translate(0, -200%);transform:translate(0, -200%)}.menu.dropdown .is-dropdown-submenu-parent.is-active ul:before{opacity:1;-webkit-transform:translate(0, 0%) scaleY(1);transform:translate(0, 0%) scaleY(1)}.menu.dropdown .is-dropdown-submenu-parent.is-active>a{z-index:2;box-shadow:0 0 0;border:2px solid transparent;background:none;color:#7878B2;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu.dropdown .is-dropdown-submenu-parent.is-active>a:after{opacity:0;-webkit-transform:translate(0, 100%);transform:translate(0, 100%)}.link--back.link--back.link--back{margin:0}.link--back.link--back.link--back a{background:#F1F1F1;height:2.25rem;line-height:2.25rem;padding-top:0;color:#767676;padding-bottom:0}@media screen and (min-width: 40em){.link--back.link--back.link--back{text-transform:none;letter-spacing:0}.link--back.link--back.link--back a{background:none}}.drilldown-back .link__arrow{width:0.75rem;position:relative;top:0.1875rem;margin-right:0.125rem}.drilldown-back,.link--close,.link--all{display:inline-block !important;margin:0;width:100%}.drilldown-back a,.link--close a,.link--all a{font-weight:700;margin:0}.drilldown-back a:hover,.link--close a:hover,.link--all a:hover{color:#1D0537}.link--close a,.link--all a{font-weight:700 !important}@media screen and (min-width: 40em){.link--close,.link--all{display:none !important}}.link--close{width:30%}.drilldown-back{width:70%}.link--close{position:absolute;top:0;right:0;z-index:10;border-left:1px solid #E3E3E3}.dropdown.menu .is-dropdown-submenu-parent.opens-left .submenu{right:auto;left:0}.tabs{border:none;text-align:center;position:relative}.tabs li{display:block}.tabs.menu.expanded{display:block}@media screen and (min-width: 40em){.tabs.menu.expanded{display:table}.tabs li{display:table-cell}}@media screen and (min-width: 0em) and (max-width: 39.9375em){.tabs li.tabs__viewers-guide{width:100% !important;display:block}}.tabs .tabs-title{overflow:hidden;float:none;width:100%;position:relative}@media screen and (min-width: 40em){.tabs .tabs-title{display:table-cell}}.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{padding-top:1em !important;padding-bottom:1em !important;padding-right:1.6em !important;margin:0}.tabs .tabs-title>a:not('.button'),.tabs .tabs-title .pagination__page-count:not('.button'){padding-left:1.6em}@media screen and (min-width: 40em){.tabs .tabs-title>a,.tabs .tabs-title .pagination__page-count{margin:0 0 0.1875rem}}.tabs .tabs-title>a:before,.tabs .tabs-title>a:after,.tabs .tabs-title .pagination__page-count:before,.tabs .tabs-title .pagination__page-count:after{position:absolute;left:-0.9375rem;right:-0.9375rem;width:auto;content:' ';transition:all 300ms cubic-bezier(0.75, 0.01, 0.07, 0.99)}@media screen and (min-width: 40em){.tabs .tabs-title>a:before,.tabs .tabs-title>a:after,.tabs .tabs-title .pagination__page-count:before,.tabs .tabs-title .pagination__page-count:after{left:0;right:0}}.tabs .tabs-title>a:before,.tabs .tabs-title .pagination__page-count:before{background:#F1F1F1;height:0.0625rem;top:auto;bottom:0px}.tabs .tabs-title>a:after,.tabs .tabs-title .pagination__page-count:after{opacity:0;bottom:0;background:#3F3B93;-webkit-transform:scaleX(0);transform:scaleX(0);height:0.1875rem}.tabs .tabs-title>a .badge,.tabs .tabs-title .pagination__page-count .badge{margin-left:0.46875rem}.tabs .tabs-title>a span,.tabs .tabs-title .pagination__page-count span{margin:0}.tabs .tabs-title>a span .link__arrow,.tabs .tabs-title .pagination__page-count span .link__arrow{top:50%}.tabs .tabs-title>a.button{overflow:visible}.tabs .tabs-title>a.button:after{bottom:-2px}.tabs .tabs-title>a.button:before{display:none}.tabs .tabs__viewers-guide a,.tabs .tabs__viewers-guide.tabs-title>a:focus,.tabs .tabs__next a,.tabs .tabs__next.tabs-title>a:focus,.tabs .tabs__previous a,.tabs .tabs__previous.tabs-title>a:focus,.tabs .tabs__center a,.tabs .tabs__center.tabs-title>a:focus{border:none}.tabs .tabs__viewers-guide a:after,.tabs .tabs__viewers-guide.tabs-title>a:focus:after,.tabs .tabs__next a:after,.tabs .tabs__next.tabs-title>a:focus:after,.tabs .tabs__previous a:after,.tabs .tabs__previous.tabs-title>a:focus:after,.tabs .tabs__center a:after,.tabs .tabs__center.tabs-title>a:focus:after{-webkit-transform:scaleX(0);transform:scaleX(0);opacity:0}@media screen and (min-width: 40em){.tabs .tabs__viewers-guide{position:relative;left:-33.3333333333%}}.tabs .tabs-title.tabs__previous{left:0;display:table-cell}.tabs .tabs-title.tabs__next{display:table-cell}@media screen and (min-width: 40em){.tabs .tabs-title.tabs__next{position:relative;left:33.3333333333%}.tabs .tabs-title.tabs__next a{border-left:none}}.tabs .tabs-title.is-active>a,.tabs .tabs-title>a:focus,.tabs .tabs-title>a:hover{color:#3F3B93 !important;box-shadow:0 0 0 !important;border:none !important}.tabs .tabs-title.is-active>.button,.tabs .tabs-title>.button{color:#fff !important}.tabs .tabs-title.is-active>.button:hover,.tabs .tabs-title>.button:hover{color:#3F3B93 !important}.tabs .tabs-title>a:focus:after,.tabs .tabs-title.is-active>a:after{-webkit-transform:scaleX(1);transform:scaleX(1);opacity:1}.tabs-panel.is-active{padding-top:1.875rem}.tabs__placeholder{display:block;height:1px;width:1px}.pagination__page-count{display:block}.js-off-canvas-exit{z-index:1}.item__label{top:-14px;position:relative;z-index:9999}.label-new,.banner-event{color:#000;background-color:#FF9800;display:block;text-transform:uppercase;max-width:70px;font-size:11px;font-weight:700;letter-spacing:1.5px;text-align:center;padding:5px;margin:0 auto;position:relative}.featured .item__label{position:relative;top:0}.featured .label-new{margin:0}.banner-event{color:#fff;background-color:#96164A;max-width:100%}h4.event,.event.delta,.menu.dropdown li.event{color:#96164A;line-height:1}h4.event-speaker,.event-speaker.delta,.menu.dropdown li.event-speaker,h1.event-speaker,.event-speaker.alpha{font-weight:400}p.event-date{color:#4D4D4D}.overlay-alt:before{background:rgba(150,22,74,0.9)}.overlay-alt .button.button.hollow:focus,.overlay-alt .button.button.hollow:hover{background:rgba(247,220,231,0.3)}.overlay-alt .link--share.link--share--white:hover .icon{fill:#96164A}.share--alt .link--share.link--share--white:hover .icon{fill:#96164A}.single__mast--event .link--with-arrow{color:#96164A}.single__mast--event .link--with-arrow .icon{fill:#96164A}.single__mast--event .link--share:before{border:1px solid #96164A}.single__mast--event .link--share:hover .icon{fill:#fff}.single__mast--event .link--share:hover:after{background:#96164A}.single__mast--event .link--share .icon{fill:#96164A}.single__tabs--event .tabs .tabs-title.is-active a{color:#96164A !important}.single__tabs--event .tabs .tabs-title.is-active a:after{background:#96164A}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX2NvbmZpZy5wcm9qZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiX2NvbmZpZy50eXBvZ3JhcGh5LnNjc3MiLCJfY29uZmlnLmNvbG9ycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiX2NvbmZpZy50cmFuc2l0aW9ucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXgtdmlkZW8uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIl9jb21tb24uZ2xvYmFscy5zY3NzIiwiX2NvbW1vbi5taXhpbnMuc2NzcyIsIl9jb21tb24uaGVscGVycy5zY3NzIiwiX2NvbW1vbi5zcGFjaW5nLnNjc3MiLCJfaWNvbnMuc2NzcyIsIl9jb21wb25lbnRzLmhlYWRlci5zY3NzIiwiX2NvbXBvbmVudHMuZm9vdGVyLnNjc3MiLCJfY29tcG9uZW50cy5sb2dvLnNjc3MiLCJfY29uZmlnLnNpemVzLnNjc3MiLCJfY29tcG9uZW50cy5uYXYuc2NzcyIsIl9jb21wb25lbnRzLnByb2dyZXNzLnNjc3MiLCJfY29tcG9uZW50cy5wYWdlLnNjc3MiLCJfY29tcG9uZW50cy5zaW5nbGUuc2NzcyIsIl9jb21wb25lbnRzLnNlYXJjaC5zY3NzIiwiX2NvbXBvbmVudHMub2ZmY2FudmFzLnNjc3MiLCJfbGlua3Muc2NzcyIsIl9pbWFnZXMuc2NzcyIsIl9mb3Jtcy5zY3NzIiwiX2J1dHRvbnMuc2NzcyIsIl90eXBvZ3JhcGh5Lmdsb2JhbHMuc2NzcyIsIl90eXBvZ3JhcGh5LmhlYWRpbmdzLnNjc3MiLCJfdHlwb2dyYXBoeS5oZWxwZXJzLnNjc3MiLCJfcHJvamVjdC5xdWljay1saW5rcy5zY3NzIiwiX3Byb2plY3QuaXRlbS5zY3NzIiwiX3Byb2plY3QuZmlsdGVycy5zY3NzIiwiX3Byb2plY3QudGFicy5zY3NzIiwiX3Byb2plY3QucGFnaW5hdGlvbi5zY3NzIiwiX3NoYW1lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa05FLDRFQUE0RSxLQVMxRSx1QkFDQSwwQkFDQSw2QkFBK0IsQ0FDaEMsS0FPQyxRQUFVLENBQ1gsMkZBeUJDLGFBQWUsQ0FDaEIsNEJBV0MscUJBQ0EsdUJBQXlCLENBQzFCLHNCQVFDLGFBQ0EsUUFBVSxDQUNYLGtCQVNDLFlBQWMsQ0FDZixFQVVDLDRCQUE4QixDQUMvQixpQkFTQyxTQUFXLENBQ1osWUFVQyx3QkFBMEIsQ0FDM0IsU0FRQyxnQkFBa0IsQ0FDbkIsSUFPQyxpQkFBbUIsQ0FDcEIsVUFRQyxjQUNBLGVBQWlCLENBQ2xCLEtBT0MsZ0JBQ0EsVUFBWSxDQUNiLE1BT0MsYUFBZSxDQUNoQixRQVFDLGNBQ0EsY0FDQSxrQkFDQSx1QkFBeUIsQ0FDMUIsSUFHQyxVQUFZLENBQ2IsSUFHQyxjQUFnQixDQUNqQixJQVVDLFFBQVUsQ0FDWCxlQU9DLGVBQWlCLENBQ2xCLE9BVUMsZUFBaUIsQ0FDbEIsR0FPQyx1QkFDQSxRQUFVLENBQ1gsSUFPQyxhQUFlLENBQ2hCLGtCQVVDLGlDQUNBLGFBQWUsQ0FDaEIsc0NBc0JDLGNBQ0EsYUFDQSxRQUFVLENBQ1gsT0FPQyxnQkFBa0IsQ0FDbkIsY0FXQyxtQkFBcUIsQ0FDdEIsMEVBY0MsMEJBQ0EsY0FBZ0IsQ0FDakIsc0NBUUMsY0FBZ0IsQ0FDakIsaURBUUMsU0FDQSxTQUFXLENBQ1osTUFRQyxrQkFBb0IsQ0FDckIsMkNBWUMsc0JBQ0EsU0FBVyxDQUNaLGdHQVVDLFdBQWEsQ0FDZCxxQkFRQyw2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d0JBQStCLENBOUozQyxvRUFvS1ksNEJBQUEsQUFDQSxvQkFBQSxTQUFVLENBQ2Isc0JBT0Qsb0JwRDdGYyxDb0Q4RmpCLG1CQUlELGNBQ0EsV0FDQSxTQUFVLENBQ2Isd0JDcExHLGFBQWMsQ0FDakIsb0JDREcsU0FBVSxDQUNiLGFBR0csVUFDQSxrQkFDQSxZQUFjLENBQ2pCLHlCQUdBLFdBQ0EseUJBQ0EsY0FDQSx5QkFDQSxlQUNBLGVBQ0EsZ0JBQ0EscUJBQ0Esa0JBQ0EsWUFDQSxjQUNBLGlCQUFrQixDQUNsQix1QkFHRyxrQkFDQSxLQUFNLENBQ1QscUJBR0EsUUFBVSxDQUNWLGNBR0EsV0FDQSx5QkFDQSxjQUFlLENBQ2YsOENBR0EsY0FDQSxhQUFjLENBQ2QsNEdBR0EsZUFBZ0IsQ0FDaEIsYUFHQSxhcEQvQzBCLENvRGdEMUIsb0JBSUMsOEJwRC9DYyxDb0Q2Q2hCLGtGQVFhLGdDcERwRFEsQ29ENENyQix5REFhRSxZcEQxRGMsQ29EMkRkLHdEQVVlLFlwRHJFRCxDb0RzRUYsdUNBYWIsYXBEbkZlLENvRDZFaEIsNkNBR0UsWXBEaEZjLENvRGlGZCx5Q0FTVyx3QnBEMUZHLENvRHVGaEIsOENBT0csU3BEdEdVLENvRCtGYiw4Q0FVRSxrQnBEakdjLENvRHVGaEIsd0NBY0UsWXBEckdjLENvRHNHZCxtREFJRCx3QkFBeUIsQ0FEMUIseURBR0Usa0JwRDVHYyxDb0Q2R2QiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgQ29sb3JWYXJpYWJsZSwgUXVhbGlmeWluZ0VsZW1lbnQsIFZlbmRvclByZWZpeFxuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBQcmltYXJ5IGNvbG9yIGZvciBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGxpa2UgbGlua3MgYW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcmltYXJ5LWNvbG9yOiAjMjE5OWU4ICFkZWZhdWx0O1xuXG4vLy8gU2Vjb25kYXJ5IGNvbG9yLCB1c2VkIHdpdGggY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgdGhlIGAuc2Vjb25kYXJ5YCBjbGFzcy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlY29uZGFyeS1jb2xvcjogIzc3NyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgcG9zaXRpdmUgc3RhdHVzIG9yIGFjdGlvbiwgdXNlZCB3aXRoIHRoZSBgLnN1Y2Nlc3NgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgY2F1dGlvbiBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAud2FybmluZ2AgY2xhc3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gaW5kaWNhdGUgYSBuZWdhdGl2ZSBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAuYWxlcnRgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kYWxlcnQtY29sb3I6ICNlYzU4NDAgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgbWFwIHVzZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGNvbG9ycywgdG8gZ2VuZXJhdGUgQ1NTIGNsYXNzZXMgd2l0aCBsZXNzIGNvZGVcbiRmb3VuZGF0aW9uLWNvbG9yczogKFxuICBwcmltYXJ5OiAkcHJpbWFyeS1jb2xvcixcbiAgc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LWNvbG9yLFxuICBzdWNjZXNzOiAkc3VjY2Vzcy1jb2xvcixcbiAgYWxlcnQ6ICRhbGVydC1jb2xvcixcbiAgd2FybmluZzogJHdhcm5pbmctY29sb3IsXG4pICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIElkU2VsZWN0b3JcbiAgI21hcF9jYW52YXMsXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLyoqXG4gICAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gICAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAgICovXG5cbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICAgKiBhbmQgRmlyZWZveC5cbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAgICovXG5cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIGhncm91cCxcbiAgbWFpbixcbiAgbWVudSxcbiAgbmF2LFxuICBzZWN0aW9uLFxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuXG4gIGF1ZGlvLFxuICBjYW52YXMsXG4gIHByb2dyZXNzLFxuICB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAgICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAgICovXG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAgICovXG5cbiAgW2hpZGRlbl0sXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogTGlua3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICAgKi9cblxuICBhOmFjdGl2ZSxcbiAgYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5cbiAgZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuXG4gIHN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgcHJlLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cblxuICAvKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqL1xuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICBidXR0b24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICAgKi9cblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gICAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICAgKi9cblxuICBidXR0b24sXG4gIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICovXG5cbiAgYnV0dG9uW2Rpc2FibGVkXSxcbiAgaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICAgKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG5cbiAgLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiJGl0ZW0taGVpZ2h0OiByZW0tY2FsYygzNTApO1xuJGdsb2JhbC1zaGFkb3c6IDAgMCA1cHggcmdiYSgkYmxhY2ssIDAuMyk7XG5cblxuLy8gRm91bmRhdGlvbiBPdmVyaWRlc1xuXG4kaHItd2lkdGg6IDEwMCU7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRoci1tYXJnaW46IDAgYXV0bztcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kZ2xvYmFsLXJhZGl1czogM3B4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLWxpZ2h0O1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtcGFkZGluZzogMC41ZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxNS4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiRkcmlsbGRvd24tYXJyb3dzOiBmYWxzZTtcbi8vICRkcmlsbGRvd24tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1wYWRkaW5nOiAxZW0gMS42ZW07XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiRidXR0b24tbWFyZ2luOiAwO1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiByZW0tY2FsYygkemV0YSksXG4gIGxhcmdlOiAxLjFyZW0sXG4pO1xuXG4vLyAxNy4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IGZhbHNlO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDE3MHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAwO1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kaGVscHRleHQtY29sb3I6ICRjb2xvci10ZXh0LXNlY29uZGFyeTtcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBub3JtYWw7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1jb2xvcjogJGNvbG9yLXRleHQtcHJpbWFyeTtcbiRpbnB1dC1jb2xvcjogJGNvbG9yLXRleHQtcHJpbWFyeTtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDAuN3JlbTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LWV4cGFuZC1tYXg6IDY7XG5cbi8vIDMxLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJHdoaXRlO1xuJHRhYi1ib3JkZXI6IHRyYW5zcGFyZW50O1xuJHRhYi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuJHRhYi1jb250ZW50LWJvcmRlcjogdHJhbnNwYXJlbnQ7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMDtcblxuLy8gMjMuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZTogMzUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRkYXJrLWdyYXk7XG4kb2ZmY2FudmFzLXppbmRleDogLTE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAkdGltaW5nO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogJGVhc2luZztcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjkpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAwIDtcblxuLy8gMTguIEZsZXggVmlkZW9cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4dmlkZW8tcGFkZGluZy10b3A6IDA7XG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IDA7XG4kZmxleHZpZGVvLXJhdGlvOiA0IGJ5IDM7XG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDk7XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4kLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiYXNlOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJGJlaGF2aW9yOiAtemYtZ2V0LW9wdGlvbnMoJGJlaGF2aW9yLCBuZXN0IGNvbGxhcHNlKTtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgbWFwLWdldCgkYmVoYXZpb3IsIG5lc3QpIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIG1hcC1nZXQoJGJlaGF2aW9yLCBjb2xsYXBzZSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxuLy8vICAgLSBgbnVsbGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IG51bGwpIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgJGZsZXg6IDEgMSAwcHg7XG5cbiAgQGlmICRjb2x1bW5zID09IHNocmluayB7XG4gICAgJGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjZSBiZXR3ZWVuIGNvbHVtbnMsIGFkZGVkIGFzIGEgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogbnVsbCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpZiAkZ3V0dGVyICE9IG51bGwge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRndXR0ZXIgaW4gJGdyaWQtY29sdW1uLXJlc3BvbnNpdmUtZ3V0dGVyIHtcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IG51bGwgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgY29sdW1ucyB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtZ3JpZC1yb3ctYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLidcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmICYge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuXG4gICAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gICAgLnJvdyAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICQtemYtc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAvLyBTaXppbmcgKGV4cGFuZClcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcbiAgICAgICAgLnJvdy4jeyQtemYtc2l6ZX0tdW5zdGFjayB7XG4gICAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICAkZ3V0dGVyOiBudWxsO1xuXG4gICAgICBAaWYgJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXI7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRncmlkLWNvbHVtbi1yZXNwb25zaXZlLWd1dHRlciwgJC16Zi1zaXplKTtcbiAgICAgIH1cbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcik7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgbGVmdCkge1xuICAgIC5yb3cuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdy1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAucm93LmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3ctYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuY29sdW1uLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXG4gICAgQGV4dGVuZCAuY29sdW1uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJGJlaGF2aW9yOiAtemYtZ2V0LW9wdGlvbnMoJGJlaGF2aW9yLCBuZXN0IGNvbGxhcHNlKTtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgbWFwLWdldCgkYmVoYXZpb3IsIG5lc3QpIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIG1hcC1nZXQoJGJlaGF2aW9yLCBjb2xsYXBzZSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfG51bGx9ICRndXR0ZXIgW251bGxdIC0gR3V0dGVyIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyB0aGUgbWFyZ2lucy4gU2V0IHRvIGBudWxsYCB0byByZWZlciB0byB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyOiBudWxsKSB7XG4gIEBpZiAkZ3V0dGVyICE9IG51bGwge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKCRndXR0ZXIpIC8gMiAqIC0xO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3JpZC1jb2x1bW4tcmVzcG9uc2l2ZS1ndXR0ZXIge1xuICAgICAgJG1hcmdpbjogcmVtLWNhbGMoJHZhbHVlKSAvIDIgKiAtMTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiBzbWFsbCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRuZXh0LWJwOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuXG4gICAgICAgIEBpZiAkbmV4dC1icCA9PSBudWxsIHtcbiAgICAgICAgICAkYnAtbWF4OiBudWxsO1xuICAgICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IHRoZSBtZWRpYSBxdWVyeSBcIiN7JHZhbH1cIiBjYW5ub3QgYmUgdXNlZCBiZWNhdXNlICN7JGJwfSBpcyB0aGUgbGFyZ2VzdCBicmVha3BvaW50Lic7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRicC1tYXg6ICRuZXh0LWJwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiB0aGUgaW5wdXQgaXMgXCIwIHVwXCJcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ09ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiAwO1xuXG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMsIHN1YnRyYWN0IHRoZSBicmVha3BvaW50IHZhbHVlIGJ5IG9uZSBcInBpeGVsXCIsIG9yIDEvMTZlbS5cbiAgICAgIEBpZiAkbmFtZWQge1xuICAgICAgICAkbWF4OiAkYnAtbWF4O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbWF4OiAkYnA7XG4gICAgICB9XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiIGJ1dCBkb24ndCBcInNtYWxsIGRvd25cIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXG4gICR2YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG5cbiAgLy8gR2hldHRvIGZvciBsb29wXG4gICRpOiAxO1xuICAkZm91bmQ6IGZhbHNlO1xuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcbiAgICBAaWYgJGZvdW5kID09IGZhbHNlIHtcbiAgICAgIEBpZiAoJGtleSA9PSAkdmFsKSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH1cbiAgICAgICRpOiAkaSArIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgJGkgPiBsZW5ndGgoJG1hcCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcbiAgfVxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwLiBJZiB0aGUgY29uZmlnIG1hcCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuIElmIHRoZSBjb25maWcgbWFwIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBJbnB1dCBjb25maWcgbWFwLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vIExlZ2FjeSBicmVha3BvaW50IHZhcmlhYmxlc1xuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuMlxuJHNtYWxsLXVwOiBudWxsO1xuJHNtYWxsLW9ubHk6IG51bGw7XG4kbWVkaXVtLXVwOiBudWxsO1xuJG1lZGl1bS1vbmx5OiBudWxsO1xuJGxhcmdlLXVwOiBudWxsO1xuJGxhcmdlLW9ubHk6IG51bGw7XG4keGxhcmdlLXVwOiBudWxsO1xuJHhsYXJnZS1vbmx5OiBudWxsO1xuJHh4bGFyZ2UtdXA6IG51bGw7XG4keHhsYXJnZS1vbmx5OiBudWxsO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpZiAkZ3V0dGVyICE9IG51bGwge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRndXR0ZXIgaW4gJGdyaWQtY29sdW1uLXJlc3BvbnNpdmUtZ3V0dGVyIHtcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcblxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcjogJGd1dHRlcik7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT7igJQ8aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBvZiBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDI0LFxuICAgICdoMic6IDIwLFxuICAgICdoMyc6IDE5LFxuICAgICdoNCc6IDE4LFxuICAgICdoNSc6IDE3LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0MCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5laGVpZ2h0O1xuXG4gICAgc21hbGwge1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc2l6ZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgICAjeyRoZWFkZXJ9IHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyIHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICB9XG5cbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiJGZvbnQtcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1zZWNvbmRhcnk6IHNhbnMtc2VyaWY7XG5cbiRmb250LXdlaWdodC1oZWF2eSA6IDcwMDtcbiRmb250LXdlaWdodC1ib2xkIDogNTAwO1xuJGZvbnQtd2VpZ2h0LW5vcm1hbCA6IDQwMDtcblxuJG1pbGxpIDogcmVtLWNhbGMoMTQpO1xuJG1pY3JvIDogcmVtLWNhbGMoMTIpO1xuXG4kYWxwaGE6IDM1O1xuJGJldGE6IDI0O1xuJGdhbW1hOiAxODtcbiRkZWx0YTogMTU7XG4kZXBzaWxvbjogMTM7XG4kemV0YTogMTQ7XG4kYmFzZTogMTQ7XG5cbi8vRm91bmRhdGlvbiBPdmVyaWRlc1xuXG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6ICRmb250LXdlaWdodC1ib2xkO1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtaGVhdnk7XG4kaGVhZGVyLXNpemVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogMjQsXG4gICAgJ2gyJzogMjAsXG4gICAgJ2gzJzogMTYsXG4gICAgJ2g0JzogMTUsXG4gICAgJ2g1JzogMTMsXG4gICAgJ2g2JzogMTQsXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6IDM1LFxuICAgICdoMic6IDI0LFxuICAgICdoMyc6IDE4LFxuICAgICdoNCc6IDE1LFxuICAgICdoNSc6IDEzLFxuICAgICdoNic6IDE0LFxuICApLFxuKTtcbiIsIiR3aGl0ZSA6ICNmZmY7XG4kYmxhY2s6ICMwMDAwMDA7XG4kY29sb3ItdGV4dC1zZWNvbmRhcnk6Izc2NzY3NjtcbiRjb2xvci10ZXh0LXByaW1hcnk6IzRENEQ0RDtcbiRwcmltYXJ5LWNvbG9yLWxpZ2h0OiAjNzg3OEIyO1xuJHByaW1hcnktY29sb3ItZGFyazogIzFEMDUzNztcbiRjb2xvci1pbnB1dC1wbGFjZWhvbGRlcjogIzkwOTA5MDtcbiRvcmFuZ2U6ICNGRjk4MDA7XG4kbWFyb29uOiAjOTYxNjRBO1xuJG1hcm9vbi1saWdodDojRjdEQ0U3O1xuXG4vKipcbiAqIEZvdW5kYXRpb24gT3ZlcnJpZGVzXG4gKi9cblxuJGxpZ2h0LWdyYXk6ICNGN0Y3Rjc7XG4kbWVkaXVtLWdyYXk6ICNGMUYxRjE7IC8vdGhpcyBpcyBub3QgbWVkaXVtIGdyZXlcbiRkYXJrLWdyYXk6ICNFM0UzRTM7IC8vdGhpcyBpcyBub3QgZGFyayBncmV5XG4kcHJpbWFyeS1jb2xvcjogIzNGM0I5MztcbiRhbGVydC1jb2xvcjogI2VjNTg0MDtcbiRzZWNvbmRhcnktY29sb3I6ICR3aGl0ZTtcblxuLyoqXG4gKiBUaGVtZSBcbiAqL1xuXG4kY29sb3ItYW5jaG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRjb2xvci1hbmNob3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yLWRhcms7XG4kY29sb3ItYnV0dG9uLWljb24tYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29sb3ItaWNvbi1maWxsOiAkcHJpbWFyeS1jb2xvcjtcblxuJGNvbG9yLXNlYXJjaC1zaW5nbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItbGlnaHQ7XG4vKipcbiAqIFJlc291cmNlc1xuICovXG5cbiRjb2xvci1pdGVtLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjb2xvci1pdGVtLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkcHJpbWFyeS1jb2xvciwgMC45KTtcblxuJGNvbG9yLWl0ZW0tb3ZlcmxheS1iYWNrZ3JvdW5kLWFsdDogcmdiYSgkbWFyb29uLCAwLjkpO1xuXG4vKipcbiAqIE1haW5cbiAqL1xuXG4kY29sb3ItbWFpbi1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG5cbi8qKlxuICogTWFzdFxuICovXG5cbiRjb2xvci1tYXN0LWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG5cbi8qKlxuICogUXVpY2sgTGlua3NcbiAqL1xuJGNvbG9yLWJ1dHRvbi1pY29uLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvbG9yLWJ1dHRvbi1pY29uLWJvcmRlci1yaWdodDogJGRhcmstZ3JheTtcblxuLyoqXG4gKiBGb290ZXIgXG4gKi9cbiRjb2xvci1mb290ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItZGFyaztcblxuXG5cbi8qKlxuICogRm91bmRhdGlvbiBPdmVycmlkZXNcbiAqL1xuXG4kYnV0dG9uLWNvbG9yLWFsdDogJHByaW1hcnktY29sb3I7XG4kYm9keS1iYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi1iYWNrZ3JvdW5kO1xuJGJvZHktZm9udC1jb2xvcjogJGNvbG9yLXRleHQtcHJpbWFyeTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGNvbG9yLWFuY2hvcjsgXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yLWxpZ2h0O1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICdzbWFsbCcge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vL1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBhbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucywgaWYgdGhlIGJhY2tncm91bmQgaXMgbGlnaHQuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICMwMDAgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBmb3JlZ3JvdW5kKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IC0yMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTUwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgICYudGlueSAgICAgeyBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgdGlueSk7IH1cbiAgICAmLnNtYWxsICAgIHsgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIHNtYWxsKTsgfVxuICAgICYubGFyZ2UgICAgeyBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgbGFyZ2UpOyB9XG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tY29sb3JzIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLWNvbG9ycyB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB0b3A6IDAuMmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiBmbG9vcigoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpKTtcblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JlZCgkY29sb3IpfSwgI3tncmVlbigkY29sb3IpfSwgI3tibHVlKCRjb2xvcil9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDMyIDI0XCI+PHBvbHlnb24gcG9pbnRzPVwiMCwwIDMyLDAgMTYsMjRcIiBzdHlsZT1cImZpbGw6ICN7JHJnYn1cIj48L3BvbHlnb24+PC9zdmc+Jyk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNTAlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUpIHtcbiAgJG1hcDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJG1hcDogbWFwLXJlbW92ZSgkbWFwLCBzbWFsbCk7XG4gIH1cblxuICBAZWFjaCAkc2l6ZSBpbiAkbWFwIHtcbiAgICAkLXpmLXNpemU6ICRzaXplICFnbG9iYWw7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdsYWJlbCddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBtYXJnaW46IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMSU7XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWRcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjEpO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxLzE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxLzE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiAkbG93ZXItYm91bmQtc2l6ZSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9IHNtYWxsIHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldCBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLXNpemU6IDJlbSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gICN7JHh9OiAkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw7XG4gICN7JHl9OiAkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsO1xuICBmb250LXNpemU6ICRjbG9zZWJ1dHRvbi1zaXplO1xuICBsaW5lLWhlaWdodDogJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgfVxuICB9XG59XG4iLCIkZWFzaW5nOiBjdWJpYy1iZXppZXIoMC43NSwgMC4wMSwgMC4wNywgMC45OSk7XG4kdGltaW5nOiAzMDBtcztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuICAgICY6bm90KC52ZXJ0aWNhbCkge1xuXG4gICAgfVxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICYuZmlyc3Qtc3ViIHtcbiAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgICAgICN7JGdsb2JhbC1yaWdodH06IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMTBweDtcbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgJi5pcy1kb3duLWFycm93IGEge1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogcmVtLWNhbGMoMnB4KSArIHJlbS1jYWxjKGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgdG9wKSk7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgIH1cblxuICAgICAgJi5pcy1sZWZ0LWFycm93ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICYuaXMtcmlnaHQtYXJyb3cgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWxlZnQtYXJyb3cub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuaXMtcmlnaHQtYXJyb3cub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgdG9wOiAxMDAlO1xuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTZWxlY3RvckRlcHRoXG4gICAgJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJixcbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtdmlkZW9cbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIHVzZWQgdG8gY3JlYXRlIGEgNDozIGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMyAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSAxNjo5IGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSBwZXJjZW50YWdlIGhlaWdodCB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhZGRpbmcgaW4gYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIGBwYWRkaW5nLWJvdHRvbWAgcGFyYW1ldGVyIG9mIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG5AZnVuY3Rpb24gZmxleC12aWRlbygkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG5cbi8vLyBDcmVhdGVzIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gWyRmbGV4dmlkZW8tcmF0aW9dIC0gUmF0aW8gdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRmbGV4dmlkZW8tcmF0aW8pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xuXG4gICAgJi53aWRlc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XG4gICAgfVxuXG4gICAgJi52aW1lbyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgLy8gTGlzdCBpdGVtcyBhcmUgdGFibGUgY2VsbCB0byBhbGxvdyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gID4gbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG5AbWl4aW4gbWVudS1zaW1wbGUge1xuICBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRnbG9iYWwtcmlnaHQpO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICA+IGltZyxcbiAgICAgID4gaSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICA+IGltZyxcbiAgICAgID4gaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICA+IGltZyxcbiAgICAgID4gaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0byAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIE9yaWVudGF0aW9uXG4gICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGhcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuXG4gICAgICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LXRleHQge1xuICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtemluZGV4OiAtMSAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIG1lbnUgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgYm9keS5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHRvIHBsYWNlIHVuZGVyIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhpcyBzaGFkb3cgb3ZlcmxhcHMgdGhlIG9mZi1jYW52YXMgbWVudXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG4gIC8vIEV4dHJhIHByb3BlcnRpZXMgbmVlZGVkIG9uIDxodG1sPiBhbmQgPGJvZHk+IHRvIG1ha2Ugb2ZmLWNhbnZhcyB3b3JrXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBDb250YWluZXIgZm9yIHBhZ2UgY29udGVudFxuICAub2ZmLWNhbnZhcy1jb250ZW50LFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1haW5jb250ZW50LXNoYWRvdykge1xuICAgICAgYm94LXNoYWRvdzogJG1haW5jb250ZW50LXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBDbGljay10by1leGl0IG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBtZW51LlxuQG1peGluIG9mZi1jYW52YXMtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQ7XG4gIHotaW5kZXg6ICRvZmZjYW52YXMtemluZGV4O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRzaXplOiAkb2ZmY2FudmFzLXNpemUsXG4gICRmaXhlZDogZmFsc2Vcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG5cbiAgLy8gR2VuZXJhdGVzIGFuIG9wZW4gc3RhdGUgY2xhc3MgdGhhdCBtYXRjaGVzIHRoZSB3aWR0aCBvZiB0aGUgbWVudVxuICBAYXQtcm9vdCB7XG4gICAgLmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbbGVmdF0gLSBQb3NpdGlvbiBvZiB0aGUgb2ZmLWNhbnZhcyBtZW51IGJlaW5nIHJldmVhbGVkLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuICAkcG9zaXRpb246IGxlZnRcbikge1xuICAjeyRwb3NpdGlvbn06IDA7XG4gIHotaW5kZXg6IGF1dG87XG5cbiAgQGlmICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICAmIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgJi5wb3NpdGlvbi1sZWZ0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQpOyB9XG4gICAgJi5wb3NpdGlvbi1yaWdodCAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0KTsgfVxuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgbWVudSBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSBzbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gYWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJHRhYi1tYXJnaW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kO1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIHtcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJHRhYi1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgYCR0aHJlc2hvbGRgIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHllcyBbJGJsYWNrXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBsaWdodC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XG4gIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG4iLCIqLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwsXG5ib2R5LFxuYnV0dG9uIHtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuYm9keSB7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZCgpO1xufVxuXG4ubWFpbiB7XG4gICAgbWluLWhlaWdodDogcmVtLWNhbGMoNDAwKTtcbn1cblxuLmNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG59XG5cbi5jb250YWluZXItLWFyY2hpdmUge1xuICAgIHBhZGRpbmctdG9wOiRiYXNlLXNpemU7XG59XG5cbkBpbmNsdWRlIGNvbG9yLXNldHVwKCRjb2xvcm5hbWU6IFwicHJpbWFyeVwiLCAkY29sb3I6ICRwcmltYXJ5LWNvbG9yKTtcbkBpbmNsdWRlIGNvbG9yLXNldHVwKCRjb2xvcm5hbWU6IFwid2hpdGVcIiwgJGNvbG9yOiAkd2hpdGUpO1xuIiwiLyoqXG4gKiBXZSBoYXZlIGEgbWl4aW4gdG8gZ2VuZXJhdGUgb3VyIGJhY2tncm91bmQgYW5kIGJvcmRlciBjb2xvcnMuXG4gKi9cblxuQG1peGluIGNvbG9yLXNldHVwKCRjb2xvcm5hbWU6IFwiYmxhY2tcIiwgJGNvbG9yOiAkYmxhY2spIHtcbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kXG4gICAgICovXG4gICAgLmJhY2tncm91bmQtLSN7JGNvbG9ybmFtZX0gICAgICAgIHsgYmFja2dyb3VuZDogI3skY29sb3J9ICFpbXBvcnRhbnQgIH1cblxuXG4gICAgLyoqXG4gICAgICogQm9yZGVyc1xuICAgICAqL1xuICAgIC5ib3JkZXItLSN7JGNvbG9ybmFtZX0gICAgICAgeyBib3JkZXItY29sb3I6I3skY29sb3J9ICB9XG4gICAgLmJvcmRlci1yaWdodC0tI3skY29sb3JuYW1lfSAgICAgICB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI3skY29sb3J9ICB9XG4gICAgLmJvcmRlci1sZWZ0LS0jeyRjb2xvcm5hbWV9ICAgICAgIHsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICN7JGNvbG9yfSAgfVxuICAgIC5ib3JkZXItdG9wLS0jeyRjb2xvcm5hbWV9ICAgICAgIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI3skY29sb3J9ICB9XG4gICAgLmJvcmRlci1ib3R0b20tLSN7JGNvbG9ybmFtZX0gICAgICAgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjeyRjb2xvcn0gIH1cblxuXG4gICAgLyoqXG4gICAgICogQ29sb3JcbiAgICAgKi9cbiAgICAuY29sb3ItLSN7JGNvbG9ybmFtZX0gICAgICAgeyBjb2xvcjojeyRjb2xvcn0gIH1cbiAgICAuZmlsbC0tI3skY29sb3JuYW1lfSAgICAgICB7IGZpbGw6I3skY29sb3J9ICAhaW1wb3J0YW50O31cblxufVxuXG4vLyBjZW50ZXIgdmVydGljYWxseSBhbmQvb3IgaG9yaXpvbnRhbGx5IGFuIGFic29sdXRlIHBvc2l0aW9uZWQgZWxlbWVudFxuQG1peGluIGNlbnRlcigkeHk6eHkpIHtcbiAgICBAaWYgJHh5ID09IHh5IHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9IEBlbHNlIGlmICR4eSA9PSB4IHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfSBAZWxzZSBpZiAkeHkgPT0geSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbn1cblxuLy8gTWl4aW4gdG8gY29uc3RyYWluIGVsZW1lbnRzXG5AbWl4aW4gY29udGFpbmVyKCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRkb3VibGUtc2l6ZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGRvdWJsZS1zaXplO1xuICAgIH1cblxufVxuXG5cblxuLy8gTWl4aW4gdG8gc2hvdyBhIGJhc2VsaW5lIGdyaWRcbi8vIG9ubHkgdmlzaWJsZSB3aGVuIGJvZHkgaGFzICdkZWJ1ZycgY2xhc3NcbkBtaXhpbiBiYXNlbGluZS1ncmlkKCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogOTtcblxuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuMTUpIDk1JSwgcmdiYSgwLCAwLCAwLCAwLjE1KSAxMDAlKTtcblxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMjZweDtcbiAgICB9XG5cbiAgICAmLmRlYnVnOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cblxuQG1peGluIGxpbmUoJHNob3duOiB0cnVlLCAkcG9zaXRpb246Ym90dG9tLCAkY2VudGVyZWQ6IHRydWUsICRjb2xvcjogJHdoaXRlLCAkd2lkdGg6ICRoYWxmLXNpemUpIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICBoZWlnaHQ6MXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiRjb2xvcjtcbiAgICAgICAgd2lkdGg6JHdpZHRoO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDonJztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIHRyYW5zZm9ybTpzY2FsZVgoMCk7XG5cbiAgICAgICAgQGlmICRzaG93biB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06c2NhbGVYKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRjZW50ZXJlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjZW50ZXIoeCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwKSBzY2FsZVgoMCk7XG5cbiAgICAgICAgICAgIEBpZiAkc2hvd24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMCkgc2NhbGVYKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICAgICAgdG9wOmF1dG87XG4gICAgICAgICAgICBib3R0b206JGhhbGYtc2l6ZS8yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiRjb2xvcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgICAgICBAaWYgJGNlbnRlcmVkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDApIHNjYWxlWCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLm1ha2UtY2VudGVyIHsgZGlzcGxheTpibG9jazttYXJnaW46YXV0bzt9XG4ubWFrZS1ibG9jayB7IGRpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt9XG5cbi5iZyB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcbn1cblxuLnB1c2gtaGFsZi0tb2ZmLWxlZnQge1xuICAgIGxlZnQ6LSRoYWxmLXNpemU7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG59XG5cblxuLmhhcmQtLXNtYWxsIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgcGFkZGluZzowO1xuICAgIH1cbn1cblxuLnNob3ctZm9yLXhsYXJnZSB7XG4gICAgQGluY2x1ZGUgc2hvdy1mb3IoeGxhcmdlKTtcbn1cblxuLmFsaWduLXJpZ2h0IHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4iLCIvKipcbiAqIEFkZC9yZW1vdmUgbWFyZ2luc1xuICovXG4ucHVzaCAgICAgICAgICAgeyBtYXJnaW46ICAgICAgICRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtLXRvcCAgICAgIHsgbWFyZ2luLXRvcDogICAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5wdXNoLS1yaWdodCAgICB7IG1hcmdpbi1yaWdodDogJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC0tYm90dG9tICAgeyBtYXJnaW4tYm90dG9tOiRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtLWxlZnQgICAgIHsgbWFyZ2luLWxlZnQ6ICAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5wdXNoLS1lbmRzICAgICB7IG1hcmdpbi10b3A6ICAgJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtLXNpZGVzICAgIHsgbWFyZ2luLXJpZ2h0OiAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OiAgJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLWhhbGYgICAgICAgICAgeyBtYXJnaW46ICAgICAgICRoYWxmLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tdG9wICAgICB7IG1hcmdpbi10b3A6ICAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC1oYWxmLS1yaWdodCAgIHsgbWFyZ2luLXJpZ2h0OiAkaGFsZi1zaXplICFpbXBvcnRhbnQ7IH1cbi5wdXNoLWhhbGYtLWJvdHRvbSAgeyBtYXJnaW4tYm90dG9tOiRoYWxmLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tbGVmdCAgICB7IG1hcmdpbi1sZWZ0OiAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC1oYWxmLS1lbmRzICAgIHsgbWFyZ2luLXRvcDogICAkaGFsZi1zaXplICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206JGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC1oYWxmLS1zaWRlcyAgIHsgbWFyZ2luLXJpZ2h0OiAkaGFsZi1zaXplICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OiAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLWRvdWJsZSAgICAgICAgICB7IG1hcmdpbjogICAgICAgJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5wdXNoLWRvdWJsZS0tdG9wICAgICAgeyBtYXJnaW4tdG9wOiAgICRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC1kb3VibGUtLXJpZ2h0ICAgIHsgbWFyZ2luLXJpZ2h0OiAkZG91YmxlLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtZG91YmxlLS1ib3R0b20gICB7IG1hcmdpbi1ib3R0b206JGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5wdXNoLWRvdWJsZS0tbGVmdCAgICAgeyBtYXJnaW4tbGVmdDogICRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4ucHVzaC1kb3VibGUtLWVuZHMgICAgIHsgbWFyZ2luLXRvcDogICAkZG91YmxlLXNpemUgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTokZG91YmxlLXNpemUgIWltcG9ydGFudDsgfVxuLnB1c2gtZG91YmxlLS1zaWRlcyAgICB7IG1hcmdpbi1yaWdodDogJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OiAgJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IH1cblxuXG4uZmx1c2ggICAgICAgICAgeyBtYXJnaW46ICAgICAgIDAgIWltcG9ydGFudDsgfVxuLmZsdXNoLS10b3AgICAgIHsgbWFyZ2luLXRvcDogICAwICFpbXBvcnRhbnQ7IH1cbi5mbHVzaC0tcmlnaHQgICB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4uZmx1c2gtLWJvdHRvbSAgeyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgfVxuLmZsdXNoLS1sZWZ0ICAgIHsgbWFyZ2luLWxlZnQ6ICAwICFpbXBvcnRhbnQ7IH1cbi5mbHVzaC0tZW5kcyAgICB7IG1hcmdpbi10b3A6ICAgMCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgfVxuLmZsdXNoLS1zaWRlcyAgIHsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OiAgMCAhaW1wb3J0YW50OyB9XG5cblxuLyoqXG4gKiBBZGQvcmVtb3ZlIHBhZGRpbmdzXG4gKi9cbi5zb2Z0ICAgICAgICAgICB7IHBhZGRpbmc6ICAgICAgICRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtLXRvcCAgICAgIHsgcGFkZGluZy10b3A6ICAgJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC0tcmlnaHQgICAgeyBwYWRkaW5nLXJpZ2h0OiAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5zb2Z0LS1ib3R0b20gICB7IHBhZGRpbmctYm90dG9tOiRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtLWxlZnQgICAgIHsgcGFkZGluZy1sZWZ0OiAgJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC0tZW5kcyAgICAgeyBwYWRkaW5nLXRvcDogICAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiRiYXNlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtLXNpZGVzICAgIHsgcGFkZGluZy1yaWdodDogJGJhc2Utc2l6ZSAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6ICAkYmFzZS1zaXplICFpbXBvcnRhbnQ7IH1cblxuLnNvZnQtaGFsZiAgICAgICAgICAgeyBwYWRkaW5nOiAgICAgICAkaGFsZi1zaXplICFpbXBvcnRhbnQ7IH1cbi5zb2Z0LWhhbGYtLXRvcCAgICAgIHsgcGFkZGluZy10b3A6ICAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1oYWxmLS1yaWdodCAgICB7IHBhZGRpbmctcmlnaHQ6ICRoYWxmLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtaGFsZi0tYm90dG9tICAgeyBwYWRkaW5nLWJvdHRvbTokaGFsZi1zaXplICFpbXBvcnRhbnQ7IH1cbi5zb2Z0LWhhbGYtLWxlZnQgICAgIHsgcGFkZGluZy1sZWZ0OiAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1oYWxmLS1lbmRzICAgICB7IHBhZGRpbmctdG9wOiAgICRoYWxmLXNpemUgIWltcG9ydGFudDsgcGFkZGluZy1ib3R0b206JGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1oYWxmLS1zaWRlcyAgICB7IHBhZGRpbmctcmlnaHQ6ICRoYWxmLXNpemUgIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OiAgJGhhbGYtc2l6ZSAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LWRvdWJsZSAgICAgICAgICAgeyBwYWRkaW5nOiAgICAgICAkZG91YmxlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtZG91YmxlLS10b3AgICAgICB7IHBhZGRpbmctdG9wOiAgICRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1kb3VibGUtLXJpZ2h0ICAgIHsgcGFkZGluZy1yaWdodDogJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5zb2Z0LWRvdWJsZS0tYm90dG9tICAgeyBwYWRkaW5nLWJvdHRvbTokZG91YmxlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtZG91YmxlLS1sZWZ0ICAgICB7IHBhZGRpbmctbGVmdDogICRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1kb3VibGUtLWVuZHMgICAgIHsgcGFkZGluZy10b3A6ICAgJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC1kb3VibGUtLXNpZGVzICAgIHsgcGFkZGluZy1yaWdodDogJGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogICRkb3VibGUtc2l6ZSAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LXRyaXBsZSAgICAgICAgICAgeyBwYWRkaW5nOiAgICAgICAkdHJpcGxlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtdHJpcGxlLS10b3AgICAgICB7IHBhZGRpbmctdG9wOiAgICR0cmlwbGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC10cmlwbGUtLXJpZ2h0ICAgIHsgcGFkZGluZy1yaWdodDogJHRyaXBsZS1zaXplICFpbXBvcnRhbnQ7IH1cbi5zb2Z0LXRyaXBsZS0tYm90dG9tICAgeyBwYWRkaW5nLWJvdHRvbTokdHJpcGxlLXNpemUgIWltcG9ydGFudDsgfVxuLnNvZnQtdHJpcGxlLS1sZWZ0ICAgICB7IHBhZGRpbmctbGVmdDogICR0cmlwbGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC10cmlwbGUtLWVuZHMgICAgIHsgcGFkZGluZy10b3A6ICAgJHRyaXBsZS1zaXplICFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiR0cmlwbGUtc2l6ZSAhaW1wb3J0YW50OyB9XG4uc29mdC10cmlwbGUtLXNpZGVzICAgIHsgcGFkZGluZy1yaWdodDogJHRyaXBsZS1zaXplICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogICR0cmlwbGUtc2l6ZSAhaW1wb3J0YW50OyB9XG5cblxuLmhhcmQgICAgICAgICAgIHsgcGFkZGluZzogICAgICAgMCAhaW1wb3J0YW50OyB9XG4uaGFyZC0tdG9wICAgICAgeyBwYWRkaW5nLXRvcDogICAwICFpbXBvcnRhbnQ7IH1cbi5oYXJkLS1yaWdodCAgICB7IHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuLmhhcmQtLWJvdHRvbSAgIHsgcGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50OyB9XG4uaGFyZC0tbGVmdCAgICAgeyBwYWRkaW5nLWxlZnQ6ICAwICFpbXBvcnRhbnQ7IH1cbi5oYXJkLS1lbmRzICAgICB7IHBhZGRpbmctdG9wOiAgIDAgIWltcG9ydGFudDsgcGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50OyB9XG4uaGFyZC0tc2lkZXMgICAgeyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogIDAgIWltcG9ydGFudDsgfVxuXG4vLyBAaW5jbHVkZSBicmVha3BvaW50KCdzbWFsbCBvbmx5Jykge1xuLy8gICAgIC5oYXJkLS1zbWFsbCB7XG4vLyAgICAgICAgIHBhZGRpbmc6MDtcbi8vICAgICB9XG4vLyB9XG4iLCIuaWNvbiB7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBtYXgtd2lkdGg6JGJhc2Utc2l6ZTtcbiAgICBtYXgtaGVpZ2h0OiAkYmFzZS1zaXplO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGZpbGw6ICRjb2xvci1pY29uLWZpbGw7XG4gICAgdHJhbnNpdGlvbjpmaWxsICR0aW1pbmcgJGVhc2luZztcbn1cblxuLmljb24tLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6cmVtLWNhbGMoMTgpO1xuICAgIG1heC1oZWlnaHQ6cmVtLWNhbGMoMTgpOyBcbiAgICBcbiAgICAmLmljb24tLWdvb2dsZSB7XG4gICAgICAgIG1heC13aWR0aDpyZW0tY2FsYygyMik7XG4gICAgfVxufVxuXG4uaWNvbi0teHhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOnJlbS1jYWxjKDEwKTtcbiAgICBtYXgtaGVpZ2h0OnJlbS1jYWxjKDEwKTtcbn1cblxuLmljb24tLXhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOnJlbS1jYWxjKDE1KTtcbiAgICBtYXgtaGVpZ2h0OnJlbS1jYWxjKDE1KTtcbn1cblxuLmljb24tLW1lZGl1bSB7XG4gICAgbWF4LXdpZHRoOiRkb3VibGUtc2l6ZSAqIDMuNTtcbiAgICBtYXgtaGVpZ2h0OiAkZG91YmxlLXNpemU7XG59XG5cbi5pY29uLS1sYXJnZSB7XG59XG5cbi5pY29uLS1mdWxsIHtcbiAgICBtYXgtaGVpZ2h0OjEwMCU7XG4gICAgbWF4LXdpZHRoOjEwMCU7XG59XG5cbiIsIi5oZWFkZXIge1xuICAgIHBhZGRpbmc6MDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFzdC1iYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXN0LW1vYmlsZS5wbmcnKTtcbiAgICB6LWluZGV4OjE7XG5cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJ21lZGl1bScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWFzdC5wbmcnKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6JGRvdWJsZS1zaXplO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6JGRvdWJsZS1zaXplO1xuICAgICAgICBwYWRkaW5nLXRvcDokYmFzZS1zaXplO1xuICAgIH1cblxuICAgIC5wYWdlICYsXG4gICAgLnNpbmdsZSAmIHtcbiAgICAgICAgaGVpZ2h0OiRkb3VibGUtc2l6ZSAqIDI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgnbWVkaXVtJykge1xuICAgICAgICAgICAgaGVpZ2h0OiRkb3VibGUtc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gLnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIH1cbn1cblxuLm1hc3RfX2xpbmtzIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgnbWVkaXVtJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuIiwiLmZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvb3Rlci1iYWNrZ3JvdW5kO1xuICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zaXplO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZG91YmxlLXNpemU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGJhc2Utc2l6ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYmFzZS1zaXplO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkb3VibGUtc2l6ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZG91YmxlLXNpemU7XG4gICAgfVxufVxuXG4uZm9vdGVyX19sb2dvIHtcbiAgICBtYXgtaGVpZ2h0OnJlbS1jYWxjKDYwKTtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDIwMCk7XG4gICAgbWFyZ2luOmF1dG87XG59XG5cbi5mb290ZXJfX2NyZWRpdCBwIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKCRtaWNybyk7XG5cbiAgICAmLFxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cbiIsIi5sb2dvIHtcbiAgICBsaW5lLWhlaWdodDokZG91YmxlLXNpemU7XG4gICAgaGVpZ2h0OiRkb3VibGUtc2l6ZTtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIG1heC13aWR0aDoxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWF4LXdpZHRoOjgwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRoYWxmLXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRoYWxmLXNpemU7XG5cbiAgICAgICAgLmZyICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UgJixcbiAgICAuc2luZ2xlICYge1xuICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOjY1JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sb2dvX19pY29uIHtcbiAgICAgICAgbWF4LXdpZHRoOjEwMCU7XG4gICAgICAgIC8vIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIC8vIHBhZGRpbmc6JGhhbGYtc2l6ZS8xLjMgMDtcbiAgICAgICAgbWFyZ2luOiRoYWxmLXNpemUgMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkdW5pdDogMzBweDtcbiRiYXNlLXNpemUgOiByZW0tY2FsYygkdW5pdCk7XG4kaGFsZi1zaXplIDogJGJhc2Utc2l6ZS8yO1xuJGRvdWJsZS1zaXplIDogcmVtLWNhbGMoJHVuaXQgKiAyKTtcbiR0cmlwbGUtc2l6ZSA6IHJlbS1jYWxjKCR1bml0ICogMyk7XG5cblxuIiwiLm5hdi0tY2VudGVyIHtcbiAgICBsaSxcbiAgICBhIHtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIG1hcmdpbjphdXRvO1xuICAgIH1cbn1cblxuLm5hdi0tY2VudGVyLWl0ZW1zIHtcbiAgICBsaSxcbiAgICBhIHtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46YXV0bztcbiAgICB9XG59XG4ubmF2LS1pbnZlcnRlZCB7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiR3aGl0ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi0tc21hbGwge1xuXG4gICAgbGkge1xuICAgICAgICBAZXh0ZW5kIC56ZXRhO1xuICAgIH1cbn1cblxuLm5hdi0teHNtYWxsIHtcblxuICAgIGxpIHtcbiAgICAgICAgQGV4dGVuZCAubWljcm87XG4gICAgfVxufVxuLm5hdi0tc2hhcmUge1xuXG4gICAgbGkge1xuICAgICAgICBtYXgtd2lkdGg6JGRvdWJsZS1zaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5uYXZfX2xhYmVsLS1pbmxpbmUge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgdG9wOjUwJTtcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICB9XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1heC13aWR0aDpyZW0tY2FsYygyODApO1xuICAgICAgICAgICAgbWFyZ2luOmF1dG87XG4gICAgICAgIH1cblxuICAgICAgICB1bC52ZXJ0aWNhbCBsaSB7XG4gICAgICAgICAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46JGhhbGYtc2l6ZSBhdXRvO1xuICAgICAgICB9XG59XG5cbi5uYXYtLW11dGVkIHtcbiAgICBhIHtcbiAgICAgICAgQGV4dGVuZCAubXV0ZWQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5uYXYtLXdpdGgtY29tbWEge1xuICAgICAgICA+IC5tZW51ID4gbGkgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lO1xuICAgICAgICAgICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuXG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6JywnO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGhhbGYtc2l6ZS80O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi0td2l0aC1zZXBlcmF0aW9uIHtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNlbnRlcih5KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6MXB4O1xuICAgICAgICAgICAgaGVpZ2h0OjQwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6JGRhcmstZ3JheTtcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICBvcGFjaXR5OjAuMztcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi0tZ2xvYmFsLm5hdi0tZ2xvYmFsIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICByaWdodDowO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDotMS41cmVtO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIEBleHRlbmQgLmVwc2lsb247XG4gICAgICAgIHBhZGRpbmc6MCByZW0tY2FsYygyNSk7XG4gICAgfVxuXG4gICAgbGkgYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmUoJHNob3duOiBmYWxzZSwgJGNlbnRlcmVkOmZhbHNlKTtcbiAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MDtcbiAgICAgICAgbWFyZ2luOiRoYWxmLXNpemUvMiAwO1xuICAgICAgICBoZWlnaHQ6ICRiYXNlLXNpemUgKiAxLjU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1zaXplICogMS41O1xuICAgIH1cbiAgICAuYXJjaGl2ZSAmIGxpLm1lbnUtaXRlbS0zMSBhOmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTpzY2FsZSgxKTtcbiAgICB9XG5cbn1cblxuLm5hdi0tZm9vdGVyLm5hdi0tZm9vdGVyIHtcbiAgICBsaSBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5wcm9ncmVzcyB7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgd2lkdGg6MTAwJTtcbiAgICB6LWluZGV4OjEwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRpbWluZyAkZWFzaW5nO1xuICAgIG9wYWNpdHk6MDtcbiAgICB0b3A6MDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG9yLWRhcms7XG4gICAgICAgIGhlaWdodDoycHg7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICBzdHJva2U6ICRwcmltYXJ5LWNvbG9yLWRhcmsgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgfVxuXG4gICAgLmlzLWxvYWRpbmcgJiB7XG4gICAgICAgIG9wYWNpdHk6MTtcbiAgICB9XG5cbn1cblxuLmhlYWRlcixcbi5mb290ZXIsXG4ubWFpbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiAgICBvcGFjaXR5OjE7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtcblxuICAgIC5pcy1sb2FkaW5nICYge1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwkZG91YmxlLXNpemUsMCk7XG4gICAgICAgIG9wYWNpdHk6MDtcbiAgICB9XG4gICAgLmlzLW9mZi1jYW52YXMtb3BlbiAmIHtcbiAgICAgICAgb3BhY2l0eTowLjg7XG4gICAgfVxuXG59XG5cbi5uYXYtLWdsb2JhbCxcbi5sb2dvIHtcbiAgICBvcGFjaXR5OjE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgKiAxLjUgJHRpbWluZy80ICRlYXNpbmc7XG5cbiAgICAuaXMtb2ZmLWNhbnZhcy1vcGVuICYsXG4gICAgLmlzLWxvYWRpbmcgJiB7XG4gICAgICAgIG9wYWNpdHk6MDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIwMCUpO1xuICAgIH1cbn1cblxuIiwiLnBhZ2VfX21hc3Qge1xuICAgIHBhZGRpbmc6ICRiYXNlLXNpemU7XG59XG5cbi5wYWdlX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOjAgJGJhc2Utc2l6ZTtcbiAgICB9XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nOjAgJGRvdWJsZS1zaXplO1xuICAgIH1cbn1cblxuLnNpdGUtbWFwX19pdGVtIHtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIC8vIGJvcmRlcjoxcHggc29saWQgJGxpZ2h0LWdyYXk7XG59XG4iLCIuc2luZ2xlX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLXRvcDoxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbn1cblxuLnNpbmdsZV9fbWFzdCB7XG4gICAgcGFkZGluZy1ib3R0b206MDtcbn1cblxuLnNpbmdsZV9fdGFicyB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDEpO1xuICAgICAgICB0b3A6YXV0bztcbiAgICAgICAgYm90dG9tOjBweDtcbiAgICB9XG4gICAgXG4gICAgJi5zaW5nbGVfX3RhYnMtLXN0YXRpYzpiZWZvcmUge1xuICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLWxpZ2h0O1xuICAgICAgICB6LWluZGV4OjE7XG4gICAgfVxufVxuXG4uc2luZ2xlX190YWJzLS0yIHtcbiAgICBtYXJnaW4tdG9wOiAkaGFsZi1zaXplO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG4iLCIuc2VhcmNoLWZvcm0ge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIG1hcmdpbjowICgtJGhhbGYtc2l6ZS8xLjUpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luOjAgKC0kaGFsZi1zaXplKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbjowIDAgJGJhc2Utc2l6ZTtcblxuICAgICAgICAuc2luZ2xlICYge1xuICAgICAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLnNlYXJjaC1maWVsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiRkb3VibGUtc2l6ZSArICRoYWxmLXNpemUvMjtcbiAgICBoZWlnaHQ6JGRvdWJsZS1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206MDtcbiAgICBib3JkZXItcmFkaXVzOjA7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IFxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygkYmV0YSk7XG4gICAgfVxuXG4gICAgLnBhZ2UgJixcbiAgICAuc2luZ2xlICYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc2VhcmNoLXNpbmdsZS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6MXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogZmlyZWZveCAxOSsgKi9cbiAgICAgICAgICAgIGNvbG9yOiRtZWRpdW0tZ3JheTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6JG1lZGl1bS1ncmF5O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRnYW1tYSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtZm9ybV9faWNvbiB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgbGVmdDokYmFzZS1zaXplO1xuICAgIHRvcDokYmFzZS1zaXplLzI7XG4gICAgd2lkdGg6JGJhc2Utc2l6ZS8xLjU7XG4gICAgZmlsbDogJHByaW1hcnktY29sb3I7XG5cbiAgICAucGFnZSAmLFxuICAgIC5zaW5nbGUgJiB7XG4gICAgICAgIGZpbGw6JHdoaXRlO1xuICAgICAgICB3aWR0aDokYmFzZS1zaXplLzI7XG4gICAgfVxufVxuIiwiJG9mZmNhbnZhcy1zbWFsbC13aWR0aDogcmVtLWNhbGMoNjApO1xuXG4ub2ZmLWNhbnZhcyB7XG4gICAgYmFja2dyb3VuZDpub25lO1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgcmlnaHQ6IC0kb2ZmY2FudmFzLXNtYWxsLXdpZHRoO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJG9mZmNhbnZhcy1zbWFsbC13aWR0aDtcbiAgICBib3R0b206MDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci1kYXJrO1xuICAgIC5jbG9zZS1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBjZW50ZXIoeCk7XG4gICAgfVxufVxuXG4uaXMtb3Blbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kb2ZmY2FudmFzLXNtYWxsLXdpZHRoKTtcbn1cbiIsImEsXG4ubGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgY29sb3I6ICRjb2xvci1hbmNob3I7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcblxuICAgIC5saW5rLS1pcy1hY3RpdmUgJixcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6JGNvbG9yLWFuY2hvci1ob3ZlcjtcbiAgICB9XG5cbiAgICBwID4gJiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcbiAgICB9XG59XG5cbi5saW5rLS1zaGFyZSB7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBoZWlnaHQ6cmVtLWNhbGMoMzUpO1xuICAgIHdpZHRoOiByZW0tY2FsYygzNSk7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgbWFyZ2luOmF1dG87XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRlcih4eSk7XG4gICAgICAgIHotaW5kZXg6MTtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGZpbGw6ICRjb2xvci1hbmNob3I7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgaGVpZ2h0OmF1dG87XG4gICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXI6MXB4IHNvbGlkICRjb2xvci1hbmNob3I7XG4gICAgICAgIGJhY2tncm91bmQ6JHdoaXRlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRpbWluZyAkZWFzaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kOiRjb2xvci1hbmNob3I7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIG9wYWNpdHk6MDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5saW5rLS1zaGFyZS0td2hpdGUge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlcjoxcHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDokd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkY29sb3ItYW5jaG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5mb290ZXIgJjpob3ZlciB7XG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGNvbG9yLWFuY2hvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5saW5rLS13aXRoLWFycm93IHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDokaGFsZi1zaXplICogMS4zO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206ICRoYWxmLXNpemU7IFxuICAgIHBhZGRpbmctbGVmdDogJGJhc2Utc2l6ZSAqIDEuNTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRpbWluZyAkZWFzaW5nO1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgbWFyZ2luOjAgKC0kaGFsZi1zaXplLzEuNSk7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkYmFzZS1zaXplICogMS41O1xuICAgIH1cblxuICAgIC5saW5rX19hcnJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRlcih5KTtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkdGltaW5nICRlYXNpbmc7XG4gICAgICAgIGxlZnQ6JGhhbGYtc2l6ZTtcbiAgICAgICAgdG9wOjU1JTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYmFzZS1zaXplICogMS42O1xuICAgICAgICAubGlua19fYXJyb3cge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRoYWxmLXNpemUvMywgLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmxpbmstLXdpdGgtYXJyb3ctLXJpZ2h0IHtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGJhc2Utc2l6ZSAqIDEuNSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAubGlua19fYXJyb3cge1xuICAgICAgICAgICAgbGVmdDphdXRvO1xuICAgICAgICAgICAgcmlnaHQ6JGhhbGYtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGRvdWJsZS1zaXplICogMS42O1xuICAgICAgICAgICAgLmxpbmtfX2Fycm93IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkaGFsZi1zaXplLzMsIC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5saW5rLS13aXRoLWFycm93LS1zaGFyZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkb3VibGUtc2l6ZSAqIDEuNTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiRoYWxmLXNpemU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmstZ3JheTtcblxuICAgICAgICAubGlua19fYXJyb3cge1xuICAgICAgICAgICAgbGVmdDphdXRvO1xuICAgICAgICAgICAgcmlnaHQ6JGRvdWJsZS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZG91YmxlLXNpemUgKiAxLjY7XG4gICAgICAgICAgICAubGlua19fYXJyb3cge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCRoYWxmLXNpemUvMywgLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAvLyAmLCBcbiAgICAgICAgLy8gJi5saW5rLS13aXRoLWFycm93LS1yaWdodCB7XG4gICAgICAgIC8vICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgLy8gfVxuICAgIH1cbn1cblxuLmxpbmstLWRpc2FibGVkIHtcbiAgICAgY29sb3I6ICRjb2xvci10ZXh0LXNlY29uZGFyeSAhaW1wb3J0YW50O1xufVxuXG4ubGluay0tcmVtb3ZlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgICBmbG9hdDpyaWdodDtcbiAgICBcbn1cbiIsImltZyB7XG4gICAgb3BhY2l0eToxO1xuICAgIHRyYW5zaXRpb246YWxsICR0aW1pbmcgJGVhc2luZztcblxuICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgIG9wYWNpdHk6MC4xO1xuICAgIH1cbn1cbiIsImZvcm0ge1xuICAgIG1hcmdpbjowIDA7XG59XG5cbmlucHV0IHtcbiAgICBtYXJnaW46MDtcbn1cblxudGV4dGFyZWEge1xuICAgIG1pbi1oZWlnaHQ6IHJlbS1jYWxjKDE1MCk7XG59XG5cbmxhYmVsIHtcbiAgICBAZXh0ZW5kIC5lcHNpbG9uO1xuICAgIEBleHRlbmQgLm1pY3JvO1xufVxuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3ItaW5wdXQtcGxhY2Vob2xkZXI7XG59XG5cbjo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBmaXJlZm94IDE5KyAqL1xuICAgIGNvbG9yOiAkY29sb3ItaW5wdXQtcGxhY2Vob2xkZXI7XG59XG5cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAgXG4gICAgY29sb3I6ICRjb2xvci1pbnB1dC1wbGFjZWhvbGRlcjtcbn1cblxudGV4dGFyZWEsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gTmluamEgRm9ybXNcbi8vXG4uaHAtd3JhcCB7XG5kaXNwbGF5Om5vbmU7XG59XG4ubmluamEtZm9ybXMtcmVxLXN5bWJvbCB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbn1cblxuLm5pbmphLWZvcm1zLWZpZWxkLWVycm9yLFxuLm5pbmphLWZvcm1zLXJlcXVpcmVkLWl0ZW1zIHtcbiAgICBAZXh0ZW5kIC5oZWxwLXRleHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhhbGYtc2l6ZTtcbiAgICBcbn1cblxuLm5pbmphLWZvcm1zLWZpZWxkLWVycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xufVxuIiwiXG5cbi5idXR0b257XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMyk7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygzMDApO1xuICAgIHRyYW5zaXRpb246YWxsICR0aW1pbmcgJGVhc2luZztcblxuICAgICYuaGFyZCB7XG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6MCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zZWNvbmRhcnkge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIGNvbG9yOiRjb2xvci1hbmNob3I7XG4gICAgfVxuXG4gICAgJi50ZXJ0aWFyeSB7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYW5jaG9yO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIHRyYW5zaXRpb246YWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZToxZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJi5pcy1hY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yLWxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKCRibGFjaywgMC4zKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1hbmNob3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAmLmRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bigkc2l6ZTogMC4zcmVtLCAkY29sb3I6ICRjb2xvci1hbmNob3IsICRvZmZzZXQ6MHJlbSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaGFsZi1zaXplICogMS41O1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2VudGVyKHkpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiRoYWxmLXNpemUvMjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgJHRpbWluZyAkZWFzaW5nO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6MCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjByZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUsXG4gICAgJi5zZWNvbmRhcnk6aG92ZXIsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYW5jaG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1hbmNob3I7XG4gICAgfVxuXG4gICAgJi5zZWNvbmRhcnk6Zm9jdXMsXG4gICAgJi5zZWNvbmRhcnk6YWN0aXZlLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWFuY2hvci1ob3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZDokd2hpdGU7XG4gICAgfVxuXG4gICAgJi5idXR0b24uaG9sbG93IHtcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRwcmltYXJ5LWNvbG9yLWxpZ2h0LCAwLjcpO1xuICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5idXR0b24tLXNwbGl0IHtcbiAgICBAaW5jbHVkZSBidXR0b24odHJ1ZSwgJHdoaXRlLCAkd2hpdGUsICRjb2xvci1hbmNob3IpO1xuICAgIHBhZGRpbmctdG9wOjA7XG4gICAgcGFkZGluZy1ib3R0b206MDtcbiAgICBwYWRkaW5nLWxlZnQ6MDtcbiAgICBwYWRkaW5nLXJpZ2h0OjA7XG4gICAgd2lkdGg6YXV0bztcbiAgICBtYXJnaW46MCAoLSRoYWxmLXNpemUpO1xuICAgIGZvbnQtc2l6ZTowO1xuICAgIG1heC13aWR0aDpub25lO1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIGJvcmRlcjowO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkY29sb3ItYW5jaG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIGJveC1zaGFkb3c6ICRnbG9iYWwtc2hhZG93O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKCRibGFjaywgMC4zKTtcbiAgICAgICAgYm9yZGVyOm5vbmU7XG4gICAgfVxufVxuXG4uYnV0dG9uX19pY29uLFxuLmJ1dHRvbl9fdGV4dCB7XG4gICAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xuICAgIGxpbmUtaGVpZ2h0OiRkb3VibGUtc2l6ZTtcbiAgICBkaXNwbGF5OmJsb2NrO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBsaW5lLWhlaWdodDokZG91YmxlLXNpemUgKjI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICB9XG59XG5cbi5idXR0b25fX2ljb24ge1xuICAgIG1heC13aWR0aDoxMDAlO1xuICAgIG1heC1oZWlnaHQ6MTAwJTtcbiAgICB3aWR0aDoyNSU7XG4gICAgaGVpZ2h0OiRkb3VibGUtc2l6ZTtcbiAgICBwYWRkaW5nOiRiYXNlLXNpemUvMS41O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvci1idXR0b24taWNvbi1ib3JkZXItcmlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWJ1dHRvbi1pY29uLWJhY2tncm91bmQ7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgbGVmdDowO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBoZWlnaHQ6JGRvdWJsZS1zaXplICoyO1xuICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgIGJvcmRlcjpub25lO1xuICAgIH1cbn1cblxuLmJ1dHRvbl9fdGV4dCB7XG4gICAgLy8gcGFkZGluZy1sZWZ0OiRiYXNlLXNpemU7XG4gICAgLy8gcGFkZGluZy1yaWdodDogJGJhc2Utc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiR3aGl0ZTtcbiAgICB3aWR0aDphdXRvO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjIwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDoyNSU7XG4gICAgfVxufVxuXG4uYnV0dG9uLS13aXRoLWljb24ge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDokYmFzZS1zaXplICogMS41ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5idXR0b25fX2Fycm93IHtcbiAgICAgICAgICAgIGZpbGw6JGNvbG9yLWFuY2hvcjtcbiAgICAgICAgICAgIGFuaW1hdGlvbjppY29uLS1tb3ZlLWRvd24gJHRpbWluZyAqIDIgMSA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5idXR0b25fX2Fycm93IHtcbiAgICBAaW5jbHVkZSBjZW50ZXIoeSk7XG4gICAgZmlsbDokd2hpdGU7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgbGVmdDokaGFsZi1zaXplICogMS41O1xuICAgIHRyYW5zaXRpb246IGFsbCAkdGltaW5nICRlYXNpbmc7XG59XG5cbkBrZXlmcmFtZXMgaWNvbi0tbW92ZS1kb3duIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcbiAgICB9XG4gICAgNTIlIHtcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxufVxuXG4uYnV0dG9uLmRpc2FibGVkLFxuLmJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcbn1cblxuLmJ1dHRvbi5uaW5qYS1mb3Jtcy1maWVsZCB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbiAgICBmb250LXNpemU6cmVtLWNhbGMoJHpldGEpO1xufVxuXG4iLCJwIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKCRiYXNlKTtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDUwMCk7XG59XG5cblxuIiwiaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbn1cblxuaDEge1xufVxuXG5oMiB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbn1cblxuaDMge1xufVxuXG5oNCB7XG59XG5cbmg1IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoMik7XG5cbiAgICAmLm1pY3JvLFxuICAgICYuc21hbGwge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoMSk7XG4gICAgfVxufVxuXG5oNiB7XG4gICAgZm9udC13ZWlnaHQ6JGZvbnQtd2VpZ2h0LWJvbGQ7XG59XG5cblxuLmFscGhhIHtcbiAgICBAZXh0ZW5kIGgxO1xufVxuXG4uYmV0YSB7XG4gICAgQGV4dGVuZCBoMjtcbn1cblxuLmdhbW1hIHtcbiAgICBAZXh0ZW5kIGgzO1xufVxuXG4uZGVsdGEge1xuICAgIEBleHRlbmQgaDQ7XG59XG5cbi5lcHNpbG9uIHtcbiAgICBAZXh0ZW5kIGg1O1xufVxuXG4uemV0YSB7XG4gICAgQGV4dGVuZCBoNjtcbn1cbiIsIi5zbWFsbC1jYXBzIHtcbiAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG59XG5cbi5taWxsaSxcbi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygkbWlsbGkpO1xufVxuXG4ubWljcm8ge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoJG1pY3JvKTtcbn1cblxuLmVtcGhhc2lzIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtaGVhdnk7XG59XG5cbi5lbGxpcHNpcyB7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2FwLXdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOnJlbS1jYWxjKDM1MCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgnbWVkaXVtJykge1xuICAgICAgICBtYXgtd2lkdGg6cmVtLWNhbGMoMzUwKTtcbiAgICB9XG59XG5cbi5ub3dyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tdXRlZCB7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LXNlY29uZGFyeSAhaW1wb3J0YW50O1xufVxuXG4ucHJpbWUge1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1wcmltYXJ5ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWNvbHVtbnMtMyB7XG4gICAgY29sdW1uczogMyByZW0tY2FsYygyNTApO1xuICAgIGNvbHVtbi1nYXA6ICRiYXNlLXNpemU7XG4gICAgY29sdW1uLWZpbGw6IGF1dG87XG59XG5cbi50ZXh0LWNvbHVtbnMtMiB7XG4gICAgY29sdW1uczogMiByZW0tY2FsYygzNTApO1xuICAgIGNvbHVtbi1nYXA6ICRiYXNlLXNpemU7XG4gICAgY29sdW1uLWZpbGw6IGF1dG87XG59XG5cbi50ZXh0LWNvbHVtbnNfX3NwYW4ge1xuICAgIGNvbHVtbi1zcGFuOiBhbGw7IFxufVxuXG4iLCIuY29udGFpbmVyLS1xdWljay1saW5rcyB7XG4gICAgcGFkZGluZzowO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGRvdWJsZS1zaXplO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRkb3VibGUtc2l6ZTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRiYXNlLXNpemUgKiAxLjU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkYmFzZS1zaXplICogMC41O1xuICAgIH1cblxuICAgIC5yb3cgZGl2IGEgIHtcbiAgICBcdG1hcmdpbi1ib3R0b206ICRiYXNlLXNpemU7XG4gICAgfVxufVxuIiwiXG4uaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc2l6ZTtcbiAgICBib3gtc2hhZG93OiAkZ2xvYmFsLXNoYWRvdztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgcGFkZGluZzogJGJhc2Utc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaXRlbS1iYWNrZ3JvdW5kO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6JGl0ZW0taGVpZ2h0O1xuICAgIGhlaWdodDokaXRlbS1oZWlnaHQ7XG4gICAgLmZlYXR1cmVkICYge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4uaXRlbV9fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbn1cblxuLml0ZW1fX3RpdGxlLFxuLml0ZW1fX3RleHQge1xuICAgIHBhZGRpbmctbGVmdDogJGhhbGYtc2l6ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkaGFsZi1zaXplO1xuICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG5cbiAgICAuZmVhdHVyZWQgJiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRiYXNlLXNpemU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJhc2Utc2l6ZTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkb3VibGUtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGRvdWJsZS1zaXplO1xuICAgICAgICAgICAgd2lkdGg6NzAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOjYwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRiYXNlLXNpemU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJhc2Utc2l6ZTtcbiAgICAgICAgLmZlYXR1cmVkOm50aC1jaGlsZChvZGQpICYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6MzAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgLmZlYXR1cmVkOm50aC1jaGlsZChvZGQpICYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6NDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaXRlbV9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zaXplLzI7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgLmZlYXR1cmVkICYge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRiYXNlLXNpemUgKiAxLjU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKCRiZXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLml0ZW1fX3RleHQge1xuICAgIHBhZGRpbmctdG9wOiAkaGFsZi1zaXplO1xuICAgIHBhZGRpbmctYm90dG9tOiAkaGFsZi1zaXplO1xuICAgIGRpc3BsYXk6bm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgfVxuXG59XG5cbi5pdGVtX19pbWFnZSB7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIC8vIG1hcmdpbi1sZWZ0Oi0kYmFzZS1zaXplO1xuICAgIC8vIG1hcmdpbi10b3A6LSRiYXNlLXNpemU7XG4gICAgLy8gbWFyZ2luLXJpZ2h0Oi0kYmFzZS1zaXplO1xuICAgIGhlaWdodDokaXRlbS1oZWlnaHQvMS41O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOm5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICB9XG5cbiAgICAuZmVhdHVyZWQgJiB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAgICAgICAgIHRvcDowO1xuICAgICAgICAgICAgYm90dG9tOjA7XG4gICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICByaWdodDowO1xuICAgICAgICAgICAgbWFyZ2luOjA7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2VudGVyKHh5KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgLmZlYXR1cmVkOm50aC1jaGlsZChldmVuKSAmIHtcbiAgICAgICAgICAgIGxlZnQ6NzAlO1xuICAgICAgICB9XG4gICAgICAgIC5mZWF0dXJlZDpudGgtY2hpbGQob2RkKSAmIHtcbiAgICAgICAgICAgIHJpZ2h0OjcwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIC5mZWF0dXJlZDpudGgtY2hpbGQoZXZlbikgJiB7XG4gICAgICAgICAgICBsZWZ0OjYwJTtcbiAgICAgICAgfVxuICAgICAgICAuZmVhdHVyZWQ6bnRoLWNoaWxkKG9kZCkgJiB7XG4gICAgICAgICAgICByaWdodDo2MCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5pdGVtX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAkaGFsZi1zaXplO1xuICAgIHJpZ2h0OiAkaGFsZi1zaXplO1xufVxuXG4uaXRlbV9fb3ZlcmxheSB7XG4gICAgJixcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6YXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaXRlbS1vdmVybGF5LWJhY2tncm91bmQ7XG4gICAgfVxuXG5cbiAgICAub3ZlcmxheV9fdGFyZ2V0IHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgdG9wOiRiYXNlLXNpemU7XG4gICAgICAgIGxlZnQ6NTAlO1xuICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYmFzZS1zaXplICogMS41O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYmFzZS1zaXplICogMS41O1xuICAgIH1cblxuXG4gICAgLml0ZW0uaXMtYWN0aXZlICYsXG4gICAgLml0ZW1fX2xpbms6Zm9jdXMgJixcbiAgICAuaXRlbV9fbGluazpob3ZlciAmIHtcbiAgICAgICAgLm92ZXJsYXlfX3RhcmdldCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDAlKTtcbiAgICAgICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgICAgIHRvcDokZG91YmxlLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OjE7XG4gICAgICAgIH1cbiAgICB9XG59XG4gICAgLm92ZXJsYXlfX25hdiB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkdGltaW5nICRlYXNpbmc7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCUsIDEwMCUpO1xuICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBib3R0b206JGRvdWJsZS1zaXplO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6cmVtLWNhbGMoMjUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51X19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5lKCRwb3NpdGlvbjp0b3AsICRzaG93bjpmYWxzZSk7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdG9wOi0xNzUlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6JHRpbWluZy8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0uaXMtYWN0aXZlICYsXG4gICAgICAgIC5pdGVtX19saW5rOmZvY3VzICsgJixcbiAgICAgICAgLml0ZW1fX2xpbms6aG92ZXIgKyAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgICAgIG9wYWNpdHk6MTtcblxuICAgICAgICAgICAgLm1lbnVfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwKSBzY2FsZVgoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vdmVybGF5X19idXR0b24tLXNlY29uZGFyeSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiRkb3VibGUtc2l6ZSAqIDI7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDA7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMTAwJSk7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pY3JvO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRpbWluZyAkZWFzaW5nO1xuICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRiYXNlLXNpemUvMjtcbiAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuXG4gICAgICAgIC5idXR0b25fX3RhcmdldCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDokZm9udC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246Ym9yZGVyICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b25fX2Fycm93IHtcbiAgICAgICAgICAgIHRvcDo1MCU7XG4gICAgICAgICAgICBsZWZ0OmF1dG87XG4gICAgICAgICAgICByaWdodDowO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0uaXMtYWN0aXZlICYsXG4gICAgICAgIC5pdGVtX19saW5rOmZvY3VzICsgJixcbiAgICAgICAgLml0ZW1fX2xpbms6aG92ZXIgKyAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMCUpO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgLmJ1dHRvbl9fdGFyZ2V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbl9fYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjppY29uLS1tb3ZlLWRvd24gJHRpbWluZyAqIDIgMSA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbiIsIi5jb250YWluZXItLWFyY2hpdmUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgfVxufVxuLmNvbnRhaW5lci0tZmlsdGVycyB7XG4gICAgcGFkZGluZy10b3A6MDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiRiYXNlLXNpemU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiRiYXNlLXNpemU7XG4gICAgfVxufVxuXG4uZmlsdGVycyB7XG4gICAgYmFja2dyb3VuZDokd2hpdGU7XG4gICAgb3BhY2l0eTowO1xuICAgIHRyYW5zaXRpb246dHJhbnNmb3JtICR0aW1pbmcgJGVhc2luZywgb3BhY2l0eSAkdGltaW5nICRlYXNpbmc7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgd2lkdGg6YXV0bztcbiAgICBsZWZ0OjA7XG4gICAgcmlnaHQ6MDtcbiAgICB0b3A6MDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIC0xMDAlKTtcbiAgICB6LWluZGV4OjE7XG5cbiAgICAuZmlsdGVycy0taXMtdmlzaWJsZSAmIHtcbiAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDAlKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCdtZWRpdW0nKSB7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLTAlKTtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6bm9uZTtcbiAgICB9XG5cbiAgICAubWVudSBsaSBhIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDokaGFsZi1zaXplLzM7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6JHdoaXRlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6JGRvdWJsZS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiRkb3VibGUtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6MCAkYmFzZS1zaXplO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGxpZ2h0LWdyYXkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgICAgICBib3JkZXI6bm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4uZmlsdGVyc19fdG9nZ2xlIHtcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjowICgtJGhhbGYtc2l6ZS8xLjUpO1xuICAgIHRyYW5zaXRpb246dHJhbnNmb3JtICR0aW1pbmcgJGVhc2luZywgb3BhY2l0eSAkdGltaW5nICRlYXNpbmc7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBvcGFjaXR5OjE7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwJSk7XG4gICAgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDtcbiAgICAuZmlsdGVycy0taXMtdmlzaWJsZSAmIHtcbiAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIC0xMDAlKTtcbiAgICB9XG59XG5cbi5tZW51LmRyb3Bkb3duIHtcblxuICAgIGxpIHtcbiAgICAgICAgQGV4dGVuZCAuZGVsdGE7XG4gICAgfVxuXG4gICAgLmlzLXRvcC1sZXZlbCxcbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgICAuc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICAgICAgbGVmdDotJGhhbGYtc2l6ZS8yO1xuICAgICAgICB9XG4gICAgICAgIHBhZGRpbmc6IDAgJGhhbGYtc2l6ZS8yIDAgMDtcbiAgICAgICAgJiB+IC5pcy10b3AtbGV2ZWwsXG4gICAgICAgICYgfiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkaGFsZi1zaXplLzI7XG4gICAgICAgIH1cblxuICAgICAgICAmIH4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IC5zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgICAgXG4gICAgICAgIGEuaXMtYWN0aXZlIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgJHRpbWluZy8yICRlYXNpbmc7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjAuNHJlbTtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6LSRiYXNlLXNpemUgKiAxLjU7XG4gICAgICAgICAgICAgICAgbGVmdDotJGJhc2Utc2l6ZSAvIDI7XG4gICAgICAgICAgICAgICAgcmlnaHQ6LSRiYXNlLXNpemUgLyAyO1xuICAgICAgICAgICAgICAgIGJvdHRvbTotJGJhc2Utc2l6ZS8yO1xuICAgICAgICAgICAgICAgIGhlaWdodDphdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6JHdoaXRlO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246YWxsICR0aW1pbmcgJGVhc2luZztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAtJGhhbGYtc2l6ZSkgc2NhbGVZKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46MCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmhhcy1hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0b3A6LSRiYXNlLXNpemUgKiAyLjU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgJHRpbWluZy8yICAkZWFzaW5nO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLSRoYWxmLXNpemUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGluay0tYmFjayB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAtMTgwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDokZm9udC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjAuMnJlbSAwLjJyZW0gMC4ycmVtICAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIHotaW5kZXg6MztcblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIHRvcDphdXRvO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czphdXRvO1xuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OjE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246YWxsICR0aW1pbmcqMS41ICAkZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubGluay0tYmFjayB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLTIwMCUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIC0wJSkgc2NhbGVZKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhe1xuICAgICAgICAgICAgICAgIHotaW5kZXg6MjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OjAgMCAwO1xuICAgICAgICAgICAgICAgIGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDpub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodDtcblxuXG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMTAwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGluay0tYmFjay5saW5rLS1iYWNrLmxpbmstLWJhY2sge1xuICAgIEBleHRlbmQgLmVwc2lsb247XG4gICAgQGV4dGVuZCAubWljcm87XG4gICAgbWFyZ2luOjAgO1xuICAgIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgIGhlaWdodDokYmFzZS1zaXplICogMS4yO1xuICAgICAgICBsaW5lLWhlaWdodDogJGJhc2Utc2l6ZSAqIDEuMjtcbiAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LXNlY29uZGFyeTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06bm9uZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6MDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRyaWxsZG93bi1iYWNrIC5saW5rX19hcnJvdyB7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDEyKTtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB0b3A6cmVtLWNhbGMoMyk7XG4gICAgbWFyZ2luLXJpZ2h0OnJlbS1jYWxjKDIpO1xufVxuLmRyaWxsZG93bi1iYWNrLFxuLmxpbmstLWNsb3NlLFxuLmxpbmstLWFsbCB7XG4gICAgQGV4dGVuZCAuZXBzaWxvbjtcbiAgICBAZXh0ZW5kIC5taWNybztcbiAgICBkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjowO1xuICAgIHdpZHRoOjEwMCU7XG5cbiAgICBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1hbmNob3ItaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5saW5rLS1jbG9zZSxcbi5saW5rLS1hbGwge1xuICAgIFxuICAgIGEge1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWhlYXZ5ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbi5saW5rLS1jbG9zZSB7XG4gICAgd2lkdGg6MzAlO1xufVxuXG4uZHJpbGxkb3duLWJhY2sge1xuICAgIHdpZHRoOjcwJTtcbn1cbi5saW5rLS1jbG9zZSB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgdG9wOjA7XG4gICAgcmlnaHQ6MDtcbiAgICB6LWluZGV4OjEwO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmstZ3JheTtcbn1cblxuLmRyb3Bkb3duLm1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgLnN1Ym1lbnUge1xuICAgIHJpZ2h0OmF1dG87XG4gICAgbGVmdDowO1xufVxuIiwiLnRhYnMge1xuICAgIGJvcmRlcjpub25lO1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuXG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgfVxuXG4gICAgJi5tZW51LmV4cGFuZGVkIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgICAgICAmLm1lbnUuZXhwYW5kZWQge1xuICAgICAgICAgICAgZGlzcGxheTp0YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6dGFibGUtY2VsbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cbiAgICAgICAgbGkudGFic19fdmlld2Vycy1ndWlkZSB7XG4gICAgICAgICAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtdGl0bGUge1xuICAgICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgICAgIGZsb2F0Om5vbmU7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTp0YWJsZS1jZWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IGEsXG4gICAgICAgIC5wYWdpbmF0aW9uX19wYWdlLWNvdW50e1xuICAgICAgICAgICAgQGV4dGVuZCAuemV0YTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgICAgICY6bm90KCcuYnV0dG9uJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS42ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOjAgMCByZW0tY2FsYygzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0Oi0kaGFsZi1zaXplO1xuICAgICAgICAgICAgICAgIHJpZ2h0Oi0kaGFsZi1zaXplO1xuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkdGltaW5nICRlYXNpbmc7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMSk7XG4gICAgICAgICAgICAgICAgdG9wOmF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICAgICAgICAgIGJvdHRvbTowO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRoYWxmLXNpemUvMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOjA7XG5cbiAgICAgICAgICAgICAgICAubGlua19fYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICB0b3A6NTAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBhLmJ1dHRvbiB7XG4gICAgICAgICAgICBvdmVyZmxvdzp2aXNpYmxlO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm90dG9tOi0ycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAudGFic19fdmlld2Vycy1ndWlkZSxcbiAgICAudGFic19fbmV4dCxcbiAgICAudGFic19fcHJldmlvdXMsXG4gICAgLnRhYnNfX2NlbnRlciB7XG4gICAgICAgIGEsXG4gICAgICAgICYudGFicy10aXRsZSA+IGE6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOm5vbmU7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFic19fdmlld2Vycy1ndWlkZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6KC0xMDAlLzMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC50YWJzLXRpdGxlLnRhYnNfX3ByZXZpb3VzIHtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICBkaXNwbGF5OnRhYmxlLWNlbGw7XG4gICAgfVxuICAgIC50YWJzLXRpdGxlLnRhYnNfX25leHQge1xuICAgICAgICBkaXNwbGF5OnRhYmxlLWNlbGw7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6KDEwMCUvMyk7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAudGFicy10aXRsZS5pcy1hY3RpdmUgPiBhLFxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cyxcbiAgICAudGFicy10aXRsZSA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzowIDAgMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6bm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSA+IC5idXR0b24sXG4gICAgLnRhYnMtdGl0bGUgPiAuYnV0dG9uIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYW5jaG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmZvY3VzLFxuICAgIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGFicy1wYW5lbCB7XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiRiYXNlLXNpemU7XG4gICAgfVxufVxuXG4udGFic19fcGxhY2Vob2xkZXIge1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgaGVpZ2h0OjFweDtcbiAgICB3aWR0aDoxcHg7XG59XG5cbiIsIi5wYWdpbmF0aW9uX19wYWdlLWNvdW50IHtcbiAgICBkaXNwbGF5OmJsb2NrO1xufVxuXG4iLCIuanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgICB6LWluZGV4OjE7XG59XG5cbi5pdGVtX19sYWJlbCB7XG4gICAgdG9wOiAtMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTk5OTtcbn1cblxuLmxhYmVsLW5ldywgLmJhbm5lci1ldmVudCB7XG5cdGNvbG9yOiAkYmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1heC13aWR0aDo3MHB4O1xuXHRmb250LXNpemU6IDExcHg7XG5cdGZvbnQtd2VpZ2h0OjcwMDtcblx0bGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6NXB4O1xuXHRtYXJnaW46MCBhdXRvO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcbn1cblxuLmZlYXR1cmVkIC5pdGVtX19sYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDowO1xufVxuXG4uZmVhdHVyZWQgLmxhYmVsLW5ldyB7IFxuXHRtYXJnaW46IDA7XG59XG5cbi5iYW5uZXItZXZlbnQge1xuXHRjb2xvcjogJHdoaXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWFyb29uO1xuXHRtYXgtd2lkdGg6MTAwJTtcbn1cblxuaDQuZXZlbnQge1xuXHRjb2xvcjogJG1hcm9vbjtcblx0bGluZS1oZWlnaHQ6MTtcbn1cblxuaDQuZXZlbnQtc3BlYWtlciwgaDEuZXZlbnQtc3BlYWtlciB7XG5cdGZvbnQtd2VpZ2h0OjQwMDtcbn1cblxucC5ldmVudC1kYXRlIHtcblx0Y29sb3I6JGNvbG9yLXRleHQtcHJpbWFyeTtcbn1cblxuLm92ZXJsYXktYWx0IHtcblx0JjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1pdGVtLW92ZXJsYXktYmFja2dyb3VuZC1hbHQ7XG5cdH1cblx0LmJ1dHRvbiB7XG5cdFx0Ji5idXR0b24uaG9sbG93IHtcblx0ICAgICAgICAmOmZvY3VzLFxuXHQgICAgICAgICY6aG92ZXIge1xuXHQgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtYXJvb24tbGlnaHQsIDAuMyk7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cdC5saW5rLS1zaGFyZS5saW5rLS1zaGFyZS0td2hpdGU6aG92ZXIgLmljb24ge1xuXHRcdGZpbGw6ICRtYXJvb247XG5cdH1cbn1cblxuLnNoYXJlLS1hbHQge1xuXG5cdC5saW5rLS1zaGFyZSB7XG5cdFx0Ji5saW5rLS1zaGFyZS0td2hpdGUge1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0ICAgICAgICAgICAgLmljb24ge1xuXHQgICAgICAgICAgICAgICAgZmlsbDogJG1hcm9vbjtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0XHR9XG5cdH1cblxufVxuXG4uc2luZ2xlX19tYXN0LS1ldmVudCAubGluay0td2l0aC1hcnJvdyB7XG5cblx0Lmljb24ge1xuXHRcdGZpbGw6ICRtYXJvb247XG5cdH1cblxuXHRjb2xvcjogJG1hcm9vbjtcblxufVxuXG4uc2luZ2xlX19tYXN0LS1ldmVudCAubGluay0tc2hhcmUge1xuXG5cdCY6YmVmb3JlIHtcblx0ICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG1hcm9vbjtcblx0ICAgICAgICB9XG5cdCY6aG92ZXIge1xuXHRcdC5pY29uIHtcblx0XHRcdGZpbGw6ICR3aGl0ZTtcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0YmFja2dyb3VuZDogJG1hcm9vbjtcblx0XHR9XG5cdH1cblx0Lmljb24ge1xuXHRcdGZpbGw6ICRtYXJvb247XG5cdH1cbn1cblxuLnNpbmdsZV9fdGFicy0tZXZlbnQgLnRhYnMgLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGEge1xuXHRjb2xvcjogJG1hcm9vbiAhaW1wb3J0YW50O1xuXHQmOmFmdGVye1xuXHRcdGJhY2tncm91bmQ6JG1hcm9vbjtcblx0fVxufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
