@charset "UTF-8"; /** * Foundation for Sites * Version 6.7.5 * https://get.foundation * Licensed under MIT Open Source */ @media print, screen and (min-width: 40em) { .reveal.large, .reveal.small, .reveal.tiny, .reveal { right: auto; left: auto; margin: 0 auto; } } /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ html { line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; overflow: visible; } pre { font-family: monospace, monospace; font-size: 1em; } a { background-color: transparent; } abbr[title] { border-bottom: 0; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } img { border-style: none; } button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; } button, input { overflow: visible; } button, select { text-transform: none; } button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; } button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { padding: 0.35em 0.75em 0.625em; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; } progress { vertical-align: baseline; } textarea { overflow: auto; } [type=checkbox], [type=radio] { box-sizing: border-box; padding: 0; } [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; } [type=search] { -webkit-appearance: textfield; outline-offset: -2px; } [type=search]::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details { display: block; } summary { display: list-item; } template { display: none; } [hidden] { display: none; } [data-whatintent=mouse] *, [data-whatintent=mouse] *:focus, [data-whatintent=touch] *, [data-whatintent=touch] *:focus, [data-whatinput=mouse] *, [data-whatinput=mouse] *:focus, [data-whatinput=touch] *, [data-whatinput=touch] *:focus { outline: none; } [draggable=false] { -webkit-touch-callout: none; -webkit-user-select: none; } .foundation-mq { font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; } html { box-sizing: border-box; font-size: 1rem; } *, *::before, *::after { box-sizing: inherit; } body { margin: 0; padding: 0; background: #F1F1F1; font-family: proxima-nova, sans-serif; font-weight: normal; line-height: 1.5; color: #0a0a0a; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } img { display: inline-block; vertical-align: middle; max-width: 100%; height: auto; -ms-interpolation-mode: bicubic; } textarea { height: auto; min-height: 50px; border-radius: 0; } select { box-sizing: border-box; width: 100%; border-radius: 0; } .map_canvas img, .map_canvas embed, .map_canvas object, .mqa-display img, .mqa-display embed, .mqa-display object { max-width: none !important; } button { padding: 0; appearance: none; border: 0; border-radius: 0; background: transparent; line-height: 1; cursor: auto; } [data-whatinput=mouse] button { outline: 0; } pre { overflow: auto; -webkit-overflow-scrolling: touch; } button, input, optgroup, select, textarea { font-family: inherit; } .is-visible { display: block !important; } .is-hidden { display: none !important; } .row { max-width: 85.625rem; margin-right: auto; margin-left: auto; display: flex; flex-flow: row wrap; } .row .row { margin-right: -0.625rem; margin-left: -0.625rem; } @media print, screen and (min-width: 40em) { .row .row { margin-right: -0.9375rem; margin-left: -0.9375rem; } } @media print, screen and (min-width: 64em) { .row .row { margin-right: -0.9375rem; margin-left: -0.9375rem; } } @media screen and (min-width: 75em) { .row .row { margin-right: -0.9375rem; margin-left: -0.9375rem; } } .row .row.collapse { margin-right: 0; margin-left: 0; } .row.expanded { max-width: none; } .row.expanded .row { margin-right: auto; margin-left: auto; } .row:not(.expanded) .row { max-width: none; } .row.collapse > .column, .row.collapse > .columns { padding-right: 0; padding-left: 0; } .row.is-collapse-child, .row.collapse > .column > .row, .row.collapse > .columns > .row { margin-right: 0; margin-left: 0; } .column, .columns { flex: 1 1 0px; padding-right: 0.625rem; padding-left: 0.625rem; min-width: 0; } @media print, screen and (min-width: 40em) { .column, .columns { padding-right: 0.9375rem; padding-left: 0.9375rem; } } .column.row.row, .row.row.columns { float: none; display: block; } .row .column.row.row, .row .row.row.columns { margin-right: 0; margin-left: 0; padding-right: 0; padding-left: 0; } .small-1 { flex: 0 0 8.3333333333%; max-width: 8.3333333333%; } .small-offset-0 { margin-left: 0%; } .small-2 { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .small-offset-1 { margin-left: 8.3333333333%; } .small-3 { flex: 0 0 25%; max-width: 25%; } .small-offset-2 { margin-left: 16.6666666667%; } .small-4 { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .small-offset-3 { margin-left: 25%; } .small-5 { flex: 0 0 41.6666666667%; max-width: 41.6666666667%; } .small-offset-4 { margin-left: 33.3333333333%; } .small-6 { flex: 0 0 50%; max-width: 50%; } .small-offset-5 { margin-left: 41.6666666667%; } .small-7 { flex: 0 0 58.3333333333%; max-width: 58.3333333333%; } .small-offset-6 { margin-left: 50%; } .small-8 { flex: 0 0 66.6666666667%; max-width: 66.6666666667%; } .small-offset-7 { margin-left: 58.3333333333%; } .small-9 { flex: 0 0 75%; max-width: 75%; } .small-offset-8 { margin-left: 66.6666666667%; } .small-10 { flex: 0 0 83.3333333333%; max-width: 83.3333333333%; } .small-offset-9 { margin-left: 75%; } .small-11 { flex: 0 0 91.6666666667%; max-width: 91.6666666667%; } .small-offset-10 { margin-left: 83.3333333333%; } .small-12 { flex: 0 0 100%; max-width: 100%; } .small-offset-11 { margin-left: 91.6666666667%; } .small-up-1 { flex-wrap: wrap; } .small-up-1 > .column, .small-up-1 > .columns { flex: 0 0 100%; max-width: 100%; } .small-up-2 { flex-wrap: wrap; } .small-up-2 > .column, .small-up-2 > .columns { flex: 0 0 50%; max-width: 50%; } .small-up-3 { flex-wrap: wrap; } .small-up-3 > .column, .small-up-3 > .columns { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .small-up-4 { flex-wrap: wrap; } .small-up-4 > .column, .small-up-4 > .columns { flex: 0 0 25%; max-width: 25%; } .small-up-5 { flex-wrap: wrap; } .small-up-5 > .column, .small-up-5 > .columns { flex: 0 0 20%; max-width: 20%; } .small-up-6 { flex-wrap: wrap; } .small-up-6 > .column, .small-up-6 > .columns { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .small-up-7 { flex-wrap: wrap; } .small-up-7 > .column, .small-up-7 > .columns { flex: 0 0 14.2857142857%; max-width: 14.2857142857%; } .small-up-8 { flex-wrap: wrap; } .small-up-8 > .column, .small-up-8 > .columns { flex: 0 0 12.5%; max-width: 12.5%; } .small-collapse > .column, .small-collapse > .columns { padding-right: 0; padding-left: 0; } .small-uncollapse > .column, .small-uncollapse > .columns { padding-right: 0.625rem; padding-left: 0.625rem; } @media print, screen and (min-width: 40em) { .medium-1 { flex: 0 0 8.3333333333%; max-width: 8.3333333333%; } .medium-offset-0 { margin-left: 0%; } .medium-2 { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .medium-offset-1 { margin-left: 8.3333333333%; } .medium-3 { flex: 0 0 25%; max-width: 25%; } .medium-offset-2 { margin-left: 16.6666666667%; } .medium-4 { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .medium-offset-3 { margin-left: 25%; } .medium-5 { flex: 0 0 41.6666666667%; max-width: 41.6666666667%; } .medium-offset-4 { margin-left: 33.3333333333%; } .medium-6 { flex: 0 0 50%; max-width: 50%; } .medium-offset-5 { margin-left: 41.6666666667%; } .medium-7 { flex: 0 0 58.3333333333%; max-width: 58.3333333333%; } .medium-offset-6 { margin-left: 50%; } .medium-8 { flex: 0 0 66.6666666667%; max-width: 66.6666666667%; } .medium-offset-7 { margin-left: 58.3333333333%; } .medium-9 { flex: 0 0 75%; max-width: 75%; } .medium-offset-8 { margin-left: 66.6666666667%; } .medium-10 { flex: 0 0 83.3333333333%; max-width: 83.3333333333%; } .medium-offset-9 { margin-left: 75%; } .medium-11 { flex: 0 0 91.6666666667%; max-width: 91.6666666667%; } .medium-offset-10 { margin-left: 83.3333333333%; } .medium-12 { flex: 0 0 100%; max-width: 100%; } .medium-offset-11 { margin-left: 91.6666666667%; } .medium-up-1 { flex-wrap: wrap; } .medium-up-1 > .column, .medium-up-1 > .columns { flex: 0 0 100%; max-width: 100%; } .medium-up-2 { flex-wrap: wrap; } .medium-up-2 > .column, .medium-up-2 > .columns { flex: 0 0 50%; max-width: 50%; } .medium-up-3 { flex-wrap: wrap; } .medium-up-3 > .column, .medium-up-3 > .columns { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .medium-up-4 { flex-wrap: wrap; } .medium-up-4 > .column, .medium-up-4 > .columns { flex: 0 0 25%; max-width: 25%; } .medium-up-5 { flex-wrap: wrap; } .medium-up-5 > .column, .medium-up-5 > .columns { flex: 0 0 20%; max-width: 20%; } .medium-up-6 { flex-wrap: wrap; } .medium-up-6 > .column, .medium-up-6 > .columns { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .medium-up-7 { flex-wrap: wrap; } .medium-up-7 > .column, .medium-up-7 > .columns { flex: 0 0 14.2857142857%; max-width: 14.2857142857%; } .medium-up-8 { flex-wrap: wrap; } .medium-up-8 > .column, .medium-up-8 > .columns { flex: 0 0 12.5%; max-width: 12.5%; } } @media print, screen and (min-width: 40em) and (min-width: 40em) { .medium-expand { flex: 1 1 0px; } } .row.medium-unstack > .column, .row.medium-unstack > .columns { flex: 0 0 100%; } @media print, screen and (min-width: 40em) { .row.medium-unstack > .column, .row.medium-unstack > .columns { flex: 1 1 0px; } } @media print, screen and (min-width: 40em) { .medium-collapse > .column, .medium-collapse > .columns { padding-right: 0; padding-left: 0; } } @media print, screen and (min-width: 40em) { .medium-uncollapse > .column, .medium-uncollapse > .columns { padding-right: 0.9375rem; padding-left: 0.9375rem; } } @media print, screen and (min-width: 64em) { .large-1 { flex: 0 0 8.3333333333%; max-width: 8.3333333333%; } .large-offset-0 { margin-left: 0%; } .large-2 { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .large-offset-1 { margin-left: 8.3333333333%; } .large-3 { flex: 0 0 25%; max-width: 25%; } .large-offset-2 { margin-left: 16.6666666667%; } .large-4 { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .large-offset-3 { margin-left: 25%; } .large-5 { flex: 0 0 41.6666666667%; max-width: 41.6666666667%; } .large-offset-4 { margin-left: 33.3333333333%; } .large-6 { flex: 0 0 50%; max-width: 50%; } .large-offset-5 { margin-left: 41.6666666667%; } .large-7 { flex: 0 0 58.3333333333%; max-width: 58.3333333333%; } .large-offset-6 { margin-left: 50%; } .large-8 { flex: 0 0 66.6666666667%; max-width: 66.6666666667%; } .large-offset-7 { margin-left: 58.3333333333%; } .large-9 { flex: 0 0 75%; max-width: 75%; } .large-offset-8 { margin-left: 66.6666666667%; } .large-10 { flex: 0 0 83.3333333333%; max-width: 83.3333333333%; } .large-offset-9 { margin-left: 75%; } .large-11 { flex: 0 0 91.6666666667%; max-width: 91.6666666667%; } .large-offset-10 { margin-left: 83.3333333333%; } .large-12 { flex: 0 0 100%; max-width: 100%; } .large-offset-11 { margin-left: 91.6666666667%; } .large-up-1 { flex-wrap: wrap; } .large-up-1 > .column, .large-up-1 > .columns { flex: 0 0 100%; max-width: 100%; } .large-up-2 { flex-wrap: wrap; } .large-up-2 > .column, .large-up-2 > .columns { flex: 0 0 50%; max-width: 50%; } .large-up-3 { flex-wrap: wrap; } .large-up-3 > .column, .large-up-3 > .columns { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .large-up-4 { flex-wrap: wrap; } .large-up-4 > .column, .large-up-4 > .columns { flex: 0 0 25%; max-width: 25%; } .large-up-5 { flex-wrap: wrap; } .large-up-5 > .column, .large-up-5 > .columns { flex: 0 0 20%; max-width: 20%; } .large-up-6 { flex-wrap: wrap; } .large-up-6 > .column, .large-up-6 > .columns { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .large-up-7 { flex-wrap: wrap; } .large-up-7 > .column, .large-up-7 > .columns { flex: 0 0 14.2857142857%; max-width: 14.2857142857%; } .large-up-8 { flex-wrap: wrap; } .large-up-8 > .column, .large-up-8 > .columns { flex: 0 0 12.5%; max-width: 12.5%; } } @media print, screen and (min-width: 64em) and (min-width: 64em) { .large-expand { flex: 1 1 0px; } } .row.large-unstack > .column, .row.large-unstack > .columns { flex: 0 0 100%; } @media print, screen and (min-width: 64em) { .row.large-unstack > .column, .row.large-unstack > .columns { flex: 1 1 0px; } } @media print, screen and (min-width: 64em) { .large-collapse > .column, .large-collapse > .columns { padding-right: 0; padding-left: 0; } } @media print, screen and (min-width: 64em) { .large-uncollapse > .column, .large-uncollapse > .columns { padding-right: 0.9375rem; padding-left: 0.9375rem; } } @media screen and (min-width: 75em) { .xlarge-1 { flex: 0 0 8.3333333333%; max-width: 8.3333333333%; } .xlarge-offset-0 { margin-left: 0%; } .xlarge-2 { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .xlarge-offset-1 { margin-left: 8.3333333333%; } .xlarge-3 { flex: 0 0 25%; max-width: 25%; } .xlarge-offset-2 { margin-left: 16.6666666667%; } .xlarge-4 { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .xlarge-offset-3 { margin-left: 25%; } .xlarge-5 { flex: 0 0 41.6666666667%; max-width: 41.6666666667%; } .xlarge-offset-4 { margin-left: 33.3333333333%; } .xlarge-6 { flex: 0 0 50%; max-width: 50%; } .xlarge-offset-5 { margin-left: 41.6666666667%; } .xlarge-7 { flex: 0 0 58.3333333333%; max-width: 58.3333333333%; } .xlarge-offset-6 { margin-left: 50%; } .xlarge-8 { flex: 0 0 66.6666666667%; max-width: 66.6666666667%; } .xlarge-offset-7 { margin-left: 58.3333333333%; } .xlarge-9 { flex: 0 0 75%; max-width: 75%; } .xlarge-offset-8 { margin-left: 66.6666666667%; } .xlarge-10 { flex: 0 0 83.3333333333%; max-width: 83.3333333333%; } .xlarge-offset-9 { margin-left: 75%; } .xlarge-11 { flex: 0 0 91.6666666667%; max-width: 91.6666666667%; } .xlarge-offset-10 { margin-left: 83.3333333333%; } .xlarge-12 { flex: 0 0 100%; max-width: 100%; } .xlarge-offset-11 { margin-left: 91.6666666667%; } .xlarge-up-1 { flex-wrap: wrap; } .xlarge-up-1 > .column, .xlarge-up-1 > .columns { flex: 0 0 100%; max-width: 100%; } .xlarge-up-2 { flex-wrap: wrap; } .xlarge-up-2 > .column, .xlarge-up-2 > .columns { flex: 0 0 50%; max-width: 50%; } .xlarge-up-3 { flex-wrap: wrap; } .xlarge-up-3 > .column, .xlarge-up-3 > .columns { flex: 0 0 33.3333333333%; max-width: 33.3333333333%; } .xlarge-up-4 { flex-wrap: wrap; } .xlarge-up-4 > .column, .xlarge-up-4 > .columns { flex: 0 0 25%; max-width: 25%; } .xlarge-up-5 { flex-wrap: wrap; } .xlarge-up-5 > .column, .xlarge-up-5 > .columns { flex: 0 0 20%; max-width: 20%; } .xlarge-up-6 { flex-wrap: wrap; } .xlarge-up-6 > .column, .xlarge-up-6 > .columns { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; } .xlarge-up-7 { flex-wrap: wrap; } .xlarge-up-7 > .column, .xlarge-up-7 > .columns { flex: 0 0 14.2857142857%; max-width: 14.2857142857%; } .xlarge-up-8 { flex-wrap: wrap; } .xlarge-up-8 > .column, .xlarge-up-8 > .columns { flex: 0 0 12.5%; max-width: 12.5%; } } @media screen and (min-width: 75em) and (min-width: 75em) { .xlarge-expand { flex: 1 1 0px; } } .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns { flex: 0 0 100%; } @media screen and (min-width: 75em) { .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns { flex: 1 1 0px; } } @media screen and (min-width: 75em) { .xlarge-collapse > .column, .xlarge-collapse > .columns { padding-right: 0; padding-left: 0; } } @media screen and (min-width: 75em) { .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns { padding-right: 0.9375rem; padding-left: 0.9375rem; } } .shrink { flex: 0 0 auto; max-width: 100%; } .column-block { margin-bottom: 1.25rem; } .column-block > :last-child { margin-bottom: 0; } @media print, screen and (min-width: 40em) { .column-block { margin-bottom: 1.875rem; } .column-block > :last-child { margin-bottom: 0; } } div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; } p { margin-bottom: 1rem; font-size: inherit; line-height: 1.6; text-rendering: optimizeLegibility; } em, i { font-style: italic; line-height: inherit; } strong, b { font-weight: bold; line-height: inherit; } small { font-size: 80%; line-height: inherit; } h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { font-family: proxima-nova, sans-serif; font-style: normal; font-weight: normal; color: #545555; text-rendering: optimizeLegibility; } h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small { line-height: 0; color: #cacaca; } h1, .h1 { font-size: 1.5rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } h2, .h2 { font-size: 1.25rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } h3, .h3 { font-size: 1.1875rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } h4, .h4 { font-size: 1.125rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } h5, .h5 { font-size: 1.0625rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } h6, .h6 { font-size: 1rem; line-height: 1.4; margin-top: 0; margin-bottom: 0.5rem; } @media print, screen and (min-width: 40em) { h1, .h1 { font-size: 3.4375rem; } h2, .h2 { font-size: 1.6875rem; } h3, .h3 { font-size: 1.6875rem; } h4, .h4 { font-size: 0.75rem; } h5, .h5 { font-size: 0.75rem; } h6, .h6 { font-size: 0.75rem; } } a { line-height: inherit; color: #FF1A58; text-decoration: none; cursor: pointer; } a:hover, a:focus { color: #f20041; } a img { border: 0; } hr { clear: both; max-width: 85.625rem; height: 0; margin: 1.25rem auto; border-top: 0; border-right: 0; border-bottom: 1px solid #cacaca; border-left: 0; } ul, ol, dl { margin-bottom: 1rem; list-style-position: outside; line-height: 1.6; } li { font-size: inherit; } ul { margin-left: 1.25rem; list-style-type: disc; } ol { margin-left: 1.25rem; } ul ul, ul ol, ol ul, ol ol { margin-left: 1.25rem; margin-bottom: 0; } dl { margin-bottom: 1rem; } dl dt { margin-bottom: 0.3rem; font-weight: bold; } blockquote { margin: 0 0 1rem; padding: 0.5625rem 1.25rem 0 1.1875rem; border-left: 1px solid #cacaca; } blockquote, blockquote p { line-height: 1.6; color: #6E6E6E; } abbr, abbr[title] { border-bottom: 1px dotted #0a0a0a; cursor: help; text-decoration: none; } figure { margin: 0; } kbd { margin: 0; padding: 0.125rem 0.25rem 0; background-color: #D8D8D8; font-family: Consolas, "Liberation Mono", Courier, monospace; color: #0a0a0a; } .subheader { margin-top: 0.2rem; margin-bottom: 0.5rem; font-weight: normal; line-height: 1.4; color: #6E6E6E; } .lead { font-size: 1.25rem; line-height: 1.6; } .stat { font-size: 2.5rem; line-height: 1; } p + .stat { margin-top: -1rem; } ul.no-bullet, ol.no-bullet { margin-left: 0; list-style: none; } .cite-block, cite { display: block; color: #6E6E6E; font-size: 0.8125rem; } .cite-block:before, cite:before { content: "— "; } .code-inline, code { border: 1px solid #cacaca; background-color: #D8D8D8; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #0a0a0a; display: inline; max-width: 100%; word-wrap: break-word; padding: 0.125rem 0.3125rem 0.0625rem; } .code-block { border: 1px solid #cacaca; background-color: #D8D8D8; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #0a0a0a; display: block; overflow: auto; white-space: pre; padding: 1rem; margin-bottom: 1.5rem; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } @media print, 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 print, 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; } } @media screen and (min-width: 75em) { .xlarge-text-left { text-align: left; } .xlarge-text-right { text-align: right; } .xlarge-text-center { text-align: center; } .xlarge-text-justify { text-align: justify; } } .show-for-print { display: none !important; } @media print { * { background: transparent !important; color: black !important; print-color-adjust: economy; 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 #6E6E6E; 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, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } .print-break-inside { page-break-inside: auto; } } .button { display: inline-block; vertical-align: middle; margin: 0 0 1rem 0; padding: 0.75rem 1.5rem 0.65625rem 1.5rem; border: 1px solid transparent; border-radius: 0; transition: background-color 0.25s ease-out, color 0.25s ease-out; font-family: inherit; font-size: 0.875rem; -webkit-appearance: none; line-height: 1; text-align: center; cursor: pointer; } [data-whatinput=mouse] .button { outline: 0; } .button.tiny { font-size: 0.6rem; } .button.small { font-size: 0.75rem; } .button.large { font-size: 1.25rem; } .button.expanded { display: block; width: 100%; margin-right: 0; margin-left: 0; } .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus { background-color: #FF1A58; color: #fefefe; } .button:hover, .button:focus { background-color: #ef0041; color: #fefefe; } .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus { background-color: #FF1A58; color: #0a0a0a; } .button.primary:hover, .button.primary:focus { background-color: #e1003d; color: #0a0a0a; } .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus { background-color: #FF1A58; color: #0a0a0a; } .button.secondary:hover, .button.secondary:focus { background-color: #e1003d; color: #0a0a0a; } .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus { background-color: #3adb76; color: #0a0a0a; } .button.success:hover, .button.success:focus { background-color: #22bb5b; color: #0a0a0a; } .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus { background-color: #ffae00; color: #0a0a0a; } .button.warning:hover, .button.warning:focus { background-color: #cc8b00; color: #0a0a0a; } .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus { background-color: #ec5840; color: #0a0a0a; } .button.alert:hover, .button.alert:focus { background-color: #da3116; color: #0a0a0a; } .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus { background-color: transparent; } .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button.hollow:hover, .button.hollow:focus { border-color: #8d0026; color: #8d0026; } .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button.hollow.primary:hover, .button.hollow.primary:focus { border-color: #8d0026; color: #8d0026; } .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button.hollow.secondary:hover, .button.hollow.secondary:focus { border-color: #8d0026; color: #8d0026; } .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus { border: 1px solid #3adb76; color: #3adb76; } .button.hollow.success:hover, .button.hollow.success:focus { border-color: #157539; color: #157539; } .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus { border: 1px solid #ffae00; color: #ffae00; } .button.hollow.warning:hover, .button.hollow.warning:focus { border-color: #805700; color: #805700; } .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus { border: 1px solid #ec5840; color: #ec5840; } .button.hollow.alert:hover, .button.hollow.alert:focus { border-color: #881f0e; color: #881f0e; } .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus { border-color: transparent; background-color: transparent; } .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus { color: #FF1A58; } .button.clear:hover, .button.clear:focus { color: #8d0026; } .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus { color: #FF1A58; } .button.clear.primary:hover, .button.clear.primary:focus { color: #8d0026; } .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus { color: #FF1A58; } .button.clear.secondary:hover, .button.clear.secondary:focus { color: #8d0026; } .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus { color: #3adb76; } .button.clear.success:hover, .button.clear.success:focus { color: #157539; } .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus { color: #ffae00; } .button.clear.warning:hover, .button.clear.warning:focus { color: #805700; } .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus { color: #ec5840; } .button.clear.alert:hover, .button.clear.alert:focus { color: #881f0e; } .button.disabled, .button[disabled] { opacity: 0.25; cursor: not-allowed; } .button.dropdown::after { display: block; width: 0; height: 0; border-style: solid; border-width: 0.4em; content: ""; border-bottom-width: 0; border-color: #fefefe transparent transparent; position: relative; top: 0.4em; display: inline-block; float: right; margin-left: 1.5rem; } .button.dropdown.hollow::after, .button.dropdown.clear::after { border-top-color: #FF1A58; } .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after { border-top-color: #FF1A58; } .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after { border-top-color: #FF1A58; } .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after { border-top-color: #3adb76; } .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after { border-top-color: #ffae00; } .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after { border-top-color: #ec5840; } .button.arrow-only::after { top: -0.1em; float: none; margin-left: 0; } a.button:hover, a.button:focus { text-decoration: none; } [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; margin: 0 0 1rem; padding: 0.5rem; border: 1px solid #cacaca; border-radius: 0; background-color: #fefefe; box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); font-family: inherit; font-size: 1rem; font-weight: normal; line-height: 1.5; color: #0a0a0a; transition: box-shadow 0.5s, border-color 0.25s ease-in-out; 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 { outline: none; border: 1px solid #6E6E6E; background-color: #fefefe; box-shadow: 0 0 5px #cacaca; 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: #D8D8D8; cursor: default; } [type=submit], [type=button] { appearance: none; border-radius: 0; } input[type=search] { box-sizing: border-box; } ::placeholder { color: #cacaca; } [type=file], [type=checkbox], [type=radio] { margin: 0 0 1rem; } [type=checkbox] + label, [type=radio] + label { display: inline-block; vertical-align: baseline; margin-left: 0.5rem; margin-right: 1rem; margin-bottom: 0; } [type=checkbox] + label[for], [type=radio] + label[for] { cursor: pointer; } label > [type=checkbox], label > [type=radio] { margin-right: 0.5rem; } [type=file] { width: 100%; } label { display: block; margin: 0; font-size: 0.875rem; font-weight: normal; line-height: 1.8; color: #0a0a0a; } label.middle { margin: 0 0 1rem; line-height: 1.5; padding: 0.5625rem 0; } .help-text { margin-top: -0.5rem; font-size: 0.8125rem; font-style: italic; color: #0a0a0a; } .input-group { display: table; width: 100%; margin-bottom: 1rem; } .input-group > :first-child, .input-group > :first-child.input-group-button > * { border-radius: 0 0 0 0; } .input-group > :last-child, .input-group > :last-child.input-group-button > * { border-radius: 0 0 0 0; } .input-group-button a, .input-group-button input, .input-group-button button, .input-group-button label, .input-group-button, .input-group-field, .input-group-label { margin: 0; white-space: nowrap; display: table-cell; vertical-align: middle; } .input-group-label { padding: 0 1rem; border: 1px solid #cacaca; background: #D8D8D8; color: #0a0a0a; text-align: center; white-space: nowrap; width: 1%; height: 100%; } .input-group-label:first-child { border-right: 0; } .input-group-label:last-child { border-left: 0; } .input-group-field { border-radius: 0; } .input-group-button { padding-top: 0; padding-bottom: 0; text-align: center; width: 1%; height: 100%; } .input-group-button a, .input-group-button input, .input-group-button button, .input-group-button label { height: 2.4375rem; padding-top: 0; padding-bottom: 0; font-size: 1rem; } .input-group .input-group-button { display: table-cell; } fieldset { margin: 0; padding: 0; border: 0; } legend { max-width: 100%; margin-bottom: 0.5rem; } .fieldset { margin: 1.125rem 0; padding: 1.25rem; border: 1px solid #cacaca; } .fieldset legend { margin: 0; margin-left: -0.1875rem; padding: 0 0.1875rem; } select { height: 2.4375rem; margin: 0 0 1rem; padding: 0.5rem; appearance: none; border: 1px solid #cacaca; border-radius: 0; background-color: #fefefe; font-family: inherit; font-size: 1rem; font-weight: normal; line-height: 1.5; color: #0a0a0a; background-image: url('data:image/svg+xml;utf8,'); background-origin: content-box; background-position: right -1rem center; background-repeat: no-repeat; background-size: 9px 6px; padding-right: 1.5rem; transition: box-shadow 0.5s, border-color 0.25s ease-in-out; } @media screen and (min-width: 0\0 ) { select { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } } select:focus { outline: none; border: 1px solid #6E6E6E; background-color: #fefefe; box-shadow: 0 0 5px #cacaca; transition: box-shadow 0.5s, border-color 0.25s ease-in-out; } select:disabled { background-color: #D8D8D8; cursor: default; } select::-ms-expand { display: none; } select[multiple] { height: auto; background-image: none; } select:not([multiple]) { padding-top: 0; padding-bottom: 0; } .is-invalid-input:not(:focus) { border-color: #ec5840; background-color: #fcedeb; } .is-invalid-input:not(:focus)::placeholder { color: #ec5840; } .is-invalid-label { color: #ec5840; } .form-error { display: none; margin-top: -0.5rem; margin-bottom: 1rem; font-size: 0.75rem; font-weight: bold; color: #ec5840; } .form-error.is-visible { display: block; } .accordion { margin-left: 0; background: #fefefe; list-style-type: none; } .accordion[disabled] .accordion-title { cursor: not-allowed; } .accordion-item:first-child > :first-child { border-radius: 0 0 0 0; } .accordion-item:last-child > :last-child { border-radius: 0 0 0 0; } .accordion-title { position: relative; display: block; padding: 1.25rem 1rem; border: 1px solid #D8D8D8; border-bottom: 0; font-size: 0.75rem; line-height: 1; color: foreground(#fefefe, #FF1A58); } :last-child:not(.is-active) > .accordion-title { border-bottom: 1px solid #D8D8D8; border-radius: 0 0 0 0; } .accordion-title:hover, .accordion-title:focus { background-color: #D8D8D8; } .accordion-title::before { position: absolute; top: 50%; right: 1rem; margin-top: -0.5rem; content: "+"; } .is-active > .accordion-title::before { content: "–"; } .accordion-content { display: none; padding: 1rem; border: 1px solid #D8D8D8; border-bottom: 0; background-color: #fefefe; color: foreground(#fefefe, #FF1A58); } :last-child > .accordion-content:last-child { border-bottom: 1px solid #D8D8D8; } .accordion-menu li { width: 100%; } .accordion-menu a { padding: 0.7rem 1rem; } .accordion-menu .is-accordion-submenu a { padding: 0.7rem 1rem; } .accordion-menu .nested.is-accordion-submenu { margin-right: 0; margin-left: 1rem; } .accordion-menu.align-right .nested.is-accordion-submenu { margin-right: 1rem; margin-left: 0; } .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a { position: relative; } .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-bottom-width: 0; border-color: #FF1A58 transparent transparent; position: absolute; top: 50%; margin-top: -3px; right: 1rem; } .accordion-menu.align-left .is-accordion-submenu-parent > a::after { right: 1rem; left: auto; } .accordion-menu.align-right .is-accordion-submenu-parent > a::after { right: auto; left: 1rem; } .accordion-menu .is-accordion-submenu-parent[aria-expanded=true] > a::after { transform: rotate(180deg); transform-origin: 50% 50%; } .is-accordion-submenu-parent { position: relative; } .has-submenu-toggle > a { margin-right: 40px; } .submenu-toggle { position: absolute; top: 0; right: 0; width: 40px; height: 40px; cursor: pointer; } .submenu-toggle::after { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-bottom-width: 0; border-color: #FF1A58 transparent transparent; top: 0; bottom: 0; margin: auto; } .submenu-toggle[aria-expanded=true]::after { transform: scaleY(-1); transform-origin: 50% 50%; } .submenu-toggle-text { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; } .badge { display: inline-block; min-width: 2.1em; padding: 0.3em; border-radius: 50%; font-size: 0.6rem; text-align: center; background: #FF1A58; color: #fefefe; } .badge.primary { background: #FF1A58; color: #0a0a0a; } .badge.secondary { background: #FF1A58; color: #0a0a0a; } .badge.success { background: #3adb76; color: #0a0a0a; } .badge.warning { background: #ffae00; color: #0a0a0a; } .badge.alert { background: #ec5840; color: #0a0a0a; } .breadcrumbs { margin: 0 0 1rem 0; list-style: none; } .breadcrumbs::before, .breadcrumbs::after { display: table; content: " "; } .breadcrumbs::after { clear: both; } .breadcrumbs li { float: left; font-size: 0.6875rem; color: #0a0a0a; cursor: default; text-transform: uppercase; } .breadcrumbs li:not(:last-child)::after { position: relative; margin: 0 0.75rem; opacity: 1; content: "/"; color: #cacaca; } .breadcrumbs a { color: #FF1A58; } .breadcrumbs a:hover { text-decoration: underline; } .breadcrumbs .disabled { color: #cacaca; cursor: not-allowed; } .button-group { margin-bottom: 1rem; font-size: 0; } .button-group::before, .button-group::after { display: table; content: " "; } .button-group::after { clear: both; } .button-group .button { margin: 0; margin-right: 1px; margin-bottom: 1px; font-size: 0.875rem; } .button-group .button:last-child { margin-right: 0; } .button-group.tiny .button { font-size: 0.6rem; } .button-group.small .button { font-size: 0.75rem; } .button-group.large .button { font-size: 1.25rem; } .button-group.expanded { margin-right: -1px; } .button-group.expanded::before, .button-group.expanded::after { display: none; } .button-group.expanded .button:first-child:last-child { width: calc(100% - 1px); } .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button { display: inline-block; width: calc(50% - 1px); margin-right: 1px; } .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child { margin-right: -6px; } .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button { display: inline-block; width: calc(33.3333333333% - 1px); margin-right: 1px; } .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child { margin-right: -6px; } .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button { display: inline-block; width: calc(25% - 1px); margin-right: 1px; } .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child { margin-right: -6px; } .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button { display: inline-block; width: calc(20% - 1px); margin-right: 1px; } .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child { margin-right: -6px; } .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button { display: inline-block; width: calc(16.6666666667% - 1px); margin-right: 1px; } .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child { margin-right: -6px; } .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus { background-color: #FF1A58; color: #0a0a0a; } .button-group.primary .button:hover, .button-group.primary .button:focus { background-color: #e1003d; color: #0a0a0a; } .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus { background-color: #FF1A58; color: #0a0a0a; } .button-group.secondary .button:hover, .button-group.secondary .button:focus { background-color: #e1003d; color: #0a0a0a; } .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus { background-color: #3adb76; color: #0a0a0a; } .button-group.success .button:hover, .button-group.success .button:focus { background-color: #22bb5b; color: #0a0a0a; } .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus { background-color: #ffae00; color: #0a0a0a; } .button-group.warning .button:hover, .button-group.warning .button:focus { background-color: #cc8b00; color: #0a0a0a; } .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus { background-color: #ec5840; color: #0a0a0a; } .button-group.alert .button:hover, .button-group.alert .button:focus { background-color: #da3116; color: #0a0a0a; } .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus { background-color: transparent; } .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button-group.hollow .button:hover, .button-group.hollow .button:focus { border-color: #8d0026; color: #8d0026; } .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus { border-color: #8d0026; color: #8d0026; } .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus { border: 1px solid #FF1A58; color: #FF1A58; } .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus { border-color: #8d0026; color: #8d0026; } .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus { border: 1px solid #3adb76; color: #3adb76; } .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus { border-color: #157539; color: #157539; } .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus { border: 1px solid #ffae00; color: #ffae00; } .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus { border-color: #805700; color: #805700; } .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus { border: 1px solid #ec5840; color: #ec5840; } .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus { border-color: #881f0e; color: #881f0e; } .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus { border-color: transparent; background-color: transparent; } .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus { color: #FF1A58; } .button-group.clear .button:hover, .button-group.clear .button:focus { color: #8d0026; } .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus { color: #FF1A58; } .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus { color: #8d0026; } .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus { color: #FF1A58; } .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus { color: #8d0026; } .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus { color: #3adb76; } .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus { color: #157539; } .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus { color: #ffae00; } .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus { color: #805700; } .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus { color: #ec5840; } .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus { color: #881f0e; } .button-group.no-gaps .button { margin-right: -0.0625rem; } .button-group.no-gaps .button + .button { border-left-color: transparent; } .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button { width: 100%; } .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child { margin-bottom: 0; } .button-group.stacked.expanded, .button-group.stacked-for-small.expanded, .button-group.stacked-for-medium.expanded { margin-right: -1px; } .button-group.stacked.expanded::before, .button-group.stacked.expanded::after, .button-group.stacked-for-small.expanded::before, .button-group.stacked-for-small.expanded::after, .button-group.stacked-for-medium.expanded::before, .button-group.stacked-for-medium.expanded::after { display: none; } .button-group.stacked.expanded .button:first-child:last-child, .button-group.stacked-for-small.expanded .button:first-child:last-child, .button-group.stacked-for-medium.expanded .button:first-child:last-child { width: calc(100% - 1px); } .button-group.stacked.expanded .button:first-child:nth-last-child(2), .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button { display: inline-block; width: calc(50% - 1px); margin-right: 1px; } .button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child { margin-right: -6px; } .button-group.stacked.expanded .button:first-child:nth-last-child(3), .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button { display: inline-block; width: calc(33.3333333333% - 1px); margin-right: 1px; } .button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child { margin-right: -6px; } .button-group.stacked.expanded .button:first-child:nth-last-child(4), .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button { display: inline-block; width: calc(25% - 1px); margin-right: 1px; } .button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child { margin-right: -6px; } .button-group.stacked.expanded .button:first-child:nth-last-child(5), .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button { display: inline-block; width: calc(20% - 1px); margin-right: 1px; } .button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child { margin-right: -6px; } .button-group.stacked.expanded .button:first-child:nth-last-child(6), .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button { display: inline-block; width: calc(16.6666666667% - 1px); margin-right: 1px; } .button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child { margin-right: -6px; } @media print, screen and (min-width: 40em) { .button-group.stacked-for-small .button { width: auto; margin-bottom: 0; } } @media print, screen and (min-width: 64em) { .button-group.stacked-for-medium .button { width: auto; margin-bottom: 0; } } @media print, screen and (max-width: 39.99875em) { .button-group.stacked-for-small.expanded { display: block; } .button-group.stacked-for-small.expanded .button { display: block; margin-right: 0; } } @media print, screen and (max-width: 63.99875em) { .button-group.stacked-for-medium.expanded { display: block; } .button-group.stacked-for-medium.expanded .button { display: block; margin-right: 0; } } .callout { position: relative; margin: 0 0 1rem 0; padding: 1rem; border: 1px solid rgba(10, 10, 10, 0.25); border-radius: 0; background-color: white; color: #0a0a0a; } .callout > :first-child { margin-top: 0; } .callout > :last-child { margin-bottom: 0; } .callout.primary { background-color: #ffdde6; color: #0a0a0a; } .callout.secondary { background-color: #ffdde6; color: #0a0a0a; } .callout.success { background-color: #e1faea; color: #0a0a0a; } .callout.warning { background-color: #fff3d9; color: #0a0a0a; } .callout.alert { background-color: #fce6e2; color: #0a0a0a; } .callout.small { padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } .callout.large { padding-top: 3rem; padding-right: 3rem; padding-bottom: 3rem; padding-left: 3rem; } .close-button { position: absolute; z-index: 10; color: #6E6E6E; cursor: pointer; } [data-whatinput=mouse] .close-button { outline: 0; } .close-button:hover, .close-button:focus { color: #0a0a0a; } .close-button.small { right: 0.66rem; top: 0.33em; font-size: 1.5em; line-height: 1; } .close-button.medium, .close-button { right: 1rem; top: 0.5rem; font-size: 2em; line-height: 1; } .menu { padding: 0; margin: 0; list-style: none; position: relative; } [data-whatinput=mouse] .menu li { outline: 0; } .menu a, .menu .button { line-height: 1; text-decoration: none; display: block; padding: 0.7rem 1rem; } .menu input, .menu select, .menu a, .menu button { margin-bottom: 0; } .menu input { display: inline-block; } .menu li, .menu.horizontal li { display: inline-block; } .menu.vertical li { display: block; } .menu.expanded { display: table; width: 100%; } .menu.expanded > li { display: table-cell; vertical-align: middle; } .menu.simple li + li { margin-left: 1rem; } .menu.simple a { padding: 0; } @media print, screen and (min-width: 40em) { .menu.medium-horizontal li { display: inline-block; } .menu.medium-vertical li { display: block; } .menu.medium-expanded { display: table; width: 100%; } .menu.medium-expanded > li { display: table-cell; vertical-align: middle; } .menu.medium-simple { display: table; width: 100%; } .menu.medium-simple > li { display: table-cell; vertical-align: middle; } } @media print, screen and (min-width: 64em) { .menu.large-horizontal li { display: inline-block; } .menu.large-vertical li { display: block; } .menu.large-expanded { display: table; width: 100%; } .menu.large-expanded > li { display: table-cell; vertical-align: middle; } .menu.large-simple { display: table; width: 100%; } .menu.large-simple > li { display: table-cell; vertical-align: middle; } } @media screen and (min-width: 75em) { .menu.xlarge-horizontal li { display: inline-block; } .menu.xlarge-vertical li { display: block; } .menu.xlarge-expanded { display: table; width: 100%; } .menu.xlarge-expanded > li { display: table-cell; vertical-align: middle; } .menu.xlarge-simple { display: table; width: 100%; } .menu.xlarge-simple > li { display: table-cell; vertical-align: middle; } } .menu.nested { margin-right: 0; margin-left: 1rem; } .menu.icons img, .menu.icons i, .menu.icons svg { vertical-align: middle; } .menu.icons img + span, .menu.icons i + span, .menu.icons svg + span { vertical-align: middle; } .menu.icon-top img, .menu.icon-top i, .menu.icon-top svg, .menu.icon-right img, .menu.icon-right i, .menu.icon-right svg, .menu.icon-bottom img, .menu.icon-bottom i, .menu.icon-bottom svg, .menu.icon-left img, .menu.icon-left i, .menu.icon-left svg { vertical-align: middle; } .menu.icon-top img + span, .menu.icon-top i + span, .menu.icon-top svg + span, .menu.icon-right img + span, .menu.icon-right i + span, .menu.icon-right svg + span, .menu.icon-bottom img + span, .menu.icon-bottom i + span, .menu.icon-bottom svg + span, .menu.icon-left img + span, .menu.icon-left i + span, .menu.icon-left svg + span { vertical-align: middle; } .menu.icon-left li a img, .menu.icon-left li a i, .menu.icon-left li a svg, .menu.nested.icon-left li a img, .menu.nested.icon-left li a i, .menu.nested.icon-left li a svg { margin-right: 0.25rem; display: inline-block; } .menu.icon-right li a img, .menu.icon-right li a i, .menu.icon-right li a svg, .menu.nested.icon-right li a img, .menu.nested.icon-right li a i, .menu.nested.icon-right li a svg { margin-left: 0.25rem; display: inline-block; } .menu.icon-top li a, .menu.nested.icon-top li a { text-align: center; } .menu.icon-top li a img, .menu.icon-top li a i, .menu.icon-top li a svg, .menu.nested.icon-top li a img, .menu.nested.icon-top li a i, .menu.nested.icon-top li a svg { display: block; margin: 0 auto 0.25rem; } .menu.icon-bottom li a, .menu.nested.icon-bottom li a { text-align: center; } .menu.icon-bottom li a img, .menu.icon-bottom li a i, .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img, .menu.nested.icon-bottom li a i, .menu.nested.icon-bottom li a svg { display: block; margin: 0.25rem auto 0; } .menu .is-active > a { background: #FF1A58; color: #0a0a0a; } .menu .active > a { background: #FF1A58; color: #0a0a0a; } .menu.align-left { text-align: left; } .menu.align-right { text-align: right; } .menu.align-right .submenu li { text-align: left; } .menu.align-right.vertical .submenu li { text-align: right; } .menu.align-right .nested { margin-right: 1rem; margin-left: 0; } .menu.align-center { text-align: center; } .menu.align-center .submenu li { text-align: left; } .menu .menu-text { padding: 0.7rem 1rem; font-weight: bold; line-height: 1; color: inherit; } .menu-centered > .menu { text-align: center; } .menu-centered > .menu .submenu li { text-align: left; } .no-js [data-responsive-menu] ul { display: none; } .menu-icon { position: relative; display: inline-block; vertical-align: middle; width: 20px; height: 16px; cursor: pointer; } .menu-icon::after { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 2px; background: #fefefe; box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; content: ""; } .menu-icon:hover::after { background: #cacaca; box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; } .menu-icon.dark { position: relative; display: inline-block; vertical-align: middle; width: 20px; height: 16px; cursor: pointer; } .menu-icon.dark::after { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 2px; background: #0a0a0a; box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; content: ""; } .menu-icon.dark:hover::after { background: #6E6E6E; box-shadow: 0 7px 0 #6E6E6E, 0 14px 0 #6E6E6E; } .is-drilldown { position: relative; overflow: hidden; } .is-drilldown li { display: block; } .is-drilldown.animate-height { transition: height 0.5s; } .drilldown a { padding: 0.7rem 1rem; background: #fefefe; } .drilldown .is-drilldown-submenu { position: absolute; top: 0; left: 100%; z-index: -1; width: 100%; background: #fefefe; transition: transform 0.15s linear; } .drilldown .is-drilldown-submenu.is-active { z-index: 1; display: block; transform: translateX(-100%); } .drilldown .is-drilldown-submenu.is-closing { transform: translateX(100%); } .drilldown .is-drilldown-submenu a { padding: 0.7rem 1rem; } .drilldown .nested.is-drilldown-submenu { margin-right: 0; margin-left: 0; } .drilldown .drilldown-submenu-cover-previous { min-height: 100%; } .drilldown .is-drilldown-submenu-parent > a { position: relative; } .drilldown .is-drilldown-submenu-parent > a::after { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-right-width: 0; border-color: transparent transparent transparent #FF1A58; position: absolute; top: 50%; margin-top: -6px; right: 1rem; } .drilldown.align-left .is-drilldown-submenu-parent > a::after { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-right-width: 0; border-color: transparent transparent transparent #FF1A58; right: 1rem; left: auto; } .drilldown.align-right .is-drilldown-submenu-parent > a::after { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-left-width: 0; border-color: transparent #FF1A58 transparent transparent; right: auto; left: 1rem; } .drilldown .js-drilldown-back > a::before { display: block; width: 0; height: 0; border-style: solid; border-width: 6px; content: ""; border-left-width: 0; border-color: transparent #FF1A58 transparent transparent; display: inline-block; vertical-align: middle; margin-right: 0.75rem; } .dropdown-pane { position: absolute; z-index: 10; display: none; width: 300px; padding: 0; visibility: hidden; border: 1px solid #cacaca; border-radius: 0; background-color: #F1F1F1; font-size: 1rem; } .dropdown-pane.is-opening { display: block; } .dropdown-pane.is-open { display: block; visibility: visible; } .dropdown-pane.tiny { width: 100px; } .dropdown-pane.small { width: 200px; } .dropdown-pane.large { width: 400px; } .dropdown.menu > li.opens-left > .is-dropdown-submenu { top: 100%; right: 0; left: auto; } .dropdown.menu > li.opens-right > .is-dropdown-submenu { top: 100%; right: auto; left: 0; } [data-whatinput=mouse] .dropdown.menu a { outline: 0; } .dropdown.menu > li > a { background: #fefefe; padding: 0.375rem 0; } .dropdown.menu > li.is-active > a { background: transparent; color: inherit; } .no-js .dropdown.menu ul { display: none; } .dropdown.menu .nested.is-dropdown-submenu { margin-right: 0; margin-left: 0; } .dropdown.menu.vertical > li .is-dropdown-submenu { top: 0; } .dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu { top: 0; right: 100%; left: auto; } .dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu { right: auto; left: 100%; } @media print, screen and (min-width: 40em) { .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu { top: 100%; right: 0; left: auto; } .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu { top: 100%; right: auto; left: 0; } .dropdown.menu.medium-vertical > li .is-dropdown-submenu { top: 0; } .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu { top: 0; right: 100%; left: auto; } .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu { right: auto; left: 100%; } } @media print, screen and (min-width: 64em) { .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu { top: 100%; right: 0; left: auto; } .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu { top: 100%; right: auto; left: 0; } .dropdown.menu.large-vertical > li .is-dropdown-submenu { top: 0; } .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu { top: 0; right: 100%; left: auto; } .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu { right: auto; left: 100%; } } @media screen and (min-width: 75em) { .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu { top: 100%; right: 0; left: auto; } .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu { top: 100%; right: auto; left: 0; } .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu { top: 0; } .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu { top: 0; right: 100%; left: auto; } .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu { right: auto; left: 100%; } } .dropdown.menu.align-right .is-dropdown-submenu.first-sub { top: 100%; right: 0; left: auto; } .is-dropdown-menu.vertical { width: 100px; } .is-dropdown-menu.vertical.align-right { float: right; } .is-dropdown-submenu-parent { position: relative; } .is-dropdown-submenu-parent a::after { position: absolute; top: 50%; right: 5px; left: auto; margin-top: -6px; } .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu { top: 100%; left: auto; } .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu { right: 100%; left: auto; } .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu { right: auto; left: 100%; } .is-dropdown-submenu { position: absolute; top: 0; left: 100%; z-index: 1; display: none; min-width: 225px; border: 1px solid #cacaca; background: #fefefe; } .dropdown .is-dropdown-submenu a { padding: 0.7rem 1rem; } .is-dropdown-submenu .is-dropdown-submenu { margin-top: -1px; } .is-dropdown-submenu > li { width: 100%; } .is-dropdown-submenu.js-dropdown-active { display: block; } .label { display: inline-block; padding: 0.33333rem 0.5rem; border-radius: 0; font-size: 0.8rem; line-height: 1; white-space: nowrap; cursor: default; background: #FF1A58; color: #fefefe; } .label.primary { background: #FF1A58; color: #0a0a0a; } .label.secondary { background: #FF1A58; color: #0a0a0a; } .label.success { background: #3adb76; color: #0a0a0a; } .label.warning { background: #ffae00; color: #0a0a0a; } .label.alert { background: #ec5840; color: #0a0a0a; } .media-object { display: block; margin-bottom: 1rem; } .media-object img { max-width: none; } .media-object-section { display: table-cell; vertical-align: top; } .media-object-section:first-child { padding-right: 1rem; } .media-object-section:last-child:not(:nth-child(2)) { padding-left: 1rem; } .media-object-section > :last-child { margin-bottom: 0; } @media print, screen and (max-width: 39.99875em) { .stack-for-small .media-object-section { padding: 0; padding-bottom: 1rem; display: block; } .stack-for-small .media-object-section img { width: 100%; } } .media-object-section.middle { vertical-align: middle; } .media-object-section.bottom { vertical-align: bottom; } .is-off-canvas-open { overflow: hidden; } .js-off-canvas-overlay { position: absolute; top: 0; left: 0; z-index: 11; width: 100%; height: 100%; transition: opacity 0.5s ease, visibility 0.5s ease; background: rgba(254, 254, 254, 0.25); opacity: 0; visibility: hidden; overflow: hidden; } .js-off-canvas-overlay.is-visible { opacity: 1; visibility: visible; } .js-off-canvas-overlay.is-closable { cursor: pointer; } .js-off-canvas-overlay.is-overlay-absolute { position: absolute; } .js-off-canvas-overlay.is-overlay-fixed { position: fixed; } .off-canvas-wrapper { position: relative; overflow: hidden; } .off-canvas { position: fixed; z-index: 12; transition: transform 0.5s ease; backface-visibility: hidden; background: #fefefe; } [data-whatinput=mouse] .off-canvas { outline: 0; } .off-canvas.is-transition-push { z-index: 12; } .off-canvas.is-closed { visibility: hidden; } .off-canvas.is-transition-overlap { z-index: 13; } .off-canvas.is-transition-overlap.is-open { box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); } .off-canvas.is-open { transform: translate(0, 0); } .off-canvas-absolute { position: absolute; z-index: 12; transition: transform 0.5s ease; backface-visibility: hidden; background: #fefefe; } [data-whatinput=mouse] .off-canvas-absolute { outline: 0; } .off-canvas-absolute.is-transition-push { z-index: 12; } .off-canvas-absolute.is-closed { visibility: hidden; } .off-canvas-absolute.is-transition-overlap { z-index: 13; } .off-canvas-absolute.is-transition-overlap.is-open { box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); } .off-canvas-absolute.is-open { transform: translate(0, 0); } .position-left { top: 0; left: 0; height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; width: 100%; transform: translateX(-100%); } .off-canvas-content .off-canvas.position-left { transform: translateX(-100%); } .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open { transform: translate(0, 0); } .off-canvas-content.is-open-left.has-transition-push { transform: translateX(100%); } .position-left.is-transition-push { box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); } .position-right { top: 0; right: 0; height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; width: 100%; transform: translateX(100%); } .off-canvas-content .off-canvas.position-right { transform: translateX(100%); } .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open { transform: translate(0, 0); } .off-canvas-content.is-open-right.has-transition-push { transform: translateX(-100%); } .position-right.is-transition-push { box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); } .position-top { top: 0; left: 0; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; height: 250px; transform: translateY(-250px); } .off-canvas-content .off-canvas.position-top { transform: translateY(-250px); } .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open { transform: translate(0, 0); } .off-canvas-content.is-open-top.has-transition-push { transform: translateY(250px); } .position-top.is-transition-push { box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); } .position-bottom { bottom: 0; left: 0; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; height: 250px; transform: translateY(250px); } .off-canvas-content .off-canvas.position-bottom { transform: translateY(250px); } .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open { transform: translate(0, 0); } .off-canvas-content.is-open-bottom.has-transition-push { transform: translateY(-250px); } .position-bottom.is-transition-push { box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); } .off-canvas-content { transform: none; backface-visibility: hidden; } .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push { transition: transform 0.5s ease; } .off-canvas-content.has-transition-push { transform: translate(0, 0); } .off-canvas-content .off-canvas.is-open { transform: translate(0, 0); } @media print, screen and (min-width: 40em) { .position-left.reveal-for-medium { transform: none; z-index: 12; transition: none; visibility: visible; } .position-left.reveal-for-medium .close-button { display: none; } .off-canvas-content .position-left.reveal-for-medium { transform: none; } .off-canvas-content.has-reveal-left { margin-left: 100%; } .position-left.reveal-for-medium ~ .off-canvas-content { margin-left: 100%; } .position-right.reveal-for-medium { transform: none; z-index: 12; transition: none; visibility: visible; } .position-right.reveal-for-medium .close-button { display: none; } .off-canvas-content .position-right.reveal-for-medium { transform: none; } .off-canvas-content.has-reveal-right { margin-right: 100%; } .position-right.reveal-for-medium ~ .off-canvas-content { margin-right: 100%; } .position-top.reveal-for-medium { transform: none; z-index: 12; transition: none; visibility: visible; } .position-top.reveal-for-medium .close-button { display: none; } .off-canvas-content .position-top.reveal-for-medium { transform: none; } .off-canvas-content.has-reveal-top { margin-top: 100%; } .position-top.reveal-for-medium ~ .off-canvas-content { margin-top: 100%; } .position-bottom.reveal-for-medium { transform: none; z-index: 12; transition: none; visibility: visible; } .position-bottom.reveal-for-medium .close-button { display: none; } .off-canvas-content .position-bottom.reveal-for-medium { transform: none; } .off-canvas-content.has-reveal-bottom { margin-bottom: 100%; } .position-bottom.reveal-for-medium ~ .off-canvas-content { margin-bottom: 100%; } } @media print, screen and (min-width: 64em) { .position-left.reveal-for-large { transform: none; z-index: 12; transition: none; visibility: visible; } .position-left.reveal-for-large .close-button { display: none; } .off-canvas-content .position-left.reveal-for-large { transform: none; } .off-canvas-content.has-reveal-left { margin-left: 100%; } .position-left.reveal-for-large ~ .off-canvas-content { margin-left: 100%; } .position-right.reveal-for-large { transform: none; z-index: 12; transition: none; visibility: visible; } .position-right.reveal-for-large .close-button { display: none; } .off-canvas-content .position-right.reveal-for-large { transform: none; } .off-canvas-content.has-reveal-right { margin-right: 100%; } .position-right.reveal-for-large ~ .off-canvas-content { margin-right: 100%; } .position-top.reveal-for-large { transform: none; z-index: 12; transition: none; visibility: visible; } .position-top.reveal-for-large .close-button { display: none; } .off-canvas-content .position-top.reveal-for-large { transform: none; } .off-canvas-content.has-reveal-top { margin-top: 100%; } .position-top.reveal-for-large ~ .off-canvas-content { margin-top: 100%; } .position-bottom.reveal-for-large { transform: none; z-index: 12; transition: none; visibility: visible; } .position-bottom.reveal-for-large .close-button { display: none; } .off-canvas-content .position-bottom.reveal-for-large { transform: none; } .off-canvas-content.has-reveal-bottom { margin-bottom: 100%; } .position-bottom.reveal-for-large ~ .off-canvas-content { margin-bottom: 100%; } } @media screen and (min-width: 75em) { .position-left.reveal-for-xlarge { transform: none; z-index: 12; transition: none; visibility: visible; } .position-left.reveal-for-xlarge .close-button { display: none; } .off-canvas-content .position-left.reveal-for-xlarge { transform: none; } .off-canvas-content.has-reveal-left { margin-left: 100%; } .position-left.reveal-for-xlarge ~ .off-canvas-content { margin-left: 100%; } .position-right.reveal-for-xlarge { transform: none; z-index: 12; transition: none; visibility: visible; } .position-right.reveal-for-xlarge .close-button { display: none; } .off-canvas-content .position-right.reveal-for-xlarge { transform: none; } .off-canvas-content.has-reveal-right { margin-right: 100%; } .position-right.reveal-for-xlarge ~ .off-canvas-content { margin-right: 100%; } .position-top.reveal-for-xlarge { transform: none; z-index: 12; transition: none; visibility: visible; } .position-top.reveal-for-xlarge .close-button { display: none; } .off-canvas-content .position-top.reveal-for-xlarge { transform: none; } .off-canvas-content.has-reveal-top { margin-top: 100%; } .position-top.reveal-for-xlarge ~ .off-canvas-content { margin-top: 100%; } .position-bottom.reveal-for-xlarge { transform: none; z-index: 12; transition: none; visibility: visible; } .position-bottom.reveal-for-xlarge .close-button { display: none; } .off-canvas-content .position-bottom.reveal-for-xlarge { transform: none; } .off-canvas-content.has-reveal-bottom { margin-bottom: 100%; } .position-bottom.reveal-for-xlarge ~ .off-canvas-content { margin-bottom: 100%; } } @media print, screen and (min-width: 40em) { .off-canvas.in-canvas-for-medium { visibility: visible; height: auto; position: static; background: none; width: auto; overflow: visible; transition: none; } .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom { box-shadow: none; transform: none; } .off-canvas.in-canvas-for-medium .close-button { display: none; } } @media print, screen and (min-width: 64em) { .off-canvas.in-canvas-for-large { visibility: visible; height: auto; position: static; background: none; width: auto; overflow: visible; transition: none; } .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom { box-shadow: none; transform: none; } .off-canvas.in-canvas-for-large .close-button { display: none; } } @media screen and (min-width: 75em) { .off-canvas.in-canvas-for-xlarge { visibility: visible; height: auto; position: static; background: none; width: auto; overflow: visible; transition: none; } .off-canvas.in-canvas-for-xlarge.position-left, .off-canvas.in-canvas-for-xlarge.position-right, .off-canvas.in-canvas-for-xlarge.position-top, .off-canvas.in-canvas-for-xlarge.position-bottom { box-shadow: none; transform: none; } .off-canvas.in-canvas-for-xlarge .close-button { display: none; } } .orbit { position: relative; } .orbit-container { position: relative; height: 0; margin: 0; list-style: none; overflow: hidden; } .orbit-slide { width: 100%; position: absolute; } .orbit-slide.no-motionui.is-active { top: 0; left: 0; } .orbit-figure { margin: 0; } .orbit-image { width: 100%; max-width: 100%; margin: 0; } .orbit-caption { position: absolute; bottom: 0; width: 100%; margin-bottom: 0; padding: 1rem; background-color: rgba(10, 10, 10, 0.5); color: #fefefe; } .orbit-next, .orbit-previous { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; padding: 1rem; color: #fefefe; } [data-whatinput=mouse] .orbit-next, [data-whatinput=mouse] .orbit-previous { outline: 0; } .orbit-next:hover, .orbit-previous:hover, .orbit-next:active, .orbit-previous:active, .orbit-next:focus, .orbit-previous:focus { background-color: rgba(10, 10, 10, 0.5); } .orbit-previous { left: 0; } .orbit-next { left: auto; right: 0; } .orbit-bullets { position: relative; margin-top: 0.8rem; margin-bottom: 0.8rem; text-align: center; } [data-whatinput=mouse] .orbit-bullets { outline: 0; } .orbit-bullets button { width: 1.2rem; height: 1.2rem; margin: 0.1rem; border-radius: 50%; background-color: #cacaca; } .orbit-bullets button:hover { background-color: #6E6E6E; } .orbit-bullets button.is-active { background-color: #6E6E6E; } .pagination { margin-left: 0; margin-bottom: 1rem; } .pagination::before, .pagination::after { display: table; content: " "; } .pagination::after { clear: both; } .pagination li { margin-right: 0.0625rem; border-radius: 0; font-size: 0.875rem; display: none; } .pagination li:last-child, .pagination li:first-child { display: inline-block; } @media print, screen and (min-width: 40em) { .pagination li { display: inline-block; } } .pagination a, .pagination button { display: block; padding: 0.1875rem 0.625rem; border-radius: 0; color: #0a0a0a; } .pagination a:hover, .pagination button:hover { background: #D8D8D8; } .pagination .current { padding: 0.1875rem 0.625rem; background: #FF1A58; color: foreground(#FF1A58); cursor: default; } .pagination .disabled { padding: 0.1875rem 0.625rem; color: #cacaca; cursor: not-allowed; } .pagination .disabled:hover { background: transparent; } .pagination .ellipsis::after { padding: 0.1875rem 0.625rem; content: "…"; color: #0a0a0a; } .pagination-previous a::before, .pagination-previous.disabled::before { display: inline-block; margin-right: 0.5rem; content: "«"; } .pagination-next a::after, .pagination-next.disabled::after { display: inline-block; margin-left: 0.5rem; content: "»"; } .progress { height: 1rem; margin-bottom: 1rem; border-radius: 0; background-color: #cacaca; } .progress.primary .progress-meter { background-color: #FF1A58; } .progress.secondary .progress-meter { background-color: #FF1A58; } .progress.success .progress-meter { background-color: #3adb76; } .progress.warning .progress-meter { background-color: #ffae00; } .progress.alert .progress-meter { background-color: #ec5840; } .progress-meter { position: relative; display: block; width: 0%; height: 100%; background-color: #FF1A58; } .progress-meter-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; font-size: 0.75rem; font-weight: bold; color: #fefefe; white-space: nowrap; } .responsive-embed, .flex-video { position: relative; height: 0; margin-bottom: 1rem; padding-bottom: 75%; overflow: hidden; } .responsive-embed iframe, .responsive-embed object, .responsive-embed embed, .responsive-embed video, .flex-video iframe, .flex-video object, .flex-video embed, .flex-video video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .responsive-embed.widescreen, .flex-video.widescreen { padding-bottom: 56.25%; } .slider { position: relative; height: 0.5rem; margin-top: 1.25rem; margin-bottom: 2.25rem; background-color: #D8D8D8; cursor: pointer; user-select: none; touch-action: none; } .slider-fill { position: absolute; top: 0; left: 0; display: inline-block; max-width: 100%; height: 0.5rem; background-color: #cacaca; transition: all 0.2s ease-in-out; } .slider-fill.is-dragging { transition: all 0s linear; } .slider-handle { position: absolute; top: 50%; transform: translateY(-50%); left: 0; z-index: 1; cursor: grab; display: inline-block; width: 1.4rem; height: 1.4rem; border-radius: 0; background-color: #FF1A58; transition: all 0.2s ease-in-out; touch-action: manipulation; } [data-whatinput=mouse] .slider-handle { outline: 0; } .slider-handle:hover { background-color: #ef0041; } .slider-handle.is-dragging { transition: all 0s linear; cursor: grabbing; } .slider.disabled, .slider[disabled] { opacity: 0.25; cursor: not-allowed; } .slider.vertical { display: inline-block; width: 0.5rem; height: 12.5rem; margin: 0 1.25rem; transform: scale(1, -1); } .slider.vertical .slider-fill { top: 0; width: 0.5rem; max-height: 100%; } .slider.vertical .slider-handle { position: absolute; top: 0; left: 50%; width: 1.4rem; height: 1.4rem; transform: translateX(-50%); } .sticky-container { position: relative; } .sticky { position: relative; z-index: 0; transform: translate3d(0, 0, 0); } .sticky.is-stuck { position: fixed; z-index: 5; width: 100%; } .sticky.is-stuck.is-at-top { top: 0; } .sticky.is-stuck.is-at-bottom { bottom: 0; } .sticky.is-anchored { position: relative; right: auto; left: auto; } .sticky.is-anchored.is-at-bottom { bottom: 0; } html.is-reveal-open { position: fixed; width: 100%; overflow-y: hidden; } html.is-reveal-open.zf-has-scroll { overflow-y: scroll; -webkit-overflow-scrolling: touch; } html.is-reveal-open body { overflow-y: hidden; } .reveal-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1005; display: none; background-color: rgba(10, 10, 10, 0.45); overflow-y: auto; -webkit-overflow-scrolling: touch; } .reveal { z-index: 1006; backface-visibility: hidden; display: none; padding: 1rem; border: 1px solid #cacaca; border-radius: 0; background-color: #fefefe; position: relative; top: 100px; margin-right: auto; margin-left: auto; overflow-y: auto; -webkit-overflow-scrolling: touch; } [data-whatinput=mouse] .reveal { outline: 0; } @media print, screen and (min-width: 40em) { .reveal { min-height: 0; } } .reveal .column, .reveal .columns { min-width: 0; } .reveal > :last-child { margin-bottom: 0; } @media print, screen and (min-width: 40em) { .reveal { width: 600px; max-width: 85.625rem; } } .reveal.collapse { padding: 0; } @media print, screen and (min-width: 40em) { .reveal.tiny { width: 30%; max-width: 85.625rem; } } @media print, screen and (min-width: 40em) { .reveal.small { width: 50%; max-width: 85.625rem; } } @media print, screen and (min-width: 40em) { .reveal.large { width: 90%; max-width: 85.625rem; } } .reveal.full { top: 0; right: 0; bottom: 0; left: 0; width: 100%; max-width: none; height: 100%; min-height: 100%; margin-left: 0; border: 0; border-radius: 0; } @media print, screen and (max-width: 39.99875em) { .reveal { top: 0; right: 0; bottom: 0; left: 0; width: 100%; max-width: none; height: 100%; min-height: 100%; margin-left: 0; border: 0; border-radius: 0; } } .reveal.without-overlay { position: fixed; } .switch { position: relative; margin-bottom: 1rem; outline: 0; font-size: 0.875rem; font-weight: bold; color: #fefefe; user-select: none; height: 2rem; } .switch-input { position: absolute; margin-bottom: 0; opacity: 0; } .switch-paddle { position: relative; display: block; width: 4rem; height: 2rem; border-radius: 0; background: #cacaca; transition: all 0.25s ease-out; font-weight: inherit; color: inherit; cursor: pointer; } input + .switch-paddle { margin: 0; } .switch-paddle::after { position: absolute; top: 0.25rem; left: 0.25rem; display: block; width: 1.5rem; height: 1.5rem; transform: translate3d(0, 0, 0); border-radius: 0; background: #fefefe; transition: all 0.25s ease-out; content: ""; } input:checked ~ .switch-paddle { background: #FF1A58; } input:checked ~ .switch-paddle::after { left: 2.25rem; } input:disabled ~ .switch-paddle { cursor: not-allowed; opacity: 0.5; } [data-whatinput=mouse] input:focus ~ .switch-paddle { outline: 0; } .switch-inactive, .switch-active { position: absolute; top: 50%; transform: translateY(-50%); } .switch-active { left: 8%; display: none; } input:checked + label > .switch-active { display: block; } .switch-inactive { right: 15%; } input:checked + label > .switch-inactive { display: none; } .switch.tiny { height: 1.5rem; } .switch.tiny .switch-paddle { width: 3rem; height: 1.5rem; font-size: 0.625rem; } .switch.tiny .switch-paddle::after { top: 0.25rem; left: 0.25rem; width: 1rem; height: 1rem; } .switch.tiny input:checked ~ .switch-paddle::after { left: 1.75rem; } .switch.small { height: 1.75rem; } .switch.small .switch-paddle { width: 3.5rem; height: 1.75rem; font-size: 0.75rem; } .switch.small .switch-paddle::after { top: 0.25rem; left: 0.25rem; width: 1.25rem; height: 1.25rem; } .switch.small input:checked ~ .switch-paddle::after { left: 2rem; } .switch.large { height: 2.5rem; } .switch.large .switch-paddle { width: 5rem; height: 2.5rem; font-size: 1rem; } .switch.large .switch-paddle::after { top: 0.25rem; left: 0.25rem; width: 2rem; height: 2rem; } .switch.large input:checked ~ .switch-paddle::after { left: 2.75rem; } table { border-collapse: collapse; width: 100%; margin-bottom: 1rem; border-radius: 0; } thead, tbody, tfoot { border: 1px solid #f1f1f1; background-color: #fefefe; } caption { padding: 0.5rem 0.625rem 0.625rem; font-weight: bold; } thead { background: #f8f8f8; color: #0a0a0a; } tfoot { background: #f1f1f1; color: #0a0a0a; } thead tr, tfoot tr { background: transparent; } thead th, thead td, tfoot th, tfoot td { padding: 0.5rem 0.625rem 0.625rem; font-weight: bold; text-align: left; } tbody th, tbody td { padding: 0.5rem 0.625rem 0.625rem; } tbody tr:nth-child(even) { border-bottom: 0; background-color: #f1f1f1; } table.unstriped tbody { background-color: #fefefe; } table.unstriped tbody tr { border-bottom: 1px solid #f1f1f1; background-color: #fefefe; } @media print, screen and (max-width: 63.99875em) { table.stack thead { display: none; } table.stack tfoot { display: none; } table.stack tr, table.stack th, table.stack td { display: block; } table.stack td { border-top: 0; } } table.scroll { display: block; width: 100%; overflow-x: auto; } table.hover thead tr:hover { background-color: #f3f3f3; } table.hover tfoot tr:hover { background-color: #ececec; } table.hover tbody tr:hover { background-color: #f9f9f9; } table.hover:not(.unstriped) tr:nth-of-type(even):hover { background-color: #ececec; } .table-scroll { overflow-x: auto; } .tabs { margin: 0; border: 1px solid #D8D8D8; background: #ececec; list-style-type: none; } .tabs::before, .tabs::after { display: table; content: " "; } .tabs::after { clear: both; } .tabs.vertical > li { display: block; float: none; width: auto; } .tabs.simple > li > a { padding: 0; } .tabs.simple > li > a:hover { background: transparent; } .tabs.primary { background: #FF1A58; } .tabs.primary > li > a { color: #0a0a0a; } .tabs.primary > li > a:hover, .tabs.primary > li > a:focus { background: #ff0c4e; } .tabs-title { float: left; } .tabs-title > a { display: block; padding: 1.25rem 1.5rem; font-size: 0.75rem; line-height: 1; color: #FF1A58; } [data-whatinput=mouse] .tabs-title > a { outline: 0; } .tabs-title > a:hover { background: #fefefe; color: #f20041; } .tabs-title > a:focus, .tabs-title > a[aria-selected=true] { background: #fefefe; color: #FF1A58; } .tabs-content { border: 1px solid #D8D8D8; border-top: 0; background: #fefefe; color: foreground(#ececec, #FF1A58); transition: all 0.5s ease; } .tabs-content.vertical { border: 1px solid #D8D8D8; border-left: 0; } .tabs-panel { display: none; padding: 1rem; } .tabs-panel.is-active { display: block; } .thumbnail { display: inline-block; max-width: 100%; margin-bottom: 1rem; border: solid 4px #fefefe; border-radius: 0; box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2); line-height: 0; } a.thumbnail { transition: box-shadow 200ms ease-out; } a.thumbnail:hover, a.thumbnail:focus { box-shadow: 0 0 6px 1px rgba(255, 26, 88, 0.5); } a.thumbnail image { box-shadow: none; } .title-bar { padding: 0.5rem; background: #0a0a0a; color: #fefefe; } .title-bar::before, .title-bar::after { display: table; content: " "; } .title-bar::after { clear: both; } .title-bar .menu-icon { margin-left: 0.25rem; margin-right: 0.25rem; } .title-bar-left { float: left; } .title-bar-right { float: right; text-align: right; } .title-bar-title { display: inline-block; vertical-align: middle; font-weight: bold; } .has-tip { position: relative; display: inline-block; border-bottom: dotted 1px #6E6E6E; font-weight: bold; cursor: help; } .tooltip { position: absolute; top: calc(100% + 0.6495rem); z-index: 1200; max-width: 10rem; padding: 0.75rem; border-radius: 0; background-color: #0a0a0a; font-size: 80%; color: #fefefe; } .tooltip::before { position: absolute; } .tooltip.bottom::before { display: block; width: 0; height: 0; border-style: solid; border-width: 0.75rem; content: ""; border-top-width: 0; border-color: transparent transparent #0a0a0a; bottom: 100%; } .tooltip.bottom.align-center::before { left: 50%; transform: translateX(-50%); } .tooltip.top::before { display: block; width: 0; height: 0; border-style: solid; border-width: 0.75rem; content: ""; border-bottom-width: 0; border-color: #0a0a0a transparent transparent; top: 100%; bottom: auto; } .tooltip.top.align-center::before { left: 50%; transform: translateX(-50%); } .tooltip.left::before { display: block; width: 0; height: 0; border-style: solid; border-width: 0.75rem; content: ""; border-right-width: 0; border-color: transparent transparent transparent #0a0a0a; left: 100%; } .tooltip.left.align-center::before { bottom: auto; top: 50%; transform: translateY(-50%); } .tooltip.right::before { display: block; width: 0; height: 0; border-style: solid; border-width: 0.75rem; content: ""; border-left-width: 0; border-color: transparent #0a0a0a transparent transparent; right: 100%; left: auto; } .tooltip.right.align-center::before { bottom: auto; top: 50%; transform: translateY(-50%); } .tooltip.align-top::before { bottom: auto; top: 10%; } .tooltip.align-bottom::before { bottom: 10%; top: auto; } .tooltip.align-left::before { left: 10%; right: auto; } .tooltip.align-right::before { left: auto; right: 10%; } .top-bar { padding: 0.5rem; } .top-bar::before, .top-bar::after { display: table; content: " "; } .top-bar::after { clear: both; } .top-bar, .top-bar ul { background-color: #D8D8D8; } .top-bar input { max-width: 200px; margin-right: 1rem; } .top-bar .input-group-field { width: 100%; margin-right: 0; } .top-bar input.button { width: auto; } .top-bar .top-bar-left, .top-bar .top-bar-right { width: 100%; } @media print, screen and (min-width: 40em) { .top-bar .top-bar-left, .top-bar .top-bar-right { width: auto; } } @media print, screen and (max-width: 63.99875em) { .top-bar.stacked-for-medium .top-bar-left, .top-bar.stacked-for-medium .top-bar-right { width: 100%; } } @media print, screen and (max-width: 74.99875em) { .top-bar.stacked-for-large .top-bar-left, .top-bar.stacked-for-large .top-bar-right { width: 100%; } } @media print, screen and (max-width: 89.99875em) { .top-bar.stacked-for-xlarge .top-bar-left, .top-bar.stacked-for-xlarge .top-bar-right { width: 100%; } } .top-bar-title { display: inline-block; float: left; padding: 1rem; } .top-bar-title .menu-icon { bottom: 2px; } .top-bar-left { float: left; } .top-bar-right { float: right; } .hide { display: none !important; } .invisible { visibility: hidden; } .visible { visibility: visible; } @media print, screen and (max-width: 39.99875em) { .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 print, screen and (min-width: 40em) { .hide-for-medium { display: none !important; } } @media screen and (max-width: 39.99875em) { .show-for-medium { display: none !important; } } @media print, screen and (min-width: 40em) and (max-width: 63.99875em) { .hide-for-medium-only { display: none !important; } } @media screen and (max-width: 39.99875em), screen and (min-width: 64em) { .show-for-medium-only { display: none !important; } } @media print, screen and (min-width: 64em) { .hide-for-large { display: none !important; } } @media screen and (max-width: 63.99875em) { .show-for-large { display: none !important; } } @media print, screen and (min-width: 64em) and (max-width: 74.99875em) { .hide-for-large-only { display: none !important; } } @media screen and (max-width: 63.99875em), screen and (min-width: 75em) { .show-for-large-only { display: none !important; } } @media screen and (min-width: 75em) { .hide-for-xlarge { display: none !important; } } @media screen and (max-width: 74.99875em) { .show-for-xlarge { display: none !important; } } @media screen and (min-width: 75em) and (max-width: 89.99875em) { .hide-for-xlarge-only { display: none !important; } } @media screen and (max-width: 74.99875em), screen and (min-width: 90em) { .show-for-xlarge-only { display: none !important; } } .show-for-sr, .show-on-focus { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; } .show-on-focus:active, .show-on-focus:focus { position: static !important; width: auto !important; height: auto !important; overflow: visible !important; clip: auto !important; white-space: normal !important; } .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; } } .show-for-dark-mode { display: none; } .hide-for-dark-mode { display: block; } @media screen and (prefers-color-scheme: dark) { .show-for-dark-mode { display: block !important; } .hide-for-dark-mode { display: none !important; } } .show-for-ie { display: none; } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .show-for-ie { display: block !important; } .hide-for-ie { display: none !important; } } .show-for-sticky { display: none; } .is-stuck .show-for-sticky { display: block; } .is-stuck .hide-for-sticky { display: none; } .float-left { float: left !important; } .float-right { float: right !important; } .float-center { display: block; margin-right: auto; margin-left: auto; } .clearfix::before, .clearfix::after { display: table; content: " "; } .clearfix::after { clear: both; } .slide-in-down.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: translateY(-100%); transition-property: transform, opacity; backface-visibility: hidden; } .slide-in-down.mui-enter.mui-enter-active { transform: translateY(0); } .slide-in-left.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: translateX(-100%); transition-property: transform, opacity; backface-visibility: hidden; } .slide-in-left.mui-enter.mui-enter-active { transform: translateX(0); } .slide-in-up.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: translateY(100%); transition-property: transform, opacity; backface-visibility: hidden; } .slide-in-up.mui-enter.mui-enter-active { transform: translateY(0); } .slide-in-right.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: translateX(100%); transition-property: transform, opacity; backface-visibility: hidden; } .slide-in-right.mui-enter.mui-enter-active { transform: translateX(0); } .slide-out-down.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: translateY(0); transition-property: transform, opacity; backface-visibility: hidden; } .slide-out-down.mui-leave.mui-leave-active { transform: translateY(100%); } .slide-out-right.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: translateX(0); transition-property: transform, opacity; backface-visibility: hidden; } .slide-out-right.mui-leave.mui-leave-active { transform: translateX(100%); } .slide-out-up.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: translateY(0); transition-property: transform, opacity; backface-visibility: hidden; } .slide-out-up.mui-leave.mui-leave-active { transform: translateY(-100%); } .slide-out-left.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: translateX(0); transition-property: transform, opacity; backface-visibility: hidden; } .slide-out-left.mui-leave.mui-leave-active { transform: translateX(-100%); } .fade-in.mui-enter { transition-duration: 500ms; transition-timing-function: linear; opacity: 0; transition-property: opacity; } .fade-in.mui-enter.mui-enter-active { opacity: 1; } .fade-out.mui-leave { transition-duration: 500ms; transition-timing-function: linear; opacity: 1; transition-property: opacity; } .fade-out.mui-leave.mui-leave-active { opacity: 0; } .hinge-in-from-top.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateX(-90deg); transform-origin: top; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-top.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-in-from-right.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateY(-90deg); transform-origin: right; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-right.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-in-from-bottom.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateX(90deg); transform-origin: bottom; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-bottom.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-in-from-left.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateY(90deg); transform-origin: left; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-left.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-in-from-middle-x.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateX(-90deg); transform-origin: center; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-middle-x.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-in-from-middle-y.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotateY(-90deg); transform-origin: center; transition-property: transform, opacity; opacity: 0; } .hinge-in-from-middle-y.mui-enter.mui-enter-active { transform: perspective(2000px) rotate(0deg); opacity: 1; } .hinge-out-from-top.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: top; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-top.mui-leave.mui-leave-active { transform: perspective(2000px) rotateX(90deg); opacity: 0; } .hinge-out-from-right.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: right; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-right.mui-leave.mui-leave-active { transform: perspective(2000px) rotateY(90deg); opacity: 0; } .hinge-out-from-bottom.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: bottom; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-bottom.mui-leave.mui-leave-active { transform: perspective(2000px) rotateX(-90deg); opacity: 0; } .hinge-out-from-left.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: left; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-left.mui-leave.mui-leave-active { transform: perspective(2000px) rotateY(-90deg); opacity: 0; } .hinge-out-from-middle-x.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: center; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-middle-x.mui-leave.mui-leave-active { transform: perspective(2000px) rotateX(90deg); opacity: 0; } .hinge-out-from-middle-y.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: perspective(2000px) rotate(0deg); transform-origin: center; transition-property: transform, opacity; opacity: 1; } .hinge-out-from-middle-y.mui-leave.mui-leave-active { transform: perspective(2000px) rotateY(90deg); opacity: 0; } .scale-in-up.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: scale(0.5); transition-property: transform, opacity; opacity: 0; } .scale-in-up.mui-enter.mui-enter-active { transform: scale(1); opacity: 1; } .scale-in-down.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: scale(1.5); transition-property: transform, opacity; opacity: 0; } .scale-in-down.mui-enter.mui-enter-active { transform: scale(1); opacity: 1; } .scale-out-up.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: scale(1); transition-property: transform, opacity; opacity: 1; } .scale-out-up.mui-leave.mui-leave-active { transform: scale(1.5); opacity: 0; } .scale-out-down.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: scale(1); transition-property: transform, opacity; opacity: 1; } .scale-out-down.mui-leave.mui-leave-active { transform: scale(0.5); opacity: 0; } .spin-in.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: rotate(-0.75turn); transition-property: transform, opacity; opacity: 0; } .spin-in.mui-enter.mui-enter-active { transform: rotate(0); opacity: 1; } .spin-out.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: rotate(0); transition-property: transform, opacity; opacity: 1; } .spin-out.mui-leave.mui-leave-active { transform: rotate(0.75turn); opacity: 0; } .spin-in-ccw.mui-enter { transition-duration: 500ms; transition-timing-function: linear; transform: rotate(0.75turn); transition-property: transform, opacity; opacity: 0; } .spin-in-ccw.mui-enter.mui-enter-active { transform: rotate(0); opacity: 1; } .spin-out-ccw.mui-leave { transition-duration: 500ms; transition-timing-function: linear; transform: rotate(0); transition-property: transform, opacity; opacity: 1; } .spin-out-ccw.mui-leave.mui-leave-active { transform: rotate(-0.75turn); opacity: 0; } .slow { transition-duration: 750ms !important; } .fast { transition-duration: 250ms !important; } .linear { transition-timing-function: linear !important; } .ease { transition-timing-function: ease !important; } .ease-in { transition-timing-function: ease-in !important; } .ease-out { transition-timing-function: ease-out !important; } .ease-in-out { transition-timing-function: ease-in-out !important; } .bounce-in { transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } .bounce-out { transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } .bounce-in-out { transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } .short-delay { transition-delay: 300ms !important; } .long-delay { transition-delay: 700ms !important; } .shake { animation-name: shake-7; } @keyframes shake-7 { 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { transform: translateX(7%); } 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { transform: translateX(-7%); } } .spin-cw { animation-name: spin-cw-1turn; } @keyframes spin-cw-1turn { 0% { transform: rotate(-1turn); } 100% { transform: rotate(0); } } .spin-ccw { animation-name: spin-ccw-1turn; } @keyframes spin-ccw-1turn { 0% { transform: rotate(0); } 100% { transform: rotate(-1turn); } } .wiggle { animation-name: wiggle-7deg; } @keyframes wiggle-7deg { 40%, 50%, 60% { transform: rotate(7deg); } 35%, 45%, 55%, 65% { transform: rotate(-7deg); } 0%, 30%, 70%, 100% { transform: rotate(0); } } .shake, .spin-cw, .spin-ccw, .wiggle { animation-duration: 500ms; } .infinite { animation-iteration-count: infinite; } .slow { animation-duration: 750ms !important; } .fast { animation-duration: 250ms !important; } .linear { animation-timing-function: linear !important; } .ease { animation-timing-function: ease !important; } .ease-in { animation-timing-function: ease-in !important; } .ease-out { animation-timing-function: ease-out !important; } .ease-in-out { animation-timing-function: ease-in-out !important; } .bounce-in { animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } .bounce-out { animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } .bounce-in-out { animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } .short-delay { animation-delay: 300ms !important; } .long-delay { animation-delay: 700ms !important; } /* Slider */ .slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; } .slick-list { position: relative; overflow: hidden; display: block; margin: 0; padding: 0; } .slick-list:focus { outline: none; } .slick-list.dragging { cursor: pointer; cursor: hand; } .slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .slick-track { position: relative; left: 0; top: 0; display: block; margin-left: auto; margin-right: auto; } .slick-track:before, .slick-track:after { content: ""; display: table; } .slick-track:after { clear: both; } .slick-loading .slick-track { visibility: hidden; } .slick-slide { float: left; height: 100%; min-height: 1px; display: none; } [dir=rtl] .slick-slide { float: right; } .slick-slide img { display: block; } .slick-slide.slick-loading img { display: none; } .slick-slide.dragging img { pointer-events: none; } .slick-initialized .slick-slide { display: block; } .slick-loading .slick-slide { visibility: hidden; } .slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; } .slick-arrow.slick-hidden { display: none; } .slick-lightbox { position: fixed; top: 0; left: 0; z-index: 99999999; width: 100%; height: 100%; background: black; -webkit-transition: opacity 0.5s ease; transition: opacity 0.5s ease; } .slick-lightbox .slick-loading .slick-list { background-color: transparent; } .slick-lightbox .slick-prev { left: 15px; } .slick-lightbox .slick-next { right: 15px; } .slick-lightbox-hide { opacity: 0; } .slick-lightbox-hide.slick-lightbox-ie { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); } .slick-lightbox-hide-init { position: absolute; top: -9999px; opacity: 0; } .slick-lightbox-hide-init.slick-lightbox-ie { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); } .slick-lightbox-inner { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .slick-lightbox-slick-item { text-align: center; overflow: hidden; } .slick-lightbox-slick-item:before { content: ""; display: inline-block; height: 100%; vertical-align: middle; margin-right: -0.25em; } .slick-caption-bottom .slick-lightbox-slick-item .slick-lightbox-slick-item .slick-lightbox-slick-caption { position: absolute; bottom: 0; left: 0; text-align: center; width: 100%; margin-bottom: 20px; } .slick-caption-dynamic .slick-lightbox-slick-item .slick-lightbox-slick-item .slick-lightbox-slick-caption { display: block; text-align: center; } .slick-lightbox-slick-item-inner { display: inline-block; vertical-align: middle; max-width: 90%; max-height: 90%; } .slick-lightbox-slick-img { margin: 0 auto; display: block; max-width: 90%; max-height: 90%; } .slick-lightbox-slick-caption { margin: 10px 0 0; color: white; } .slick-lightbox-close { position: absolute; top: 15px; right: 15px; display: block; height: 20px; width: 20px; line-height: 0; font-size: 0; cursor: pointer; background: transparent; color: transparent; padding: 0; border: none; } .slick-lightbox-close:focus { outline: none; } .slick-lightbox-close:before { font-family: "slick"; font-size: 20px; line-height: 1; color: white; opacity: 0.85; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: "×"; } h1, .h1 { font-size: 3.125rem; line-height: 3.125rem; margin-top: 1.5625rem; margin-bottom: 0.9375rem; font-weight: bold; } h2, .h2 { font-size: 2.375rem; line-height: 2.375rem; color: #FF1A58; margin-top: 0.9375rem; margin-bottom: 0.9375rem; font-weight: 600; } h3, .h3 { font-size: 1.3125rem; line-height: 1.75rem; margin-top: 0.9375rem; margin-bottom: 2.1875rem; border-bottom: solid 1px #B0B0B0; padding-bottom: 0.9375rem; font-weight: 600; } h4, .h4 { color: #000; font-size: 1.75rem; line-height: 1.875rem; margin-bottom: 0.9375rem; font-weight: bold; } h5, .h5 { font-weight: 600; font-size: 1rem; line-height: 1.5rem; color: #FF1A58; font-family: "Arial Black", Arial, Helvetica, sans-serif; } h6, .h6 { font-weight: 600; color: #949494; font-size: 12px; line-height: 14px; margin-top: 0; } blockquote { border-left: 0; background: #FF1A58; color: #fff; font-size: 1.75rem; line-height: 2.125rem; padding: 1.875rem 2.5rem; margin: 1.875rem 0; } blockquote p, blockquote a { color: #fff; line-height: 2.125rem; } @media (max-width: 640px) { h1 { font-size: 2.1875rem; line-height: 2.25rem; } h2 { font-size: 1.625rem; line-height: 1.75rem; } h3 { font-size: 1.125rem; line-height: 1.5rem; } h4 { font-size: 1.5rem; line-height: 1.625rem; } h5 { font-size: 0.875rem; line-height: 1.125rem; } blockquote { padding: 1.25rem; } blockquote p { font-size: 1.25rem; line-height: 1.5rem; } } .small-header { font-size: 0.8125rem; font-weight: bold; text-transform: uppercase; margin-bottom: 1rem; } .large { font-size: 1.5rem; } section .header { font-size: 1.6875rem; font-weight: bold; margin-bottom: 1rem; padding-bottom: 0.3125rem; border-bottom: solid 1px #B0B0B0; position: relative; } section .header a { position: absolute; bottom: 5px; right: 0; display: block; color: #FF1A58; font-family: proxima-nova, sans-serif; font-weight: bold; font-size: 0.75rem; text-transform: uppercase; vertical-align: bottom; } section .header a:after { display: block; content: ""; clear: both; } section .header a:hover { text-decoration: underline; } a.external:after { content: url("//cdn.entergy-neworleans.com/img/icons/new-window.svg"); display: inline-block; margin-left: 10px; width: 0.8em; } .button, button { text-transform: uppercase; font-family: proxima-nova, sans-serif; font-weight: 900; font-size: 0.875rem; display: inline-block; border: solid 2px #FF1A58; transition: all 0.25s ease-out; border-radius: 3.5625rem; } .button:hover, button:hover { background: #fefefe; color: #FF1A58; } .button.alt, button.alt { border: solid 2px #fefefe; background: #fefefe; color: #FF1A58; } .button.alt:hover, button.alt:hover { border-color: #FF1A58; background: #FF1A58; color: #fefefe; } .button.giant, button.giant { padding: 4.5625rem 1.875rem; width: 100%; font-size: 3.125rem; text-transform: uppercase; font-weight: 700; border: none; background-color: #FF1A58; color: #fefefe; } .button.giant:hover, button.giant:hover { background-color: #FF1A58; color: #fefefe; box-shadow: 16px 14px 17px 0 rgba(10, 10, 10, 0.22); transform: translateX(-5px) translateY(-5px); } .button.secondary, button.secondary { border: solid 1px #FF1A58; background: #fefefe; color: #FF1A58; } .button.secondary:hover, button.secondary:hover { background: #FF1A58; color: #fefefe; } .button.quick-link, button.quick-link { width: 100%; font-size: 2rem; text-transform: none; font-weight: 400; border: none; background-color: rgba(51, 56, 67, 0.8); background-repeat: no-repeat; background-size: cover; background-position: center; color: #fefefe; height: 100%; padding: 0; border-radius: 0.5rem; } .button.quick-link .overlay, button.quick-link .overlay { top: 0; left: 0; right: 0; bottom: 0; padding: 1.8125rem; background: rgba(51, 56, 67, 0.8); min-width: 100%; min-height: 100%; border-radius: 0.5rem; } .button.quick-link .title, button.quick-link .title { color: #fefefe; position: relative; font-family: proxima-nova, sans-serif; font-weight: 900; text-transform: uppercase; font-size: 1.875rem; line-height: normal; padding: 0 0 8px 0; margin: 0; } .button.quick-link .title:after, button.quick-link .title:after { width: 0; height: 0; border-left: 10px solid #fefefe; border-top: 10px solid transparent; border-bottom: 10px solid transparent; content: ""; position: absolute; margin: 0.5rem; } .button.quick-link .description, button.quick-link .description { border-top: solid 1px #B0B0B0; color: #fefefe; padding-top: 8px; margin-bottom: 0; font-size: 23px; } .button.quick-link:hover, button.quick-link:hover { box-shadow: 16px 14px 17px 0 rgba(10, 10, 10, 0.22); transform: translateX(-5px) translateY(-5px); } .search-title { color: #FF1A58; font-size: 2.25rem; line-height: 2.9375rem; } .search-title:after { display: block; content: ""; border-bottom: solid 3px #FF1A58; margin-top: 1.25rem; margin-bottom: 1rem; width: 2.5rem; } .article-title { color: #0a0a0a; font-size: 3.4375rem; line-height: 100%; text-transform: none; } .article-title:after { display: block; content: ""; border-bottom: solid 3px #FF1A58; margin-top: 1.25rem; margin-bottom: 1rem; width: 4.25rem; } .card { box-shadow: 2px 2px 8px rgba(10, 10, 10, 0.12); margin-bottom: 1rem; display: flex; flex-wrap: nowrap; color: #0a0a0a; background: #fefefe; transition: all 0.25s ease-out; border-radius: 0.5rem; overflow: hidden; } .card.nomargin { margin: 0; } .card.inverted { flex-direction: row-reverse; } .card:hover { box-shadow: 16px 14px 17px 0 rgba(10, 10, 10, 0.22); transform: translateX(-5px) translateY(-5px); } @media print, screen and (max-width: 39.99875em) { .card { display: block; } } .card.expand { width: 100%; height: 100%; } .card .image { position: relative; padding: 0 !important; background-size: cover; background-repeat: no-repeat; background-position: center; overflow: hidden; min-width: 20rem; max-width: 56.25rem; } @media print, screen and (min-width: 40em) { .card .image { display: flex; align-items: center; } } @media print, screen and (max-width: 39.99875em) { .card .image { height: 200px; line-height: 200px; width: 100%; min-width: 0; max-width: 100%; } } .card .image:after { display: block; content: ""; position: absolute; } @media print, screen and (max-width: 39.99875em) { .card .image:after { width: 0; height: 0; border-left: 23px solid transparent; border-right: 23px solid transparent; border-bottom: 23px solid #fefefe; border-top: 23px solid transparent; bottom: 0; left: 24px; } } @media print, screen and (min-width: 40em) { .card .image:after { width: 0; height: 0; border-right: 18px solid #fefefe; border-top: 18px solid transparent; border-bottom: 18px solid transparent; top: 24px; right: -1px; } } .card .image img { display: block; } @media print, screen and (max-width: 39.99875em) { .card .image img { height: 100%; } } @media print, screen and (min-width: 40em) { .card .image img { width: 100%; height: 100%; } } .card .image.blockquote { width: 50%; } .card .image blockquote { background: transparent; display: inline-block; font-weight: 900; color: #fefefe; font-size: 3vw; line-height: 108%; margin: 0; padding: 0 3.125rem; } @media print, screen and (max-width: 39.99875em) { .card .image blockquote { height: 100%; font-size: 18px; } } @media print, screen and (min-width: 40em) { .card .image blockquote { width: 100%; } } @media screen and (min-width: 75em) { .card .image blockquote { font-size: 2.25rem; } } .card .content { padding: 2.1875rem 2.5rem 1.25rem 2.5rem; } .card .content .title { font-size: 1.5rem; line-height: 1.75rem; font-weight: 600; } .card .content .title:after { display: block; content: ""; border-bottom: solid 3px #FF1A58; margin-top: 1.25rem; margin-bottom: 1rem; width: 2.5rem; } .card .content .date { font-size: 0.75rem; color: #545555; font-weight: 700; margin-bottom: 1rem; } .card .content .category { text-transform: uppercase; font-weight: 900; font-size: 0.75rem; color: #FF1A58; margin-bottom: 1rem; } .card.secondary .category { color: #FF1A58; } .card.secondary .button { background: #FF1A58; border: solid 2px #FF1A58; } .card.secondary .button:hover { background: #fefefe; color: #FF1A58; } .card.secondary .title::after { border-bottom-color: #FF1A58; } .card.vertical { flex-direction: column; } .card.vertical.inverted { flex-direction: column-reverse; } .card.vertical.inverted .image::after { width: 0; height: 0; border-left: 23px solid transparent; border-right: 23px solid transparent; border-top: 23px solid #fefefe; border-bottom: 23px solid transparent; top: 0; left: 24px; } .card.vertical .image { width: 100%; } .card.vertical .image:after { width: 0; height: 0; border-left: 23px solid transparent; border-right: 23px solid transparent; border-bottom: 23px solid #fefefe; border-top: 23px solid transparent; top: auto; bottom: 0; left: 24px; } .card.vertical .image blockquote { display: inline-block; height: 12.5rem; font-size: 24px; padding-top: 1.25rem; padding-bottom: 0.625rem; } @media print, screen and (min-width: 40em) { .card.vertical .image blockquote { font-size: 4vw; } } @media print, screen and (min-width: 64em) { .card.vertical .image blockquote { font-size: 2.5vw; } } .card.vertical .content { width: 100%; } .card.video .image:before { content: ""; background: rgba(255, 26, 88, 0.7) url("//cdn.entergy-neworleans.com/img/play.png") no-repeat center; position: absolute; width: 100%; height: 100%; top: 0; left: 0; } .card.twitter { background: #4A90E2; background-image: url("//cdn.entergy-neworleans.com/img/icons/twitter-white.svg"); background-repeat: no-repeat; background-position: top 24px right 24px; display: block; padding: 1.25rem 2.5rem 1.875rem 2.5rem; color: #fefefe; font-size: 1.1875rem; height: 100%; } .card.twitter .title { font-weight: 900; font-size: 0.75rem; text-transform: uppercase; margin-bottom: 2.5rem; } .card.twitter a { color: #fefefe; text-decoration: underline; } .card.twitter .date { font-weight: 900; font-size: 0.75rem; text-transform: uppercase; } .card.twitter p { font-size: 0.9375rem; } .card.twitter:hover { box-shadow: none; transform: none; } .card.bio .image { background-position-y: -50px; width: 100%; } @media print, screen and (min-width: 40em) { .card.bio .image { background-position-y: center; min-width: 33%; width: 33%; } } .card.bio .image img { width: 100%; min-height: 0; } .card.featured { flex-direction: row-reverse; } .card.featured .content { width: 50%; } .card.featured .image { height: 40.375rem; width: 50%; } .card.featured .image:before { content: "Featured"; text-transform: uppercase; font-size: 0.75rem; font-weight: 900; color: #fefefe; background: url("//cdn.entergy-neworleans.com/img/featured.png") no-repeat left -2px, linear-gradient(to right, rgba(10, 10, 10, 0.6), rgba(10, 10, 10, 0.6)); display: block; width: auto; top: 17px; right: 21px; padding-left: 20px; padding-right: 8px; position: absolute; } @media print, screen and (min-width: 40em) { .card.featured .image:after { width: 0; height: 0; border-left: 18px solid #fefefe; border-top: 18px solid transparent; border-bottom: 18px solid transparent; border-right: none; top: 24px; left: 0; } } .card.promo { display: block; } .card.promo .image { min-width: 100%; width: 100%; height: 7.8125rem; } .card.promo .image:after { display: none; } .card.promo .content { width: 100%; padding: 0.625rem 2.5rem; color: #0a0a0a; } .dyk { font-size: 1.5rem; color: #fefefe; background: #FF1A58; padding: 4.375rem 2.9375rem; margin-bottom: 1rem; border-radius: 0.5rem; } .dyk.expand { width: 100%; height: 100%; } .dyk .title { content: "Did you know?"; font-size: 2.25rem; font-weight: 900; } .dyk .title:after { content: ""; display: block; width: 80px; border-bottom: solid 3px #fefefe; margin-bottom: 1.25rem; } .dyk .button:hover { border: solid 2px #fefefe; } .dyk .message { margin-bottom: 3.625rem; } #search-overlay { opacity: 0; background: rgba(254, 254, 254, 0.96); position: fixed; top: 0; left: 0; width: 0; height: 0; z-index: 200000; transition: opacity 300ms ease-out; } body.show-search-overlay #search-overlay { opacity: 1; width: 100%; height: 100%; } #search-overlay form { display: block; max-width: 100%; width: 24.1875rem; margin: 0 auto; margin-top: 6.25rem; } @media print, screen and (min-width: 64em) { #search-overlay form { margin-top: 15.3125rem; } } #search-overlay form label { font-size: 1.125rem; line-height: 24px; } #search-overlay form .container { width: 100%; display: flex; } #search-overlay form input[type=text] { box-shadow: none; font-size: 1.5rem; height: auto; margin: 0; border-radius: 0; } #search-overlay form input[type=image] { border-radius: 0; transition: all 300ms ease-out; } #search-overlay form input[type=image]:hover { filter: saturate(0.85); } #search-overlay a.close { float: right; display: block; font-size: 0.8125rem; text-decoration: underline; text-align: right; position: relative; padding-right: 25px; margin-top: -5px; } #search-overlay a.close:after { position: absolute; right: 0; content: "×"; font-size: 48px; font-weight: bold; } .pages { background: #F3F3F3; padding: 2rem 0; width: 100%; } .pages .pager { margin: 0; padding: 0; list-style: none; display: block; text-align: center; } .pages .pager li { display: inline-block; margin: 0 0.625rem; } .pages .pager li.back a, .pages .pager li.next a { font-size: 0.875rem; font-weight: 900; } .pages .pager li.back a:hover, .pages .pager li.next a:hover { color: #FF1A58; } .pages .pager a { display: block; width: 100%; height: 100%; text-align: center; font-size: 1.25rem; font-weight: bold; } .pages .pager a.active, .pages .pager a:hover { color: #0a0a0a; } /*article { body.page-article &, body.page-news & { margin-top:-120px; } }*/ .byline { color: #0a0a0a; font-size: 0.75rem; line-height: 0.75rem; padding: 0.75rem 0 0 0; font-family: proxima-nova, sans-serif; font-weight: bold; text-transform: uppercase; color: #545555; } .author-plug { float: right; display: flex; } .author-plug .image { width: 60px; margin-right: 12px; text-align: center; } .author-plug .image img { height: 60px; } .author-plug .content .name { font-size: 1.5rem; } .related { min-height: 23.4375rem; height: 100%; background-repeat: no-repeat; background-position: center center; background-size: cover; display: inline-block; padding: 2.5rem 2.1875rem; font-size: 1.9375rem; line-height: 2.375rem; color: #fefefe; display: flex; flex-direction: column; justify-content: flex-end; transition: all 0.25s ease-out; margin-bottom: 1rem; } .related:hover { color: #fefefe; box-shadow: 16px 14px 17px 0 rgba(10, 10, 10, 0.22); transform: translateX(-5px) translateY(-5px); } .dropdown-pane { z-index: 200; border: none; box-shadow: 2px 2px 8px rgba(10, 10, 10, 0.12); } @media print, screen and (min-width: 40em) { .dropdown-pane#outages-dropdown.is-open { margin-top: 33px; margin-left: 148px; } } .dropdown-pane ul { list-style: none; margin: 0; } .dropdown-pane ul a { display: block; padding: 0.5rem 1.25rem; color: #0a0a0a; border-left: solid 4px transparent; } .dropdown-pane ul a:hover { background: rgba(255, 26, 88, 0.04); color: #FF1A58; border-left-color: #FF1A58; } .app-links { text-align: right; padding: 10px 0; } #apple-badge img, #google-badge img { height: 40px !important; } .editable-content .accordion .accordion-title { font-size: 1rem; } .editable-content .accordion .accordion-content p { color: #0a0a0a; } .off-canvas { height: 100%; } .off-canvas .close-button { border: none; color: #fefefe; } .off-canvas .close-button:hover { background: none; } .off-canvas ul.menu { margin-top: 30px; } .off-canvas ul.menu li .label { padding: 0.625rem 0.9375rem; color: #fefefe; background: #8c8279; display: block; font-size: 0.875rem; font-weight: 900; text-transform: uppercase; } .off-canvas ul.menu li a { padding: 0.625rem 0.9375rem; color: #fefefe; } .off-canvas ul.menu li a:hover { background: #8c8279; } .off-canvas ul.submenu { list-style: none; padding: 0; margin: 0; } .off-canvas ul.submenu li a { font-size: 0.875rem; padding: 0.3125rem 0.9375rem 0.3125rem 2.1875rem; color: #fefefe; } .off-canvas ul.submenu li a:hover { background: #8c8279; } body.show-search-overlay { overflow: hidden; animation: 300ms delay-overflow; } @keyframes delay-overflow { from { overflow: auto; } } nav.utility { text-align: left; margin-top: 0; background: #0a0a0a; height: 45px; position: fixed; width: 100%; z-index: 100; } @media print, screen and (max-width: 63.99875em) { nav.utility { height: 5.875rem; } } nav.utility .column, nav.utility .columns { display: flex; } @media print, screen and (min-width: 64em) { nav.utility .column, nav.utility .columns { align-items: center; } } @media print, screen and (max-width: 63.99875em) { nav.utility .column, nav.utility .columns { flex-wrap: wrap; } } nav.utility a { display: block; padding: 0.3125rem 0; font-weight: bold; font-size: 0.875rem; color: #fefefe; margin: 0.5rem 0.625rem; background-repeat: no-repeat; background-position: left center; } @media print, screen and (min-width: 40em) and (max-width: 63.99875em) { nav.utility a { font-size: 0.75rem; } } @media print, screen and (max-width: 39.99875em) { nav.utility a { width: 44%; flex-basis: 44%; } } nav.utility a:hover { text-decoration: underline; } @media print, screen and (min-width: 40em) and (max-width: 63.99875em) { nav.utility a.opco { font-size: 0.875rem; } } @media print, screen and (max-width: 63.99875em) { nav.utility a.opco { text-align: center; width: 100%; flex-basis: 100%; } } nav.utility a.myaccount { padding-left: 1.25rem; background-image: url("//cdn.entergy-neworleans.com/img/icons/myaccount.svg"); } nav.utility a.utilities { padding-left: 1.5rem; background-image: url("//cdn.entergy-neworleans.com/img/icons/utilities.svg"); } nav.utility a.utilities:hover { text-decoration: underline; } nav.utility a.outages { transition: all 300ms ease-out; background-position-x: 10px; padding-right: 10px; background-color: #FF1A58; padding-left: 2.25rem; background-image: url("//cdn.entergy-neworleans.com/img/icons/outages.svg"); border-radius: 3.5625rem; text-transform: uppercase; } @media print, screen and (min-width: 40em) { nav.utility a.outages { margin-left: auto; } } nav.utility a.outages:hover { background-color: #AD0047; text-decoration: none; } nav.utility a#search-icon { padding: 0; line-height: 30px; } nav.utility a#search-icon img { height: 24px; } @media print, screen and (min-width: 40em) and (max-width: 63.99875em) { nav.utility a#search-icon img { height: 1.125rem; } } nav.utility .pipe { color: #fefefe; font-size: 1.875rem; } @media print, screen and (max-width: 39.99875em) { nav.utility .utility-nav-link { display: none; } } header { margin-top: 45px; padding: 1.25rem 0 1.25rem 0; position: fixed; width: 100%; box-shadow: 0 3px 5px 0 rgba(10, 10, 10, 0.1); background: #fefefe; z-index: 100; transition: all 0.25s ease-out; } @media print, screen and (max-width: 63.99875em) { header { margin-top: 5.875rem; } } body.scrolled header { padding: 0 0 0.9375rem 0; } header .logo { transition: all 0.25s ease-out; max-height: 100%; width: 12.395625rem; max-width: unset; } body.scrolled header .logo { margin-top: 1.25rem; } @media print, screen and (min-width: 40em) { body.scrolled header .logo { width: 9.125rem; } } header .logo_curtain { width: 12.395625rem; overflow: hidden; transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); } header nav { text-align: right; margin-top: 1.4375rem; transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); } header nav ul.top-level { display: inline-block; margin: 0; padding: 0; list-style: none; } header nav ul.top-level > li { display: inline-block; } header nav ul.top-level > li > a { display: block; margin: 0 0.9375rem; color: #0a0a0a; font-size: 0.75rem; border-bottom: solid 4px transparent; font-weight: bold; } @media screen and (min-width: 62.5em) { header nav ul.top-level > li > a { font-size: 14px; } } @media screen and (min-width: 70em) { header nav ul.top-level > li > a { font-size: 16px; } } @media screen and (min-width: 76.25em) { header nav ul.top-level > li > a { font-size: 18px; } } header nav ul.top-level > li > a#search-icon { margin-right: 0.9375rem; } header nav ul.top-level > li > a#search-icon:hover { border-bottom-color: transparent; } header nav ul.top-level > li > a#storm-center { background: #FF1A58; color: #fefefe; padding: 0.5rem 1.5625rem 0.5rem 1.5625rem; margin-bottom: 4px; transition: background 300ms ease-out; text-transform: uppercase; border-bottom: none; } header nav ul.top-level > li > a#storm-center:hover { background-color: #ef0041; } header nav ul.top-level > li:first-child a { margin-left: 0; } header nav ul.top-level > li.is-active > a, header nav ul.top-level > li > a:hover, header nav ul.top-level > li.selected > a { border-bottom: solid 4px #FF1A58; } header .menuIcon { display: inline-block; margin-left: 1.5625rem; vertical-align: top; } header .menuIcon img { width: 31px; } header .submenu { margin-top: 0.8125rem; border: none; box-shadow: 2px 2px 8px 0 rgba(10, 10, 10, 0.12); font-size: 1rem; font-weight: bold; text-align: left; padding: 0.8125rem 0; } header .submenu li { display: block; } header .submenu li a { display: block; padding: 0.5rem 1.25rem; color: #0a0a0a; border-left: solid 4px transparent; } header .submenu li a:hover { background: rgba(255, 26, 88, 0.04); color: #FF1A58; border-left-color: #FF1A58; } .header-space { height: 10.774375rem; transition: all 0.25s ease-out; } @media print, screen and (max-width: 39.99875em) { .header-space { height: 10.774375rem; } } @media print, screen and (min-width: 64em) { .header-space { height: 8.875rem; } } .menu > li > a { padding: 0.375rem 0; } section { margin-bottom: 1rem; } section.lightgray { background: #f9f9f9; } section.gray { background: #F2F2F2; } section#breaking { background: #AD0047; display: block; width: 100%; padding: 0.625rem; font-size: 1.0625rem; color: #fefefe; text-align: center; } section#breaking a { color: #fefefe; } section#breaking strong { display: inline-block; font-weight: 900; padding: 0 1.25rem; } section#masthead { padding-top: 2.625rem; } section#masthead .slide { display: flex; flex-wrap: nowrap; color: #0a0a0a; background-size: cover; background-position: center; background-repeat: no-repeat; min-height: 300px; overflow: hidden; } @media print, screen and (max-width: 39.99875em) { section#masthead .slide { display: block !important; } } section#masthead .slide:not(:first-child) { display: none; } section#masthead .slide .image { position: relative; padding: 0 !important; max-height: 22.8125rem; background-size: cover; background-repeat: no-repeat; overflow: hidden; width: fit-content; } @media print, screen and (max-width: 39.99875em) { section#masthead .slide .image { width: 100%; } } section#masthead .slide .image img { min-width: 100%; min-height: 100%; } @media print, screen and (max-width: 39.99875em) { section#masthead .slide .image img { width: 100%; min-height: auto; } } section#masthead .slide .image blockquote { background: transparent; font-weight: 900; color: #fefefe; font-size: 18px; line-height: 120%; padding: 0 3.125rem; } @media print, screen and (min-width: 40em) { section#masthead .slide .image blockquote { position: absolute; top: 50%; transform: translateY(-50%); margin: 0; font-size: 36px; } } section#masthead .slide .image .image-caption { transform: translateY(-100%); bottom: auto; } section#masthead .slide .content { padding: 2.1875rem 2.5rem 1.25rem 2.5rem; background: #fff; } section#masthead .slide .content .title { font-size: 1.5rem; line-height: 1.75rem; font-weight: bold; } section#masthead .slide .content .title:after { display: block; content: ""; border-bottom: solid 3px #FF1A58; margin-top: 1.25rem; margin-bottom: 1rem; width: 2.5rem; } section#masthead .slide .content .date { font-size: 0.75rem; color: #545555; font-weight: 700; margin-bottom: 1rem; } section#masthead .slide .content .category { text-transform: uppercase; font-weight: 900; font-size: 0.75rem; color: #FF1A58; } @media print, screen and (max-width: 39.99875em) { section#masthead .slide .content .button { width: 100%; } } section#masthead #slider.slick-initialized .slide { display: flex; } section#masthead .slider-pagination { text-align: center; margin: 1.75rem 0 0 0; list-style: none; display: block; } section#masthead .slider-pagination li { display: inline-block; } section#masthead .slider-pagination li a { background: none; font-size: 2.5rem; line-height: 10px; color: #D8D8D8; transition: color 300ms ease-out; } section#masthead .slider-pagination li a.current, section#masthead .slider-pagination li a:hover { color: #FF1A58; } section#social-feed ul.social-links { margin: -0.3125rem 0 0 0; padding: 0; float: right; display: block; list-style: none; text-align: right; } section#social-feed ul.social-links li { display: inline-block; font-weight: bold; text-transform: uppercase; } section#social-feed ul.social-links li img { margin-bottom: 0.3125rem; margin-right: 0.3125rem; } section#social-feed ul.social-links li a { font-size: 0.875rem; display: block; padding: 0 0.75rem; position: static; } section#social-feed ul.social-links li a.facebook { color: #3C5B9B; } section#social-feed ul.social-links li a.twitter { color: #2DAAE1; } section#social-feed ul.social-links li a.linkedin { color: #007AAA; } section#social-feed ul.social-links li a.instagram { color: #5A5A5A; } section#social-feed ul.social-links li a.youtube { color: #F61C0D; } section#social-feed ul.social-links li a:hover { filter: brightness(0); color: #0a0a0a; } section#social-feed ul.social-links li:first-child a { padding-left: 0; } section#feeds { padding: 3.125rem 0 4.25rem 0; margin-bottom: 0; } section#people { padding: 3.125rem 0 2.5rem 0; margin-bottom: 0; } section#video { padding: 3.75rem 0; } .circut { background: #fefefe; } .circut img { display: block; width: 18.75rem; margin: 0 auto; padding: 0; } footer { background: #0a0a0a; color: #fefefe; font-size: 0.75rem; font-weight: bold; } footer a { color: #fefefe; } footer a:hover { color: #FF1A58; } footer .header { font-weight: 600; font-size: 1.5rem; } footer nav { padding: 2.5rem 0 0 0; } footer nav ul { margin: 0 0 1rem 0; padding: 0; list-style: none; } footer nav ul li { display: block; } footer nav ul li:first-child { margin-top: 0.3125rem; } footer nav ul li a { font-weight: bold; font-size: 0.875rem; padding: 0.125rem 0; display: block; } footer nav ul.tertiary { margin: -0.6666666667rem 0 0 1rem; } footer nav ul.tertiary a { font-size: 0.75rem; } footer .search-bar { padding: 1.875rem 0; background: #0a0a0a; text-align: center; } footer .search-bar form { display: block; white-space: nowrap; } footer .search-bar form label { position: absolute; z-index: 2; color: #fefefe; margin-top: -22px; } footer .search-bar form .container { text-align: left; } footer .search-bar form label.siteLabel { position: static; margin-top: 0; } footer .search-bar form input[type=search] { width: 15.625rem; text-align: left; margin: 0; border: none; display: inline-block; vertical-align: top; height: 2.8125rem; border-radius: 0; -webkit-appearance: none; border-radius: 3.5625rem 0 0 3.5625rem; padding-left: 1.5625rem; } @media print, screen and (min-width: 40em) { footer .search-bar form input[type=search] { width: 23rem; } } footer .search-bar form input[type=image] { display: inline-block; transition: all 300ms ease-out; border-radius: 0 3.5625rem 3.5625rem 0; -webkit-appearance: none; } footer .search-bar form input[type=image]:hover { filter: saturate(0.85); } footer ul.social-links { display: block; margin: 1.875rem 0 1rem 0; padding: 0; list-style: none; border-bottom: solid 1px #fefefe; } footer ul.social-links li { display: inline-block; } footer ul.social-links li img { height: 31px; margin: 0 0.625rem 0.875rem 0.625rem; filter: brightness(0) invert(1); } footer ul.social-links li img:first-child { margin-left: 0; } footer ul.social-links li img:hover { filter: none; } footer ul.links { display: block; margin: 0; padding: 0; list-style: none; text-align: right; } footer ul.links li { display: inline-block; } footer ul.links li a { display: block; } footer ul.links li a:after { display: inline-block; content: "|"; margin: 0 0.625rem; color: #fefefe; } footer ul.links li a:hover { color: #FF1A58; } footer ul.links li:last-child a::after { display: none; } footer ul.links li:first-child a img { margin-right: 5px; height: 20px; } footer ul.links li:first-child a:after { display: none; } .spacer { clear: both; height: 20px; } .readmore { text-align: center; font-size: 1.5rem; margin-top: 3.25rem; } .red { background-color: #FF1A58; color: #fefefe; } .beige { background-color: #8c8279; color: #fefefe; } .blue { background-color: #FF1A58; color: #fefefe; } .orange { background-color: #e87722; color: #fefefe; } .yellow { background-color: #f1c400; color: #fefefe; } .green { background-color: #789d4a; color: #fefefe; } .companyNav { margin: 0; background: #ececec; border-top: solid 1px #B0B0B0; border-bottom: solid 1px #B0B0B0; } @media print, screen and (min-width: 40em) { body.storm-center .companyNav { margin-top: -1rem; margin-bottom: 3.125rem; } } .companyNav select { border: none; border-left: solid 1px #B0B0B0; border-right: solid 1px #B0B0B0; margin: 0; } .companyNav .tabs { display: flex; align-items: center; justify-content: center; border: none; background: transparent; } .companyNav .tabs li { border-right: 1px solid #B0B0B0; } .companyNav .tabs li:first-child { border-left: 1px solid #B0B0B0; } .companyNav .tabs li a { display: block; font-size: 1rem; color: #0a0a0a; } li.arkansas .companyNav .tabs li a:hover span { background-position: 0 -25px; } .companyNav .tabs li span { display: block; margin: 0 auto; text-indent: -9999px; background: url("//cdn.entergy-neworleans.com/img/icons/companyNav.png") no-repeat; } .companyNav .tabs li.is-active { background: #fefefe; } .companyNav .tabs li.arkansas span { background-position: 0 0; width: 19px; height: 25px; } .companyNav .tabs li.arkansas a:hover span { background-position: 0 -25px; } .companyNav .tabs li.louisiana span { background-position: -19px 0; width: 24px; height: 25px; } .companyNav .tabs li.louisiana a:hover span { background-position: -19px -25px; } .companyNav .tabs li.mississippi span { background-position: -43px 0; width: 13px; height: 25px; } .companyNav .tabs li.mississippi a:hover span { background-position: -43px -25px; } .companyNav .tabs li.neworleans span { background-position: -105px 0; width: 21px; height: 25px; } .companyNav .tabs li.neworleans a:hover span { background-position: -105px -25px; } .companyNav .tabs li.texas span { background-position: -56px 0; width: 27px; height: 25px; } .companyNav .tabs li.texas a:hover span { background-position: -56px -25px; } .companyNav .tabs li.nuclear span { background-position: -83px 0; width: 22px; height: 25px; } .companyNav .tabs li.nuclear a:hover span { background-position: -83px -25px; } .companyNav .tabs li.all span { background-position: -126px 0; width: 20px; height: 25px; } .companyNav .tabs li.all a:hover span { background-position: -126px -25px; } .section-header { background: url("/img/header-update.jpg"); background-repeat: no-repeat; background-position: center; background-size: cover; min-height: 14.125rem; overflow: hidden; } body.storm-center .section-header { height: 8.875rem; min-height: auto; background-size: 160px 160px, cover; } .section-header h1, .section-header .h1 { font-weight: bold; font-size: 3.4375rem; color: #fefefe; padding-top: 72px; padding-bottom: 72px; text-align: center; line-height: 5.5rem; } .section-header.header-small { min-height: 8rem; } .section-header.header-small h1, .section-header.header-small .h1 { padding-top: 0; padding-bottom: 0; } section.main-content { padding: 1.875rem 0 4.0625rem 0; } section.main-content .editable-content a { font-weight: 700; } .editable-content a { font-weight: bold; } .large-frame { background: #fefefe; padding: 1.25rem; } @media print, screen and (min-width: 64em) { .large-frame { box-shadow: 2px 2px 8px 0 rgba(10, 10, 10, 0.12); padding: 4.375rem; } } .fluid-frame.large-10, .fluid-frame.large-12, .fluid-frame.as-large-10, .fluid-frame.as-large-12 { background: #fefefe; padding: 1.25rem; } @media print, screen and (min-width: 64em) { .fluid-frame.large-10, .fluid-frame.large-12, .fluid-frame.as-large-10, .fluid-frame.as-large-12 { box-shadow: 2px 2px 8px 0 rgba(10, 10, 10, 0.12); padding: 4.375rem; } } @media print, screen and (min-width: 64em) { .fluid-frame.large-7, .fluid-frame.large-8, .fluid-frame.as-large-7, .fluid-frame.as-large-8 { background: #fefefe; padding: 1.25rem; box-shadow: 2px 2px 8px 0 rgba(10, 10, 10, 0.12); } } @media screen and (min-width: 75em) { .fluid-frame.large-7, .fluid-frame.large-8, .fluid-frame.as-large-7, .fluid-frame.as-large-8 { padding: 4.375rem; } } .content-padding { padding-left: 2.5rem; } @media print, screen and (min-width: 64em) { .sidebar-wrapper { padding-right: 2.5rem; } } aside { background: #FF1A58; color: #fefefe; padding: 1.25rem; } @media print, screen and (min-width: 64em) { aside { padding: 1.5625rem 3.4375rem; } } aside .title { font-weight: 600; font-size: 1.875rem; line-height: 1.875rem; } aside .title a { color: #fefefe; } aside ul { list-style: none; margin: 0.625rem 0 0 0; padding: 0; } aside ul li { display: block; display: flex; align-items: baseline; } aside ul li:before { content: "›"; display: inline-block; color: #fff; font-size: 1.5rem; margin-right: 0.625rem; font-weight: 900; text-decoration: none !important; } aside ul li a { display: inline-block; padding: 0.3125rem 0; color: #fefefe; font-size: 1rem; text-decoration: none; font-weight: 600; } aside ul li a:hover, aside ul li a:focus { color: #fefefe; text-decoration: underline; } aside ul li a.active { font-weight: bold; } @media (max-width: 1024px) { aside ul li a { text-decoration: underline; } aside ul li a:hover, aside ul li a:focus { text-decoration: none; } } main { background: #f9f9f9; } section.margin { margin: 3.75rem 0 2.5rem 0; } .content-row { position: relative; z-index: 2; } .section-photo { filter: blur(10px); transform: scale(1.2); min-height: 14.125rem; background-repeat: no-repeat; background-position: center center; background-size: cover; } .contact-box { font-size: 0.8125rem; margin: 0 0 1rem 0 !important; } .contact-box .contact-label { color: #fefefe; background: #FF1A58; text-transform: uppercase; display: flex; flex-direction: column; justify-content: center; } .contact-box .contact-label span { display: inline-block; padding: 0 0.9375rem; text-align: center; } .contact-box .contact-content { background: #979797; } .contact-box .contact-name { background: #f9f9f9; padding: 0.625rem 1.25rem; margin: 1px 1px 1px -1px; } .contact-box .contact-name span { display: inline-block; padding: 0 0.625rem; } .column-block { margin-bottom: 1.25rem; } .lift { margin-top: -120px; } article .photo { position: relative; margin-bottom: 1.5625rem; } @media print, screen and (min-width: 64em) { article .photo { width: 100%; height: 500px; background-size: cover; background-position: center; background-repeat: no-repeat; } } .image-caption { font-size: 75%; position: absolute; width: 100%; bottom: 0; text-align: right; color: #fefefe; background: rgba(10, 10, 10, 0.5); padding: 0.125rem 0.625rem; z-index: 10; } @media print, screen and (min-width: 40em) { .image-caption { font-size: 80%; } } .editable-content img { margin-bottom: 1.25rem; max-width: 100%; } @media (max-width: 580px) { .editable-content img { float: none; display: block; } } #success-stories { padding: 85px 0; } #success-stories h2 { margin-bottom: 47px; } #success-stories .heading { font-size: 1.5rem; line-height: 1.75rem; font-weight: bold; margin-bottom: 1rem; } #success-stories .posts-row { margin-bottom: 50px; } #success-stories .more-posts { color: #FF1A58; font-size: 23px; line-height: 28px; margin-bottom: 1rem; } @media print, screen and (min-width: 40em) { #success-stories .more-posts { text-align: right; } } .content-cards .column, .content-cards .columns { padding-bottom: 1.875rem; } .content-cards .column .card, .content-cards .columns .card { overflow: hidden; position: relative; } .content-cards .column .card .image, .content-cards .columns .card .image { height: 0; padding-bottom: 54.72222222% !important; } .content-cards .column .card .content, .content-cards .columns .card .content { padding-top: 1.875rem; padding-bottom: 6.25rem; } .content-cards .column .card .content .button, .content-cards .columns .card .content .button { position: absolute; bottom: 2.5rem; left: 2.5rem; margin-bottom: 0; } body.page-residential .main-content .fluid-frame .editable-content, body.page-your_business .main-content .fluid-frame .editable-content { position: relative; } body.page-residential .main-content .fluid-frame .myEntergyLink, body.page-your_business .main-content .fluid-frame .myEntergyLink { position: absolute; top: 0; right: 0; } body.page-residential .main-content .fluid-frame .button.login, body.page-your_business .main-content .fluid-frame .button.login { border-radius: 0.3125rem; margin-right: 1.25rem; padding: 1.5rem 3rem 1.25rem; font-size: 1.25rem; font-weight: bold; text-transform: uppercase; border-width: 2px; } body.page-residential .main-content .fluid-frame .button.login.grey, body.page-your_business .main-content .fluid-frame .button.login.grey { background-color: #B0B0B0; border-color: #B0B0B0; } body.page-residential .main-content .fluid-frame .button.login.grey:hover, body.page-your_business .main-content .fluid-frame .button.login.grey:hover { border-color: #FF1A58; background-color: transparent; } body.page-residential .main-content .fluid-frame h4, body.page-your_business .main-content .fluid-frame h4 { margin-bottom: 1rem; } body.page-residential .main-content .fluid-frame ul.stylizedList, body.page-your_business .main-content .fluid-frame ul.stylizedList { margin: 0 0 3.4375rem; list-style-type: none; } @media print, screen and (min-width: 40em) { body.page-residential .main-content .fluid-frame ul.stylizedList:not(.oneCol), body.page-your_business .main-content .fluid-frame ul.stylizedList:not(.oneCol) { column-count: 2; column-gap: 2rem; } } body.page-residential .main-content .fluid-frame ul.stylizedList li, body.page-your_business .main-content .fluid-frame ul.stylizedList li { color: #0a0a0a; font-weight: 600; line-height: 1.25rem; font-size: 0.9375rem; border-bottom: solid 1px #979797; list-style-type: none; padding-bottom: 1rem; margin-bottom: 1rem; position: relative; display: inline-block; vertical-align: top; width: 100%; } body.page-residential .main-content .fluid-frame ul.stylizedList li a, body.page-your_business .main-content .fluid-frame ul.stylizedList li a { width: 100%; color: #0a0a0a; padding-right: 16px; display: flex; align-items: center; color: #FF1A58; } body.page-residential .main-content .fluid-frame ul.stylizedList li a:after, body.page-your_business .main-content .fluid-frame ul.stylizedList li a:after { content: ">"; position: absolute; right: 0; } @media print, screen and (max-width: 39.99875em) { .sidebar-wrapper { margin-bottom: 3.4375rem; } } .sidebar-wrapper #sidebar { padding: 0; } .sidebar-wrapper #sidebar .sidebarInner { padding: 1.25rem; } @media print, screen and (min-width: 64em) { .sidebar-wrapper #sidebar .sidebarInner { padding: 1.5625rem 3.4375rem; } } .sidebar-wrapper .sidebarCallout { background-color: #BD0024; border-top: solid 1px #fefefe; padding: 1.25rem; } @media print, screen and (min-width: 64em) { .sidebar-wrapper .sidebarCallout { padding: 1.5625rem 3.4375rem; } } .sidebar-wrapper .sidebarCallout .sidebarCalloutNumber { display: flex; flex-direction: row; color: #fff; align-items: center; } .sidebar-wrapper .sidebarCallout .sidebarCalloutNumber .phoneIcon { width: 1rem; margin-right: 0.625rem; } .sidebar-wrapper .sidebarCallout .sidebarCalloutNumber .cta span { font-weight: bold; text-transform: uppercase; } section#masthead .slide .image img { min-height: auto; } @media (max-width: 1024px) { .button.giant { font-size: 1.875rem; } } @media (max-width: 1024px) and (min-width: 640px) { header nav ul.top-level > li > a { font-size: 1rem; margin: 0 0.7rem; line-height: 1rem; } header nav ul.top-level > li > a#search-icon { margin-right: 0.7rem; } header nav ul.top-level > li > a#storm-center { padding: 0.3rem 0.8rem; margin: 0; } } @media (max-width: 800px) and (min-width: 640px) { header nav ul.top-level > li > a { font-size: 0.9rem; margin: 0 0.3rem; line-height: 0.9rem; } header nav ul.top-level > li > a#search-icon { margin-right: 0.2rem; } header nav ul.top-level > li > a#storm-center { padding: 0.3rem 0.6rem; margin: 0; } .social-links .show-for-medium { display: none; } } @media (max-width: 670px) and (min-width: 640px) { header nav ul.top-level > li > a { font-size: 0.8rem; margin: 0 0.3rem; line-height: 0.8rem; } } @media (max-width: 640px) { header nav ul.top-level > li > a { font-size: 0.875rem; line-height: 0.875rem; padding: 0.4375rem 0.9375rem !important; } section#masthead { padding-top: 0; } header { height: 4.9rem; padding: 0; } header > .row > .small-3 > a { display: block; height: 89%; padding-top: 6%; } body.scrolled header .logo, header .logo { margin-top: 0.5rem; } body.scrolled header { padding: 0; } section .header { font-size: 1.2rem; } .card .content { padding: 1.5rem 1.5rem 0.1rem 1.5rem; } .card .content .title { font-size: 1.2rem; line-height: 1.5rem; } .card .content .category { font-size: 0.7rem; } p { font-size: 0.9rem; line-height: 1.3rem; } .card .content .date, .card .content .category, .card .content .title:after { margin-bottom: 0.5rem; } .card .content .title:after { margin-top: 0.5rem; } .button { padding: 0.6rem 1.6rem 0.6rem 1.6rem; font-size: 0.8rem; } section#social-feed ul.social-links { margin: 0; } section#social-feed ul.social-links li a { padding-right: 0.4rem; } .readmore { margin-top: 1.5rem; } section { margin-bottom: 0.5rem; } section#video { padding: 1rem 0; } section#feeds { padding: 2rem 0 2rem 0; } .circut img { width: 100%; } } @media print { .header-space { display: none; } nav.utility, header nav { display: none; } header { position: static; margin-top: 0; padding: 0; } .section-header { min-height: auto; } .section-header h1 { padding: 0; line-height: 120%; } footer nav, footer .links { display: none !important; } .main-content a[href]:after { content: " (" attr(href) ")"; } aside { display: none; } section { margin-bottom: 0; } #search-icon { display: none; } #outagesAnchor, .myaccount { padding-left: 0; padding-right: 0; } .search-bar, .social-links, .app-links { display: none !important; } .is-dropdown-submenu, .dropdown-pane { background: #fefefe !important; } #stock-ticker { display: none; } iframe[src^="https://player.vimeo.com"] { display: none; } } .emergency-callout .fluid-frame { padding: 4.375rem 1.875rem; } .emergency-callout .fluid-frame .intro { margin-bottom: 2rem; } .emergency-callout .fluid-frame .intro h3 { color: #0a0a0a; font-size: 1.875rem; letter-spacing: 0.083125rem; font-weight: 600; border-bottom: none; margin-bottom: 0.625rem; padding-bottom: 0; } .emergency-callout .fluid-frame .intro .small { color: #0a0a0a; letter-spacing: 0.046875rem; font-size: 1.125rem; } .emergency-callout .fluid-frame .icon-row .column, .emergency-callout .fluid-frame .icon-row .columns { border-right: solid 1px #979797; padding-top: 0.6875rem; padding-bottom: 2rem; } .emergency-callout .fluid-frame .icon-row .column:last-of-type, .emergency-callout .fluid-frame .icon-row .columns:last-of-type { border: none; } .emergency-callout .fluid-frame .icon-row .column .icon, .emergency-callout .fluid-frame .icon-row .columns .icon { margin-bottom: 1rem; } .emergency-callout .fluid-frame .icon-row .column .icon img, .emergency-callout .fluid-frame .icon-row .columns .icon img { height: 3.125rem; } .emergency-callout .fluid-frame .icon-row .column .title, .emergency-callout .fluid-frame .icon-row .columns .title { color: #FF1A58; font-weight: 600; font-size: 1.875rem; letter-spacing: 0.078125rem; margin-bottom: 0.625rem; } .emergency-callout .fluid-frame .icon-row .column .info, .emergency-callout .fluid-frame .icon-row .columns .info { font-size: 1.25rem; } .emergency-callout .fluid-frame .icon-row .column .info a, .emergency-callout .fluid-frame .icon-row .columns .info a { color: #0a0a0a; transition: all 0.2s ease-in-out; font-weight: 600; } .emergency-callout .fluid-frame .icon-row .column .info a:hover, .emergency-callout .fluid-frame .icon-row .columns .info a:hover { color: #FF1A58; } .banner { margin: 3rem auto; } .banner .row { position: relative; } .banner .bannerLink { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 9; } .banner .bannerRow { margin-left: auto; margin-right: auto; } @media print, screen and (max-width: 39.99875em) { .banner .bannerRow { padding-bottom: 2rem; } } .banner .bannerRow .bannerImage { display: flex; align-items: center; justify-content: center; } .banner .bannerRow .bannerImage .icon { max-width: 3.5rem; margin-bottom: 0; } @media print, screen and (max-width: 39.99875em) { .banner .bannerRow .bannerImage .icon { margin-top: 2.3125rem; } } .banner .bannerRow .bannerImage.hasImage { min-height: 13rem; background-position: center; background-size: cover; background-repeat: no-repeat; } .banner .bannerRow .bannerInfo { padding-top: 1rem; padding-bottom: 0; display: flex; align-items: flex-start; justify-content: center; flex-direction: column; } @media print, screen and (min-width: 40em) { .banner .bannerRow .bannerInfo { padding-top: 2.3125rem; padding-bottom: 2rem; } } .banner .bannerRow .bannerInfo h3 { font-weight: bold; border: none; margin: 0; padding: 0; font-size: 1.25rem; line-height: 1.75rem; } .banner .bannerRow .bannerInfo p { font-size: 1rem; } .banner .bannerRow .buttonHolder { display: flex; align-items: center; justify-content: center; } .banner .bannerRow .buttonHolder p { margin-bottom: 0; } .banner .bannerRow .button { background-color: transparent; border-radius: 0.3125rem; margin-bottom: 0; } .banner .bannerRow .button:hover { color: #FF1A58 !important; background-color: #fefefe; } .off-canvas { padding-top: 7.6875rem; } @media print, screen and (min-width: 40em) { .off-canvas { padding-top: 8.375rem; } } .off-canvas #search-icon { padding-left: 0.9375rem; color: #0a0a0a; font-weight: bold; display: flex; align-items: center; justify-content: flex-start; gap: 1rem; margin-top: 1.5rem; } .off-canvas .separator { width: calc(100% - 30px); margin: 1rem auto; height: 0.0625rem; background-color: #0a0a0a; } .off-canvas ul.menu { margin-top: 0; } .off-canvas ul.menu li a { color: #0a0a0a; font-weight: bold; } .off-canvas ul.submenu { margin-bottom: 1rem; } .off-canvas ul.submenu li a { color: #0a0a0a; font-weight: bold; } .off-canvas nav.primary { padding-bottom: 1rem; } .off-canvas nav.utility { height: auto; padding: 1rem 0; } .off-canvas nav.utility .utility-nav-link { display: block; } .off-canvas nav.utility .columns { flex-direction: column; align-items: flex-start; justify-content: flex-start; flex-wrap: nowrap; } .off-canvas nav.utility a { color: #fefefe; } .off-canvas-content.is-open-right header #stock-ticker { z-index: -1; visibility: hidden; opacity: 0; height: 0; } .off-canvas-content nav.utility { height: 2.8125rem; } @media print, screen and (max-width: 63.99875em) { .off-canvas-content nav.utility .utility-nav-link { display: none !important; } .off-canvas-content nav.utility a { width: unset; flex-basis: auto; } .off-canvas-content nav.utility a.opco { width: unset; flex-basis: auto; } } nav.utility .columns { align-items: center; } nav.utility .utility_btns { display: flex; margin-left: auto; align-items: center; } nav.utility .small_pipe { color: #fefefe; font-size: 1.25rem; } nav.utility a { display: block; padding: 0.3125rem 0; font-weight: bold; font-size: 0.875rem; color: #fefefe; margin: 0.5rem 0.625rem; background-repeat: no-repeat; background-position: left center; } nav.utility a.outages { border-radius: 3.5625rem; text-transform: none; transition: all 300ms ease-out; background-color: #FF1A58; color: #fefefe; background-image: none; border: solid 2px #FF1A58; padding: 0.1875rem 1.875rem; line-height: 1; margin-left: 0.625rem; } @media print, screen and (min-width: 40em) { nav.utility a.outages:hover { background-color: transparent; color: #FF1A58; text-decoration: none; } } @media print, screen and (max-width: 39.99875em) { nav.utility a.outages { border: none; background-color: transparent; padding: 0; } nav.utility a.outages:hover { background-color: transparent; } } nav.utility a.myaccount { border-radius: 3.5625rem; text-transform: none; transition: all 300ms ease-out; background-color: #fefefe; color: #0a0a0a; background-image: none; border: solid 2px #fefefe; padding: 0.1875rem 1.875rem; line-height: 1; margin-left: auto; } @media print, screen and (min-width: 40em) { nav.utility a.myaccount:hover { background-color: #0a0a0a; color: #fefefe; text-decoration: none; } } @media print, screen and (max-width: 39.99875em) { nav.utility a.myaccount { border: none; background-color: transparent; padding: 0; color: #fefefe; } nav.utility a.myaccount:hover { text-decoration: none; } } header { margin-top: 2.8125rem; } header nav ul.top-level > li > a { display: block; margin: 0 0.9375rem; color: #0a0a0a; font-size: 0.75rem; font-weight: bold; border-bottom: solid 4px transparent; } @media screen and (min-width: 62.5em) { header nav ul.top-level > li > a { font-size: 14px; margin: 0 0.625rem; } } @media screen and (min-width: 72.5em) { header nav ul.top-level > li > a { font-size: 16px; margin: 0 0.9375rem; } } @media screen and (min-width: 78.75em) { header nav ul.top-level > li > a { font-size: 18px; } } header nav ul.top-level > li > a#search-icon { margin-right: 0.9375rem; } header nav ul.top-level > li > a#search-icon:hover { border-bottom-color: transparent; } header nav ul.top-level > li > a#storm-center { background: #FF1A58; color: #fefefe; padding: 0.375rem 1.5625rem 0.625rem 1.5625rem; margin-bottom: 4px; transition: background 300ms ease-out; border-bottom: none; } header nav ul.top-level > li > a#storm-center:hover { background-color: #ef0041; } header nav ul.top-level > li ul.submenu li a:hover { border-left-color: transparent; background-color: transparent; } header nav #search-icon img { transition: all 0.2s ease-in-out; } header nav #search-icon:hover img { filter: invert(22%) sepia(61%) saturate(4409%) hue-rotate(332deg) brightness(100%) contrast(103%); } .dropdown-pane ul a { font-weight: bold; } .dropdown-pane ul a:hover { border-left-color: transparent; background-color: transparent; } /*#stock-ticker { background-color: #313131; color: $white; font-weight: 600; font-size: rem-calc(14); line-height: rem-calc(16); padding-top: rem-calc(6); padding-bottom: rem-calc(4); @include breakpoint(medium) { body.scrolled & { padding-top: rem-calc(4); } } }*/ #search-overlay form input[type=text] { border-radius: 3.5625rem; padding: 0 1.25rem; } #search-overlay form input[type=text]#search-terms { border-radius: 3.5625rem 0 0 3.5625rem; } #search-overlay form .container { border-radius: 3.5625rem; overflow: hidden; } #search-overlay form select { border-radius: 3.5625rem; padding: 0 1.25rem; background-position: right -0.375rem center; } .header-space { height: 7.6875rem; } @media print, screen and (min-width: 40em) { .header-space { height: 8.375rem; } } footer { padding-bottom: 2rem; } footer .app-row .app-links { all: unset; display: flex; align-items: center; justify-content: center; gap: 1rem; } footer .border-row ul.social-links { border-bottom: none; margin-bottom: 0; margin-top: 0.75rem; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 0.4375rem; } footer .border-row ul.social-links li { margin: 0; } footer .border-row ul.social-links li a { background: #fefefe; width: 1.8125rem; height: 1.8125rem; display: flex; align-items: center; justify-content: center; border-radius: 100%; border: solid 2px #fefefe; transition: all 0.2s ease-in-out; } footer .border-row ul.social-links li a img { max-width: 0.9375rem; max-height: 0.9375rem; height: unset; margin: 0; filter: brightness(0) saturate(100%) invert(0%) sepia(15%) saturate(18%) hue-rotate(337deg) brightness(94%) contrast(92%); } footer .border-row ul.social-links li a:hover { background: transparent; } footer .border-row ul.social-links li a:hover img { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(45deg) brightness(103%) contrast(103%); } footer .separator { width: 100%; height: 0.0625rem; background-color: #fefefe; margin-bottom: 1.6875rem; margin-top: 4.625rem; } footer .bottom-content { font-weight: normal; } footer ul.links { display: block; margin: 0; padding: 0; list-style: none; text-align: right; } footer ul.links li { display: inline-block; } footer ul.links li a { display: block; } footer ul.links li a:after { display: inline-block; content: "|"; margin: 0 0.625rem; color: #fefefe; } footer ul.links li a:hover { color: #FF1A58; } footer ul.links li:last-child a::after { display: none; } footer ul.links li:first-child a:after { display: inline-block; content: "|"; margin: 0 0.625rem; color: #fefefe; } .dyk { border-radius: 0; padding: 2.625rem 1.3125rem 2.375rem 2.125rem; display: flex; justify-content: space-between; background: #0a0a0a; } .dyk .content { flex: 1 1; padding-right: 2.0625rem; } .dyk .title { font-size: 2rem; font-weight: bold; letter-spacing: 0; line-height: 1.2; } .dyk .title::after { content: none; } .dyk .message { font-size: 16px; letter-spacing: 0; line-height: 1.25; margin: 22px 0 26px; } .dyk .icon { width: 3rem; } .dyk .button.alt.white-out { text-transform: none; color: #0a0a0a; } .dyk .button.alt.white-out:hover { color: #fefefe; background: #0a0a0a; } main { background: #F1F1F1; } section.lightgray { background: #F1F1F1; } .button, button { text-transform: none; margin: 0 0.4rem; } .button:first-letter, button:first-letter { text-transform: uppercase; } .button.more-feed, button.more-feed { background-color: transparent; border-color: #FF1A58; } .button.alt.outline, button.alt.outline { background-color: transparent; border-color: #FF1A58; } .button.alt.outline:hover, button.alt.outline:hover { background-color: #FF1A58; } .card { box-shadow: unset; margin-bottom: 1rem; display: flex; flex-wrap: nowrap; color: #0a0a0a; background: #fefefe; transition: all 0.25s ease-out; border-radius: 0; overflow: hidden; } .card.nomargin { margin: 0; } .card.inverted { flex-direction: row-reverse; } .card:hover { box-shadow: unset; transform: unset; } @media print, screen and (max-width: 39.99875em) { .card { display: block; } } .card.expand { width: 100%; height: 100%; } .card .image { position: relative; padding: 0 !important; background-size: cover; background-repeat: no-repeat; background-position: center; overflow: hidden; min-width: 20rem; max-width: 56.25rem; } @media print, screen and (min-width: 40em) { .card .image { display: flex; align-items: center; } } @media print, screen and (max-width: 39.99875em) { .card .image { height: 200px; line-height: 200px; width: 100%; min-width: 0; max-width: 100%; } } .card .image:after { display: none; } .card .image img { display: block; } @media print, screen and (max-width: 39.99875em) { .card .image img { height: 100%; } } @media print, screen and (min-width: 40em) { .card .image img { width: 100%; height: 100%; } } .card .image.blockquote { width: 50%; } .card .image blockquote { background: transparent; display: inline-block; font-weight: 900; color: #fefefe; font-size: 3vw; line-height: 108%; margin: 0; padding: 0 3.125rem; } @media print, screen and (max-width: 39.99875em) { .card .image blockquote { height: 100%; font-size: 18px; } } @media print, screen and (min-width: 40em) { .card .image blockquote { width: 100%; } } @media screen and (min-width: 75em) { .card .image blockquote { font-size: 2.25rem; } } .card .content { padding: 2.1875rem 2.5rem 1.25rem 2.5rem; } .card .content .title { font-size: 1.5rem; line-height: 1.75rem; font-weight: 600; } .card .content .title:after { display: none; content: ""; border-bottom: solid 3px #FF1A58; margin-top: 1.25rem; margin-bottom: 1rem; width: 2.5rem; } .card .content .date { font-size: 0.875rem; color: #545555; font-weight: bold; margin-bottom: 1rem; margin-top: 1.25rem; } .card .content .category { text-transform: none; font-weight: 900; font-size: 0.75rem; color: #8526FF; margin-bottom: 1rem; } .card .content .source { text-transform: none; color: #545555; font-weight: 700; font-size: 0.75rem; } .card.secondary .category { color: #8526FF; } .card.secondary .image { border-radius: 0; } @media print, screen and (min-width: 40em) { .card.secondary .image { border-radius: 0; } } .card.secondary .button { background: #FF1A58; border: solid 2px #FF1A58; } .card.secondary .button:hover { background: #fefefe; color: #FF1A58; } .card.secondary .title::after { border-bottom-color: #FF1A58; } .card.vertical { flex-direction: column; height: 100%; /*display:block; .image { width:100%; max-height:rem-calc(200); min-width:100%; max-width:100%; line-height:200px; display:block; &:after { @include triangle(23, 23, $white, 'bottom'); top:auto; bottom:0; left:24px; } blockquote { display:inline-block; height:rem-calc(200); font-size:24px; @include breakpoint(medium){ font-size:4vw; } @include breakpoint(large) { font-size:2.5vw; } } } */ } .card.vertical.inverted { flex-direction: column-reverse; } .card.vertical.inverted .image::after { width: 0; height: 0; border-left: 23px solid transparent; border-right: 23px solid transparent; border-top: 23px solid #fefefe; border-bottom: 23px solid transparent; top: 0; left: 24px; } .card.vertical .image { width: 100%; } .card.vertical .image:after { width: 0; height: 0; border-left: 23px solid transparent; border-right: 23px solid transparent; border-bottom: 23px solid #fefefe; border-top: 23px solid transparent; top: auto; bottom: 0; left: 24px; } .card.vertical .image blockquote { display: inline-block; height: 12.5rem; font-size: 24px; padding-top: 1.25rem; padding-bottom: 0.625rem; } @media print, screen and (min-width: 40em) { .card.vertical .image blockquote { font-size: 4vw; } } @media print, screen and (min-width: 64em) { .card.vertical .image blockquote { font-size: 2.5vw; } } .card.vertical .content { width: 100%; } .card.video .image:before { content: ""; background: rgba(255, 26, 88, 0.7) url("//cdn.entergy-neworleans.com/img/play.png") no-repeat center; position: absolute; width: 100%; height: 100%; top: 0; left: 0; } .card.twitter { background: #4A90E2; background-image: url("//cdn.entergy-neworleans.com/img/icons/twitter-white.svg"); background-repeat: no-repeat; background-position: top 24px right 24px; display: block; padding: 1.25rem 2.5rem 1.875rem 2.5rem; color: #fefefe; font-size: 1.1875rem; height: 100%; } .card.twitter .title { font-weight: 900; font-size: 0.75rem; text-transform: uppercase; margin-bottom: 2.5rem; } .card.twitter a { color: #fefefe; text-decoration: underline; } .card.twitter .date { font-weight: 900; font-size: 0.75rem; text-transform: uppercase; } .card.twitter p { font-size: 0.9375rem; } .card.twitter:hover { box-shadow: none; transform: none; } .card.bio .image { background-position-y: -50px; width: 100%; } @media print, screen and (min-width: 40em) { .card.bio .image { background-position-y: center; min-width: 33%; width: 33%; } } .card.bio .image img { width: 100%; min-height: 0; } .card.featured { flex-direction: row-reverse; } .card.featured .content { width: 50%; } .card.featured .image { height: 40.375rem; width: 50%; } .card.featured .image:before { content: "Featured"; text-transform: uppercase; font-size: 0.75rem; font-weight: 900; color: #fefefe; background: url("//cdn.entergy-neworleans.com/img/featured.png") no-repeat left -2px, linear-gradient(to right, rgba(10, 10, 10, 0.6), rgba(10, 10, 10, 0.6)); display: block; width: auto; top: 17px; right: 21px; padding-left: 20px; padding-right: 8px; position: absolute; } @media print, screen and (min-width: 40em) { .card.featured .image:after { width: 0; height: 0; border-left: 18px solid #fefefe; border-top: 18px solid transparent; border-bottom: 18px solid transparent; border-right: none; top: 24px; left: 0; } } .card.promo { display: block; } .card.promo .image { min-width: 100%; width: 100%; height: 7.8125rem; } .card.promo .image:after { display: none; } .card.promo .content { width: 100%; padding: 0.625rem 2.5rem; color: #0a0a0a; } #featured .header { border-bottom: none; text-align: center; font-size: 1.5rem; margin: 3.375rem 0 0; padding-bottom: 1.4375rem; } aside { background: transparent; border-radius: 0px; padding: 0; } aside .sidebarCallout { background-color: #0a0a0a !important; margin-bottom: 1.5rem; } aside .sidebarCallout .sidebarCalloutNumber { display: flex; flex-direction: column !important; align-items: flex-start !important; gap: 1rem; } aside .sidebarCallout .sidebarCalloutNumber .title { display: flex; flex-direction: row; gap: 1.5rem; } aside .sidebarCallout .sidebarCalloutNumber .title .icon { min-width: 3rem; min-height: 3rem; } aside .sidebarCallout .sidebarCalloutNumber p.cta { font-weight: bold; } aside .sidebarCallout .sidebarCalloutNumber p.cta span { text-transform: none !important; font-weight: normal !important; } aside .sidebarInner { background: #6E6E6E; padding: 1.25rem; } @media print, screen and (min-width: 64em) { aside .sidebarInner { padding: 1.5625rem 3.4375rem; } } aside .sidebarInner h3 { border-bottom: none; margin: 0; padding: 0; color: #fefefe; } aside .sidebarInner nav ul li:before { display: none; } aside .sidebarInner nav ul li:after { content: "›"; display: inline-block; color: #fff; font-size: 1.5rem; margin-left: 0.625rem; font-weight: 900; text-decoration: none !important; } #promos .header { font-size: 24px; font-weight: bold; letter-spacing: 0; line-height: 1.2; text-align: center; border: none; padding-bottom: 1.4375rem; margin: 3.375rem 0 0; } .card.promo { border-radius: 0; } .card.promo .content { padding: 0.625rem 1.4375rem; } .card.promo .content .title { font-size: 1.5rem; font-weight: bold; letter-spacing: 0; line-height: 1; margin-top: 1.875rem; margin-bottom: 1rem; } .card.promo .content .title::after { content: none; } #quicklinks .header { font-size: 24px; font-weight: bold; letter-spacing: 0; line-height: 1.2; text-align: center; border: none; padding-bottom: 1.4375rem; margin: 3.375rem 0 0; } .button.quick-link, button.quick-link { border-radius: 0; } .button.quick-link .overlay, button.quick-link .overlay { border-radius: 0; background: #fefefe; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; } .button.quick-link .overlay img, button.quick-link .overlay img { height: 3.5625rem; margin-bottom: 0.125rem; } .button.quick-link .overlay .title, button.quick-link .overlay .title { color: #0a0a0a; font-size: 2rem; font-weight: bold; letter-spacing: 0; line-height: 2.4375rem; text-transform: none; padding-bottom: 0.09375rem; } .button.quick-link .overlay .title::after, button.quick-link .overlay .title::after { content: none; } .button.quick-link .overlay .description, button.quick-link .overlay .description { padding-top: 0.09375rem; border: none; color: #FF1C58; font-size: 0.9375rem; font-weight: bold; letter-spacing: 0; line-height: 1.125rem; } .button.quick-link .overlay .description::after, button.quick-link .overlay .description::after { font-size: 0.75rem; margin-left: 0.3125rem; content: ">"; } .section-header { background-image: none; background-position: top left; background-color: white; min-height: auto !important; } @media print, screen and (max-width: 39.99875em) { .section-header { background-size: auto 200px; padding: 50px 0 50px 0; margin-top: -3.125rem; } } @media print, screen and (min-width: 40em) { .section-header { height: 260px; padding: 50px 0; overflow: hidden; } .section-header.header-small { padding: 20px 0; height: 200px; } } .section-header h1, .section-header .h1 { color: #0a0a0a; text-align: left; padding: 0; margin: 0 0 0.5rem 0; font-size: 2.25rem; line-height: 150%; } .section-header .pageSubTitle { color: #0a0a0a; line-height: 150%; } .section-header.no-background { background-color: transparent; height: auto; padding: 40px 0 0 0; } /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3V0aWwvX3RyYW5zaXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fem9vbS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJfc2xpY2suc2NzcyIsIl90eXBlLnNjc3MiLCJfY29tcG9uZW50cy5zY3NzIiwiYXBwLnNjc3MiLCJfc3RydWN0dXJlLnNjc3MiLCJfbWVkaWFxdWVyaWVzLnNjc3MiLCJfcHJpbnQuc2NzcyIsIl9lbWVyZ2VuY3ljYWxsb3V0LnNjc3MiLCJfYmFubmVyLnNjc3MiLCJicmFuZHVwZGF0ZS9fbmF2aWdhdGlvbi5zY3NzIiwiYnJhbmR1cGRhdGUvX2Zvb3Rlci5zY3NzIiwiYnJhbmR1cGRhdGUvX2R5ay5zY3NzIiwiYnJhbmR1cGRhdGUvX25ld3NjYXJkcy5zY3NzIiwiYnJhbmR1cGRhdGUvX3NpZGViYXIuc2NzcyIsImJyYW5kdXBkYXRlL19wcm9tb3Muc2NzcyIsImJyYW5kdXBkYXRlL19xdWlja2xpbmtzLnNjc3MiLCJicmFuZHVwZGF0ZS9fcGFnZWhlYWRlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNtTFE7RUN0SU47SUFDRTtJQUNBO0lBQ0E7OztBQzdDRjtBQVFBO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFRRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUtGO0FBQUE7RUFFRTs7O0FBTUY7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBTUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFRRjtFQUNFOzs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0FBQUE7RUFFRTs7O0FBTUY7QUFBQTtFQUVFOzs7QUFLRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFLRjtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUtGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUtGO0VBQ0U7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFLRjtFQUNFOzs7QUFNRjtBQUFBO0VBRUU7RUFDQTs7O0FBS0Y7QUFBQTtFQUVFOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTs7O0FBS0Y7RUFDRTs7O0FBUUY7RUFDRTs7O0FBS0Y7RUFDRTs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDRTs7O0FBS0o7RUFDRTtFQUNBOzs7QUN4SkY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBLFdDcEdlOzs7QUR3R2pC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QUlJLFdBRGlCOztFQUhyQjtJQUlJLFdBRGlCOzs7QUFvQzNCO0VBQ0U7RUFDQSxPQy9OZ0I7RURnT2hCLGlCTm5McUI7RU1xTHJCOztBQUVBO0VBRUUsT04xTGU7O0FNZ01qQjtFQUNFOzs7QUFLSjtFQUNFO0VBRUEsV041VFc7RU02VFg7RUFDQSxRTnRNUTtFTXdNUjtFQUNBO0VBQ0EsZU4zTVE7RU00TVI7OztBQUlGO0FBQUE7QUFBQTtFQUdFLGVOaE9zQjtFTWlPdEIscUJOL01rQjtFTWdObEIsYU5uT21COzs7QU11T3JCO0VBQ0U7OztBQUlGO0VBQ0UsYU56TmU7RU0wTmYsaUJONU5jOzs7QU1nT2hCO0VBQ0UsYU4vTmU7OztBTW9PZjtFQUNFLGFOcE9vQjtFTXFPcEI7OztBQUtKO0VBQ0UsZU4xT3FCOztBTTRPckI7RUFDRSxlTjNPd0I7RU00T3hCLGFObFZlOzs7QU11Vm5CO0VBQ0U7RUFDQSxTTmpQaUI7RU1rUGpCLGFOalBnQjs7QU1tUGhCO0VBQ0UsYU4vUWlCO0VNZ1JqQixPTjlXTTs7O0FNNFhWO0VBQ0UsZU41UGE7RU02UGI7RUFDQTs7O0FBSUY7RUFDRTs7O0FBV0Y7RUFDRTtFQUNBLFNObFJnQjtFTW9SaEIsa0JOclpTO0VNdVpULGFOaFZvQjtFTWlWcEIsT05yWkk7OztBUXVFTjtFQUNFLFlSa0VtQjtFUWpFbkIsZVJrRXNCO0VRaEV0QixhUjdEbUI7RVE4RG5CLGFSMkRtQjtFUTFEbkIsT1I5RVE7OztBUWtGVjtFQUNFLFdSbURhO0VRbERiLGFSbURjOzs7QVEvQ2hCO0VBQ0UsV1JvRGE7RVFuRGI7O0FBRUE7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFJSjtFQWpGQTtFQUNBLE9SekJVO0VRMEJWLFdSZ0dlOztBUTlGZjtFQUNFLFNBeENrQjs7O0FBNEhwQjtFQTdFQSxRUmlFWTtFUWhFWixrQlJ2Q1c7RVF5Q1gsYVI4QnNCO0VRN0J0QixhUnpCcUI7RVEwQnJCLE9SeENNO0VROENOO0VBQ0E7RUFDQTtFQUVBLFNSbURhOzs7QVFvQmI7RUF0RkEsUVJpRVk7RVFoRVosa0JS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RjtFQUNBO0VDaURFLFNBTHFCO0VFekJyQjs7O0FKVUE7RUVvQkEsU0FMcUI7OztBRjNCckI7RUNsQkY7RUFDQTtFQ2lERSxTQUxxQjtFRXpCckI7OztBSlVBO0VFb0JBLFNBTHFCOzs7QUYzQnJCO0VDbEJGO0VBQ0E7RUNpREUsV0FMcUI7RUFLckIsa0JBRlU7RUd0QlI7RUFDQTs7O0FMR0Y7RUVvQkEsV0FMcUI7RUdSbkI7OztBTG5CRjtFQ2xCRjtFQUNBO0VDaURFLFdBTHFCO0VBS3JCLGtCQUZVO0VHdEJSO0VBQ0E7OztBTEdGO0VFb0JBLFdBTHFCO0VHUm5COzs7QUxuQkY7RUNsQkY7RUFDQTtFQ2lERSxXQUxxQjtFQUtyQixrQkFGVTtFR3RCUjtFQUNBOzs7QUxHRjtFRW9CQSxXQUxxQjtFR1JuQjs7O0FMbkJGO0VDbEJGO0VBQ0E7RUNpREUsV0FMcUI7RUFLckIsa0JBRlU7RUd0QlI7RUFDQTs7O0FMR0Y7RUVvQkEsV0FMcUI7RUdSbkI7OztBTG5CRjtFQ2xCRjtFQUNBO0VDaURFLFdBTHFCO0VBS3JCLGtCQUZVO0VHdEJSO0VBQ0E7OztBTEdGO0VFb0JBLFdBTHFCO0VHUm5COzs7QUxuQkY7RUNsQkY7RUFDQTtFQ2lERSxXQUxxQjtFQUtyQixrQkFGVTtFR3RCUjtFQUNBOzs7QUxHRjtFRW9CQSxXQUxxQjtFR1JuQjs7O0FMbkJGO0VDbEJGO0VBQ0E7RUNpREUsV0FMcUI7RUFLckIsa0JBRlU7RUd0QlI7RUFDQTs7O0FMR0Y7RUVvQkEsV0FMcUI7RUdSbkI7OztBTG5CRjtFQ2xCRjtFQUNBO0VDaURFLFdBTHFCO0VBS3JCLGtCQUZVO0VHdEJSO0VBQ0E7OztBTEdGO0VFb0JBLFdBTHFCO0VHUm5COzs7QUxuQkY7RUNsQkY7RUFDQTtFQ2lERSxXQUxxQjtFQUtyQixrQkFGVTtFR3RCUjtFQUNBOzs7QUxHRjtFRW9CQSxXQUxxQjtFR1JuQjs7O0FMbkJGO0VDbEJGO0VBQ0E7RUNpREUsV0FMcUI7RUFLckIsa0JBRlU7RUd0QlI7RUFDQTs7O0FMR0Y7RUVvQkEsV0FMcUI7RUdSbkI7OztBTG5CRjtFQ2xCRjtFQUNBO0VDaURFLFdBTHFCO0VBS3JCLGtCQUZVO0VHdEJSO0VBQ0E7OztBTEdGO0VFb0JBLFdBTHFCO0VHUm5COzs7QUxuQkY7RUNsQkY7RUFDQTtFQ2lERSxXQUxxQjtFQUtyQixrQkFGVTtFR3RCUjtFQUNBOzs7QUxHRjtFRW9CQSxXQUxxQjtFR1JuQjs7O0FMbkJGO0VDbEJGO0VBQ0E7RUNpREUsV0FGVTtFSXpCUjtFQUNBOzs7QU5NRjtFRW9CQSxXQUZVO0VJZFI7OztBTmhCRjtFQ2xCRjtFQUNBO0VDaURFLFdBRlU7RUl6QlI7RUFDQTs7O0FOTUY7RUVvQkEsV0FGVTtFSWRSOzs7QU5oQkY7RUNsQkY7RUFDQTtFQ2lERSxXQUZVO0VJekJSO0VBQ0E7OztBTk1GO0VFb0JBLFdBRlU7RUlkUjs7O0FOaEJGO0VDbEJGO0VBQ0E7RUNpREUsV0FGVTtFSXpCUjtFQUNBOzs7QU5NRjtFRW9CQSxXQUZVO0VJZFI7OztBTmhCRjtFQ2xCRjtFQUNBO0VDaURFLFdBRlU7RUsxQlI7RUFDQTs7O0FQT0Y7RUVvQkEsV0FGVTtFS2ZSOzs7QVBmRjtFQ2xCRjtFQUNBO0VDaURFLFdBRlU7RUsxQlI7RUFDQTs7O0FQT0Y7RUVvQkEsV0FGVTtFS2ZSOzs7QVBmRjtFQ2xCRjtFQUNBO0VDaURFLFdBRlU7RUsxQlI7RUFDQTs7O0FQT0Y7RUVvQkEsV0FGVTtFS2ZSOzs7QVBmRjtFQ2xCRjtFQUNBO0VDaURFLFdBRlU7RUsxQlI7RUFDQTs7O0FQT0Y7RUVvQkEsV0FGVTtFS2ZSOzs7QU5tQkE7RUFBWTs7O0FBQVo7RUFBWTs7O0FBTVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBTVo7RUFBa0I7OztBQUFsQjtFQUFrQjs7O0FBUXRCO0VPdEVBOztBTktBO0VBR0k7SUFHSTs7RUFISjtJQUdJOzs7O0FENERSO0VPdkVBOztBTktBO0VBR0k7SUFHSTs7RUFISjtJQUdJOzs7O0FENkRSO0VPeEVBOztBTktBO0VBR0k7SUFHSTs7RUFISjtJQUdJOzs7O0FEOERSO0VPekVBOztBTktBO0VBR0k7SUFHSTs7RUFISjtJQUdJOztFQUhKO0lBR0k7Ozs7QURnRVI7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBS0Y7RUFBWTs7O0FBSVI7RUFBWTs7O0FBQVo7RUFBWTs7O0FBTVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBQVo7RUFBWTs7O0FBTVo7RUFBa0I7OztBQUFsQjtFQUFrQjs7O0FRekd4QjtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQUdSO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQVdBOztBQVZBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUtKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHUjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSTtFQUNJOztBQUdSO0VBQ0k7O0FBRUo7RUFDSTs7O0FBR1I7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSTtFQUNJO0VBQ0E7RUFDQTtF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MUNqQjtFQUNBO0VBRUE7RUFFQTs7QUFDQTtFQUNDOztBQUdGO0VBQ0M7RUFDQTtFQUVBLE9BakRLO0VBa0RMO0VBQ0EsYTFFMEJpQjtFMEV6QmpCO0VBQ0E7O0FBQ0E7RUFDQztFQUNBO0VBQ0E7OztBQ3pETDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBL0UrS087RStFbkxSO0lBT0U7SUFDQTtJQUNBOzs7QS9FMEtNO0UrRW5MUjtJQWFFO0lBQ0E7SUFDQTs7RUFFQTtJQUNDO0lBQ0E7OztBQUlGO0VBQ0MsTzNFc0NNO0UyRXJDTjtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0MsTzNFOEJNO0UyRTdCTjs7QUFFRDtFQUNDO0VBQ0E7RUFDQSIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNVxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1zaXplOiBudWxsO1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIFwic21hbGxcIjogMCxcbiAgXCJtZWRpdW1cIjogNjQwcHgsXG4gIFwibGFyZ2VcIjogMTAyNHB4LFxuICBcInhsYXJnZVwiOiAxMjAwcHgsXG4gIFwieHhsYXJnZVwiOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBcImhpZHBpLTFcIjogMSxcbiAgXCJoaWRwaS0xLTVcIjogMS41LFxuICBcImhpZHBpLTJcIjogMixcbiAgXCJyZXRpbmFcIjogMixcbiAgXCJoaWRwaS0zXCI6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gZGl2aWRlKDEsICRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0LW51bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dC1udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0LW51bWJlcikge1xuICAgICAgJG5leHQtbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0LW51bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZC1rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmQta2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZC1rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuLy8gVGhpcyBzaG91bGQgYmUgaW4gdGhlIHNhbWUgYnJlYWtwb2ludCB0aGVuIGBAbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoYFxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICAvLyBFeHRlbmRzIG11c3QgYmUgbWFkZSBvdXRzaWRlIG9mIGJyZWFrcG9pbnRzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbmV3ZXIgU2FzcyB2ZXJzaW9ucyAobGlic2FzcyB2My41KVxuICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcblxuICAvLy8gRGlzYWJsZXMgdGhlIHNjcm9sbCB3aGVuIFJldmVhbCBpcyBzaG93biB0byBwcmV2ZW50IHRoZSBiYWNrZ3JvdW5kIGZyb20gc2hpZnRpbmdcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICYuemYtaGFzLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgYm9keSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDA7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gRGlzYWJsZSBvdXRsaW5lIHdoZW4gaW50ZW50IGlzIGNsZWFybHkgbW91c2UgYW5kIHRvdWNoXG4gIFtkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0ge1xuICAgICosICo6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlIGlPUyBjYWxsb3V0cyB3aGVuIGRyYWdnYWJsZSBpcyBmYWxzZVxuICBbZHJhZ2dhYmxlPWZhbHNlXSB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIFwicHJpbWFyeVwiOiAjMTc3OWJhLFxuICBcInNlY29uZGFyeVwiOiAjNzY3Njc2LFxuICBcInN1Y2Nlc3NcIjogIzNhZGI3NixcbiAgXCJ3YXJuaW5nXCI6ICNmZmFlMDAsXG4gIFwiYWxlcnRcIjogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHNhZmUgcGFkZGluZyBvbiB0aGUgYm9keSBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRldmljZXMgKGkuZS4gcGhvbmVzIHdpdGggbm90Y2hlcylcbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1zYWZlLXBhZGRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpZiAoJGJvZHktc2FmZS1wYWRkaW5nKSB7XG4gICAgICAvLyB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWNjb3VudCBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzIGUuZy4gcGhvbmVzIHdpdGggbm90Y2hlc1xuICAgICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDbG9zZSBCdXR0b25cbi8vICAxNS4gRHJpbGxkb3duXG4vLyAgMTYuIERyb3Bkb3duXG4vLyAgMTcuIERyb3Bkb3duIE1lbnVcbi8vICAxOC4gRmxleCBWaWRlb1xuLy8gIDE5LiBGb3Jtc1xuLy8gIDIwLiBMYWJlbFxuLy8gIDIxLiBNZWRpYSBPYmplY3Rcbi8vICAyMi4gTWVudVxuLy8gIDIzLiBNZXRlclxuLy8gIDI0LiBPZmYtY2FudmFzXG4vLyAgMjUuIE9yYml0XG4vLyAgMjYuIFBhZ2luYXRpb25cbi8vICAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjguIFJldmVhbFxuLy8gIDI5LiBTbGlkZXJcbi8vICAzMC4gU3dpdGNoXG4vLyAgMzEuIFRhYmxlXG4vLyAgMzIuIFRhYnNcbi8vICAzMy4gVGh1bWJuYWlsXG4vLyAgMzQuIFRpdGxlIEJhclxuLy8gIDM1LiBUb29sdGlwXG4vLyAgMzYuIFRvcCBCYXJcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cbiR2YXJlbGE6ICdWYXJlbGEgUm91bmQnLCBzYW5zLXNlcmlmO1xuLy8kcHJveGltYS1ub3ZhOiAncHJveGltYS1ub3ZhJywgc2Fucy1zZXJpZjtcblxuJGdsb2JhbC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEzNzApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICNGRjFBNTgsXG4gIHNlY29uZGFyeTogI0ZGMUE1OCxcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNlYzU4NDAsXG4pO1xuJGxpZ2h0LWdyYXk6ICNEOEQ4RDg7XG4kbWVkaXVtLWdyYXk6ICNjYWNhY2E7XG4kZGFyay1ncmF5OiAjNkU2RTZFO1xuJGJsYWNrOiAjMGEwYTBhO1xuJHdoaXRlOiAjZmVmZWZlO1xuJGdyYXk6ICNCMEIwQjA7XG4kZGFyazogIzU0NTU1NTtcbiRkYXJrLXJlZDogI0FEMDA0NztcbiRhbHRibHVlOiAjNEE5MEUyO1xuJG5lYXJibGFjazogIzMzMzg0MztcbiR2aW9sZXQ6ICM4NTI2RkY7XG4kYm9keS1iYWNrZ3JvdW5kOiAjRjFGMUYxO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogZmFsc2U7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuXG4kZmFjZWJvb2s6ICMzQzVCOUI7XG4kdHdpdHRlcjogIzJEQUFFMTtcbiRsaW5rZWRpbjogIzAwN0FBQTtcbiRpbnN0YWdyYW06ICM1QTVBNUE7XG4keW91dHViZTogI0Y2MUMwRDtcblxuJHJlZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcbiRiZWlnZTogIzhjODI3OTtcbiRibHVlOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG4kb3JhbmdlOiAjZTg3NzIyO1xuJHllbGxvdzogI2YxYzQwMDtcbiRncmVlbjogIzc4OWQ0YTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UgeGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIFwic21hbGxcIjogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBcIm1lZGl1bVwiOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA1NSksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyNyksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyNyksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxMiksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxMiksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxMiksXG4gICksXG4pO1xuJGhlYWRlci1jb2xvcjogIzU0NTU1NTtcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLXBhZGRpbmc6IHJlbS1jYWxjKDEyIDI0IDEwLjUgMjQpO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiByZW0tY2FsYygxNCksXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTUuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAwO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTcuIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiBmYWxzZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIyNXB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiByZW0tY2FsYyg2KSAwO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogaW5oZXJpdDtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOC4gRmxleCBWaWRlb1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kZmxleHZpZGVvLXJhdGlvOiA0IGJ5IDM7XG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDk7XG5cbi8vIDE5LiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gMjMuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNC4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBcInNtYWxsXCI6IDEwMCUsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBcInNtYWxsXCI6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJHdoaXRlO1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuJG1haW5jb250ZW50LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNSk7XG5cbi8vIDI1LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjYuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiBmb3JlZ3JvdW5kKCRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50KTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI4LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gMjkuIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDMwLiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gMzEuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAqIDAuNSk7XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcblxuLy8gMzIuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAjZWNlY2VjO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJHdoaXRlO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyAzMy4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzQuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDM1LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNi4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMXJlbTtcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4O1xuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pOyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1icC12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWUgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBoYXZlIHJvdyB3cmFwcGluZyBiZWhhdmlvciBzZXQgdG8gbm93cmFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRuKSk7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAqIDAuNSAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogMC41O1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKGRpdmlkZSgkcG9zaXRpb24sICRncmlkLWNvbHVtbi1jb3VudCkpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuXG4gIC8vIENlbnRlciBwb3NpdGlvbmluZ1xuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBcImNlbnRlclwiIG9yIFwiYXV0b1wiLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oYXV0byk7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZC1mcm9tLWhlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgJWNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJHByaW1hcnktY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJHdhcm5pbmctY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kYWxlcnQtY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvcjogbnVsbCAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiBkaXZpZGUoJHJnYiwgMjU1KTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCBkaXZpZGUoJHJnYiwgMTIuOTIpLCBwb3coZGl2aWRlKCRyZ2IgKyAwLjA1NSwgMS4wNTUpLCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiBkaXZpZGUoJGx1bWluYW5jZTEsICRsdW1pbmFuY2UyKTtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiBkaXZpZGUoMSwgJHJhdGlvKTtcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApICogMC4xO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiAnQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH0nO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWAgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogIzE3NzliYSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogIzc2NzY3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6ICMzYWRiNzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkYWxlcnQtY29sb3I6ICNjYzRiMzcgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJWNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY2l0ZS1ibG9jayB7XG4gICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgfVxuXG4gICVjb2RlLWlubGluZSB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWlubGluZSB7XG4gICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gSWdub3JlZCBpZiBudWxsIChkZWZhdWx0KVxuLy8vIEB0eXBlIEZvbnQtV2VpZ2h0XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBudWxsICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGJ1dHRvbnMsIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IG9yIGNsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWZpbGwtc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLiBgc29saWRgIGhhcyBubyBlZmZlY3RzLlxuQG1peGluIGJ1dHRvbi1maWxsKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGVzIG9mIGEgc29saWQvaG9sbG93L2NsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbnMgYGJ1dHRvbi1zdHlsZWAsIGBidXR0b24taG9sbG93LXN0eWxlYCBhbmQgYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIGVmZmVjdHMgb2YgdmlzdWFsIHN0eWxpbmcgcGFyYW1ldGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIC1cbkBtaXhpbiBidXR0b24tZmlsbC1zdHlsZShcbiAgJGZpbGw6ICRidXR0b24tZmlsbCxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRmaWxsID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhci1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGFuZCBib3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRib3JkZXItd2lkdGggWyRidXR0b24taG9sbG93LWJvcmRlci13aWR0aF0gLSBCb3JkZXIgd2lkdGggb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1jbGVhciB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbkBtaXhpbiBidXR0b24tY2xlYXItc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3Ncbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQgYW5kIHJlc2V0aW5nIHRoZSBjdXJzb3IuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IFskYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRdIC0gT3BhY2l0eSBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZFxuKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbCgkc3R5bGUpO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkc3R5bGUsICRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24oJHN0eWxlOiBub25lKTtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgQGlmICRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZCB7XG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBvbmx5KSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1vbmx5LWV4cGFuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBkb3duKSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWRvd24tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgKiAwLjUgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAqIDAuNSArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbiAgJjpub3QoW211bHRpcGxlXSkge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBwbHVzIGljb24gd2hlbiBgJGFjY29yZGlvbi1wbHVzbWludXNgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ6ICdcXDAwMkInICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIG1pbnVzIGljb24gd2hlbiBgJGFjY29yZGlvbi1wbHVzbWludXNgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJGFjY29yZGlvbi1taW51cy1jb250ZW50OiAnXFwyMDEzJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24tcGx1cy1jb250ZW50O1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGFjY29yZGlvbi1taW51cy1jb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgKiAwLjUpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgdGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLi5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiB0b3AvYm90dG9tIGljb25zIHdpdGhpbiBhIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYWxpZ25tZW50IFtjZW50ZXJdIC0gQWxpZ25tZW50IG9mIHRoZSBpY29uXG5AbWl4aW4gbWVudS1pY29uLWFsaWdubWVudCgkYWxpZ25tZW50OiBjZW50ZXIpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5pY29uLXRvcCxcbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIGxpIGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZSwgKCRtZW51LWl0ZW0tY29sb3ItYWN0aXZlLCAkbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmUpKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLWFsaWdubWVudChsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSBpY29uIHBvc2l0aW9uXG4gICAgLy8gSW5jbHVkZXMgc3BlY2lmaWNpdHkgdG8gbmVzdGVkIGljb25zIHdpdGggYSBkaWZmZXJlbnQgcG9zaXRpb25cbiAgICAmLFxuICAgICYubmVzdGVkIHtcbiAgICAgIC8vIEljb24gTGVmdFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gUmlnaHRcbiAgICAgICYuaWNvbi1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gVG9wXG4gICAgICAmLmljb24tdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gQm90dG9tXG4gICAgICAmLmljb24tYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzZXBlcmF0b3IgYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDtcbn1cblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJyAhZGVmYXVsdDtcblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IgaW4gcnRsIG1vZGUuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCcgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IgaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcikge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2Uge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzZXBhcmF0b3I6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGwpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBjb250ZW50OiAkc2VwYXJhdG9yO1xuICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuIChPbmx5IG5lZWRlZCB3aGVuICRnbG9iYWwtZmxleGJveDogZmFsc2U7KVxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNYWtlIGJ1dHRvbnMgYm9uZGVkIHdpdGhvdXQgZ2FwIGJldHdlZW4gdGhlbS4gQm9yZGVycyBiZXR3ZWVuIGJ1dHRvbnMgYXJlIG1lcmdlZFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1uby1nYXBzKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogcmVtLWNhbGMoLSRib3JkZXItd2lkdGgpO1xuXG4gICAgKyAjeyRzZWxlY3Rvcn0ge1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIERpc2FibGUgY2xlYXJmaXhcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc3BhY2luZ30pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSl9IC0gI3skc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU29saWQsIGhvbGxvdyAmIGNsZWFyIHN0eWxlc1xuICAgIEBlYWNoICRmaWxsaW5nIGluIChzb2xpZCBob2xsb3cgY2xlYXIpIHtcbiAgICAgICRiYXNlLXNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcuI3skZmlsbGluZ30nKTtcblxuICAgICAgJiN7JGJhc2Utc2VsZWN0b3J9IHtcbiAgICAgICAgLy8gRG8gbm90IGdlbmVyYXRlIGJ1dHRvbiBiYXNlIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgZmlsbGluZ1xuICAgICAgICBAaWYoJGJ1dHRvbi1maWxsICE9ICRmaWxsaW5nKSB7XG4gICAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRmaWxsaW5nKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgQGlmKCRidXR0b24tZmlsbCAhPSAkZmlsbGluZykge1xuICAgICAgICAgICAgJGluZGl2aWR1YWwtc2VsZWN0b3I6ICcgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9LiN7JG5hbWV9JztcbiAgICAgICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9LCAmI3skaW5kaXZpZHVhbC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgICYubm8tZ2FwcyB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtbm8tZ2FwcztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG5cbiAgICAgICYuZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIENhbGxvdXQgcGFkZGluZ3MuXG4vLy8gQHR5cGUgTWFwXG4kY2FsbG91dC1zaXplczogKFxuICBzbWFsbDogMC41cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogM3JlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogbWFwLWdldCgkY2FsbG91dC1zaXplcywgZGVmYXVsdCk7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiBtYXAtcmVtb3ZlKCRjYWxsb3V0LXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKCRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBzaXplIHRvIHVzZSBhcyBkZWZhdWx0XG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tc2l6ZVxuLy8vIEBzZWUgJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsXG4kY2xvc2VidXR0b24tZGVmYXVsdC1zaXplOiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVXNlZCB0byBnZW5lcmF0ZSBzaXppbmcgbW9kaWZpZXJzLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICRjbG9zZWJ1dHRvbi16LWluZGV4O1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICAvLyBVc2UgYnkgZGVmYXVsdCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGRlZmF1bHQgc2l6ZVxuICAgIEBleHRlbmQgJXpmLWNsb3NlLWJ1dHRvbi0tI3skY2xvc2VidXR0b24tZGVmYXVsdC1zaXplfTtcblxuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgIC8vIEdlbmVyYXRlIGEgcGxhY2Vob2xkZXIgYW5kIGEgY2xhc3MgZm9yIGVhY2ggc2l6ZVxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkY2xvc2VidXR0b24tc2l6ZSB7XG4gICAgICBAYXQtcm9vdCB7XG4gICAgICAgICV6Zi1jbG9zZS1idXR0b24tLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZSgkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBleHRlbmQgJXpmLWNsb3NlLWJ1dHRvbi0tI3skbmFtZX07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcgaW4gdGhlIHN1Ym1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcblxuICBkaXNwbGF5OiBub25lO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAqIDAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW1cbiAgICA+IGxpID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW0gYWN0aXZlIHN0YXRlXG4gICAgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9ICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYubWFpbi1zZWN0aW9uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAmLm1pZGRsZSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICYuYm90dG9tIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBCaW5kIHRvIGhhcy10cmFuc2l0aW9uLVggY2xhc3MgdG8gcHJldmVudCB0cmFuc2l0aW9uIGZvciB0cmFuc2Zvcm06bm9uZVxuICAmLmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiAgJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiAgJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICAvLyBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIC8vICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHByZXZpb3VzIGFycm93IHdoZW4gYCRwYWdpbmF0aW9uLWFycm93c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91czogJ1xcMDBBQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbmV4dCBhcnJvdyB3aGVuIGAkcGFnaW5hdGlvbi1hcnJvd3NgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhZ2luYXRpb24tYXJyb3ctbmV4dDogJ1xcMDBCQicgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91cztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRwYWdpbmF0aW9uLWFycm93LW5leHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCBkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGN1cnNvcjogZ3JhYjtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgYSBkaXNhYmxlZCBzd2l0Y2guXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW9wYWNpdHktZGlzYWJsZWQ6IDAuNSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciBmb3IgYSBkaXNhYmxlZCBzd2l0Y2guXG4vLy8gQHR5cGUgQ3Vyc29yXG4kc3dpdGNoLWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vIG1ha2UgdGhlbSB2YXJpYWJsZXNcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcblxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxuICBpbnB1dDpjaGVja2VkIH4gJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICAgIH1cbiAgfVxuXG4gIC8vIGluZGljYXRlIGEgZGlzYWJsZWQgc3dpdGNoXG4gIGlucHV0OmRpc2FibGVkIH4gJiB7XG4gICAgY3Vyc29yOiAkc3dpdGNoLWN1cnNvci1kaXNhYmxlZDtcbiAgICBvcGFjaXR5OiAkc3dpdGNoLW9wYWNpdHktZGlzYWJsZWQ7XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICogMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdCBbZmFsc2VdIC0gTmVlZGVkIGlmIHlvdSBvbmx5IHdhbnQgdG8gYXBwbHkgdGhpcyB0byBhIHNwZWNpZmljIHRhYmxlLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQgZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGh1bWJuYWlsXG4vLy8vXG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kdGh1bWJuYWlsLWJvcmRlcjogNHB4IHNvbGlkICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRodW1ibmFpbCBzdHlsZXMgdG8gYW4gZWxlbWVudC5cbkBtaXhpbiB0aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tO1xuXG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xuICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdztcblxuICBsaW5lLWhlaWdodDogMDtcbn1cblxuQG1peGluIHRodW1ibmFpbC1saW5rIHtcbiAgdHJhbnNpdGlvbjogJHRodW1ibmFpbC10cmFuc2l0aW9uO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgaW1hZ2Uge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcbiAgLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICB9XG5cbiAgYS50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbC1saW5rO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAwLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gMC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbiAgLnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBEYXJrIE1vZGUgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSUUxMCsgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItaWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAuc2hvdy1mb3ItaWUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWllIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBTdGlja3kgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pcy1zdHVjayAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaXMtc3R1Y2sgLmhpZGUtZm9yLXN0aWNreSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gXCIjeyRvdXRwdXR9XCI7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiAtbXVpLWlzLWZ1bmN0aW9uKCRtYXApIHtcbiAgICAgICRtYXA6IC1tdWktc2FmZS1jYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbnVsbF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC4gQnkgZGVmYXVsdCBgbGVmdGAgYW5kIGByaWdodGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRhbW91bnQgWzEwMCVdIC0gTGVuZ3RoIG9mIHRoZSBzbGlkZSBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc2xpZGUgKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBudWxsLFxuICAkYW1vdW50OiAxMDAlLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzbGlkZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiAhPSBudWxsLCAkZGlyZWN0aW9uLCBpZigkc3RhdGUgPT0gaW4sIGxlZnQsIHJpZ2h0KSk7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgZmFkZSB0cmFuc2l0aW9uIGJ5IGFkanVzdGluZyB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gW251bGxdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuIEJ5IGRlZmF1bHQgYDBgIGFuZCBgMWAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbbnVsbF0gLSBPcGFjaXR5IHRvIGVuZCBvbi4gQnkgZGVmYXVsdCBgMWAgYW5kIGAwYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1mYWRlKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbnVsbCxcbiAgJHRvOiBudWxsLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmcm9tOiBpZigkZnJvbSAhPSBudWxsLCAkZnJvbSwgaWYoJHN0YXRlID09IGluLCAwLCAxKSk7XG4gICR0bzogaWYoJHRvICE9IG51bGwsICR0bywgaWYoJHN0YXRlID09IGluLCAxLCAwKSk7XG4gICRmYWRlOiBmYWRlKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAwKTtcblxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMTAwKTtcbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBoaW5nZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHR1cm4tb3JpZ2luOiBpZigkdHVybi1vcmlnaW4gIT0gbnVsbCwgJHR1cm4tb3JpZ2luLCBpZigkc3RhdGUgPT0gaW4sIGZyb20tYmFjaywgZnJvbS1mcm9udCkpO1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gW251bGxdIC0gU2l6ZSB0byBzdGFydCBhdC4gQnkgZGVmYXVsdCBgMGAgYW5kIGAxYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFtudWxsXSAtIFNpemUgdG8gZW5kIGF0LiBCeSBkZWZhdWx0IGAxYCBhbmQgYDBgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmcm9tOiBpZigkZnJvbSAhPSBudWxsLCAkZnJvbSwgaWYoJHN0YXRlID09IGluLCAwLCAxKSk7XG4gICR0bzogaWYoJHRvICE9IG51bGwsICR0bywgaWYoJHN0YXRlID09IGluLCAxLCAwKSk7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtudWxsXSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuIEJ5IGRlZmF1bHQgYGN3YCBhbmQgYGNjd2AgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiAhPSBudWxsLCAkZGlyZWN0aW9uLCBpZigkc3RhdGUgPT0gaW4sIGN3LCBjY3cpKTtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGljay1saWdodGJveCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDk5OTk5OTk5O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICAgIC5zbGljay1sb2FkaW5nIHtcbiAgICAgICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgICBsZWZ0OiAxNXB4O1xuICAgIH1cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgIH1cbn1cbi5zbGljay1saWdodGJveC1oaWRlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgICYuc2xpY2stbGlnaHRib3gtaWUge1xuICAgICAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gICAgICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICB9XG59XG4uc2xpY2stbGlnaHRib3gtaGlkZS1pbml0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTk5OXB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgJi5zbGljay1saWdodGJveC1pZSB7XG4gICAgICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcbiAgICAgICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAgIH1cbn1cbi5zbGljay1saWdodGJveC1pbm5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5zbGljay1saWdodGJveC1zbGljay1pdGVtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjI1ZW07XG4gICAgfVxufVxuLnNsaWNrLWNhcHRpb24tYm90dG9tIHtcbiAgICAuc2xpY2stbGlnaHRib3gtc2xpY2staXRlbSB7XG4gICAgICAgIC5zbGljay1saWdodGJveC1zbGljay1pdGVtIHtcbiAgICAgICAgICAgIC5zbGljay1saWdodGJveC1zbGljay1jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59ICAgXG4uc2xpY2stY2FwdGlvbi1keW5hbWljIHtcbiAgICAuc2xpY2stbGlnaHRib3gtc2xpY2staXRlbSB7XG4gICAgICAgIC5zbGljay1saWdodGJveC1zbGljay1pdGVtIHtcbiAgICAgICAgICAgIC5zbGljay1saWdodGJveC1zbGljay1jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59ICAgXG4uc2xpY2stbGlnaHRib3gtc2xpY2staXRlbS1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWF4LWhlaWdodDogOTAlO1xufVxuLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWltZyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWF4LWhlaWdodDogOTAlO1xufVxuLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWNhcHRpb24ge1xuICAgIG1hcmdpbjogMTBweCAwIDA7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuLnNsaWNrLWxpZ2h0Ym94LWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBjb250ZW50OiBcIsOXXCI7XG4gICAgfVxufVxuIiwiaDEsIC5oMSB7XG5cdC8vIHRleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtcblx0Zm9udC1zaXplOnJlbS1jYWxjKDUwKTtcblx0bGluZS1oZWlnaHQ6cmVtLWNhbGMoNTApO1xuXHRtYXJnaW4tdG9wOiByZW0tY2FsYygyNSk7XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmgyLCAuaDIge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDM4KTtcblx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM4KTtcblx0Y29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMTUpO1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmgzLCAuaDMge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI4KTtcblx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMTUpO1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XG5cdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkZ3JheTtcblx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE1KTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuaDQsIC5oNCB7XG5cdGNvbG9yOiMwMDA7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpO1xuXHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5oNSwgLmg1IHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG5cdGNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG5cdGZvbnQtZmFtaWx5OiAnQXJpYWwgQmxhY2snLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG5oNiwgLmg2IHtcblx0Zm9udC13ZWlnaHQ6NjAwO1xuXHRjb2xvcjogIzk0OTQ5NDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRsaW5lLWhlaWdodDogMTRweDtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuYmxvY2txdW90ZSB7XG5cdGJvcmRlci1sZWZ0OiAwO1xuXHRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiByZW0tY2FsYygyOCk7XG5cdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNCk7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDMwKSByZW0tY2FsYyg0MCk7XG5cdG1hcmdpbjogcmVtLWNhbGMoMzApIDA7XG5cblx0cCwgYSB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM0KTtcblx0fVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOiA2NDBweCkge1xuXHRoMSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygzNSk7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM2KTtcblx0fVxuXG5cdGgyIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI2KTtcblx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjgpO1xuXHR9XG5cblx0aDMge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI2KTtcblx0fVxuXG5cdGg1IHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMTgpO1xuXHR9XG5cblx0YmxvY2txdW90ZSB7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMjApO1xuXG5cdFx0cCB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG5cdFx0fVxuXHR9XG59XG5cbi5zbWFsbC1oZWFkZXIge1xuXHRmb250LXNpemU6cmVtLWNhbGMoMTMpO1xuXHRmb250LXdlaWdodDpib2xkO1xuXHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG59XG4ubGFyZ2Uge1xuXHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xufVxuc2VjdGlvbiB7XG5cdC5oZWFkZXIge1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygyNyk7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdHBhZGRpbmctYm90dG9tOnJlbS1jYWxjKDUpO1xuXHRcdGJvcmRlci1ib3R0b206c29saWQgMXB4ICRncmF5O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGEge1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRib3R0b206NXB4O1xuXHRcdFx0cmlnaHQ6MDtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0Zm9udC1mYW1pbHk6JGJvZHktZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXdlaWdodDpib2xkO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDEyKTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRjbGVhcjpib3RoO1xuXHRcdFx0fVxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiYS5leHRlcm5hbCB7XG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6dXJsKCRjZG4rJy9pbWcvaWNvbnMvbmV3LXdpbmRvdy5zdmcnKTtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tbGVmdDoxMHB4O1xuXHRcdHdpZHRoOi44ZW07XG5cdH1cbn1cbi5idXR0b24sIGJ1dHRvbiB7XG5cdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0Zm9udC1mYW1pbHk6JGJvZHktZm9udC1mYW1pbHk7XG5cdGZvbnQtd2VpZ2h0OjkwMDtcblx0Zm9udC1zaXplOnJlbS1jYWxjKDE0KTtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdGJvcmRlcjpzb2xpZCAycHggbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0dHJhbnNpdGlvbjphbGwgLjI1cyBlYXNlLW91dDtcblx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNTcpO1xuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHR9XG5cdCYuYWx0IHtcblx0XHRib3JkZXI6c29saWQgMnB4ICR3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRiYWNrZ3JvdW5kOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0fVxuXHR9XG5cdCYuZ2lhbnQge1xuXHRcdHBhZGRpbmc6cmVtLWNhbGMoNzMgMzApO1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0Zm9udC1zaXplOnJlbS1jYWxjKDUwKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0Zm9udC13ZWlnaHQ6NzAwO1xuXHRcdGJvcmRlcjpub25lO1xuXHRcdGJhY2tncm91bmQtY29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRjb2xvcjokd2hpdGU7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0XHRib3gtc2hhZG93OjE2cHggMTRweCAxN3B4IDAgcmdiYSgkYmxhY2ssIC4yMik7XG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNXB4KSB0cmFuc2xhdGVZKC01cHgpO1xuXHRcdH1cblx0fVxuXHQmLnNlY29uZGFyeSB7XG5cdFx0Ym9yZGVyOnNvbGlkIDFweCBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdGNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcblx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHR9XG5cdH1cblx0Ji5xdWljay1saW5rIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygzMik7XG5cdFx0dGV4dC10cmFuc2Zvcm06bm9uZTtcblx0XHRmb250LXdlaWdodDo0MDA7XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRuZWFyYmxhY2ssIC44MCk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtcblx0XHRjb2xvcjokd2hpdGU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cGFkZGluZzowO1xuXHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDgpO1xuXHRcdC5vdmVybGF5IHtcblx0XHRcdHRvcDowO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0cmlnaHQ6MDtcblx0XHRcdGJvdHRvbTowO1xuXHRcdFx0cGFkZGluZzpyZW0tY2FsYygyOSk7XG5cdFx0XHRiYWNrZ3JvdW5kOnJnYmEoJG5lYXJibGFjaywgLjgwKTtcblx0XHRcdG1pbi13aWR0aDogMTAwJTtcblx0XHRcdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYyg4KTtcblx0XHR9XG5cdFx0LnRpdGxlIHtcblx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0Zm9udC1mYW1pbHk6JGJvZHktZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDMwKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRwYWRkaW5nOjAgMCA4cHggMDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdEBpbmNsdWRlIHRyaWFuZ2xlKDEwLCAxMCwgJHdoaXRlLCAnbGVmdCcpO1xuXHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0bWFyZ2luOnJlbS1jYWxjKDgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZGVzY3JpcHRpb24ge1xuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICRncmF5O1xuXHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0cGFkZGluZy10b3A6OHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xuXHRcdFx0Zm9udC1zaXplOjIzcHg7XG5cdFx0fVxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzoxNnB4IDE0cHggMTdweCAwIHJnYmEoJGJsYWNrLCAuMjIpO1xuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTVweCkgdHJhbnNsYXRlWSgtNXB4KTtcblx0XHR9XG5cdH1cbn1cbi5zZWFyY2gtdGl0bGUge1xuXHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG5cdGZvbnQtc2l6ZTpyZW0tY2FsYygzNik7XG5cdGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDQ3KTtcblx0JjphZnRlciB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRjb250ZW50OicnO1xuXHRcdGJvcmRlci1ib3R0b206c29saWQgM3B4IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0bWFyZ2luLXRvcDpyZW0tY2FsYygyMCk7XG5cdFx0bWFyZ2luLWJvdHRvbTokZ2xvYmFsLW1hcmdpbjtcblx0XHR3aWR0aDpyZW0tY2FsYyg0MCk7XG5cdH1cbn1cbi5hcnRpY2xlLXRpdGxlIHtcblx0Y29sb3I6JGJsYWNrO1xuXHRmb250LXNpemU6cmVtLWNhbGMoNTUpO1xuXHRsaW5lLWhlaWdodDoxMDAlO1xuXHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHQmOmFmdGVyIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCAzcHggbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRtYXJnaW4tdG9wOnJlbS1jYWxjKDIwKTtcblx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdHdpZHRoOnJlbS1jYWxjKDY4KTtcblx0fVxufVxuLmNhcmQge1xuXHRib3gtc2hhZG93OjJweCAycHggOHB4IHJnYmEoJGJsYWNrLCAuMTIpO1xuXHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHQmLm5vbWFyZ2luIHtcblx0XHRtYXJnaW46MDtcblx0fVxuXHRkaXNwbGF5OmZsZXg7XG5cdGZsZXgtd3JhcDpub3dyYXA7XG5cdGNvbG9yOiRib2R5LWZvbnQtY29sb3I7XG5cdGJhY2tncm91bmQ6JHdoaXRlO1xuXHR0cmFuc2l0aW9uOmFsbCAuMjVzIGVhc2Utb3V0O1xuXHRib3JkZXItcmFkaXVzOiByZW0tY2FsYyg4KTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ly9tYXgtaGVpZ2h0OnJlbS1jYWxjKDM3NSk7XG5cdCYuaW52ZXJ0ZWQge1xuXHRcdGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO1xuXHR9XG5cdCY6aG92ZXIge1xuXHRcdGJveC1zaGFkb3c6MTZweCAxNHB4IDE3cHggMCByZ2JhKCRibGFjaywgLjIyKTtcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNXB4KSB0cmFuc2xhdGVZKC01cHgpO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0fVxuXHQmLmV4cGFuZCB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0fVxuXHQuaW1hZ2Uge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6MCAhaW1wb3J0YW50O1xuXHRcdC8vYmFja2dyb3VuZC1jb2xvcjokYmx1ZTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO1xuXHRcdG92ZXJmbG93OmhpZGRlbjtcblx0XHQvL3dpZHRoOjUwJTtcblx0XHRtaW4td2lkdGg6cmVtLWNhbGMoMzIwKTtcblx0XHRtYXgtd2lkdGg6cmVtLWNhbGMoOTAwKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0ZGlzcGxheTpmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuXHRcdFx0aGVpZ2h0OjIwMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MjAwcHg7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0bWluLXdpZHRoOjA7XG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcblx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoMjMsIDIzLCAkd2hpdGUsICdib3R0b20nKTtcblx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHRcdGxlZnQ6MjRweDtcblx0XHRcdH1cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcblx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoKTtcblx0XHRcdFx0dG9wOjI0cHg7XG5cdFx0XHRcdHJpZ2h0Oi0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5ibG9ja3F1b3RlIHtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHR9XG5cdFx0YmxvY2txdW90ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOjN2dztcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygzNik7XG5cdFx0XHR9XG5cdFx0XHRsaW5lLWhlaWdodDoxMDglO1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgNTAlKTtcblx0XHR9XG5cdH1cblx0LmNvbnRlbnQge1xuXHRcdHBhZGRpbmc6cmVtLWNhbGMoMzUgNDAgMjAgNDApO1xuXHRcdC50aXRsZSB7XG5cdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuXHRcdFx0bGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6NjAwO1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206c29saWQgM3B4IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdG1hcmdpbi10b3A6cmVtLWNhbGMoMjApO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdFx0XHR3aWR0aDpyZW0tY2FsYyg0MCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5kYXRlIHtcblx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHRjb2xvcjokZGFyaztcblx0XHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHRcdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdFx0fVxuXHRcdC5jYXRlZ29yeSB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0Y29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdFx0fVxuXHR9XG5cdCYuc2Vjb25kYXJ5IHtcblx0XHQuY2F0ZWdvcnkge1xuXHRcdFx0Y29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xuXHRcdH1cblx0XHQuYnV0dG9uIHtcblx0XHRcdGJhY2tncm91bmQ6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xuXHRcdFx0Ym9yZGVyOnNvbGlkIDJweCBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDokd2hpdGU7XG5cdFx0XHRcdGNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LnRpdGxlOjphZnRlciB7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcblx0XHR9XG5cdH1cblx0Ji52ZXJ0aWNhbCB7XG5cdFx0ZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuXHRcdCYuaW52ZXJ0ZWQge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7XG5cdFx0XHQuaW1hZ2U6OmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoMjMsIDIzLCAkd2hpdGUsICd0b3AnKTtcblx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdGxlZnQ6MjRweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmltYWdlIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoMjMsIDIzLCAkd2hpdGUsICdib3R0b20nKTtcblx0XHRcdFx0dG9wOmF1dG87XG5cdFx0XHRcdGJvdHRvbTowO1xuXHRcdFx0XHRsZWZ0OjI0cHg7XG5cdFx0XHR9XG5cdFx0XHRibG9ja3F1b3RlIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDpyZW0tY2FsYygyMDApO1xuXHRcdFx0XHRmb250LXNpemU6MjRweDtcblx0XHRcdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTo0dnc7XG5cdFx0XHRcdH1cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZToyLjV2dztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQuY29udGVudCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0fVxuXHQmLnZpZGVvIHtcblx0XHQuaW1hZ2Uge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOnJnYmEobWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpLCAuNykgdXJsKCRjZG4rJy9pbWcvcGxheS5wbmcnKSBuby1yZXBlYXQgY2VudGVyO1xuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdCYudHdpdHRlciB7XG5cdFx0YmFja2dyb3VuZDokYWx0Ymx1ZTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgkY2RuKycvaW1nL2ljb25zL3R3aXR0ZXItd2hpdGUuc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246dG9wIDI0cHggcmlnaHQgMjRweDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHBhZGRpbmc6cmVtLWNhbGMoMjAgNDAgMzAgNDApO1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRmb250LXNpemU6cmVtLWNhbGMoMTkpO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdC50aXRsZSB7XG5cdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTpyZW0tY2FsYyg0MCk7XG5cdFx0fVxuXHRcdGEge1xuXHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcblx0XHR9XG5cdFx0LmRhdGUge1xuXHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDEyKTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuXHRcdH1cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6bm9uZTtcblx0XHRcdHRyYW5zZm9ybTpub25lO1xuXHRcdH1cblx0fVxuXHQmLmJpbyB7XG5cdFx0LmltYWdlIHtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb24teTotNTBweDtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6Y2VudGVyO1xuXHRcdFx0XHRtaW4td2lkdGg6MzMlO1xuXHRcdFx0XHQvLyBtYXgtd2lkdGg6MTc0cHg7XG5cdFx0XHRcdHdpZHRoOjMzJTtcblx0XHRcdH1cblx0XHRcdGltZyB7XG5cdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6MDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji5mZWF0dXJlZCB7XG5cdFx0ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7XG5cdFx0LmNvbnRlbnQge1xuXHRcdFx0d2lkdGg6NTAlO1xuXHRcdH1cblx0XHQuaW1hZ2Uge1xuXHRcdFx0aGVpZ2h0OnJlbS1jYWxjKDY0Nik7XG5cdFx0XHR3aWR0aDo1MCU7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6J0ZlYXR1cmVkJztcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdFx0YmFja2dyb3VuZDp1cmwoJGNkbisnL2ltZy9mZWF0dXJlZC5wbmcnKSBuby1yZXBlYXQgbGVmdCAtMnB4LCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJGJsYWNrLCAuNjApLCByZ2JhKCRibGFjaywgLjYwKSk7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHdpZHRoOmF1dG87XG5cdFx0XHRcdHRvcDoxN3B4O1xuXHRcdFx0XHRyaWdodDoyMXB4O1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjBweDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDo4cHg7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0fVxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcblx0XHRcdFx0XHRAaW5jbHVkZSB0cmlhbmdsZSgxOCwgMTgsICR3aGl0ZSwgJ2xlZnQnKTtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6bm9uZTtcblx0XHRcdFx0XHR0b3A6MjRweDtcblx0XHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji5wcm9tbyB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHQuaW1hZ2Uge1xuXHRcdFx0bWluLXdpZHRoOjEwMCU7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OnJlbS1jYWxjKDEyNSk7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0ZGlzcGxheTpub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuY29udGVudCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cGFkZGluZzpyZW0tY2FsYygxMCA0MCk7XG5cdFx0XHRjb2xvcjokYmxhY2s7XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHQvLyAmOmFmdGVyIHtcblx0XHRcdFx0Ly8gXHRkaXNwbGF5Om5vbmU7XG5cdFx0XHRcdC8vIH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5keWsge1xuXHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuXHRjb2xvcjokd2hpdGU7XG5cdGJhY2tncm91bmQ6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0cGFkZGluZzpyZW0tY2FsYyg3MCA0Nyk7XG5cdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDgpO1xuXHQmLmV4cGFuZCB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0fVxuXHQudGl0bGUge1xuXHRcdGNvbnRlbnQ6J0RpZCB5b3Uga25vdz8nO1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygzNik7XG5cdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDo4MHB4O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCAzcHggJHdoaXRlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTpyZW0tY2FsYygyMCk7XG5cdFx0fVxuXHR9XG5cdC5idXR0b24ge1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyOiBzb2xpZCAycHggJHdoaXRlO1xuXHRcdH1cblx0fVxuXHQubWVzc2FnZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTpyZW0tY2FsYyg1OCk7XG5cdH1cbn1cbiNzZWFyY2gtb3ZlcmxheSB7XG5cdG9wYWNpdHk6MDtcblx0YmFja2dyb3VuZDpyZ2JhKCR3aGl0ZSwgLjk2KTtcblx0cG9zaXRpb246Zml4ZWQ7XG5cdHRvcDowO1xuXHRsZWZ0OjA7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHR6LWluZGV4OjIwMDAwMDtcblx0dHJhbnNpdGlvbjpvcGFjaXR5IDMwMG1zIGVhc2Utb3V0O1xuXHRib2R5LnNob3ctc2VhcmNoLW92ZXJsYXkgJiB7XG5cdFx0b3BhY2l0eToxO1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdH1cblx0Zm9ybSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHR3aWR0aDpyZW0tY2FsYygzODcpO1xuXHRcdG1hcmdpbjowIGF1dG87XG5cdFx0bWFyZ2luLXRvcDpyZW0tY2FsYygxMDApO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbi10b3A6cmVtLWNhbGMoMjQ1KTtcblx0XHR9XG5cdFx0bGFiZWwge1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDE4KTtcblx0XHRcdGxpbmUtaGVpZ2h0OjI0cHg7XG5cdFx0fVxuXHRcdC5jb250YWluZXIge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGRpc3BsYXk6ZmxleDtcblx0XHR9XG5cdFx0aW5wdXRbdHlwZT1cInRleHRcIl0ge1xuXHRcdFx0Ym94LXNoYWRvdzpub25lO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDI0KTtcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRib3JkZXItcmFkaXVzOjA7XG5cdFx0fVxuXHRcdGlucHV0W3R5cGU9XCJpbWFnZVwiXSB7XG5cdFx0XHRib3JkZXItcmFkaXVzOjA7XG5cdFx0XHR0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLW91dDtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRmaWx0ZXI6c2F0dXJhdGUoLjg1KTtcblx0XHRcdH1cblx0XHRcdC8vIGZsb2F0OnJpZ2h0O1xuXHRcdH1cblx0fVxuXHRhLmNsb3NlIHtcblx0XHRmbG9hdDpyaWdodDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMyk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcblx0XHR0ZXh0LWFsaWduOnJpZ2h0O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHBhZGRpbmctcmlnaHQ6MjVweDtcblx0XHRtYXJnaW4tdG9wOi01cHg7XG5cdFx0JjphZnRlciB7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdHJpZ2h0OjA7XG5cdFx0XHRjb250ZW50OifDlyc7XG5cdFx0XHRmb250LXNpemU6NDhweDtcblx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0fVxuXHR9XG59XG4ucGFnZXMge1xuXHRiYWNrZ3JvdW5kOiNGM0YzRjM7XG5cdHBhZGRpbmc6cmVtLWNhbGMoMzIgMCk7XG5cdHdpZHRoOjEwMCU7XG5cdC5wYWdlciB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOnJlbS1jYWxjKDAgMTApO1xuXHRcdFx0Ji5iYWNrIGEsICYubmV4dCBhIHtcblx0XHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDE0KTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDIwKTtcblx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0XHQmLmFjdGl2ZSwgJjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiRib2R5LWZvbnQtY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4vKmFydGljbGUge1xuXHRib2R5LnBhZ2UtYXJ0aWNsZSAmLCBib2R5LnBhZ2UtbmV3cyAmIHtcblx0XHRtYXJnaW4tdG9wOi0xMjBweDtcblx0fVxufSovXG4uYnlsaW5lIHtcblx0Y29sb3I6JGJvZHktZm9udC1jb2xvcjtcblx0Zm9udC1zaXplOnJlbS1jYWxjKDEyKTtcblx0bGluZS1oZWlnaHQ6cmVtLWNhbGMoMTIpO1xuXHRwYWRkaW5nOnJlbS1jYWxjKDEyIDAgMCAwKTtcblx0Zm9udC1mYW1pbHk6JGJvZHktZm9udC1mYW1pbHk7XG5cdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0Y29sb3I6JGRhcms7XG59XG4uYXV0aG9yLXBsdWcge1xuXHRmbG9hdDpyaWdodDtcblx0ZGlzcGxheTpmbGV4O1xuXHQuaW1hZ2Uge1xuXHRcdHdpZHRoOjYwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OjEycHg7XG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0aW1nIHtcblx0XHRcdGhlaWdodDo2MHB4O1xuXHRcdH1cblx0fVxuXHQuY29udGVudCB7XG5cdFx0Lm5hbWUge1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDI0KTtcblx0XHR9XG5cdH1cbn1cbi5yZWxhdGVkIHtcblx0bWluLWhlaWdodDpyZW0tY2FsYygzNzUpO1xuXHRoZWlnaHQ6MTAwJTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6cmVtLWNhbGMoNDAgMzUpO1xuXHRmb250LXNpemU6cmVtLWNhbGMoMzEpO1xuXHRsaW5lLWhlaWdodDpyZW0tY2FsYygzOCk7XG5cdGNvbG9yOiR3aGl0ZTtcblx0ZGlzcGxheTpmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG5cdGp1c3RpZnktY29udGVudDpmbGV4LWVuZDtcblx0dHJhbnNpdGlvbjphbGwgLjI1cyBlYXNlLW91dDtcblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6JHdoaXRlO1xuXHRcdGJveC1zaGFkb3c6MTZweCAxNHB4IDE3cHggMCByZ2JhKCRibGFjaywgLjIyKTtcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNXB4KSB0cmFuc2xhdGVZKC01cHgpO1xuXHR9O1xuXHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xufVxuLmRyb3Bkb3duLXBhbmUge1xuXHR6LWluZGV4OjIwMDtcblx0Ym9yZGVyOm5vbmU7XG5cdGJveC1zaGFkb3c6MnB4IDJweCA4cHggcmdiYSgkYmxhY2ssIC4xMik7XG5cdCYjb3V0YWdlcy1kcm9wZG93bi5pcy1vcGVuIHsgLy8gQWNjb3VudHMgZm9yIGEgbWlzY2FsY3VsYXRpb24gd2hlbiB1c2luZyBtYXJnaW4tbGVmdCBhdXRvIGRpc3BsYXkgZmxleFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tdG9wOjMzcHg7XG5cdFx0XHRtYXJnaW4tbGVmdDoxNDhweDtcblx0XHR9XG5cdH1cblx0dWwge1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRtYXJnaW46MDtcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDggMjApO1xuXHRcdFx0Y29sb3I6JGJsYWNrO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6c29saWQgNHB4IHRyYW5zcGFyZW50O1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6cmdiYShtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpLCAuMDQpO1xuXHRcdFx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLmFwcC1saW5rcyB7XG5cdHRleHQtYWxpZ246cmlnaHQ7XG5cdHBhZGRpbmc6MTBweCAwO1xufVxuI2FwcGxlLWJhZGdlLCAjZ29vZ2xlLWJhZGdlIHtcblx0aW1nIHtcblx0XHRoZWlnaHQ6NDBweCAhaW1wb3J0YW50O1xuXHR9XG59XG4uZWRpdGFibGUtY29udGVudCB7XG5cdC5hY2NvcmRpb24ge1xuXHRcdC5hY2NvcmRpb24tdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdH1cblx0XHQuYWNjb3JkaW9uLWNvbnRlbnQge1xuXHRcdFx0cCB7XG5cdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiQGNoYXJzZXQgJ3V0Zi04JztcblxuQGltcG9ydCAnc2V0dGluZ3MnO1xuQGltcG9ydCAnZm91bmRhdGlvbic7XG5AaW1wb3J0ICdtb3Rpb24tdWknO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3Jtcztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LXZpZGVvO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1lbGVtZW50O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1tZXRlci1lbGVtZW50O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG5cbkBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbkBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuXG4kY2RuOiAnLy9jZG4uZW50ZXJneS1uZXdvcmxlYW5zLmNvbSc7XG5cbkBtaXhpbiB0cmlhbmdsZSAoJHdpZHRoOiAxOCwgJGhlaWdodDogMTgsICRjb2xvcjogJHdoaXRlLCAkY29ybmVyOiAncmlnaHQnKSB7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRAaWYgdW5pdGxlc3MoJHdpZHRoKSB7XG5cdFx0JHdpZHRoOiAkd2lkdGggKyAwcHg7XG5cdH1cblx0QGlmIHVuaXRsZXNzKCRoZWlnaHQpIHtcblx0XHQkaGVpZ2h0OiAkaGVpZ2h0ICsgMHB4O1xuXHR9XG5cdFxuXHRAaWYgJGNvcm5lciA9PSB0b3AtcmlnaHQge1xuXHRcdGJvcmRlci1yaWdodDokd2lkdGggc29saWQgJGNvbG9yO1xuXHRcdGJvcmRlci1ib3R0b206JGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblx0fSBAZWxzZSBpZiAkY29ybmVyID09IGJvdHRvbS1yaWdodCB7XG5cdFx0Ym9yZGVyLWJvdHRvbTokaGVpZ2h0IHNvbGlkICRjb2xvcjtcblx0XHRib3JkZXItbGVmdDokd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cdH0gQGVsc2UgaWYgJGNvcm5lciA9PSBib3R0b20tbGVmdCB7XG5cdFx0Ym9yZGVyLWJvdHRvbTokaGVpZ2h0IHNvbGlkICRjb2xvcjtcblx0XHRib3JkZXItcmlnaHQ6JHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9IEBlbHNlIGlmICRjb3JuZXIgPT0gdG9wLWxlZnQge1xuXHRcdGJvcmRlci1sZWZ0OiR3aWR0aCBzb2xpZCAkY29sb3I7XG5cdFx0Ym9yZGVyLWJvdHRvbTokaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9IEBlbHNlIGlmICRjb3JuZXIgPT0gcmlnaHQge1xuXHRcdGJvcmRlci1yaWdodDokd2lkdGggc29saWQgJGNvbG9yO1xuXHRcdGJvcmRlci10b3A6JGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItYm90dG9tOiRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG5cdH0gQGVsc2UgaWYgJGNvcm5lciA9PSBsZWZ0IHtcblx0XHRib3JkZXItbGVmdDokd2lkdGggc29saWQgJGNvbG9yO1xuXHRcdGJvcmRlci10b3A6JGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItYm90dG9tOiRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG5cdH0gQGVsc2UgaWYgJGNvcm5lciA9PSBib3R0b20ge1xuXHRcdGJvcmRlci1sZWZ0OiR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItcmlnaHQ6JGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItYm90dG9tOiRoZWlnaHQgc29saWQgJGNvbG9yO1xuXHRcdGJvcmRlci10b3A6JGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblx0fSBAZWxzZSBpZiAkY29ybmVyID09IHRvcCB7XG5cdFx0Ym9yZGVyLWxlZnQ6JHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci1yaWdodDokaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci10b3A6JGhlaWdodCBzb2xpZCAkY29sb3I7XG5cdFx0Ym9yZGVyLWJvdHRvbTokaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9IEBlbHNlIHtcblx0XHRib3JkZXItcmlnaHQ6JHdpZHRoIHNvbGlkICRjb2xvcjtcblx0XHRib3JkZXItYm90dG9tOiRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuQGltcG9ydCAnc2xpY2snO1xuQGltcG9ydCAndHlwZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzJztcbkBpbXBvcnQgJ3N0cnVjdHVyZSc7XG5AaW1wb3J0ICdtZWRpYXF1ZXJpZXMnO1xuQGltcG9ydCAncHJpbnQnO1xuQGltcG9ydCAnZW1lcmdlbmN5Y2FsbG91dCc7XG5AaW1wb3J0ICdiYW5uZXInO1xuQGltcG9ydCAnYnJhbmR1cGRhdGUnOyIsIi5vZmYtY2FudmFzIHtcblx0aGVpZ2h0OjEwMCU7XG5cdC5jbG9zZS1idXR0b24ge1xuXHRcdGJvcmRlcjpub25lO1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6bm9uZTtcblx0XHR9XG5cdH1cblx0dWwubWVudSB7XG5cdFx0bWFyZ2luLXRvcDozMHB4O1xuXHRcdGxpIHtcblx0XHRcdC5sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoMTAgMTUpO1xuXHRcdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0XHRcdGJhY2tncm91bmQ6JGJlaWdlO1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDEwIDE1KTtcblx0XHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiRiZWlnZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHR1bC5zdWJtZW51IHtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0cGFkZGluZzowO1xuXHRcdG1hcmdpbjowO1xuXHRcdGxpIHtcblx0XHRcdGEge1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDUgMTUgNSAzNSk7XG5cdFx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDokYmVpZ2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbmJvZHkge1xuXHQmLnNob3ctc2VhcmNoLW92ZXJsYXkge1xuXHRcdG92ZXJmbG93OmhpZGRlbjtcblx0XHRhbmltYXRpb246IDMwMG1zIGRlbGF5LW92ZXJmbG93O1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGRlbGF5LW92ZXJmbG93IHtcblx0ZnJvbSB7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdH1cbn1cbm5hdi51dGlsaXR5IHtcblx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRtYXJnaW4tdG9wOjA7XG5cdGJhY2tncm91bmQ6JGJsYWNrO1xuXHRoZWlnaHQ6NDVweDtcblx0cG9zaXRpb246Zml4ZWQ7XG5cdHdpZHRoOjEwMCU7XG5cdHotaW5kZXg6MTAwO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYyg5NCk7XG5cdH1cblx0LmNvbHVtbiB7XG5cdFx0ZGlzcGxheTpmbGV4O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cdH1cblx0YSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nOnJlbS1jYWxjKDUgMCk7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHRmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRtYXJnaW46cmVtLWNhbGMoOCAxMCk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246bGVmdCBjZW50ZXI7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMik7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0d2lkdGg6IDQ0JTtcblx0XHRcdGZsZXgtYmFzaXM6IDQ0JTtcblx0XHR9XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xuXHRcdH1cblx0XHQmLm9wY28ge1xuXHRcdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG5cdFx0XHQvLyBwYWRkaW5nOnJlbS1jYWxjKDEzIDEwKTtcblx0XHRcdC8vIG1hcmdpbjowO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRcdH1cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlKTtcblx0XHRcdFx0ZmxleC1iYXNpczogY2FsYygxMDAlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5teWFjY291bnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OnJlbS1jYWxjKDIwKTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCRjZG4rJy9pbWcvaWNvbnMvbXlhY2NvdW50LnN2ZycpO1xuXHRcdH1cblx0XHQmLnV0aWxpdGllcyB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6cmVtLWNhbGMoMjQpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJGNkbisnL2ltZy9pY29ucy91dGlsaXRpZXMuc3ZnJyk7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5vdXRhZ2VzIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OmF1dG87XG5cdFx0XHR9XG5cdFx0XHR0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLW91dDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb24teDoxMHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDoxMHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0cGFkZGluZy1sZWZ0OnJlbS1jYWxjKDM2KTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCRjZG4rJy9pbWcvaWNvbnMvb3V0YWdlcy5zdmcnKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDU3KTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjojQUQwMDQ3O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYjc2VhcmNoLWljb24ge1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0bGluZS1oZWlnaHQ6MzBweDtcblx0XHRcdGltZyB7XG5cdFx0XHRcdGhlaWdodDoyNHB4O1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRcdFx0aGVpZ2h0OnJlbS1jYWxjKDE4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQucGlwZSB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcblx0fVxuXHQudXRpbGl0eS1uYXYtbGluayB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgb25seSkge1xuXHRcdFx0ZGlzcGxheTpub25lO1xuXHRcdH1cblx0fVxufVxuaGVhZGVyIHtcblx0bWFyZ2luLXRvcDo0NXB4O1xuXHRwYWRkaW5nOnJlbS1jYWxjKDIwIDAgMjAgMCk7XG5cdHBvc2l0aW9uOmZpeGVkO1xuXHR3aWR0aDoxMDAlO1xuXHRib3gtc2hhZG93OjAgM3B4IDVweCAwIHJnYmEoJGJsYWNrLCAuMTApO1xuXHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0ei1pbmRleDoxMDA7XG5cdHRyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1vdXQ7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYyg5NCk7XG5cdH1cblx0Ym9keS5zY3JvbGxlZCAmIHtcblx0XHRwYWRkaW5nOiByZW0tY2FsYygwIDAgMTUgMCk7XG5cdH1cblx0LmxvZ28ge1xuXHRcdHRyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1vdXQ7XG5cdFx0bWF4LWhlaWdodDoxMDAlO1xuXHRcdHdpZHRoOiByZW0tY2FsYygxOTguMzMpO1xuXHRcdG1heC13aWR0aDogdW5zZXQ7XG5cdFx0Ym9keS5zY3JvbGxlZCAmIHtcblx0XHRcdG1hcmdpbi10b3A6cmVtLWNhbGMoMjApO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDE0Nik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5sb2dvX2N1cnRhaW4ge1xuXHRcdHdpZHRoOiByZW0tY2FsYygxOTguMzMpO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogYWxsIC4yNXMgY3ViaWMtYmV6aWVyKC4xNjUsLjg0LC40NCwxKTtcblx0XHQvLyBib2R5LnNjcm9sbGVkICYge1xuXHRcdC8vIFx0d2lkdGg6IHJlbS1jYWxjKDQzKTtcblx0XHQvLyBcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Ly8gXHRcdHdpZHRoOiByZW0tY2FsYygzNCk7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gfVxuXHR9XG5cdG5hdiB7XG5cdFx0dGV4dC1hbGlnbjpyaWdodDtcblx0XHRtYXJnaW4tdG9wOnJlbS1jYWxjKDIzKTtcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjI1cyBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpO1xuXHRcdHVsLnRvcC1sZXZlbCB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdFx0PmxpIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdD5hIHtcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbjpyZW0tY2FsYygwIDE1KTtcblx0XHRcdFx0XHRjb2xvcjokYm9keS1mb250LWNvbG9yO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCA0cHggdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoMTAwMHB4KSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MTRweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoMTEyMHB4KSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MTZweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoMTIyMHB4KSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MThweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JiNzZWFyY2gtaWNvbiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6cmVtLWNhbGMoMTUpO1xuXHRcdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCYjc3Rvcm0tY2VudGVyIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdFx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoOCAyNSA4IDI1KTtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NHB4O1xuXHRcdFx0XHRcdFx0dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDMwMG1zIGVhc2Utb3V0O1xuXHRcdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tOm5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQgYSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLmlzLWFjdGl2ZSA+YSwgPmE6aG92ZXIsICYuc2VsZWN0ZWQgPmEge1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206c29saWQgNHB4IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Lm1lbnVJY29uIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tbGVmdDpyZW0tY2FsYygyNSk7XG5cdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAzMXB4O1xuXHRcdH1cblx0fVxuXHQuc3VibWVudSB7XG5cdFx0bWFyZ2luLXRvcDpyZW0tY2FsYygxMyk7XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0Ym94LXNoYWRvdzoycHggMnB4IDhweCAwIHJnYmEoJGJsYWNrLCAuMTIpO1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxNik7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0cGFkZGluZzpyZW0tY2FsYygxMyAwKTtcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoOCAyMCk7XG5cdFx0XHRcdGNvbG9yOiRibGFjaztcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6c29saWQgNHB4IHRyYW5zcGFyZW50O1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOnJnYmEobWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSwgLjA0KTtcblx0XHRcdFx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5oZWFkZXItc3BhY2Uge1xuXHRoZWlnaHQ6cmVtLWNhbGMoMTcyLjM5KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0aGVpZ2h0OnJlbS1jYWxjKDE3Mi4zOSk7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGhlaWdodDpyZW0tY2FsYygxNDIpO1xuXHR9XG5cdHRyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1vdXQ7XG5cdGJvZHkuc2Nyb2xsZWQgJiB7XG5cdFx0Ly8gaGVpZ2h0OnJlbS1jYWxjKDEyOSk7XG5cdH1cbn1cbm1haW4ge1xuXHQvLyB0cmFuc2l0aW9uOm1hcmdpbi10b3AgLjI1cyBlYXNlLW91dDtcblx0Ym9keS5zY3JvbGxlZCAmIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0Ly8gbWFyZ2luLXRvcDogLTQ0cHg7XG5cdFx0XHQvLyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNDRweCk7IFRyYW5zZm9ybSByZXNldHMgdGhlIGdyYXBoaWNhbCBjYW52YXMgYW5kIGZvcmNlcyBmaXhlZCBwb3NpdGlvbiBlbGVtZW50cyB0byBiZSBhYnNvbHV0ZSAodGhlIHN0aWNreSBzaWRlYmFyIHdpbGwgYnJlYWsgd2l0aCB0aGlzKVxuXHRcdH1cblx0fVxufVxuLm1lbnUgPiBsaSA+IGEge1xuXHRwYWRkaW5nOnJlbS1jYWxjKDYgMCk7XG59XG5zZWN0aW9uIHtcblx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0Ji5saWdodGdyYXkge1xuXHRcdGJhY2tncm91bmQ6I2Y5ZjlmOTtcblx0fVxuXHQmLmdyYXkge1xuXHRcdGJhY2tncm91bmQ6I0YyRjJGMjtcblx0fVxufVxuc2VjdGlvbiNicmVha2luZyB7XG5cdGJhY2tncm91bmQ6ICRkYXJrLXJlZDtcblx0ZGlzcGxheTpibG9jaztcblx0d2lkdGg6MTAwJTtcblx0cGFkZGluZzpyZW0tY2FsYygxMCk7XG5cdGZvbnQtc2l6ZTpyZW0tY2FsYygxNyk7XG5cdGNvbG9yOiR3aGl0ZTtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGEge1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0fVxuXHRzdHJvbmcge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtd2VpZ2h0OjkwMDtcblx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgMjApO1xuXHR9XG59XG5cbnNlY3Rpb24jbWFzdGhlYWQge1xuXHRwYWRkaW5nLXRvcDpyZW0tY2FsYyg0Mik7XG5cdC5zbGlkZSB7XG5cdFx0ZGlzcGxheTpmbGV4O1xuXHRcdGZsZXgtd3JhcDpub3dyYXA7XG5cdFx0Y29sb3I6JGJvZHktZm9udC1jb2xvcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdG1pbi1oZWlnaHQ6MzAwcHg7XG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0ZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHQmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHR9XG5cdFx0LmltYWdlIHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0cGFkZGluZzowICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXgtaGVpZ2h0OnJlbS1jYWxjKDM2NSk7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0XHR3aWR0aDpmaXQtY29udGVudDtcblx0XHRcdC8vIG1pbi13aWR0aDpyZW0tY2FsYygzODApO1xuXHRcdFx0Ly8gbWF4LXdpZHRoOnJlbS1jYWxjKDU0OCk7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdGltZyB7XG5cdFx0XHRcdG1pbi13aWR0aDoxMDAlO1xuXHRcdFx0XHRtaW4taGVpZ2h0OjEwMCU7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdFx0bWluLWhlaWdodDphdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRibG9ja3F1b3RlIHtcblx0XHRcdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDoxMjAlO1xuXHRcdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgNTAlKTtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtKSB7XG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOjUwJTtcblx0XHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdFx0XHRmb250LXNpemU6MzZweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LmltYWdlLWNhcHRpb24ge1xuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7XG5cdFx0XHRcdGJvdHRvbTphdXRvO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuY29udGVudCB7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDM1IDQwIDIwIDQwKTtcblx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDpyZW0tY2FsYygyOCk7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOnNvbGlkIDNweCBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6cmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdFx0XHRcdFx0d2lkdGg6cmVtLWNhbGMoNDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQuZGF0ZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHRcdGNvbG9yOiRkYXJrO1xuXHRcdFx0XHRmb250LXdlaWdodDo3MDA7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdFx0XHR9XG5cdFx0XHQuY2F0ZWdvcnkge1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OjkwMDtcblx0XHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDEyKTtcblx0XHRcdFx0Y29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdH1cblx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdCNzbGlkZXIuc2xpY2staW5pdGlhbGl6ZWQgLnNsaWRlIHtcblx0XHRkaXNwbGF5OmZsZXg7XG5cdH1cblx0LnNsaWRlci1wYWdpbmF0aW9uIHtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRtYXJnaW46cmVtLWNhbGMoMjggMCAwIDApO1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0YSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6bm9uZTtcblx0XHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDQwKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MTBweDtcblx0XHRcdFx0Y29sb3I6JGxpZ2h0LWdyYXk7XG5cdFx0XHRcdHRyYW5zaXRpb246Y29sb3IgMzAwbXMgZWFzZS1vdXQ7XG5cdFx0XHRcdCYuY3VycmVudCwgJjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5zZWN0aW9uI3NvY2lhbC1mZWVkIHtcblx0dWwuc29jaWFsLWxpbmtzIHtcblx0XHRtYXJnaW46cmVtLWNhbGMoLTUgMCAwIDApO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRmbG9hdDpyaWdodDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHR0ZXh0LWFsaWduOnJpZ2h0O1xuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRcdGltZyB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206cmVtLWNhbGMoNSk7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDpyZW0tY2FsYyg1KTtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgMTIpO1xuXHRcdFx0XHRwb3NpdGlvbjpzdGF0aWM7XG5cdFx0XHRcdCYuZmFjZWJvb2sge1xuXHRcdFx0XHRcdGNvbG9yOiRmYWNlYm9vaztcblx0XHRcdFx0fVxuXHRcdFx0XHQmLnR3aXR0ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiR0d2l0dGVyO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCYubGlua2VkaW4ge1xuXHRcdFx0XHRcdGNvbG9yOiRsaW5rZWRpbjtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLmluc3RhZ3JhbSB7XG5cdFx0XHRcdFx0Y29sb3I6JGluc3RhZ3JhbTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLnlvdXR1YmUge1xuXHRcdFx0XHRcdGNvbG9yOiR5b3V0dWJlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGZpbHRlcjpicmlnaHRuZXNzKDApO1xuXHRcdFx0XHRcdGNvbG9yOiRibGFjaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0JjpmaXJzdC1jaGlsZCBhIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5zZWN0aW9uI2ZlZWRzIHtcblx0cGFkZGluZzpyZW0tY2FsYyg1MCAwIDY4IDApO1xuXHRtYXJnaW4tYm90dG9tOjA7XG59XG5zZWN0aW9uI3Blb3BsZSB7XG5cdHBhZGRpbmc6cmVtLWNhbGMoNTAgMCA0MCAwKTtcblx0bWFyZ2luLWJvdHRvbTowO1xufVxuc2VjdGlvbiN2aWRlbyB7XG5cdHBhZGRpbmc6cmVtLWNhbGMoNjAgMCk7XG59XG5cbi5jaXJjdXQge1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogcmVtLWNhbGMoMzAwKTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG5cbmZvb3RlciB7XG5cdGJhY2tncm91bmQ6JGJsYWNrO1xuXHRjb2xvcjokd2hpdGU7XG5cdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdGEge1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0fVxuXHR9XG5cdC5oZWFkZXIge1xuXHRcdGZvbnQtd2VpZ2h0OjYwMDtcblx0XHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuXHR9XG5cdG5hdiB7XG5cdFx0cGFkZGluZzpyZW0tY2FsYyg0MCAwIDAgMCk7XG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOnJlbS1jYWxjKDAgMCAkZ2xvYmFsLW1hcmdpbiAwKTtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDpyZW0tY2FsYyg1KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDpib2xkO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG5cdFx0XHRcdFx0cGFkZGluZzpyZW0tY2FsYygyIDApO1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0dWwudGVydGlhcnkge1xuXHRcdFx0bWFyZ2luOi0oY2FsYygkZ2xvYmFsLW1hcmdpbiAvIDEuNSkpIDAgMCAkZ2xvYmFsLW1hcmdpbjtcblx0XHRcdGEge1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc2VhcmNoLWJhciB7XG5cdFx0cGFkZGluZzpyZW0tY2FsYygzMCAwKTtcblx0XHRiYWNrZ3JvdW5kOiRibGFjaztcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRmb3JtIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XG5cdFx0XHRsYWJlbCB7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHR6LWluZGV4OjI7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC0yMnB4O1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRhaW5lciB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cdFx0XHRsYWJlbC5zaXRlTGFiZWwge1xuXHRcdFx0XHRwb3NpdGlvbjpzdGF0aWM7XG5cdFx0XHRcdG1hcmdpbi10b3A6MDtcblx0XHRcdH1cblx0XHRcdGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuXHRcdFx0XHR3aWR0aDpyZW0tY2FsYygyNTApO1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XG5cdFx0XHRcdFx0d2lkdGg6cmVtLWNhbGMoMzY4KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRib3JkZXI6bm9uZTtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcblx0XHRcdFx0aGVpZ2h0OnJlbS1jYWxjKDQ1KTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czowO1xuXHRcdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDU3IDAgMCA1Nyk7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjUpO1xuXHRcdFx0fVxuXHRcdFx0aW5wdXRbdHlwZT1cImltYWdlXCJdIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2Utb3V0O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYygwIDU3IDU3IDApO1xuXHRcdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGZpbHRlcjpzYXR1cmF0ZSguODUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHVsLnNvY2lhbC1saW5rcyB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW46cmVtLWNhbGMoMzAgMCAkZ2xvYmFsLW1hcmdpbiAwKTtcblx0XHRwYWRkaW5nOjA7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdGJvcmRlci1ib3R0b206c29saWQgMXB4ICR3aGl0ZTtcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdGltZyB7XG5cdFx0XHRcdGhlaWdodDozMXB4O1xuXHRcdFx0XHRtYXJnaW46cmVtLWNhbGMoMCAxMCAxNCAxMCk7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZmlsdGVyOmJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRmaWx0ZXI6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHR1bC5saW5rcyB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdHRleHQtYWxpZ246cmlnaHQ7XG5cdFx0bGkge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0Y29udGVudDonfCc7XG5cdFx0XHRcdFx0bWFyZ2luOnJlbS1jYWxjKDAgMTApO1xuXHRcdFx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmOmxhc3QtY2hpbGQgYTo6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XG5cdFx0XHR9XG5cdFx0XHQmOmZpcnN0LWNoaWxkIGEge1xuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OjIwcHg7XG5cdFx0XHRcdFx0Ly8gZmlsdGVyOmJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLnNwYWNlciB7XG5cdGNsZWFyOmJvdGg7XG5cdGhlaWdodDoyMHB4O1xufVxuLnJlYWRtb3JlIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGZvbnQtc2l6ZTpyZW0tY2FsYygyNCk7XG5cdG1hcmdpbi10b3A6cmVtLWNhbGMoNTIpO1xufVxuLnJlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6JHJlZDtcblx0Y29sb3I6JHdoaXRlO1xufVxuLmJlaWdlIHtcblx0YmFja2dyb3VuZC1jb2xvcjokYmVpZ2U7XG5cdGNvbG9yOiR3aGl0ZTtcbn1cbi5ibHVlIHtcblx0YmFja2dyb3VuZC1jb2xvcjokYmx1ZTtcblx0Y29sb3I6JHdoaXRlO1xufVxuLm9yYW5nZSB7XG5cdGJhY2tncm91bmQtY29sb3I6JG9yYW5nZTtcblx0Y29sb3I6JHdoaXRlO1xufVxuLnllbGxvdyB7XG5cdGJhY2tncm91bmQtY29sb3I6JHllbGxvdztcblx0Y29sb3I6JHdoaXRlO1xufVxuLmdyZWVuIHtcblx0YmFja2dyb3VuZC1jb2xvcjokZ3JlZW47XG5cdGNvbG9yOiR3aGl0ZTtcbn1cblxuLmNvbXBhbnlOYXYge1xuXHRtYXJnaW46MDtcblx0YmFja2dyb3VuZDojZWNlY2VjO1xuXHRib3JkZXItdG9wOnNvbGlkIDFweCAkZ3JheTtcblx0Ym9yZGVyLWJvdHRvbTpzb2xpZCAxcHggJGdyYXk7XG5cdGJvZHkuc3Rvcm0tY2VudGVyICYge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tdG9wOi0kZ2xvYmFsLW1hcmdpbjtcblx0XHRcdG1hcmdpbi1ib3R0b206cmVtLWNhbGMoNTApO1xuXHRcdH1cblx0fVxuXHRzZWxlY3Qge1xuXHRcdGJvcmRlcjpub25lO1xuXHRcdGJvcmRlci1sZWZ0OnNvbGlkIDFweCAkZ3JheTtcblx0XHRib3JkZXItcmlnaHQ6c29saWQgMXB4ICRncmF5O1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdC50YWJzIHtcblx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDpjZW50ZXI7XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcblx0XHRsaSB7XG5cdFx0XHRib3JkZXItcmlnaHQ6MXB4IHNvbGlkICRncmF5O1xuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGJvcmRlci1sZWZ0OjFweCBzb2xpZCAkZ3JheTtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuXHRcdFx0XHRjb2xvcjokYm9keS1mb250LWNvbG9yO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRsaS5hcmthbnNhcyAmIHtcblx0XHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTI1cHg7XG5cdFx0XHRcdFx0XHR9XHRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRtYXJnaW46MCBhdXRvO1xuXHRcdFx0XHR0ZXh0LWluZGVudDotOTk5OXB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOnVybCgkY2RuKycvaW1nL2ljb25zL2NvbXBhbnlOYXYucG5nJykgbm8tcmVwZWF0O1xuXHRcdFx0fVxuXHRcdFx0Ji5pcy1hY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0XHRcdH1cblx0XHRcdCYuYXJrYW5zYXMge1xuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDtcblx0XHRcdFx0XHR3aWR0aDoxOXB4O1xuXHRcdFx0XHRcdGhlaWdodDoyNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGE6aG92ZXIgc3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmLmxvdWlzaWFuYSB7XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246LTE5cHggMDtcblx0XHRcdFx0XHR3aWR0aDoyNHB4O1xuXHRcdFx0XHRcdGhlaWdodDoyNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGE6aG92ZXIgc3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjotMTlweCAtMjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5taXNzaXNzaXBwaSB7XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246LTQzcHggMDtcblx0XHRcdFx0XHR3aWR0aDoxM3B4O1xuXHRcdFx0XHRcdGhlaWdodDoyNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGE6aG92ZXIgc3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjotNDNweCAtMjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5uZXdvcmxlYW5zIHtcblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjotMTA1cHggMDtcblx0XHRcdFx0XHR3aWR0aDoyMXB4O1xuXHRcdFx0XHRcdGhlaWdodDoyNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGE6aG92ZXIgc3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjotMTA1cHggLTI1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYudGV4YXMge1xuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOi01NnB4IDA7XG5cdFx0XHRcdFx0d2lkdGg6MjdweDtcblx0XHRcdFx0XHRoZWlnaHQ6MjVweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRhOmhvdmVyIHNwYW4ge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246LTU2cHggLTI1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYubnVjbGVhciB7XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246LTgzcHggMDtcblx0XHRcdFx0XHR3aWR0aDoyMnB4O1xuXHRcdFx0XHRcdGhlaWdodDoyNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGE6aG92ZXIgc3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjotODNweCAtMjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5hbGwge1xuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjZweCAwO1xuXHRcdFx0XHRcdHdpZHRoOjIwcHg7XG5cdFx0XHRcdFx0aGVpZ2h0OjI1cHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0YTpob3ZlciBzcGFuIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjZweCAtMjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4uc2VjdGlvbi1oZWFkZXIge1xuXHQvL3BhZGRpbmc6cmVtLWNhbGMoNzIgMCk7XG5cdGJhY2tncm91bmQ6dXJsKCcvaW1nL2hlYWRlci11cGRhdGUuanBnJyk7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0bWluLWhlaWdodDpyZW0tY2FsYygyMjYpO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdGJvZHkuc3Rvcm0tY2VudGVyICYge1xuXHRcdGhlaWdodDpyZW0tY2FsYygxNDIpO1xuXHRcdG1pbi1oZWlnaHQ6YXV0bztcblx0XHRiYWNrZ3JvdW5kLXNpemU6MTYwcHggMTYwcHgsIGNvdmVyO1xuXHR9XG5cdGgxLCAuaDEge1xuXHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0Zm9udC1zaXplOnJlbS1jYWxjKDU1KTtcblx0XHRjb2xvcjokd2hpdGU7XG5cdFx0cGFkZGluZy10b3A6NzJweDtcblx0XHRwYWRkaW5nLWJvdHRvbTo3MnB4O1xuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDg4KTtcblx0fVxuXHQmLmhlYWRlci1zbWFsbCB7XG5cdFx0bWluLWhlaWdodDogcmVtLWNhbGMoMTI4KTtcblx0XHRoMSwgLmgxIHtcblx0XHRcdHBhZGRpbmctdG9wOjA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cbn1cbnNlY3Rpb24ubWFpbi1jb250ZW50IHtcblx0cGFkZGluZzpyZW0tY2FsYygzMCAwIDY1IDApO1xufVxuc2VjdGlvbi5tYWluLWNvbnRlbnQgLmVkaXRhYmxlLWNvbnRlbnQgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5lZGl0YWJsZS1jb250ZW50IGEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmxhcmdlLWZyYW1lIHtcblx0YmFja2dyb3VuZDokd2hpdGU7XG5cdHBhZGRpbmc6cmVtLWNhbGMoMjApO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0Ym94LXNoYWRvdzoycHggMnB4IDhweCAwIHJnYmEoJGJsYWNrLCAuMTIpO1xuXHRcdHBhZGRpbmc6cmVtLWNhbGMoNzApO1xuXHR9XG59XG4uZmx1aWQtZnJhbWUge1xuXHQmLmxhcmdlLTEwLCAmLmxhcmdlLTEyLCAmLmFzLWxhcmdlLTEwLCAmLmFzLWxhcmdlLTEyIHtcblx0XHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0XHRwYWRkaW5nOnJlbS1jYWxjKDIwKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRib3gtc2hhZG93OjJweCAycHggOHB4IDAgcmdiYSgkYmxhY2ssIC4xMik7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDcwKTtcblx0XHR9XG5cdH1cblx0Ji5sYXJnZS03LCAmLmxhcmdlLTgsICYuYXMtbGFyZ2UtNywgJi5hcy1sYXJnZS04IHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiR3aGl0ZTtcblx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoMjApO1xuXHRcdFx0Ym94LXNoYWRvdzoycHggMnB4IDhweCAwIHJnYmEoJGJsYWNrLCAuMTIpO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdFx0cGFkZGluZzpyZW0tY2FsYyg3MCk7XG5cdFx0fVxuXHR9XG59XG4uY29udGVudC1wYWRkaW5nIHtcblx0cGFkZGluZy1sZWZ0OnJlbS1jYWxjKDQwKTtcbn1cbi5zaWRlYmFyLXdyYXBwZXIge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZy1yaWdodDpyZW0tY2FsYyg0MCk7XG5cdH1cbn1cbmFzaWRlIHtcblx0YmFja2dyb3VuZDokcmVkO1xuXHRjb2xvcjokd2hpdGU7XG5cdHBhZGRpbmc6cmVtLWNhbGMoMjApO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzpyZW0tY2FsYygyNSA1NSk7XG5cdH1cblx0LnRpdGxlIHtcblx0XHRmb250LXdlaWdodDo2MDA7XG5cdFx0Zm9udC1zaXplOnJlbS1jYWxjKDMwKTtcblx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdH1cblx0fVxuXHR1bCB7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdG1hcmdpbjpyZW0tY2FsYygxMCAwIDAgMCk7XG5cdFx0cGFkZGluZzowO1xuXG5cdFx0bGkge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJ1xcMjAzQSc7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDUgMCk7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhKG1heC13aWR0aDogMTAyNHB4KSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5tYWluIHtcblx0YmFja2dyb3VuZDojZjlmOWY5O1xufVxuc2VjdGlvbi5tYXJnaW4ge1xuXHRtYXJnaW46cmVtLWNhbGMoNjAgMCA0MCAwKTtcbn1cbi5jb250ZW50LXJvdyB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR6LWluZGV4OjI7XG59XG4uc2VjdGlvbi1waG90byB7XG5cdGZpbHRlcjpibHVyKDEwcHgpO1xuXHR0cmFuc2Zvcm06c2NhbGUoMS4yKTtcblx0bWluLWhlaWdodDpyZW0tY2FsYygyMjYpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xufVxuLmNvbnRhY3QtYm94IHtcblx0Zm9udC1zaXplOnJlbS1jYWxjKDEzKTtcblx0bWFyZ2luOnJlbS1jYWxjKDAgMCAkZ2xvYmFsLW1hcmdpbiAwKSAhaW1wb3J0YW50O1xuXHQuY29udGFjdC1sYWJlbCB7XG5cdFx0Y29sb3I6JHdoaXRlO1xuXHRcdGJhY2tncm91bmQ6bWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0ZGlzcGxheTpmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgMTUpO1xuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0fVxuXHR9XG5cdC5jb250YWN0LWNvbnRlbnQge1xuXHRcdGJhY2tncm91bmQ6Izk3OTc5Nztcblx0fVxuXHQuY29udGFjdC1uYW1lIHtcblx0XHRiYWNrZ3JvdW5kOiNmOWY5Zjk7XG5cdFx0cGFkZGluZzpyZW0tY2FsYygxMCAyMCk7XG5cdFx0bWFyZ2luOjFweCAxcHggMXB4IC0xcHg7XG5cdFx0c3BhbiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoMCAxMCk7XG5cdFx0fVxuXHR9XG59XG4uY29sdW1uLWJsb2NrIHtcblx0bWFyZ2luLWJvdHRvbTpyZW0tY2FsYygyMCk7XG59XG4ubGlmdCB7XG5cdG1hcmdpbi10b3A6LTEyMHB4O1xufVxuYXJ0aWNsZSB7XG5cdC5waG90byB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6NTAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHR9XG5cdH1cbn1cbi5pbWFnZS1jYXB0aW9uIHtcblx0Zm9udC1zaXplOjc1JTtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdHdpZHRoOjEwMCU7XG5cdGJvdHRvbTowO1xuXHR0ZXh0LWFsaWduOnJpZ2h0O1xuXHRjb2xvcjokd2hpdGU7XG5cdGJhY2tncm91bmQ6cmdiYSgkYmxhY2ssIC41KTtcblx0cGFkZGluZzpyZW0tY2FsYygyIDEwKTtcblx0ei1pbmRleDoxMDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6ODAlO1xuXHR9XG59XG5cbi5lZGl0YWJsZS1jb250ZW50IHtcblx0aW1nIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6IDU4MHB4KSB7XG5cdC5lZGl0YWJsZS1jb250ZW50IHtcblx0XHRpbWcge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cbiNzdWNjZXNzLXN0b3JpZXMge1xuXHRwYWRkaW5nOjg1cHggMDtcblx0aDIge1xuXHRcdG1hcmdpbi1ib3R0b206NDdweDtcblx0fVxuXHQuaGVhZGluZyB7XG5cdFx0Zm9udC1zaXplOnJlbS1jYWxjKDI0KTtcblx0XHRsaW5lLWhlaWdodDpyZW0tY2FsYygyOCk7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHRtYXJnaW4tYm90dG9tOjFyZW07XG5cdH1cblx0LnBvc3RzLXJvdyB7XG5cdFx0bWFyZ2luLWJvdHRvbTo1MHB4O1xuXHR9XG5cdC5tb3JlLXBvc3RzIHtcblx0XHRjb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0bWFyZ2luLWJvdHRvbToxcmVtO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cbn1cblxuLmNvbnRlbnQtY2FyZHMge1xuXHQuY29sdW1uIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRcdC5jYXJkIHtcblx0XHRcdC8vIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEwKTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQuaW1hZ2Uge1xuXHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiA1NC43MjIyMjIyMiUhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTAwKTtcblx0XHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0Ly8gYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7IFxuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRib3R0b206IHJlbS1jYWxjKDQwKTtcblx0XHRcdFx0XHRsZWZ0OiByZW0tY2FsYyg0MCk7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5ib2R5LnBhZ2UtcmVzaWRlbnRpYWwsIGJvZHkucGFnZS15b3VyX2J1c2luZXNzIHtcblx0Lm1haW4tY29udGVudCB7XG5cdFx0LmZsdWlkLWZyYW1lIHtcblx0XHRcdC5lZGl0YWJsZS1jb250ZW50IHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdFx0Lm15RW50ZXJneUxpbmsge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0XHQuYnV0dG9uLmxvZ2luIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygyNCA0OCAyMCk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdFx0XHRcdCYuZ3JleSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkZ3JheTtcblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aDQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG5cdFx0XHR9XG5cdFx0XHR1bC5zdHlsaXplZExpc3Qge1xuXHRcdFx0XHRtYXJnaW46IHJlbS1jYWxjKDAgMCA1NSk7XG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0XHQmOm5vdCgub25lQ29sKSB7XG5cdFx0XHRcdFx0XHRjb2x1bW4tY291bnQ6IDI7XG5cdFx0XHRcdFx0XHRjb2x1bW4tZ2FwOiByZW0tY2FsYygzMik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGxpIHtcblx0XHRcdFx0XHQvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjOTc5Nzk3O1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRjb2xvcjogICNGRjFBNTg7XG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Y29udGVudDogJz4nO1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uc2lkZWJhci13cmFwcGVyIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTUpO1xuXHR9XG5cdCNzaWRlYmFyIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC5zaWRlYmFySW5uZXIge1xuXHRcdFx0cGFkZGluZzpyZW0tY2FsYygyMCk7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHBhZGRpbmc6cmVtLWNhbGMoMjUgNTUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc2lkZWJhckNhbGxvdXQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNCRDAwMjQ7XG5cdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICR3aGl0ZTtcblx0XHRwYWRkaW5nOnJlbS1jYWxjKDIwKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDI1IDU1KTtcblx0XHR9XG5cdFx0LnNpZGViYXJDYWxsb3V0TnVtYmVyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0LnBob25lSWNvbiB7XG5cdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxNik7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTApO1xuXHRcdFx0fVxuXHRcdFx0LmN0YSB7XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCJzZWN0aW9uI21hc3RoZWFkIC5zbGlkZSAuaW1hZ2UgaW1nIHtcblx0bWluLWhlaWdodDogYXV0bztcbn1cblxuQG1lZGlhKG1heC13aWR0aDogMTAyNHB4KSB7XG5cdC5idXR0b24uZ2lhbnQge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuXHR9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6IDEwMjRweCkgYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cdGhlYWRlciBuYXYgdWwudG9wLWxldmVsPmxpPmEge1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRtYXJnaW46IDAgLjdyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDFyZW07XG5cdH1cblxuXHRoZWFkZXIgbmF2IHVsLnRvcC1sZXZlbD5saT5hI3NlYXJjaC1pY29uIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcblx0fVxuXG5cdGhlYWRlciBuYXYgdWwudG9wLWxldmVsPmxpPmEjc3Rvcm0tY2VudGVyIHtcblx0XHRwYWRkaW5nOiAuM3JlbSAuOHJlbTtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuXG5AbWVkaWEobWF4LXdpZHRoOiA4MDBweCkgYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cdGhlYWRlciBuYXYgdWwudG9wLWxldmVsPmxpPmEge1xuXHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdG1hcmdpbjogMCAuM3JlbTtcblx0XHRsaW5lLWhlaWdodDogMC45cmVtO1xuXHR9XG5cblx0aGVhZGVyIG5hdiB1bC50b3AtbGV2ZWw+bGk+YSNzZWFyY2gtaWNvbiB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwLjJyZW07XG5cdH1cblxuXHRoZWFkZXIgbmF2IHVsLnRvcC1sZXZlbD5saT5hI3N0b3JtLWNlbnRlciB7XG5cdFx0cGFkZGluZzogLjNyZW0gLjZyZW07XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LnNvY2lhbC1saW5rcyAuc2hvdy1mb3ItbWVkaXVtIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6IDY3MHB4KSBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcblx0aGVhZGVyIG5hdiB1bC50b3AtbGV2ZWw+bGk+YSB7XG5cdFx0Zm9udC1zaXplOiAwLjhyZW07XG5cdFx0bWFyZ2luOiAwIC4zcmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAwLjhyZW07XG5cdH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDogNjQwcHgpIHtcblx0aGVhZGVyIG5hdiB1bC50b3AtbGV2ZWw+bGk+YSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE0KTtcblx0XHRwYWRkaW5nOiByZW0tY2FsYyg3KSByZW0tY2FsYygxNSkgIWltcG9ydGFudDtcblx0fVxuXG5cdHNlY3Rpb24jbWFzdGhlYWQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cblx0aGVhZGVyIHtcblx0ICAgIGhlaWdodDogNC45cmVtO1xuXHQgICAgcGFkZGluZzogMDtcblx0fVxuXG5cdGhlYWRlciA+IC5yb3cgPiAuc21hbGwtMyA+IGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogODklO1xuXHRcdHBhZGRpbmctdG9wOiA2JTtcblx0fVxuXG5cdGJvZHkuc2Nyb2xsZWQgaGVhZGVyIC5sb2dvLCBoZWFkZXIgLmxvZ28gIHtcblx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdH1cblxuXHRib2R5LnNjcm9sbGVkIGhlYWRlciB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5oZWFkZXItc3BhY2UgeyAvLyBUaGlzIERJViBzdGFydHMgdGhlIGNvbnRlbnQgYWZ0ZXIgdGhlIGhlaWdodCBvZiB0aGUgaGVhZGVyIChhbmQgdXRpbGl0eSBuYXYpLiBOb3Qgc3VyZSB3aHkgaXQgd2FzIHNldCB0byA0LjlSRU0sIGJ1dCBpdCBzaG91bGRuJ3QgYmUgdW5sZXNzIHRoYXQgaXMgYWx3YXlzIHRoZSBoZWlnaHQgb2YgdGhvc2UgY29tcG9uZW50cyAod2hpY2ggaXQgaXMpXG5cdFx0Ly9oZWlnaHQ6IDQuOXJlbTtcblx0fVxuXG5cdHNlY3Rpb24gLmhlYWRlciB7XG5cdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdH1cblxuXHQuY2FyZCAuY29udGVudCB7XG5cdFx0cGFkZGluZzogMS41cmVtIDEuNXJlbSAuMXJlbSAxLjVyZW07XG5cdH1cblxuXHQuY2FyZCAuY29udGVudCAudGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjVyZW07XG5cdH1cblxuXHQuY2FyZCAuY29udGVudCAuY2F0ZWdvcnkge1xuXHRcdGZvbnQtc2l6ZTogMC43cmVtO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAwLjlyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuM3JlbTtcblx0fVxuXG5cdC5jYXJkIC5jb250ZW50IC5kYXRlLCAuY2FyZCAuY29udGVudCAuY2F0ZWdvcnksIC5jYXJkIC5jb250ZW50IC50aXRsZTphZnRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXHR9XG5cblx0LmNhcmQgLmNvbnRlbnQgLnRpdGxlOmFmdGVyIHtcblx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdH1cblxuXHQuYnV0dG9uIHtcblx0XHRwYWRkaW5nOiAuNnJlbSAxLjZyZW0gLjZyZW0gMS42cmVtO1xuXHRcdGZvbnQtc2l6ZTogLjhyZW07XG5cdH1cblxuXHRzZWN0aW9uI3NvY2lhbC1mZWVkIHVsLnNvY2lhbC1saW5rcyB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0c2VjdGlvbiNzb2NpYWwtZmVlZCB1bC5zb2NpYWwtbGlua3MgbGkgYSB7XG5cdFx0cGFkZGluZy1yaWdodDogMC40cmVtO1xuXHR9XG5cblx0LnJlYWRtb3JlIHtcblx0XHRtYXJnaW4tdG9wOiAxLjVyZW07XG5cdH1cblxuXHRzZWN0aW9uIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cdH1cblxuXHRzZWN0aW9uI3ZpZGVvIHtcblx0XHRwYWRkaW5nOiAxcmVtIDA7XG5cdH1cblxuXHRzZWN0aW9uI2ZlZWRzIHtcblx0XHRwYWRkaW5nOiAycmVtIDAgMnJlbSAwO1xuXHR9XG5cblx0LmNpcmN1dCBpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59IiwiQG1lZGlhIHByaW50IHtcblx0LmhlYWRlci1zcGFjZSB7XG5cdFx0ZGlzcGxheTpub25lO1xuXHR9XG5cdG5hdi51dGlsaXR5LCBoZWFkZXIgbmF2IHtcblx0XHRkaXNwbGF5Om5vbmU7XG5cdH1cblx0aGVhZGVyIHtcblx0XHRwb3NpdGlvbjpzdGF0aWM7XG5cdFx0bWFyZ2luLXRvcDowO1xuXHRcdHBhZGRpbmc6MDtcblx0fVxuXHQuc2VjdGlvbi1oZWFkZXIge1xuXHRcdG1pbi1oZWlnaHQ6YXV0bztcblx0XHRoMSB7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRsaW5lLWhlaWdodDoxMjAlO1xuXHRcdH1cblx0fVxuXHRmb290ZXIgbmF2LCBmb290ZXIgLmxpbmtzIHtcblx0XHRkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQubWFpbi1jb250ZW50IHtcblx0XHRhW2hyZWZdOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7XG5cdFx0fVxuXHR9XG5cdGFzaWRlIHtcblx0XHRkaXNwbGF5Om5vbmU7XG5cdH1cblx0c2VjdGlvbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTowO1xuXHR9XG5cdCNzZWFyY2gtaWNvbiB7XG5cdFx0ZGlzcGxheTpub25lO1xuXHR9XG5cdCNvdXRhZ2VzQW5jaG9yLCAubXlhY2NvdW50IHtcblx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XG5cdH1cblx0LnNlYXJjaC1iYXIsIC5zb2NpYWwtbGlua3MsIC5hcHAtbGlua3Mge1xuXHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdC5pcy1kcm9wZG93bi1zdWJtZW51LCAuZHJvcGRvd24tcGFuZSB7XG5cdFx0YmFja2dyb3VuZDokd2hpdGUgIWltcG9ydGFudDtcblx0fVxuXHQjc3RvY2stdGlja2VyIHtcblx0XHRkaXNwbGF5Om5vbmU7XG5cdH1cblx0aWZyYW1lW3NyY149XCJodHRwczovL3BsYXllci52aW1lby5jb21cIl0ge1xuXHRcdGRpc3BsYXk6bm9uZTtcblx0fVxufVxuIiwiLmVtZXJnZW5jeS1jYWxsb3V0IHtcblx0LmZsdWlkLWZyYW1lIHtcblx0XHRwYWRkaW5nOiByZW0tY2FsYyg3MCAzMCk7XG5cdFx0LmludHJvIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMyKTtcblx0XHRcdGgzIHtcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygzMCk7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0tY2FsYygxLjMzKTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHRcdC5zbWFsbCB7XG5cdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0tY2FsYyguNzUpO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Lmljb24tcm93IHtcblx0XHRcdC5jb2x1bW4ge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAjOTc5Nzk3O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTEpO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzIpO1xuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG5cdFx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoNTApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdGNvbG9yOiAkcmVkO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygzMCk7XG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDEuMjUpO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQuaW5mbyB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dDtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICRyZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLmJhbm5lciB7XG5cdG1hcmdpbjogcmVtLWNhbGMoNDgpIGF1dG87XG5cdC5yb3cge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXHQuYmFubmVyTGluayB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR6LWluZGV4OiA5O1xuXHR9XG5cdC5iYW5uZXJSb3cge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygzMik7XG5cdFx0fVxuXHRcdC5iYW5uZXJJbWFnZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0Lmljb24ge1xuXHRcdFx0XHRtYXgtd2lkdGg6cmVtLWNhbGMoNTYpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygzNyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYuaGFzSW1hZ2Uge1xuXHRcdFx0XHRtaW4taGVpZ2h0OiByZW0tY2FsYygyMDgpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5iYW5uZXJJbmZvIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxNik7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMCk7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzcpO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzIpO1xuXHRcdFx0fVxuXHRcdFx0aDMge1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjgpO1xuXHRcdFx0fVxuXHRcdFx0cCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuYnV0dG9uSG9sZGVyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmJ1dHRvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJHJlZCFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIub2ZmLWNhbnZhcyB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDEyMyk7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxMzQpO1xuXHRcdH1cblx0XG5cdCNzZWFyY2gtaWNvbiB7XG5cdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygxNSk7XG5cdFx0Y29sb3I6ICRibGFjaztcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdGdhcDogcmVtLWNhbGMoMTYpO1xuXHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDI0KTtcblx0fVxuXHQuc2VwYXJhdG9yIHtcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG5cdFx0bWFyZ2luOiByZW0tY2FsYygxNikgYXV0bztcblx0XHRoZWlnaHQ6IHJlbS1jYWxjKDEpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcblx0fVxuXHR1bCB7XG5cdFx0Ji5tZW51IHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5zdWJtZW51IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcblx0XHRcdGxpIHtcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRuYXYge1xuXHRcdCYucHJpbWFyeSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuXHRcdH1cblx0XHQmLnV0aWxpdHkge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTYgMCk7XG5cdFx0XHQudXRpbGl0eS1uYXYtbGluayB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdFx0LmNvbHVtbnMge1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLm9mZi1jYW52YXMtY29udGVudCB7XG5cdCYuaXMtb3Blbi1yaWdodCB7XG5cdFx0aGVhZGVyIHtcblx0XHRcdCNzdG9jay10aWNrZXIge1xuXHRcdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdG5hdiB7XG5cdFx0Ji51dGlsaXR5IHtcblx0XHRcdGhlaWdodDogcmVtLWNhbGMoNDUpO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHQudXRpbGl0eS1uYXYtbGluayB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0XHRcdGZsZXgtYmFzaXM6IGF1dG87XG5cdFx0XHRcdFx0Ji5vcGNvIHtcblx0XHRcdFx0XHRcdHdpZHRoOiB1bnNldDtcblx0XHRcdFx0XHRcdGZsZXgtYmFzaXM6IGF1dG87XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5uYXYge1xuXHQmLnV0aWxpdHkge1xuXHRcdC5jb2x1bW5zIHtcblx0XHRcdGFsaWduLWl0ZW1zOmNlbnRlcjtcblx0XHR9XG5cdFx0LnV0aWxpdHlfYnRucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRhbGlnbi1pdGVtczpjZW50ZXI7XG5cdFx0fVxuXHRcdC5zbWFsbF9waXBlIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDUgMCk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0Y29sb3I6ICNmZWZlZmU7XG5cdFx0XHRtYXJnaW46IHJlbS1jYWxjKDggMTApO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuXHRcdFx0Ji5vdXRhZ2VzIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNTcpO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2Utb3V0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdFx0XHRib3JkZXI6IHNvbGlkIDJweCBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygzIDMwKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdGNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5teWFjY291bnQge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYyg1Nyk7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1vdXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0XHRcdFx0Ym9yZGVyOiBzb2xpZCAycHggJHdoaXRlO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygzIDMwKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbmhlYWRlciB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQ1KTtcblx0bmF2IHtcblx0XHR1bCB7XG5cdFx0XHQmLnRvcC1sZXZlbCB7XG5cdFx0XHRcdD5saSB7XG5cdFx0XHRcdFx0PmEge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbjpyZW0tY2FsYygwIDE1KTtcblx0XHRcdFx0XHRcdGNvbG9yOiRib2R5LWZvbnQtY29sb3I7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50ICgxMDAwcHgpIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjE0cHg7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjpyZW0tY2FsYygwIDEwKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKDExNjBweCkge1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6MTZweDtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOnJlbS1jYWxjKDAgMTUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoMTI2MHB4KSB7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCA0cHggdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHQmI3NlYXJjaC1pY29uIHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OnJlbS1jYWxjKDE1KTtcblx0XHRcdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0JiNzdG9ybS1jZW50ZXIge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdFx0XHRcdFx0cGFkZGluZzpyZW0tY2FsYyg2IDI1IDEwIDI1KTtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTo0cHg7XG5cdFx0XHRcdFx0XHRcdHRyYW5zaXRpb246YmFja2dyb3VuZCAzMDBtcyBlYXNlLW91dDtcblx0XHRcdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjpzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b206bm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dWwge1xuXHRcdFx0XHRcdFx0Ji5zdWJtZW51IHtcblx0XHRcdFx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCNzZWFyY2gtaWNvbiB7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdFx0fVxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZmlsdGVyOiBpbnZlcnQoMjIlKSBzZXBpYSg2MSUpIHNhdHVyYXRlKDQ0MDklKSBodWUtcm90YXRlKDMzMmRlZykgYnJpZ2h0bmVzcygxMDAlKSBjb250cmFzdCgxMDMlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLmRyb3Bkb3duLXBhbmUge1xuXHR1bCB7XG5cdFx0YSB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLyojc3RvY2stdGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzMxMzEzMTtcblx0Y29sb3I6ICR3aGl0ZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxNik7XG5cdHBhZGRpbmctdG9wOiByZW0tY2FsYyg2KTtcblx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDQpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGJvZHkuc2Nyb2xsZWQgJiB7XG5cdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNCk7XG5cdFx0fVxuXHR9XG59Ki9cbiNzZWFyY2gtb3ZlcmxheSB7XG5cdGZvcm0ge1xuXHRcdGlucHV0W3R5cGU9dGV4dF0ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNTcpO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMCAyMCk7XG5cdFx0XHQmI3NlYXJjaC10ZXJtcyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDU3IDAgMCA1Nyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5jb250YWluZXIge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNTcpO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR9XG5cdFx0c2VsZWN0IHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDU3KTtcblx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDAgMjApO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgcmVtLWNhbGMoLTYpIGNlbnRlcjtcblx0XHR9XG5cdH1cbn1cbi5oZWFkZXItc3BhY2Uge1xuXHRoZWlnaHQ6IHJlbS1jYWxjKDEyMyk7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYygxMzQpO1xuXHR9XG59IiwiZm9vdGVyIHtcblx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDMyKTtcblx0LmFwcC1yb3cge1xuXHRcdC5hcHAtbGlua3Mge1xuXHRcdFx0YWxsOiB1bnNldDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRnYXA6IHJlbS1jYWxjKDE2KTtcblx0XHR9XG5cdH1cblx0LmJvcmRlci1yb3cge1xuXHRcdHVsIHtcblx0XHRcdCYuc29jaWFsLWxpbmtzIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRcdGdhcDogcmVtLWNhbGMoNyk7XG5cdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjkpO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygyOSk7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblx0XHRcdFx0XHRcdGJvcmRlcjogc29saWQgMnB4ICR3aGl0ZTtcblx0XHRcdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0XHRtYXgtd2lkdGg6IHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0XHRcdFx0bWF4LWhlaWdodDogcmVtLWNhbGMoMTUpO1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHVuc2V0O1xuXHRcdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0XHRcdGZpbHRlcjogYnJpZ2h0bmVzcygwKSBzYXR1cmF0ZSgxMDAlKSBpbnZlcnQoMCUpIHNlcGlhKDE1JSkgc2F0dXJhdGUoMTglKSBodWUtcm90YXRlKDMzN2RlZykgYnJpZ2h0bmVzcyg5NCUpIGNvbnRyYXN0KDkyJSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0XHRcdFx0ZmlsdGVyOiBicmlnaHRuZXNzKDApIHNhdHVyYXRlKDEwMCUpIGludmVydCgxMDAlKSBzZXBpYSgwJSkgc2F0dXJhdGUoMCUpIGh1ZS1yb3RhdGUoNDVkZWcpIGJyaWdodG5lc3MoMTAzJSkgY29udHJhc3QoMTAzJSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnNlcGFyYXRvciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYygxKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI3KTtcblx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYyg3NCk7XG5cdH1cblx0LmJvdHRvbS1jb250ZW50IHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG5cdHVsLmxpbmtzIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0dGV4dC1hbGlnbjpyaWdodDtcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0XHRjb250ZW50Oid8Jztcblx0XHRcdFx0XHRtYXJnaW46cmVtLWNhbGMoMCAxMCk7XG5cdFx0XHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCY6bGFzdC1jaGlsZCBhOjphZnRlciB7XG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdH1cblx0XHRcdCY6Zmlyc3QtY2hpbGQgYSB7XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGNvbnRlbnQ6J3wnO1xuXHRcdFx0XHRcdG1hcmdpbjpyZW0tY2FsYygwIDEwKTtcblx0XHRcdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuZHlrIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQyIDIxIDM4IDM0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMzNweCk7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMnB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IFxuICAgICAgICAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lc3NhZ2Uge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgICAgICBtYXJnaW46IDIycHggMCAyNnB4O1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQ4cHgpO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICAmLmFsdCB7XG4gICAgICAgICAgICAmLndoaXRlLW91dCB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJtYWluIHtcblx0YmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbn1cbnNlY3Rpb24ge1xuXHQmLmxpZ2h0Z3JheSB7XG5cdFx0YmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblx0fVxufVxuLmJ1dHRvbiwgYnV0dG9uIHsgXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRtYXJnaW46IDAgMC40cmVtO1xuXHQmOmZpcnN0LWxldHRlciB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxuXHQmLm1vcmUtZmVlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHR9XG5cdCYuYWx0IHtcblx0XHQmLm91dGxpbmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5jYXJkIHtcblx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cdG1hcmdpbi1ib3R0b206JGdsb2JhbC1tYXJnaW47XG5cdCYubm9tYXJnaW4ge1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdGRpc3BsYXk6ZmxleDtcblx0ZmxleC13cmFwOm5vd3JhcDtcblx0Y29sb3I6JGJvZHktZm9udC1jb2xvcjtcblx0YmFja2dyb3VuZDokd2hpdGU7XG5cdHRyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1vdXQ7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdC8vbWF4LWhlaWdodDpyZW0tY2FsYygzNzUpO1xuXHQmLmludmVydGVkIHtcblx0XHRmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtcblx0fVxuXHQmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiB1bnNldDtcblx0XHR0cmFuc2Zvcm06IHVuc2V0O1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0fVxuXHQmLmV4cGFuZCB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0fVxuXHQuaW1hZ2Uge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6MCAhaW1wb3J0YW50O1xuXHRcdC8vYmFja2dyb3VuZC1jb2xvcjokYmx1ZTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO1xuXHRcdG92ZXJmbG93OmhpZGRlbjtcblx0XHQvL3dpZHRoOjUwJTtcblx0XHRtaW4td2lkdGg6cmVtLWNhbGMoMzIwKTtcblx0XHRtYXgtd2lkdGg6cmVtLWNhbGMoOTAwKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0ZGlzcGxheTpmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuXHRcdFx0aGVpZ2h0OjIwMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MjAwcHg7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0bWluLXdpZHRoOjA7XG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0XHRkaXNwbGF5Om5vbmU7XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5ibG9ja3F1b3RlIHtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHR9XG5cdFx0YmxvY2txdW90ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOjN2dztcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygzNik7XG5cdFx0XHR9XG5cdFx0XHRsaW5lLWhlaWdodDoxMDglO1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDAgNTAlKTtcblx0XHR9XG5cdH1cblx0LmNvbnRlbnQge1xuXHRcdHBhZGRpbmc6cmVtLWNhbGMoMzUgNDAgMjAgNDApO1xuXHRcdC50aXRsZSB7XG5cdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuXHRcdFx0bGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206c29saWQgM3B4IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRcdG1hcmdpbi10b3A6cmVtLWNhbGMoMjApO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdFx0XHR3aWR0aDpyZW0tY2FsYyg0MCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5kYXRlIHtcblx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG5cdFx0XHRjb2xvcjokZGFyaztcblx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdFx0bWFyZ2luLXRvcDpyZW0tY2FsYygyMCk7XG5cdFx0fVxuXHRcdC5jYXRlZ29yeSB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdFx0Zm9udC1zaXplOnJlbS1jYWxjKDEyKTtcblx0XHRcdGNvbG9yOiR2aW9sZXQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdH1cblx0XHQuc291cmNlIHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOm5vbmU7XG5cdFx0XHRjb2xvcjokZGFyaztcblx0XHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHQvLyBtYXJnaW4tYm90dG9tOiRnbG9iYWwtbWFyZ2luO1xuXHRcdH1cblx0fVxuXHQmLnNlY29uZGFyeSB7XG5cdFx0LmNhdGVnb3J5IHtcblx0XHRcdGNvbG9yOiR2aW9sZXQ7XG5cdFx0fVxuXHRcdC5pbWFnZSB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmJ1dHRvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHRib3JkZXI6c29saWQgMnB4IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDokd2hpdGU7XG5cdFx0XHRcdGNvbG9yOm1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC50aXRsZTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjptYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuXHRcdH1cblx0fVxuXHQmLnZlcnRpY2FsIHtcblx0XHRmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0Ji5pbnZlcnRlZCB7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtcblx0XHRcdC5pbWFnZTo6YWZ0ZXIge1xuXHRcdFx0XHRAaW5jbHVkZSB0cmlhbmdsZSgyMywgMjMsICR3aGl0ZSwgJ3RvcCcpO1xuXHRcdFx0XHR0b3A6MDtcblx0XHRcdFx0bGVmdDoyNHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuaW1hZ2Uge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRAaW5jbHVkZSB0cmlhbmdsZSgyMywgMjMsICR3aGl0ZSwgJ2JvdHRvbScpO1xuXHRcdFx0XHR0b3A6YXV0bztcblx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHRcdGxlZnQ6MjRweDtcblx0XHRcdH1cblx0XHRcdGJsb2NrcXVvdGUge1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0aGVpZ2h0OnJlbS1jYWxjKDIwMCk7XG5cdFx0XHRcdGZvbnQtc2l6ZToyNHB4O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XG5cdFx0XHRcdFx0Zm9udC1zaXplOjR2dztcblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOjIuNXZ3O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5jb250ZW50IHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0fVxuXHRcdC8qZGlzcGxheTpibG9jaztcblx0XHQuaW1hZ2Uge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdG1heC1oZWlnaHQ6cmVtLWNhbGMoMjAwKTtcblx0XHRcdG1pbi13aWR0aDoxMDAlO1xuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XG5cdFx0XHRsaW5lLWhlaWdodDoyMDBweDtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoMjMsIDIzLCAkd2hpdGUsICdib3R0b20nKTtcblx0XHRcdFx0dG9wOmF1dG87XG5cdFx0XHRcdGJvdHRvbTowO1xuXHRcdFx0XHRsZWZ0OjI0cHg7XG5cdFx0XHR9XG5cdFx0XHRibG9ja3F1b3RlIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDpyZW0tY2FsYygyMDApO1xuXHRcdFx0XHRmb250LXNpemU6MjRweDtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTo0dnc7XG5cdFx0XHRcdH1cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZToyLjV2dztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQqL1xuXHR9XG5cdCYudmlkZW8ge1xuXHRcdC5pbWFnZSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdGJhY2tncm91bmQ6cmdiYShtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSksIC43KSB1cmwoJGNkbisnL2ltZy9wbGF5LnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdGxlZnQ6MDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji50d2l0dGVyIHtcblx0XHRiYWNrZ3JvdW5kOiRhbHRibHVlO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCRjZG4rJy9pbWcvaWNvbnMvdHdpdHRlci13aGl0ZS5zdmcnKTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjp0b3AgMjRweCByaWdodCAyNHB4O1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0cGFkZGluZzpyZW0tY2FsYygyMCA0MCAzMCA0MCk7XG5cdFx0Y29sb3I6JHdoaXRlO1xuXHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxOSk7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0LnRpdGxlIHtcblx0XHRcdGZvbnQtd2VpZ2h0OjkwMDtcblx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW4tYm90dG9tOnJlbS1jYWxjKDQwKTtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjokd2hpdGU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xuXHRcdH1cblx0XHQuZGF0ZSB7XG5cdFx0XHRmb250LXdlaWdodDo5MDA7XG5cdFx0XHRmb250LXNpemU6cmVtLWNhbGMoMTIpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNSk7XG5cdFx0fVxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzpub25lO1xuXHRcdFx0dHJhbnNmb3JtOm5vbmU7XG5cdFx0fVxuXHR9XG5cdCYuYmlvIHtcblx0XHQuaW1hZ2Uge1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbi15Oi01MHB4O1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb24teTpjZW50ZXI7XG5cdFx0XHRcdG1pbi13aWR0aDozMyU7XG5cdFx0XHRcdC8vIG1heC13aWR0aDoxNzRweDtcblx0XHRcdFx0d2lkdGg6MzMlO1xuXHRcdFx0fVxuXHRcdFx0aW1nIHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0bWluLWhlaWdodDowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQmLmZlYXR1cmVkIHtcblx0XHRmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtcblx0XHQuY29udGVudCB7XG5cdFx0XHR3aWR0aDo1MCU7XG5cdFx0fVxuXHRcdC5pbWFnZSB7XG5cdFx0XHRoZWlnaHQ6cmVtLWNhbGMoNjQ2KTtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonRmVhdHVyZWQnO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0XHRcdGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OjkwMDtcblx0XHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOnVybCgkY2RuKycvaW1nL2ZlYXR1cmVkLnBuZycpIG5vLXJlcGVhdCBsZWZ0IC0ycHgsIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgkYmxhY2ssIC42MCksIHJnYmEoJGJsYWNrLCAuNjApKTtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdFx0dG9wOjE3cHg7XG5cdFx0XHRcdHJpZ2h0OjIxcHg7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDoyMHB4O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjhweDtcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR9XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xuXHRcdFx0XHRcdEBpbmNsdWRlIHRyaWFuZ2xlKDE4LCAxOCwgJHdoaXRlLCAnbGVmdCcpO1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDpub25lO1xuXHRcdFx0XHRcdHRvcDoyNHB4O1xuXHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQmLnByb21vIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdC5pbWFnZSB7XG5cdFx0XHRtaW4td2lkdGg6MTAwJTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6cmVtLWNhbGMoMTI1KTtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5jb250ZW50IHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDEwIDQwKTtcblx0XHRcdGNvbG9yOiRibGFjaztcblx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdC8vICY6YWZ0ZXIge1xuXHRcdFx0XHQvLyBcdGRpc3BsYXk6bm9uZTtcblx0XHRcdFx0Ly8gfVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuI2ZlYXR1cmVkIHtcblx0LmhlYWRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cdFx0bWFyZ2luOiByZW0tY2FsYyg1NCAwIDApO1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyMyk7XG5cdH1cbn0iLCJhc2lkZSB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHg7XG5cdHBhZGRpbmc6IDA7XG5cdC5zaWRlYmFyQ2FsbG91dCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrIWltcG9ydGFudDtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCk7XG5cdFx0LnNpZGViYXJDYWxsb3V0TnVtYmVyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uIWltcG9ydGFudDtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0IWltcG9ydGFudDtcblx0XHRcdGdhcDogcmVtLWNhbGMoMTYpO1xuXHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdFx0Z2FwOiByZW0tY2FsYygyNCk7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbS1jYWxjKDQ4KTtcblx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0tY2FsYyg0OCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHAge1xuXHRcdFx0XHQmLmN0YSB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZSFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnNpZGViYXJJbm5lciB7XG5cdFx0YmFja2dyb3VuZDogJGRhcmstZ3JheTtcblx0XHRwYWRkaW5nOnJlbS1jYWxjKDIwKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRwYWRkaW5nOnJlbS1jYWxjKDI1IDU1KTtcblx0XHR9XG5cdFx0aDMge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblx0XHRuYXYge1xuXHRcdFx0dWwge1xuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnXFwyMDNBJztcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIiNwcm9tb3Mge1xuXHQuaGVhZGVyIHtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcblxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDIzKTtcblx0XHRtYXJnaW46IHJlbS1jYWxjKDU0cHggMCAwKTtcblx0fVxufVxuLmNhcmQge1xuXHQmLnByb21vIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdC5jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwcHggMjNweCk7XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI0cHgpO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDMwcHgpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNnB4KTtcblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIkcmVkMTAwOiAjRkYxQzU4O1xuXG4jcXVpY2tsaW5rcyB7XG5cdC5oZWFkZXIge1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjMpO1xuXHRcdG1hcmdpbjogcmVtLWNhbGMoNTRweCAwIDApO1xuXHR9XG59XG4uYnV0dG9uLCBidXR0b24ge1xuXHQmLnF1aWNrLWxpbmsge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Lm92ZXJsYXkge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYyg1N3B4KTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMnB4KTtcblx0XHRcdH1cblx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzJweCk7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM5cHgpO1xuXG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxLjVweCk7XG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50OiBub25lO1xuXHRcdFx0XHR9ICAgICBcblx0XHRcdH1cblx0XHRcdC5kZXNjcmlwdGlvbiB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxLjVweCk7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblxuXHRcdFx0XHRjb2xvcjogJHJlZDEwMDtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNXB4KTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiAwO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMThweCk7XG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEycHgpO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg1cHgpO1xuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiPlwiXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuc2VjdGlvbi1oZWFkZXIge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjAwcHg7XG5cdFx0cGFkZGluZzogNTBweCAwIDUwcHggMDtcblx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygtNTBweCk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGhlaWdodDogMjYwcHg7XG5cdFx0cGFkZGluZzogNTBweCAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHQmLmhlYWRlci1zbWFsbCB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0XHRoZWlnaHQ6IDIwMHB4O1xuXHRcdH1cblx0fVxuXG5cdGgxLCAuaDEge1xuXHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbjogMCAwIC41cmVtIDA7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygzNik7XG5cdFx0bGluZS1oZWlnaHQ6IDE1MCU7XG5cdH1cblx0LnBhZ2VTdWJUaXRsZSB7XG5cdFx0Y29sb3I6ICRibGFjaztcblx0XHRsaW5lLWhlaWdodDogMTUwJTtcblx0fVxuXHQmLm5vLWJhY2tncm91bmQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRwYWRkaW5nOiA0MHB4IDAgMCAwO1xuXHR9XG59Il19 */