@import url(https://fonts.googleapis.com/icon?family=Material+Icons);@import url(https://fonts.googleapis.com/css?family=Nunito:400,400i,700);@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface--test-edge-var-bug{--mdc-ripple-surface-test-edge-var: 1px solid #000;visibility:hidden}.mdc-ripple-surface--test-edge-var-bug::before{border:var(--mdc-ripple-surface-test-edge-var)}.mdc-fab,.ldk-wsp-button{--mdc-ripple-fg-size: 0;--mdc-ripple-left: 0;--mdc-ripple-top: 0;--mdc-ripple-fg-scale: 1;--mdc-ripple-fg-translate-end: 0;--mdc-ripple-fg-translate-start: 0;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:transform, opacity;box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);border-radius:28px;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);border:none;fill:currentColor;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:hidden;background-color:#018786;color:#fff;color:var(--mdc-theme-on-secondary, #fff)}.mdc-fab::before,.ldk-wsp-button::before,.mdc-fab::after,.ldk-wsp-button::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-fab::before,.ldk-wsp-button::before{transition:opacity 15ms linear,background-color 15ms linear;z-index:1}.mdc-fab.mdc-ripple-upgraded::before,.mdc-ripple-upgraded.ldk-wsp-button::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-fab.mdc-ripple-upgraded::after,.mdc-ripple-upgraded.ldk-wsp-button::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-fab.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded.ldk-wsp-button::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-fab.mdc-ripple-upgraded--foreground-activation::after,.mdc-ripple-upgraded--foreground-activation.ldk-wsp-button::after{animation:225ms mdc-ripple-fg-radius-in forwards,75ms mdc-ripple-fg-opacity-in forwards}.mdc-fab.mdc-ripple-upgraded--foreground-deactivation::after,.mdc-ripple-upgraded--foreground-deactivation.ldk-wsp-button::after{animation:150ms mdc-ripple-fg-opacity-out;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-fab::before,.ldk-wsp-button::before,.mdc-fab::after,.ldk-wsp-button::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-fab.mdc-ripple-upgraded::after,.mdc-ripple-upgraded.ldk-wsp-button::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-fab.mdc-fab--mini,.mdc-fab--mini.ldk-wsp-button{border-radius:20px}.mdc-fab.mdc-fab--extended,.mdc-fab--extended.ldk-wsp-button{border-radius:24px}.mdc-fab::-moz-focus-inner,.ldk-wsp-button::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover,.ldk-wsp-button:hover,.mdc-fab:focus,.ldk-wsp-button:focus{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mdc-fab:active,.ldk-wsp-button:active{box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)}.mdc-fab:active,.ldk-wsp-button:active,.mdc-fab:focus,.ldk-wsp-button:focus{outline:none}.mdc-fab:hover,.ldk-wsp-button:hover{cursor:pointer}.mdc-fab>svg,.ldk-wsp-button>svg{width:100%}@supports not (-ms-ime-align: auto){.mdc-fab,.ldk-wsp-button{background-color:var(--mdc-theme-secondary, #018786)}}.mdc-fab .mdc-fab__icon,.ldk-wsp-button .mdc-fab__icon,.ldk-wsp-button .wsp-icon{width:24px;height:24px;font-size:24px}.mdc-fab::before,.ldk-wsp-button::before,.mdc-fab::after,.ldk-wsp-button::after{background-color:#fff}@supports not (-ms-ime-align: auto){.mdc-fab::before,.ldk-wsp-button::before,.mdc-fab::after,.ldk-wsp-button::after{background-color:var(--mdc-theme-on-secondary, #fff)}}.mdc-fab:hover::before,.ldk-wsp-button:hover::before{opacity:.08}.mdc-fab:not(.mdc-ripple-upgraded):focus::before,.ldk-wsp-button:not(.mdc-ripple-upgraded):focus::before,.mdc-fab.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-upgraded--background-focused.ldk-wsp-button::before{transition-duration:75ms;opacity:.24}.mdc-fab:not(.mdc-ripple-upgraded)::after,.ldk-wsp-button:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mdc-fab:not(.mdc-ripple-upgraded):active::after,.ldk-wsp-button:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.32}.mdc-fab.mdc-ripple-upgraded,.mdc-ripple-upgraded.ldk-wsp-button{--mdc-ripple-fg-opacity: .32}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{font-family:Roboto,sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:2.25rem;font-weight:500;letter-spacing:.08929em;text-decoration:none;text-transform:uppercase;padding:0 20px;width:auto;max-width:100%;height:48px}.mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .ldk-wsp-button .wsp-icon,.ldk-wsp-button .mdc-fab--extended .wsp-icon{margin-left:-8px;margin-right:12px}[dir="rtl"] .mdc-fab--extended .mdc-fab__icon,[dir="rtl"] .mdc-fab--extended .ldk-wsp-button .wsp-icon,.ldk-wsp-button [dir="rtl"] .mdc-fab--extended .wsp-icon,.mdc-fab--extended .mdc-fab__icon[dir="rtl"],.mdc-fab--extended .ldk-wsp-button .wsp-icon[dir="rtl"],.ldk-wsp-button .mdc-fab--extended .wsp-icon[dir="rtl"]{margin-left:12px;margin-right:-8px}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .ldk-wsp-button .wsp-label+.mdc-fab__icon,.ldk-wsp-button .mdc-fab--extended .wsp-label+.mdc-fab__icon,.mdc-fab--extended .ldk-wsp-button .mdc-fab__label+.wsp-icon,.ldk-wsp-button .mdc-fab--extended .mdc-fab__label+.wsp-icon,.mdc-fab--extended .ldk-wsp-button .wsp-label+.wsp-icon,.ldk-wsp-button .mdc-fab--extended .wsp-label+.wsp-icon{margin-left:12px;margin-right:-8px}[dir="rtl"] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,[dir="rtl"] .mdc-fab--extended .ldk-wsp-button .wsp-label+.mdc-fab__icon,.ldk-wsp-button [dir="rtl"] .mdc-fab--extended .wsp-label+.mdc-fab__icon,[dir="rtl"] .mdc-fab--extended .ldk-wsp-button .mdc-fab__label+.wsp-icon,.ldk-wsp-button [dir="rtl"] .mdc-fab--extended .mdc-fab__label+.wsp-icon,[dir="rtl"] .mdc-fab--extended .ldk-wsp-button .wsp-label+.wsp-icon,.ldk-wsp-button [dir="rtl"] .mdc-fab--extended .wsp-label+.wsp-icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir="rtl"],.mdc-fab--extended .ldk-wsp-button .wsp-label+.mdc-fab__icon[dir="rtl"],.ldk-wsp-button .mdc-fab--extended .wsp-label+.mdc-fab__icon[dir="rtl"],.mdc-fab--extended .ldk-wsp-button .mdc-fab__label+.wsp-icon[dir="rtl"],.ldk-wsp-button .mdc-fab--extended .mdc-fab__label+.wsp-icon[dir="rtl"],.mdc-fab--extended .ldk-wsp-button .wsp-label+.wsp-icon[dir="rtl"],.ldk-wsp-button .mdc-fab--extended .wsp-label+.wsp-icon[dir="rtl"]{margin-left:-8px;margin-right:12px}.mdc-fab__label,.ldk-wsp-button .wsp-label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-fab__icon,.ldk-wsp-button .wsp-icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon,.ldk-wsp-button .mdc-fab__icon,.ldk-wsp-button .wsp-icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);opacity:0}.mdc-fab--exited .mdc-fab__icon,.mdc-fab--exited .ldk-wsp-button .wsp-icon,.ldk-wsp-button .mdc-fab--exited .wsp-icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-button,.wsp-form-submit [type=submit]{font-family:Roboto,sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:2.25rem;font-weight:500;letter-spacing:.08929em;text-decoration:none;text-transform:uppercase;--mdc-ripple-fg-size: 0;--mdc-ripple-left: 0;--mdc-ripple-top: 0;--mdc-ripple-fg-scale: 1;--mdc-ripple-fg-translate-end: 0;--mdc-ripple-fg-translate-start: 0;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:transform, opacity;padding:0 8px 0 8px;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;height:36px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:hidden;vertical-align:middle;border-radius:4px}.mdc-button::before,.wsp-form-submit [type=submit]::before,.mdc-button::after,.wsp-form-submit [type=submit]::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-button::before,.wsp-form-submit [type=submit]::before{transition:opacity 15ms linear,background-color 15ms linear;z-index:1}.mdc-button.mdc-ripple-upgraded::before,.wsp-form-submit .mdc-ripple-upgraded[type=submit]::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button.mdc-ripple-upgraded::after,.wsp-form-submit .mdc-ripple-upgraded[type=submit]::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-button.mdc-ripple-upgraded--unbounded::after,.wsp-form-submit .mdc-ripple-upgraded--unbounded[type=submit]::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-button.mdc-ripple-upgraded--foreground-activation::after,.wsp-form-submit .mdc-ripple-upgraded--foreground-activation[type=submit]::after{animation:225ms mdc-ripple-fg-radius-in forwards,75ms mdc-ripple-fg-opacity-in forwards}.mdc-button.mdc-ripple-upgraded--foreground-deactivation::after,.wsp-form-submit .mdc-ripple-upgraded--foreground-deactivation[type=submit]::after{animation:150ms mdc-ripple-fg-opacity-out;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button::before,.wsp-form-submit [type=submit]::before,.mdc-button::after,.wsp-form-submit [type=submit]::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-button.mdc-ripple-upgraded::after,.wsp-form-submit .mdc-ripple-upgraded[type=submit]::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-button::-moz-focus-inner,.wsp-form-submit [type=submit]::-moz-focus-inner{padding:0;border:0}.mdc-button:active,.wsp-form-submit :active[type=submit]{outline:none}.mdc-button:hover,.wsp-form-submit :hover[type=submit]{cursor:pointer}.mdc-button:disabled,.wsp-form-submit :disabled[type=submit]{background-color:rgba(0,0,0,0);color:rgba(0,0,0,0.37);cursor:default;pointer-events:none}.mdc-button.mdc-button--dense,.wsp-form-submit .mdc-button--dense[type=submit]{border-radius:4px}.mdc-button:not(:disabled),.wsp-form-submit :not(:disabled)[type=submit]{background-color:rgba(0,0,0,0)}.mdc-button:not(:disabled),.wsp-form-submit :not(:disabled)[type=submit]{color:#6200ee;color:var(--mdc-theme-primary, #6200ee)}.mdc-button::before,.wsp-form-submit [type=submit]::before,.mdc-button::after,.wsp-form-submit [type=submit]::after{background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button::before,.wsp-form-submit [type=submit]::before,.mdc-button::after,.wsp-form-submit [type=submit]::after{background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button:hover::before,.wsp-form-submit [type=submit]:hover::before{opacity:.04}.mdc-button:not(.mdc-ripple-upgraded):focus::before,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded):focus::before,.mdc-button.mdc-ripple-upgraded--background-focused::before,.wsp-form-submit .mdc-ripple-upgraded--background-focused[type=submit]::before{transition-duration:75ms;opacity:.12}.mdc-button:not(.mdc-ripple-upgraded)::after,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mdc-button:not(.mdc-ripple-upgraded):active::after,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.16}.mdc-button.mdc-ripple-upgraded,.wsp-form-submit .mdc-ripple-upgraded[type=submit]{--mdc-ripple-fg-opacity: .16}.mdc-button .mdc-button__icon,.wsp-form-submit [type=submit] .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;width:18px;height:18px;font-size:18px;vertical-align:top}[dir="rtl"] .mdc-button .mdc-button__icon,[dir="rtl"] .wsp-form-submit [type=submit] .mdc-button__icon,.wsp-form-submit [dir="rtl"] [type=submit] .mdc-button__icon,.mdc-button .mdc-button__icon[dir="rtl"],.wsp-form-submit [type=submit] .mdc-button__icon[dir="rtl"]{margin-left:8px;margin-right:0}.mdc-button svg.mdc-button__icon,.wsp-form-submit [type=submit] svg.mdc-button__icon{fill:currentColor}.mdc-button--raised .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon,.wsp-form-submit [type=submit] .mdc-button__icon,.mdc-button--outlined .mdc-button__icon{margin-left:-4px;margin-right:8px}[dir="rtl"] .mdc-button--raised .mdc-button__icon,.mdc-button--raised .mdc-button__icon[dir="rtl"],[dir="rtl"] .mdc-button--unelevated .mdc-button__icon,[dir="rtl"] .wsp-form-submit [type=submit] .mdc-button__icon,.wsp-form-submit [dir="rtl"] [type=submit] .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon[dir="rtl"],.wsp-form-submit [type=submit] .mdc-button__icon[dir="rtl"],[dir="rtl"] .mdc-button--outlined .mdc-button__icon,.mdc-button--outlined .mdc-button__icon[dir="rtl"]{margin-left:8px;margin-right:-4px}.mdc-button--raised,.mdc-button--unelevated,.wsp-form-submit [type=submit]{padding:0 16px 0 16px}.mdc-button--raised:disabled,.mdc-button--unelevated:disabled,.wsp-form-submit :disabled[type=submit]{background-color:rgba(0,0,0,0.12);color:rgba(0,0,0,0.37)}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled),.wsp-form-submit :not(:disabled)[type=submit]{background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled),.wsp-form-submit :not(:disabled)[type=submit]{background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled),.wsp-form-submit :not(:disabled)[type=submit]{color:#fff;color:var(--mdc-theme-on-primary, #fff)}.mdc-button--raised::before,.mdc-button--raised::after,.mdc-button--unelevated::before,.wsp-form-submit [type=submit]::before,.mdc-button--unelevated::after,.wsp-form-submit [type=submit]::after{background-color:#fff}@supports not (-ms-ime-align: auto){.mdc-button--raised::before,.mdc-button--raised::after,.mdc-button--unelevated::before,.wsp-form-submit [type=submit]::before,.mdc-button--unelevated::after,.wsp-form-submit [type=submit]::after{background-color:var(--mdc-theme-on-primary, #fff)}}.mdc-button--raised:hover::before,.mdc-button--unelevated:hover::before,.wsp-form-submit [type=submit]:hover::before{opacity:.08}.mdc-button--raised:not(.mdc-ripple-upgraded):focus::before,.mdc-button--raised.mdc-ripple-upgraded--background-focused::before,.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus::before,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded):focus::before,.mdc-button--unelevated.mdc-ripple-upgraded--background-focused::before,.wsp-form-submit .mdc-ripple-upgraded--background-focused[type=submit]::before{transition-duration:75ms;opacity:.24}.mdc-button--raised:not(.mdc-ripple-upgraded)::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded)::after,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mdc-button--raised:not(.mdc-ripple-upgraded):active::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded):active::after,.wsp-form-submit [type=submit]:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.32}.mdc-button--raised.mdc-ripple-upgraded,.mdc-button--unelevated.mdc-ripple-upgraded,.wsp-form-submit .mdc-ripple-upgraded[type=submit]{--mdc-ripple-fg-opacity: .32}.mdc-button--raised{box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--raised:hover,.mdc-button--raised:focus{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mdc-button--raised:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mdc-button--raised:disabled{box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mdc-button--outlined{border-style:solid;padding:0 14px 0 14px;border-width:2px}.mdc-button--outlined:disabled{border-color:rgba(0,0,0,0.37)}.mdc-button--outlined:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary, #6200ee)}.mdc-button--dense{height:32px;font-size:.8125rem}.ldk-wsp-button .wsp-icon>img{width:24px;height:24px}.ldk-wsp-button.small{margin-left:0.5rem}.ldk-wsp-button .wsp-icon{margin:0}.ldk-wsp-button .wsp-label{font-size:16px !important}.ldk-wsp-button:not(.small) .wsp-icon{margin-right:0.5rem;overflow:visible}.ldk-wsp-button.small .wsp-label{display:none}.ldk-wsp-button{background-color:#00c9a3;color:rgba(0,0,0,0.87);color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87));height:65px;width:65px;overflow:hidden;color:#fff !important;z-index:8080}.ldk-wsp-button::before,.ldk-wsp-button::after{background-color:rgba(0,0,0,0.87)}@supports not (-ms-ime-align: auto){.ldk-wsp-button::before,.ldk-wsp-button::after{background-color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87))}}.ldk-wsp-button:hover::before{opacity:.04}.ldk-wsp-button:not(.mdc-ripple-upgraded):focus::before,.ldk-wsp-button.mdc-ripple-upgraded--background-focused::before{transition-duration:75ms;opacity:.12}.ldk-wsp-button:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.ldk-wsp-button:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.16}.ldk-wsp-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: .16}.ldk-wsp-button.small{border-radius:50% !important}.ldk-wsp-button.small .wsp-label{display:none}.ldk-wsp-button:before{width:100%;height:100%;top:0%;left:0%}.ldk-wsp-button:after{width:100%;height:100%;top:0%;left:0%}.ldk-wsp-button.small{border-radius:50% !important}.ldk-wsp-button:not(.small){font-family:Nunito, sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1rem;line-height:2.25rem;text-decoration:none;font-weight:700;padding:0 20px;width:auto;max-width:100%;height:48px}.ldk-wsp-button:not(.small):before{width:200%;height:200%;left:0%;top:0%}.ldk-wsp-button:not(.small):after{width:200%;height:200%;left:0%;top:0%}.ldk-wsp-container{z-index:1999999}.ldk-wsp-container.ldk-disabled .ldk-wsp-button{background-color:silver;color:rgba(0,0,0,0.87);color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87))}.ldk-wsp-container.ldk-disabled .ldk-wsp-button::before,.ldk-wsp-container.ldk-disabled .ldk-wsp-button::after{background-color:rgba(0,0,0,0.87)}@supports not (-ms-ime-align: auto){.ldk-wsp-container.ldk-disabled .ldk-wsp-button::before,.ldk-wsp-container.ldk-disabled .ldk-wsp-button::after{background-color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87))}}.ldk-wsp-container.ldk-disabled .ldk-wsp-button:hover::before{opacity:.04}.ldk-wsp-container.ldk-disabled .ldk-wsp-button:not(.mdc-ripple-upgraded):focus::before,.ldk-wsp-container.ldk-disabled .ldk-wsp-button.mdc-ripple-upgraded--background-focused::before{transition-duration:75ms;opacity:.12}.ldk-wsp-container.ldk-disabled .ldk-wsp-button:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.ldk-wsp-container.ldk-disabled .ldk-wsp-button:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.16}.ldk-wsp-container.ldk-disabled .ldk-wsp-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: .16}.ldk-wsp-button.ldk-disabled{background-color:silver;color:rgba(0,0,0,0.87);color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87))}.ldk-wsp-button.ldk-disabled::before,.ldk-wsp-button.ldk-disabled::after{background-color:rgba(0,0,0,0.87)}@supports not (-ms-ime-align: auto){.ldk-wsp-button.ldk-disabled::before,.ldk-wsp-button.ldk-disabled::after{background-color:var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87))}}.ldk-wsp-button.ldk-disabled:hover::before{opacity:.04}.ldk-wsp-button.ldk-disabled:not(.mdc-ripple-upgraded):focus::before,.ldk-wsp-button.ldk-disabled.mdc-ripple-upgraded--background-focused::before{transition-duration:75ms;opacity:.12}.ldk-wsp-button.ldk-disabled:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.ldk-wsp-button.ldk-disabled:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:.16}.ldk-wsp-button.ldk-disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: .16}.wsp-form-submit{text-align:right}.wsp-form-submit [type=submit]{width:100%;height:42px;border-radius:40px;font:bold 20px Nunito;letter-spacing:0;text-transform:inherit;margin:16px 0}.wsp-form-submit [type=submit]:not(:disabled){background-color:#25d366}.wsp-form-submit [type=submit]:not(:disabled){color:#fff}.wsp-powered-by{background-color:#eee;color:#aaa !important;display:none;width:100%;box-sizing:border-box;font-family:Nunito, Helvetica Neue,sans-serif;font-size:11px;margin:0;cursor:pointer;padding:0.2rem 0;text-align:center;text-decoration:none}.wsp-powered-by img{vertical-align:middle;display:inline !important;width:initial !important;height:14px}.ldk-wsp-container{display:block !important;opacity:1 !important;font-size:initial !important;width:auto}.ldk-wsp-container .ldk-wsp-loading,.ldk-wsp-container .ldk-wsp-error{display:none}.ldk-wsp-container .wsp-card{display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;position:relative}.ldk-wsp-container .wsp-card .wsp-form-container{display:flex;flex-direction:column;flex-grow:1;justify-content:space-between}.ldk-wsp-container .wsp-card .wsp-form-container .wsp-form{opacity:0}.ldk-wsp-container .wsp-card .wsp-form-container .wsp-form .space-padding-wsp{padding:12px 24px}.ldk-wsp-container .wsp-card .wsp-form-container .wsp-form .wsp-title{width:100%;text-align:left;font:23px Nunito,sans-serif;font-weight:600;color:#515151;margin:5px 0 8px 0}.ldk-wsp-container .wsp-card .wsp-form-container .wsp-form .wsp-notice{font:14px Nunito,sans-serif;color:#515151;margin-bottom:1rem}.ldk-wsp-container .wsp-card .wsp-form-container .wsp-form .wsp-notice em{font-style:normal}.ldk-wsp-container .wsp-card .wsp-title-top{width:100%;padding:.5rem;box-sizing:border-box;background-color:#00c9a3;display:none;cursor:pointer}.ldk-wsp-container .wsp-card .wsp-title-top .wsp-icon{padding-left:1rem;text-align:left}.ldk-wsp-container .wsp-card .wsp-title-top .wsp-icon img{display:inline !important;width:initial !important}.ldk-wsp-container .wsp-card .wsp-title-top .material-icons{cursor:pointer;color:#fff}.ldk-wsp-container.is-expanding,.ldk-wsp-container.is-expanding .wsp-card,.ldk-wsp-container.is-unexpanding,.ldk-wsp-container.is-unexpanding .wsp-card,.ldk-wsp-container.is-expanded,.ldk-wsp-container.is-expanded .wsp-card{width:calc( 100vw - .96rem) !important;margin-top:.48rem}@media (min-width: 576px){.ldk-wsp-container.is-expanding,.ldk-wsp-container.is-expanding .wsp-card,.ldk-wsp-container.is-unexpanding,.ldk-wsp-container.is-unexpanding .wsp-card,.ldk-wsp-container.is-expanded,.ldk-wsp-container.is-expanded .wsp-card{width:315px !important;height:530px !important}}.ldk-wsp-container.is-expanding.cliengo-compatible,.ldk-wsp-container.is-expanding.cliengo-compatible .wsp-card,.ldk-wsp-container.is-unexpanding.cliengo-compatible,.ldk-wsp-container.is-unexpanding.cliengo-compatible .wsp-card,.ldk-wsp-container.is-expanded.cliengo-compatible,.ldk-wsp-container.is-expanded.cliengo-compatible .wsp-card{width:calc( 100vw - .816rem) !important;height:calc( 100% - 3.36rem) !important}@media (min-width: 576px){.ldk-wsp-container.is-expanding.cliengo-compatible,.ldk-wsp-container.is-expanding.cliengo-compatible .wsp-card,.ldk-wsp-container.is-unexpanding.cliengo-compatible,.ldk-wsp-container.is-unexpanding.cliengo-compatible .wsp-card,.ldk-wsp-container.is-expanded.cliengo-compatible,.ldk-wsp-container.is-expanded.cliengo-compatible .wsp-card{width:315px !important;height:530px !important}}.ldk-wsp-container.is-expanding .wsp-card,.ldk-wsp-container.is-expanded .wsp-card{border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.ldk-wsp-container.is-expanding .wsp-card{background-color:#00c9a3}.ldk-wsp-container.is-expanded{z-index:9999999}.ldk-wsp-container.is-expanded .ldk-wsp-error{position:absolute;width:100%;height:100%;left:0;top:0;background-color:rgba(0,0,0,0.3);display:block;text-align:center}.ldk-wsp-container.is-expanded .ldk-wsp-error .text{color:red;font-size:40px;font-family:Nunito, sans-serif;margin:50% 0 0 0}.ldk-wsp-container.is-expanded .ldk-wsp-error .icon{color:red;font-size:60px;margin:0}.ldk-wsp-container.is-expanded .ldk-wsp-loading{position:absolute;width:100%;height:100%;left:0;top:0;background-color:rgba(0,0,0,0.3);display:flex;align-items:center;justify-content:center}.ldk-wsp-container.is-expanded .ldk-wsp-loading .icon{color:white;opacity:1;font-size:60px;animation:wsp-loading 2s ease 0s infinite normal}.ldk-wsp-container.is-expanded .wsp-card{background-color:white}.ldk-wsp-container.is-expanded .wsp-card .ldk-wsp-button{display:none}.ldk-wsp-container.is-expanded .wsp-card .wsp-title-top{display:flex;align-items:center;justify-content:space-between}.ldk-wsp-button{transition:opacity 175ms 150ms;opacity:0 !important;will-change:opacity}.ldk-wsp-button.initialized{opacity:1 !important;animation-delay:500ms}.ldk-wsp-container .wsp-card{transition:all 700ms ease -200ms}.ldk-wsp-container .wsp-card .wsp-form{transition:all 300ms}.ldk-wsp-container .wsp-card .ldk-wsp-button{transition:all 700ms cubic-bezier(0.23, 1, 0.32, 1);will-change:width,height}.ldk-wsp-container .wsp-card .ldk-wsp-button .wsp-icon,.ldk-wsp-container .wsp-card .ldk-wsp-button .wsp-label{opacity:1;will-change:opacity;transition:opacity 300ms ease 700ms}.ldk-wsp-container.is-expanding .wsp-card{transition-property:background-color,box-shadow,border-radius;transition-duration:200ms;transition-delay:500ms}.ldk-wsp-container.is-expanding .wsp-card .ldk-wsp-button{transition:all 2s cubic-bezier(0.215, 0.61, 0.355, 1) 200ms;transform:scale(60)}@media (min-width: 576px){.ldk-wsp-container.is-expanding .wsp-card .ldk-wsp-button{transform:scale(30)}}.ldk-wsp-container.is-expanding .wsp-card .ldk-wsp-button .wsp-icon,.ldk-wsp-container.is-expanding .wsp-card .ldk-wsp-button .wsp-label{opacity:0;transition:all 0s cubic-bezier(0.23, 1, 0.32, 1) 0s}@media (max-width: 575px){.ldk-wsp-container.is-expanded ::-webkit-scrollbar{display:none}.ldk-wsp-container.is-expanded .wsp-card,.ldk-wsp-container.is-expanded .wsp-form{overflow-y:auto !important}}.ldk-wsp-container.is-expanded .wsp-powered-by{display:block !important}.ldk-wsp-container.is-expanded .wsp-form{opacity:1 !important;transition:opacity 500ms ease-in-out 200ms}.ldk-wsp-container.is-expanded .ldk-wsp-button .wsp-icon,.ldk-wsp-container.is-expanded .ldk-wsp-button .wsp-label{opacity:0;transition:opacity 300ms ease 700ms}@keyframes wsp-loading{from{transform:rotate(359deg)}to{transform:rotate(0deg)}}@-webkit-keyframes wsp-loading{from{transform:rotate(359deg)}to{transform:rotate(0deg)}}.ldk-wsp-button{position:fixed;left:.48rem;top:.48rem}.ldk-wsp-button.ldk-right{right:.96rem;left:initial}.ldk-wsp-button.ldk-left{left:.96rem;right:initial}.ldk-wsp-button.ldk-top{top:.96rem;bottom:initial}.ldk-wsp-button.ldk-bottom{bottom:.96rem;top:initial}@media (min-width: 721px){.ldk-wsp-button.md-right{right:.48rem;left:initial}.ldk-wsp-button.md-left{left:.48rem;right:initial}.ldk-wsp-button.md-top{top:.48rem;bottom:initial}.ldk-wsp-button.md-bottom{bottom:.48rem;top:initial}}.ldk-wsp-container{position:fixed;overflow:visible;left:.48rem;top:.48rem}.ldk-wsp-container .wsp-card{position:relative}.ldk-wsp-container.ldk-right{right:.48rem;left:initial}.ldk-wsp-container.ldk-left{left:.48rem;right:initial}.ldk-wsp-container.ldk-top{top:.48rem;bottom:initial}.ldk-wsp-container.ldk-bottom{bottom:.48rem;top:initial}.ldk-wsp-container.ldk-right .ldk-wsp-button{right:.48rem;left:initial}.ldk-wsp-container.ldk-left .ldk-wsp-button{left:.48rem;right:initial}.ldk-wsp-container.ldk-top .ldk-wsp-button{top:.48rem;bottom:initial}.ldk-wsp-container.ldk-bottom .ldk-wsp-button{bottom:.48rem;top:initial}.ldk-wsp-container.middle{transition:all 1s ease-in-out}@media (min-width: 721px){.ldk-wsp-container.middle.is-expanded,.ldk-wsp-container.middle.is-expanding{height:530px;width:315px;position:fixed;left:50%;top:50%;margin-left:calc(-315px/2);margin-top:calc(-530px/2)}.ldk-wsp-container.middle.is-expanded .wsp-card,.ldk-wsp-container.middle.is-expanding .wsp-card{margin:auto}}.ldk-wsp-container .ldk-wsp-button{position:absolute;left:.48rem;top:.48rem}.ldk-wsp-container .ldk-wsp-button.bottom:hover{box-shadow:0px 0.25rem 5px -3px rgba(0,0,0,0.2),0px 0.5rem 10px 0.1rem rgba(0,0,0,0.14),0px 0.2rem 14px 0.3rem rgba(0,0,0,0.12)}.ldk-wsp-container .ldk-wsp-button.bottom:active{box-shadow:0px 0.25rem 5px -3px rgba(0,0,0,0.2),0px 0.5rem 10px 0.1rem rgba(0,0,0,0.14),0px 0.2rem 14px 0.3rem rgba(0,0,0,0.12)}.ldk-wsp-container.cliengo-compatible{bottom:2.88rem;right:0.85rem}.poweredByPopup-hidden{display:none}.powered-by-popup{position:absolute;height:100%;width:100%;background:rgba(0,0,0,0.7);z-index:100000;border-radius:7px 7px 0 0;display:flex;align-items:center;justify-content:center}.powered-by-popup .dialog{border-radius:6px;background:#f7f7f7;padding:48px 24px 32px 24px;position:relative;width:70%;text-align:center;color:#515151;font-weight:bold;opacity:0;animation:slideIn 300ms 100ms forwards;font-family:Nunito, sans-serif}.powered-by-popup .dialog .close-dialog{position:absolute;right:12px;top:8px;color:#B3B3B3;font-size:18px;cursor:pointer}.powered-by-popup .dialog .icon-cancel{font-family:sans-serif;font-weight:600}.powered-by-popup .dialog .cta{display:inline-block;margin-top:16px;border:none;background:#8367F5;border-radius:16px;color:#fff;text-decoration:none;padding:8px 24px;box-shadow:0 3px 6px rgba(0,0,0,0.16);transition:background-color 300ms;cursor:pointer}.powered-by-popup .dialog .cta:hover{background-color:#6f4ff3}@keyframes slideIn{from{opacity:0;transform:translateY(-30%)}to{opacity:1;transform:translateY(0)}}.icon{font-size:14px;cursor:pointer}.icon-cancelar::before{color:#777}.icon-cancelar{cursor:s-resize;margin-left:15px}.wsp-input-container{display:flex;flex-direction:column;margin-bottom:6px !important}.wsp-input-container a{color:#337ab7 !important;text-decoration:none !important}.wsp-input-container.ldk-input-error label{color:#f00 !important}.wsp-input-container.ldk-input-error input,.wsp-input-container.ldk-input-error select{border-color:#f00 !important}.wsp-input-container.ldk-input-error .ldk-error-msg{display:block !important}.wsp-input-container .ldk-error-msg{display:none;color:#f00 !important;font-size:12px !important;font-family:Nunito, Helvetica Neue, sans-serif}.wsp-input-container label{color:#515151 !important;font:bold 14px Nunito,sans-serif !important;text-align:left !important;max-width:100% !important;text-overflow:ellipsis !important;margin-bottom:5px !important;padding:0 !important;height:auto !important}.wsp-input-container input,.wsp-input-container textarea{width:100% !important}.wsp-input-container textarea{overflow:hidden;min-height:30px;max-height:100px;box-sizing:border-box}.wsp-input-container input,.wsp-input-container select,.wsp-input-container textarea{font-family:Nunito, Helvetica Neue, sans-serif !important;background-color:#fff !important;border:none !important;border-bottom:1px solid #EDEDED !important;transition:border-bottom-color 300ms !important;margin-bottom:6px !important;padding:0 !important;height:auto;font-size:14px !important;color:#515151 !important}.wsp-input-container input:focus,.wsp-input-container select:focus,.wsp-input-container textarea:focus{outline:none !important;border-bottom-color:#00c9a3 !important;color:#515151 !important}.whatsapp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;opacity:0.5}.wsp-card__header{margin-bottom:12px}.wsp-card__content{overflow:hidden;padding-left:24px;padding-right:24px}

/*# sourceURL=/app/src/node_modules/@material/ripple/_keyframes.scss */
/*# sourceURL=/app/src/node_modules/@material/ripple/common.scss */
/*# sourceURL=/app/src/node_modules/@material/fab/mdc-fab.scss */
/*# sourceURL=/app/src/node_modules/@material/ripple/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/elevation/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/shape/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/fab/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/theme/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/shape/_functions.scss */
/*# sourceURL=/app/src/node_modules/@material/elevation/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/theme/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/ripple/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/fab/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/typography/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/rtl/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/animation/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/button/_mixins.scss */
/*# sourceURL=/app/src/node_modules/@material/shape/_variables.scss */
/*# sourceURL=/app/src/node_modules/@material/button/mdc-button.scss */
/*# sourceURL=/app/src/node_modules/@material/button/_variables.scss */
/*# sourceURL=/app/src/src/css/_button.scss */
/*# sourceURL=/app/src/src/css/_variables.scss */
/*# sourceURL=/app/src/src/css/_containers.scss */
/*# sourceURL=/app/src/src/css/_animation.scss */
/*# sourceURL=/app/src/src/css/_position.scss */
/*# sourceURL=/app/src/src/css/_inputs.scss */
/*# sourceURL=/app/src/src/css/_backdrop.scss */
/*# sourceURL=/app/src/src/css/_layout.scss */
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvcmlwcGxlL19rZXlmcmFtZXMuc2NzcyIsIi9hcHAvc3JjL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvcmlwcGxlL2NvbW1vbi5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9mYWIvbWRjLWZhYi5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9yaXBwbGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9lbGV2YXRpb24vX21peGlucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9zaGFwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2ZhYi9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3RoZW1lL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvc2hhcGUvX2Z1bmN0aW9ucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9lbGV2YXRpb24vX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90aGVtZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3JpcHBsZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2ZhYi9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3R5cG9ncmFwaHkvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9ydGwvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9hbmltYXRpb24vX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9idXR0b24vX21peGlucy5zY3NzIiwiL2FwcC9zcmMvbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9zaGFwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2J1dHRvbi9tZGMtYnV0dG9uLnNjc3MiLCIvYXBwL3NyYy9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2J1dHRvbi9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zcmMvY3NzL19idXR0b24uc2NzcyIsIi9hcHAvc3JjL3NyYy9jc3MvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc3JjL2Nzcy9fY29udGFpbmVycy5zY3NzIiwiL2FwcC9zcmMvc3JjL2Nzcy9fYW5pbWF0aW9uLnNjc3MiLCIvYXBwL3NyYy9zcmMvY3NzL19wb3NpdGlvbi5zY3NzIiwiL2FwcC9zcmMvc3JjL2Nzcy9faW5wdXRzLnNjc3MiLCIvYXBwL3NyYy9zcmMvY3NzL19iYWNrZHJvcC5zY3NzIiwiL2FwcC9zcmMvc3JjL2Nzcy9fbGF5b3V0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJFLG1DQUNFLEtBQ0UsdURBS0EscUVBQXNFLENBR3hFLEdBQ0UsK0ZBQWdHLENBQUEsQ0FJcEcsb0NBQ0UsS0FDRSxpQ0FDQSxTQUFVLENBR1osR0FDRSx1Q0FBd0MsQ0FBQSxDQUk1QyxxQ0FDRSxLQUNFLGlDQUNBLHVDQUF3QyxDQUcxQyxHQUNFLFNBQVUsQ0FBQSxDQzNCZCx1Q0FDRSxtREFFQSxpQkFBa0IsQ0FIcEIsK0NBTUksOENBQStDLENDWnJELHlCQ0FFLHdCQUNBLHFCQUNBLG9CQUNBLHlCQUNBLGlDQUNBLG1DQUVBLDBDQUNBLCtCQ1lBLGdIQ3RCQSxtQkNxRkEsb0JBQ0Esa0JBQ0EsbUJBQ0EsdUJBQ0Esc0JBQ0EsV0FDQSxZQUNBLFVBQ0EsaUlBSUEsWUFDQSxrQkFDQSxlQUNBLGlCQUNBLHFCQUNBLHdCQUNBLGdCQ2pFSSx5QkFBQSxXQWlCRSx5Q0FBNEQsQ0xyRHBFLGdGQ1lJLGtCQUNBLGtCQUNBLFVBQ0Esb0JBQ0EsVUFBVyxDRGhCZix5Q0NxQkksNERBR0EsU0FBVSxDRHhCZCxpRkM4QkksOENBQStDLENEOUJuRCwrRUNrQ0ksTUFHQSxPQUNBLG1CQUNBLDhCQUErQixDRHZDbkMscUdDMkNJLDZCQUdBLDhCQUErQixDRDlDbkMsNkhDa0RJLHVGQUVnRSxDRHBEcEUsaUlDd0RJLDBDQUVBLCtGQUFnRyxDRDFEcEcsZ0ZDK0pJLHFCQUdBLHNCQUNBLFdBQ0EsV0FBbUIsQ0RwS3ZCLCtFQ3dLSSxzQ0FDQSxzQ0FBMEMsQ0R6SzlDLHFER0ZFLGtCR21EaUQsQ05qRG5ELDZER0ZFLGtCR21EaUQsQ05qRG5ELDZESXdHSSxVQUNBLFFBQVMsQ0p6R2IsMEVFb0JFLCtHS3hCa0MsQ1BJcEMsdUNFb0JFLGdIS3hCa0MsQ1BJcEMsNEVJMkhJLFlBQWEsQ0ozSGpCLHFDSStISSxjQUFlLENKL0huQixpQ0l3SUksVUFBVyxDQy9GNkIsb0NMekM1Qyx5Qks2Q2Msb0RBQTRELENBQzdELENMOUNiLGlGSXdCSSxXQUNBLFlBQ0EsY0p2QjZCLENBSGpDLGdGS29DTSxxQkczQnlGLENQNEQ1RixvQ0RyRUgsZ0ZLNkNjLG9EQUE0RCxDQUM3RCxDTDlDYixxREMyRUksV1FuRVEsQ1RSWixrT0M4RkkseUJBQ0EsV1F0RlEsQ1RUWiwyRkN5R00sK0JBQXdELENEekc5RCx5R0M2R00seUJBQ0EsV1FwR00sQ1RWWixpRUNtSEksNEJBQXdCLENEM0c1QixlSXNJRSxXQUNBLFdNbEp3QixDVmF6QixtQldBRyw4QkFBQSxrQ0FBQSxtQ0FBQSxrQkFBQSxvQkFBQSxnQkFBQSx3QkFBQSxxQkFBQSx5QlBpREYsZUE2RkEsV0FDQSxlQUNBLFdNNUo0QixDVmM5Qiw0SFkyTkUsaUJBR0EsaUJGaFBrQyxDTnFEakMsNlRRK0xDLGlCQUdBLGlCUnBNZ0MsQ0pqQ3BDLHNaWTJORSxpQkFHQSxpQlJwTGtDLENBQ2pDLDY4QlF1TEMsaUJBR0EsaUJGdlBnQyxDVnNCcEMsMkNJb0pFLDJCQUNBLHVCQUNBLG1CQUNBLGVBQWdCLENKckpqQix5Q0k0SUMsMkRBQ0Esa0JBQ0EscUJBQXNCLENKaEt4QixpRkkyS0Usb0JBQ0EsbUJBQ0Esc0JBQXVCLENKakp4QixpQklxSkMsbUJBQ0Esb0ZBR0EsU0FBVSxDSnZKWixzSEkwSkksbUJBQ0EseURTN0x3RSxDVDhMekUsMkNPaExDLDhCQUFBLGtDQUFBLG1DQUFBLGtCQUFBLG9CQUFBLGdCQUFBLHdCQUFBLHFCQUFBLHlCVlZGLHdCQUNBLHFCQUNBLG9CQUNBLHlCQUNBLGlDQUNBLG1DQUVBLDBDQUNBLCtCYThDQSxvQkFrQkEsb0JBQ0Esa0JBQ0EsbUJBQ0EsdUJBQ0Esc0JBQ0EsZUFDQSxZQUNBLFlBQ0EsYUFHQSxvQkFDQSxpQkFDQSx3QkFDQSxnQkFDQSxzQlh6RkEsaUJZSGtDLENkZWxDLG9IQUVFLGtCQUNBLGtCQUNBLFVBQ0Esb0JBQ0EsVUFBVyxDQUNaLDJEQUlDLDREQUdBLFNBQVUsQ0FDWCxtR0FLQyw4Q0FBK0MsQ0FDaEQsaUdBR0MsTUFHQSxPQUNBLG1CQUNBLDhCQUErQixDQUNoQyx1SEFHQyw2QkFHQSw4QkFBK0IsQ0FDaEMsK0lBR0MsdUZBRWdFLENBQ2pFLG1KQUdDLDBDQUVBLCtGQUFnRyxDQWhEbEcsb0hBcUpFLHFCQUdBLHNCQUNBLFdBQ0EsV0FBbUIsQ0FuSXJCLGlHQXVJRSxzQ0FDQSxzQ0FBMEMsQ0FDM0MsK0VhaEZDLFVBQ0EsUUFBUyxDRTNGYix5REZnR0ksWUFBYSxDRWhHakIsdURGb0dJLGNBQWUsQ0VwR25CLDZEWE1NLCtCU29HRix1QkFDQSxlQUNBLG1CQUFvQixDRTVHeEIsK0ViRkUsaUJZSGtDLENDS3BDLHlFWE1NLDhCV0hnRCxDQUh0RCx5RVhvQ00sY0FpQkUsdUNBQTRELENKM0NsRSxvSEkwQkksd0JHbENxQixDUG1FeEIsb0NBM0RELG9ISW1DWSxrREFBNEQsQ0FDN0QsQ0o0QlgsdUVBQ0UsV1EzRVEsQ1I0RVQsc1FBa0JDLHlCQUNBLFdROUZRLENSK0ZULDZHQVNHLCtCQUF3RCxDQUN6RCwySEFHQyx5QkFDQSxXUTVHTSxDUjZHUCxtRkFJRCw0QkFBd0IsQ0FDekIsK0VXbUhELGNBR0EsaUJFdkhBLHFCQUNBLFdBQ0EsWUFDQSxlQUNBLGtCQUFtQixDRTFHbEIseVFKaU9DLGdCQUdBLGNBM0hjLENBbEViLHFGRXVFSCxpQkFBa0IsQ0V6R2pCLHlLSnFORCxpQkFHQSxnQkUzR3FELENFcEdwRCwyZUptTkMsZ0JBR0EsaUJFbEg4QyxDRjNFN0MsMkVFRUgscUJHMUQ0QyxDRGtDOUMsc0dGZ0hJLGtDQUNBLHNCTmxJaUYsQ1FpQnJGLHdIWE1NLHdCR2xDcUIsQ0h1Q2lCLG9DV1g1Qyx3SFhlYyxrREFBNEQsQ0FDN0QsQ1doQmIsd0hYTU0sV0FpQkUsdUNBQTRELENKYWxFLG1NSTlCSSxxQkdqQ3FGLENQa0V4RixvQ0FIRCxtTUlyQlksa0RBQTRELENBQzdELENKNEJYLHFIQUNFLFdRbkVRLENSb0VULDhaQWtCQyx5QkFDQSxXUXRGUSxDUnVGVCw4S0FTRywrQkFBd0QsQ0FDekQsbU1BR0MseUJBQ0EsV1FwR00sQ1JxR1AsdUlBSUQsNEJBQXdCLENBQ3pCLG9CQ2hHRCw4R1lrSUEsd0RaL0cwRCxDY0Q1RCxvRGRsQkUsOEdLeEJrQyxDUzBDcEMsMkJkbEJFLCtHS3hCa0MsQ1MwQ3BDLDZCZGxCRSw0R0t4QmtDLENTOENwQyxzQkZ5RkUsbUJBN0VBLHNCQVNBLGdCRW5CcUMsQ0FGdkMsK0JGNEZJLDZCTnpIaUYsQ1E2QnJGLHFDWE5NLHFCQWlCRSw4Q0FBNEQsQ1dMcEUsbUJGdUhFLFlBQ0Esa0JBQW1CLENJeExyQiw4QkFDSSxXQUNBLFdDVFksQ0RVZixzQkFLTyxrQkFBbUIsQ0FGM0IsMEJBT1EsUUFBUyxDQVBqQiwyQkFZUSx5QkFBeUIsQ0FDNUIsc0NBS0csb0JBQ0EsZ0JBQWlCLENBQ3BCLGlDQUtHLFlBQWEsQ0FDaEIsZ0JiVkMseUJBOEJBLHVCQWlCRSwrRGFqQkosWUFDQSxXQUVBLGdCQUNBLHNCQUNBLFlBQWEsQ0FkakIsK0NiU00saUNHWmlCLENQNkNwQixvQ2lCMUNILCtDYmtCYyx5RUFBNEQsQ0FDN0QsQ2FuQmIsOEJqQmdESSxXUTNFUSxDUzJCWix3SGpCbUVJLHlCQUNBLFdROUZRLENTMEJaLGlEakI4RU0sK0JBQXdELENpQjlFOUQsd0RqQmtGTSx5QkFDQSxXUTVHTSxDU3lCWixvQ2pCd0ZJLDRCQUF3QixDaUI3SDVCLHNCQXlDUSw0QkFBNkIsQ0FsQnJDLGlDQW9CWSxZQUFhLENBTnpCLHVCQXNCUSxXQUNBLFlBQ0EsT0FDQSxPQUFRLENBekJoQixzQkFtQ1EsV0FDQSxZQUNBLE9BQ0EsT0FBUSxDQTNFaEIsc0JBZ0ZJLDRCQUE2QixDQUNoQyw0QkFPRywrQkFDQSxrQ0FDQSxtQ0FDQSxlQUNBLG9CQUNBLHFCQUlBLGdCQUNBLGVBQ0EsV0FDQSxlQUNBLFdBQVksQ0FqQmhCLG1DQXFCUSxXQUNBLFlBQ0EsUUFDQSxNQUFPLENBeEJmLGtDQTZCUSxXQUNBLFlBQ0EsUUFDQSxNQUFPLENBQ1YsbUJBSUQsZUFBZ0IsQ0FEcEIsZ0RieEdNLHdCQThCQSx1QkFpQkUsOERBQTRELENheURwRSwrR2IxRU0saUNHWmlCLENQNkNwQixvQ2lCeUNILCtHYmpFYyx5RUFBNEQsQ0FDN0QsQ2FnRWIsOERqQm5DSSxXUTNFUSxDUzhHWix3TGpCaEJJLHlCQUNBLFdROUZRLENTNkdaLGlGakJMTSwrQkFBd0QsQ2lCSzlELHdGakJETSx5QkFDQSxXUTVHTSxDUzRHWixvRWpCS0ksNEJBQXdCLENpQk01Qiw2QmJuSE0sd0JBOEJBLHVCQWlCRSw4REFBNEQsQ2FvRXBFLHlFYnJGTSxpQ0daaUIsQ1A2Q3BCLG9DaUJvREgseUViNUVjLHlFQUE0RCxDQUM3RCxDYTJFYiwyQ2pCOUNJLFdRM0VRLENTeUhaLGtKakIzQkkseUJBQ0EsV1E5RlEsQ1N3SFosOERqQmhCTSwrQkFBd0QsQ2lCZ0I5RCxxRWpCWk0seUJBQ0EsV1E1R00sQ1N1SFosaURqQk5JLDRCQUF3QixDaUJrQjVCLGlCQUVJLGdCQUFpQixDQUZyQiwrQkFVUSxXQUNBLFlBQ0EsbUJBQ0Esc0JBQ0EsaUJBQ0EsdUJBQ0EsYUFBYyxDQWhCdEIsOENiL0hNLHdCY2hDb0IsQ0QrSjFCLDhDYi9ITSxVYzlCYSxDRHdMbkIsZ0JBUUksc0JBQ0Esc0JBQ0EsYUFDQSxXQUNBLHNCQUNBLDhDQUNBLGVBQ0EsU0FDQSxlQUNBLGlCQUNBLGtCQUNBLG9CQUFxQixDQW5CekIsb0JBRVEsc0JBQ0EsMEJBQ0EseUJBQ0EsV0FBWSxDQXZEcEIsbUJFaElJLHlCQUNBLHFCQUNBLDZCQUNBLFVBQVcsQ0FKZixzRUFPUSxZQUFhLENBUHJCLDZCQVlRLGFBQ0Esc0JBQ0EsZ0JBQ0Esc0JBQ0EsaUJBQWtCLENBaEIxQixpREFrQlksYUFDQSxzQkFDQSxZQUNBLDZCQUE4QixDQXJCMUMsMkRBdUJZLFNBQVUsQ0F2QnRCLDhFQXlCK0IsaUJBQWtCLENBekJqRCxzRUE0QmdCLFdBQ0EsZ0JBQ0EsNEJBQ0EsZ0JBQ0EsY0FDQSxrQkFBbUIsQ0FqQ25DLHVFQW9DZ0IsNEJBQ0EsY0FDQSxrQkFBbUIsQ0F0Q25DLDBFQXdDb0IsaUJBQWtCLENBeEN0Qyw0Q0E4Q1ksV0FDQSxjQUNBLHNCQUNBLHlCQUNBLGFBQ0EsY0FBZSxDQW5EM0Isc0RBc0RnQixrQkFDQSxlQUFnQixDQXZEaEMsMERBMERvQiwwQkFDQSx3QkFBd0IsQ0EzRDVDLDREQWlFZ0IsZUFDQSxVRHZFRyxDQ0tuQixnT0EwRVksdUNBRUEsaUJEekVHLENDMEVOLDBCQTdFVCxnT0FnRmdCLHVCQUNBLHVCQUFpQyxDQUNwQyxDQWxGYixrVkF1RmdCLHdDQUNBLHVDQUFpRSxDQUNwRSwwQkF6RmIsa1ZBNEZvQix1QkFDQSx1QkFBaUMsQ0FDcEMsQ0E5RmpCLG1GQXFHWSxrQkFDQSxvQ0FBcUMsQ0F0R2pELDBDQTRHWSx3QkRwSFksQ0NReEIsK0JBaUhRLGVBQWdCLENBakh4Qiw4Q0FtSFksa0JBQ0EsV0FDQSxZQUNBLE9BQ0EsTUFDQSxpQ0FDQSxjQUNBLGlCQUFrQixDQTFIOUIsb0RBNEhnQixVQUNBLGVBQ0EsK0JBQ0EsZ0JBQWlCLENBL0hqQyxvREFrSWdCLFVBQ0EsZUFDQSxRQUFTLENBcEl6QixnREF5SVksa0JBQ0EsV0FDQSxZQUNBLE9BQ0EsTUFDQSxpQ0FDQSxhQUNBLG1CQUNBLHNCQUF1QixDQWpKbkMsc0RBbUpnQixZQUNBLFVBQ0EsZUFDQSxnREFBaUQsQ0F0SmpFLHlDQTRKWSxzQkFBdUIsQ0E1Sm5DLHlEQStKZ0IsWUFBYSxDQS9KN0Isd0RBbUtnQixhQUNBLG1CQUNBLDZCQUE4QixDRnZIOUMsZ0JHNUNJLCtCQUNBLHFCQUNBLG1CQUFvQixDQUN2Qiw0QkFHRyxxQkFDQSxxQkFBc0IsQ0RUMUIsNkJDNEJRLGdDQUFpQyxDQUh6Qyx1Q0FNWSxvQkFBcUIsQ0FOakMsNkNBVVksb0RBQ0Esd0JBQXlCLENBWHJDLCtHQWVZLFVBQ0Esb0JBQ0EsbUNBQW9DLENEMUNoRCwwQ0NtRFksOERBQ0EsMEJBQ0Esc0JBQXVCLENBNUJuQywwREErQmdCLDREQUNBLG1CQUFvQixDQUNwQiwwQkFqQ2hCLDBEQWtDb0IsbUJBQW9CLENBRTNCLENBcENiLHlJQXVDZ0IsVUFDQSxtREFBOEQsQ0FDakUsMEJBekNiLG1EQWlEZ0IsWUFBYSxDQWpEN0Isa0ZBb0RnQiwwQkFBMkIsQ0FDOUIsQ0FyRGIsK0NBMERZLHdCQUF5QixDQTFEckMseUNBOERZLHFCQUNBLDBDQUEyQyxDQS9EdkQsbUhBbUVZLFVBQ0EsbUNBQW9DLENBQ3ZDLHVCQWFMLEtBQU0sd0JBQXlCLENBQy9CLEdBQUksc0JBQXVCLENBQUEsQ0FHL0IsK0JBQ0ksS0FBTSx3QkFBeUIsQ0FDL0IsR0FBSSxzQkFBdUIsQ0FBQSxDSG5FL0IsZ0JJb0JJLGVBQ0EsWUFDQSxVSGpFVyxDR0hYLDBCQUNJLGFBQ0EsWUFBYSxDQUNoQix5QkFFRyxZQUNBLGFBQWMsQ0FDakIsd0JBRUcsV0FDQSxjQUFlLENBQ2xCLDJCQUVDLGNBQ0EsV0FBWSxDQUNiLDBCQUlELHlCQUNJLGFBQ0EsWUFBYSxDQUNoQix3QkFFRyxZQUNBLGFBQWMsQ0FDakIsdUJBRUcsV0FDQSxjQUFlLENBQ2xCLDBCQUVDLGNBQ0EsV0FBWSxDQUNiLENKK0ZMLG1CSXpDSSxlQUNBLGlCQUNBLFlBQ0EsVUh4RlcsQ0NIZiw2QkU4RlEsaUJBQWtCLENBOUZ0Qiw2QkFDSSxhQUNBLFlBQWEsQ0FDaEIsNEJBRUcsWUFDQSxhQUFjLENBQ2pCLDJCQUVHLFdBQ0EsY0FBZSxDQUNsQiw4QkFFQyxjQUNBLFdBQVksQ0FDYiw2Q0F3QkcsYUFDQSxZQUFhLENBQ2hCLDRDQUVHLFlBQ0EsYUFBYyxDQUNqQiwyQ0FFRyxXQUNBLGNBQWUsQ0FDbEIsOENBRUMsY0FDQSxXQUFZLENBQ2IsMEJBZ0RHLDZCQUE4QixDQUU5QiwwQkFoQlIsNkVBbUJnQixhQUNBLFlBQ0EsZUFDQSxTQUNBLFFBQ0EsMkJBQ0EseUJBQXdDLENBekJ4RCxpR0E0Qm9CLFdBQVksQ0FDZixDQTdCakIsbUNBbUNRLGtCQUNBLFlBQ0EsVUh6SE8sQ0dvRmYsZ0RBeUNZLCtIQUEySSxDQXpDdkosaURBNkNZLCtIQUEySSxDQTdDdkosc0NBa0RRLGVBQ0EsYUFBYyxDQUNqQix1QkNsSkgsWUFBWSxDQUNiLGtCQUVDLGtCQUNBLFlBQ0EsV0FDQSwyQkFDQSxlQUNBLDBCQUNBLGFBQ0EsbUJBQ0Esc0JBQXVCLENBVHpCLDBCQVlJLGtCQUNBLG1CQUNBLDRCQUNBLGtCQUNBLFVBQ0Esa0JBQ0EsY0FDQSxpQkFDQSxVQUNBLHVDQUNBLDhCQUErQixDQXRCbkMsd0NBeUJNLGtCQUNBLFdBQ0EsUUFDQSxjQUNBLGVBQ0EsY0FBZSxDQTlCckIsdUNBaUNNLHVCQUNBLGVBQWdCLENBbEN0QiwrQkFzQ00scUJBQ0EsZ0JBQ0EsWUFDQSxtQkFDQSxtQkFDQSxXQUNBLHFCQUNBLGlCQUNBLHNDQUNBLGtDQUNBLGNBQWUsQ0FoRHJCLHFDQW1EUSx3QkFBcUMsQ0FDdEMsbUJBTUwsS0FDRSxVQUNBLDBCQUEyQixDQUU3QixHQUNFLFVBQ0EsdUJBQXdCLENBQUEsQ0FHNUIsTUFDRSxlQUNBLGNBQWUsQ0FDaEIsdUJBRUMsVUFBVyxDQUNaLGVBRUMsZ0JBQ0EsZ0JBQWlCLENBQ2xCLHFCQUdDLGFBQ0Esc0JBQ0EsNEJBQTZCLENBSC9CLHVCQU1JLHlCQUNBLCtCQUFnQyxDQVBwQywyQ0FZTSxxQkFBc0IsQ0FaNUIsdUZBZU0sNEJBQTZCLENBZm5DLG9EQWtCTSx3QkFBeUIsQ0FsQi9CLG9DQXVCSSxhQUNBLHNCQUNBLDBCQUNBLDhDQUErQyxDQTFCbkQsMkJBOEJJLHlCQUNBLDRDQUNBLDJCQUNBLDBCQUNBLGtDQUNBLDZCQUNBLHFCQUNBLHNCQUF1QixDQXJDM0IseURBeUNJLHFCQUFzQixDQXpDMUIsOEJBNENJLGdCQUNBLGdCQUNBLGlCQUNBLHFCQUFzQixDQS9DMUIscUZBa0RJLDBEQUNBLGlDQUNBLHVCQUNBLDJDQUNBLGdEQUNBLDZCQUNBLHFCQUNBLFlBQ0EsMEJBQ0Esd0JBQXFDLENBM0R6Qyx1R0E2RE0sd0JBQ0EsdUNBQ0Esd0JBQXFDLENBQ3RDLG1CQzNJRCxlQUNBLE1BQ0EsUUFDQSxTQUNBLE9BQ0EsYUFDQSxzQkFDQSxXQUFZLENBQ2Ysa0JDWkcsa0JBQW1CLENBQ3BCLG1CQUdDLGdCQUNBLGtCQUNBLGtCQUFtQixDQUNwQiIsImZpbGUiOiJhcHAuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBNREMgUmlwcGxlIGtleWZyYW1lcyBhcmUgc3BsaXQgaW50byB0aGVpciBvd24gZmlsZSBzbyB0aGF0IF9taXhpbnMuc2NzcyBjYW4gcmVseSBvbiB0aGVtLlxuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLXJpcHBsZS1rZXlmcmFtZXNfIHtcbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICAvLyBOT1RFOiBGb3IgdGhlc2Uga2V5ZnJhbWVzLCB3ZSBkbyBub3QgbmVlZCBjdXN0b20gcHJvcGVydHkgZmFsbGJhY2tzIGJlY2F1c2UgdGhleSBhcmUgb25seVxuICAgICAgLy8gdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGAubWRjLXJpcHBsZS11cGdyYWRlZGAuIFNpbmNlIE1EQ1JpcHBsZUZvdW5kYXRpb24gY2hlY2tzIHRvIGVuc3VyZVxuICAgICAgLy8gdGhhdCBjdXN0b20gcHJvcGVydGllcyBhcmUgc3VwcG9ydGVkIHdpdGhpbiB0aGUgYnJvd3NlciBiZWZvcmUgYWRkaW5nIHRoaXMgY2xhc3MsIHdlIGNhblxuICAgICAgLy8gc2FmZWx5IHVzZSB0aGVtIHdpdGhvdXQgYSBmYWxsYmFjay5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0LCAwKSkgc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuXG4vLyBFbnN1cmUgdGhhdCBzdHlsZXMgbmVlZGVkIGJ5IGFueSBjb21wb25lbnQgdXNpbmcgTURDIFJpcHBsZSBhcmUgZW1pdHRlZCwgYnV0IG9ubHkgb25jZS5cbi8vIChFdmVyeSBjb21wb25lbnQgdXNpbmcgTURDIFJpcHBsZSBpbXBvcnRzIHRoZXNlIG1peGlucywgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgaW1wb3J0IG1kYy1yaXBwbGUuc2Nzcy4pXG5AaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vblwiKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUta2V5ZnJhbWVzXztcblxuICAvLyBTdHlsZXMgdXNlZCB0byBkZXRlY3QgYnVnZ3kgYmVoYXZpb3Igb2YgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGluIEVkZ2UuXG4gIC8vIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTE0OTU0NDgvXG4gIC8vIFRoaXMgaXMgaW5jbHVkZWQgaW4gX21peGlucy5zY3NzIHJhdGhlciB0aGFuIG1kYy1yaXBwbGUuc2NzcyBzbyB0aGF0IGl0IHdpbGwgYmVcbiAgLy8gcHJlc2VudCBmb3Igb3RoZXIgY29tcG9uZW50cyB3aGljaCByZWx5IG9uIHJpcHBsZSBhcyB3ZWxsIGFzIG1kYy1yaXBwbGUgaXRzZWxmLlxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS10ZXN0LWVkZ2UtdmFyLWJ1ZyB7XG4gICAgLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcjogMXB4IHNvbGlkICMwMDA7XG5cbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiB2YXIoLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcik7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL2NvbW1vblwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBmYWJcblxuLm1kYy1mYWIge1xuICBAaW5jbHVkZSBtZGMtZmFiLWJhc2VfO1xuICBAaW5jbHVkZSBtZGMtZmFiLWNvbnRhaW5lci1jb2xvcihzZWNvbmRhcnkpO1xuICBAaW5jbHVkZSBtZGMtZmFiLWljb24tc2l6ZSgyNHB4KTtcbiAgQGluY2x1ZGUgbWRjLWZhYi1pbmstY29sb3Iob24tc2Vjb25kYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcyhvbi1zZWNvbmRhcnkpO1xufVxuXG4ubWRjLWZhYi0tbWluaSB7XG4gIEBpbmNsdWRlIG1kYy1mYWItLW1pbmlfO1xufVxuXG4ubWRjLWZhYi0tZXh0ZW5kZWQge1xuICBAaW5jbHVkZSBtZGMtZmFiLS1leHRlbmRlZF87XG59XG5cbi5tZGMtZmFiX19sYWJlbCB7XG4gIEBpbmNsdWRlIG1kYy1mYWItLWxhYmVsXztcbn1cblxuLm1kYy1mYWJfX2ljb24ge1xuICBAaW5jbHVkZSBtZGMtZmFiX19pY29uXztcbn1cblxuLy8gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgZm9yIEZBQiBpY29uIHN0eWxlcyB0aGF0IG5lZWQgdG8gb3ZlcnJpZGUgc3R5bGVzIGRlZmluZWQgZm9yIC5tYXRlcmlhbC1pY29uc1xuLy8gKHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90IGd1YXJhbnRlZWQpXG4ubWRjLWZhYiAubWRjLWZhYl9faWNvbiB7XG4gIEBpbmNsdWRlIG1kYy1mYWJfX2ljb24tb3ZlcnJpZGVzXztcbn1cblxuLm1kYy1mYWItLWV4aXRlZCB7XG4gIEBpbmNsdWRlIG1kYy1mYWItLWV4aXRlZF87XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yaXBwbGUtc3VyZmFjZSgpIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgLy8gQWxzbyB0cmFuc2l0aW9uIGJhY2tncm91bmQtY29sb3IgdG8gYXZvaWQgdW5uYXR1cmFsIGNvbG9yIGZsYXNoZXMgd2hlbiB0b2dnbGluZyBhY3RpdmF0ZWQvc2VsZWN0ZWQgc3RhdGVcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgb3BhY2l0eSAkbWRjLXN0YXRlcy13YXNoLWR1cmF0aW9uIGxpbmVhcixcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgLy8gRW5zdXJlIHRoYXQgdGhlIHJpcHBsZSB3YXNoIGZvciBob3Zlci9mb2N1cyBzdGF0ZXMgaXMgZGlzcGxheWVkIG9uIHRvcCBvZiBwb3NpdGlvbmVkIGNoaWxkIGVsZW1lbnRzXG4gIH1cblxuICAvLyBDb21tb24gc3R5bGVzIGZvciB1cGdyYWRlZCBzdXJmYWNlcyAoc29tZSBvZiB0aGVzZSBkZXBlbmQgb24gY3VzdG9tIHByb3BlcnRpZXMgc2V0IHZpYSBKUyBvciBvdGhlciBtaXhpbnMpXG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuXG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcblxuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246XG4gICAgICAkbWRjLXJpcHBsZS10cmFuc2xhdGUtZHVyYXRpb24gbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gZm9yd2FyZHMsXG4gICAgICAkbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiBmb3J3YXJkcztcbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246ICRtZGMtcmlwcGxlLWZhZGUtb3V0LWR1cmF0aW9uIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQ7XG4gICAgLy8gUmV0YWluIHRyYW5zZm9ybSBmcm9tIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIGFjdGl2YXRpb25cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IpIHtcbiAgLy8gT3BhY2l0eSBzdHlsZXMgYXJlIGhlcmUgKHJhdGhlciB0aGFuIGluIG1kYy1yaXBwbGUtc3VyZmFjZSkgdG8gZW5zdXJlIHRoYXQgb3BhY2l0eSBpcyByZS1pbml0aWFsaXplZCBmb3JcbiAgLy8gY2FzZXMgd2hlcmUgdGhpcyBtaXhpbiBpcyB1c2VkIHRvIG92ZXJyaWRlIGFub3RoZXIgaW5oZXJpdGVkIHVzZSBvZiBpdHNlbGYsXG4gIC8vIHdpdGhvdXQgbmVlZGluZyB0byByZS1pbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZS5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yLCAkZWRnZU9wdE91dDogdHJ1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSgkb3BhY2l0eSkge1xuICAvLyBCYWNrZ3JvdW5kIHdhc2ggc3R5bGVzLCBmb3IgYm90aCBDU1Mtb25seSBhbmQgdXBncmFkZWQgc3RhdGVmdWwgc3VyZmFjZXNcbiAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KCRvcGFjaXR5LCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UpIHtcbiAgLy8gRm9jdXMgb3ZlcnJpZGVzIGhvdmVyIGJ5IHJldXNpbmcgdGhlIDo6YmVmb3JlIHBzZXVkby1lbGVtZW50LlxuICAvLyA6Zm9jdXMtd2l0aGluIGdlbmVyYWxseSB3b3JrcyBvbiBub24tTVMgYnJvd3NlcnMgYW5kIG1hdGNoZXMgd2hlbiBhICpjaGlsZCogb2YgdGhlIGVsZW1lbnQgaGFzIGZvY3VzLlxuICAvLyBJdCBpcyB1c2VmdWwgZm9yIGNhc2VzIHdoZXJlIGEgY29tcG9uZW50IGhhcyBhIGZvY3VzYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgcm9vdCBub2RlLCBlLmcuIHRleHQgZmllbGQsXG4gIC8vIGJ1dCB1bmRlc2lyYWJsZSBpbiBnZW5lcmFsIGluIGNhc2Ugb2YgbmVzdGVkIHN0YXRlZnVsIGNvbXBvbmVudHMuXG4gIC8vIFdlIHVzZSBhIG1vZGlmaWVyIGNsYXNzIGZvciBKUy1lbmFibGVkIHN1cmZhY2VzIHRvIHN1cHBvcnQgYWxsIHVzZSBjYXNlcyBpbiBhbGwgYnJvd3NlcnMuXG4gICRjc3NPbmx5Rm9jdXNTZWxlY3RvcjogaWYoXG4gICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLXdpdGhpbjo6YmVmb3JlXCIsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZVwiXG4gICk7XG5cbiAgI3skY3NzT25seUZvY3VzU2VsZWN0b3J9LFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICAvLyBOb3RlIHRoYXQgdGhpcyBkdXJhdGlvbiBpcyBvbmx5IGVmZmVjdGl2ZSBvbiBmb2N1cywgbm90IGJsdXJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgLy8gU3R5bGVzIGZvciBub24tdXBncmFkZWQgKENTUy1vbmx5KSBzdGF0ZWZ1bCBzdXJmYWNlc1xuXG4gICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKSB7XG4gICAgLy8gQXBwbHkgcHJlc3MgYWRkaXRpdmVseSBieSB1c2luZyB0aGUgOjphZnRlciBwc2V1ZG8tZWxlbWVudFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG1kYy1yaXBwbGUtZmFkZS1vdXQtZHVyYXRpb24gbGluZWFyO1xuICAgIH1cblxuICAgICY6YWN0aXZlOjphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogI3skb3BhY2l0eX07XG4gIH1cbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBiYXNlIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMoJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXygkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50KTtcbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBhY3RpdmF0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcy1hY3RpdmF0ZWQoJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UpIHtcbiAgJGFjdGl2YXRlZC1vcGFjaXR5OiBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBhY3RpdmF0ZWQpO1xuXG4gICYtLWFjdGl2YXRlZCB7XG4gICAgLy8gU3R5bGVsaW50IHNlZW1zIHRvIHRoaW5rIHRoYXQgJyYnIHF1YWxpZmllcyBhcyBhIHR5cGUgc2VsZWN0b3IgaGVyZT9cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgICAmOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogJGFjdGl2YXRlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXygkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LCAkYWN0aXZhdGVkLW9wYWNpdHkpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBtaXhpbiBmb3Igc2VsZWN0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcy1zZWxlY3RlZCgkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSkge1xuICAkc2VsZWN0ZWQtb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgc2VsZWN0ZWQpO1xuXG4gICYtLXNlbGVjdGVkIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgICAmOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogJHNlbGVjdGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRzZWxlY3RlZC1vcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcmFkaXVzOiAxMDAlKSB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXN9KTtcblxuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1c30pO1xuICAgIHdpZHRoOiAkcmFkaXVzICogMjtcbiAgICBoZWlnaHQ6ICRyYWRpdXMgKiAyO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHJhZGl1czogMTAwJSkge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pO1xuXG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pO1xuICAgIHdpZHRoOiAkcmFkaXVzO1xuICAgIGhlaWdodDogJHJhZGl1cztcbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KSk7XG5cbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KSk7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLWludGVyYWN0aW9uc18oJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCwgJG9wYWNpdHktbW9kaWZpZXI6IDApIHtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBob3ZlcikgKyAkb3BhY2l0eS1tb2RpZmllcik7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eShcbiAgICBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBmb2N1cykgKyAkb3BhY2l0eS1tb2RpZmllcixcbiAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudFxuICApO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgcHJlc3MpICsgJG9wYWNpdHktbW9kaWZpZXIpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBDU1MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6LXZhbHVlLlxuLy8gVGhlICR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbi8vIElmICRjb2xvciBoYXMgYW4gYWxwaGEgY2hhbm5lbCwgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdmVycmlkZGVuLiBUbyBpbmNyZWFzZSB0aGUgb3BhY2l0eSBvZiB0aGUgc2hhZG93LCB1c2Vcbi8vICRvcGFjaXR5LWJvb3N0LlxuQG1peGluIG1kYy1lbGV2YXRpb24oJHotdmFsdWUsICRjb2xvcjogJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3IsICRvcGFjaXR5LWJvb3N0OiAwKSB7XG4gIEBpZiB0eXBlLW9mKCR6LXZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6LXZhbHVlKSB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gIEBpZiAkei12YWx1ZSA8IDAgb3IgJHotdmFsdWUgPiAyNCB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuXG4gICR1bWJyYS16LXZhbHVlOiBtYXAtZ2V0KCRtZGMtZWxldmF0aW9uLXVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJGFtYmllbnQtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcCwgJHotdmFsdWUpO1xuXG4gICR1bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRwZW51bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXBlbnVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRhbWJpZW50LWNvbG9yOiByZ2JhKCRjb2xvciwgJG1kYy1lbGV2YXRpb24tYW1iaWVudC1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuXG4gIGJveC1zaGFkb3c6XG4gICAgI3tcIiN7JHVtYnJhLXotdmFsdWV9ICN7JHVtYnJhLWNvbG9yfVwifSxcbiAgICAje1wiI3skcGVudW1icmEtei12YWx1ZX0gI3skcGVudW1icmEtY29sb3J9XCJ9LFxuICAgICN7JGFtYmllbnQtei12YWx1ZX0gJGFtYmllbnQtY29sb3I7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgYHRyYW5zaXRpb25gIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyBgYGBzY3NzXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vICAgd2lsbC1jaGFuZ2U6ICRtZGMtZWxldmF0aW9uLXByb3BlcnR5LCBvcGFjaXR5O1xuLy8gfVxuLy8gYGBgXG5AZnVuY3Rpb24gbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKFxuICAkZHVyYXRpb246ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRlYXNpbmc6ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIEByZXR1cm4gI3skbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eX0gI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuQG1peGluIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XG4gIGJvcmRlci1yYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlXygkcmFkaXVzKTtcblxuICBAaWYgKCRydGwtcmVmbGV4aXZlKSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBtZGMtc2hhcGUtZmxpcC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1mYWItYWNjZXNzaWJsZSgkY29udGFpbmVyLWNvbG9yKSB7XG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb250YWluZXItY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mYWItY29udGFpbmVyLWNvbG9yKCRjb250YWluZXItY29sb3IpO1xuXG4gIEBpZiAoJGZpbGwtdG9uZSA9PSBcImRhcmtcIikge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1kYXJrKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1saWdodCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItY29udGFpbmVyLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbn1cblxuQG1peGluIG1kYy1mYWItaWNvbi1zaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG4gIC5tZGMtZmFiX19pY29uIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBmb250LXNpemU6ICRoZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItaW5rLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtcGFkZGluZygkaWNvbi1wYWRkaW5nLCAkbGFiZWwtcGFkZGluZykge1xuICBAaW5jbHVkZSBtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcoJGxhYmVsLXBhZGRpbmcpO1xuXG4gIC8vIE9mZnNldHMgdGhlIG91dGVyIGxhYmVsIHBhZGRpbmcgYnkgZGVkdWN0aW5nIGl0IGZyb20gaWNvbiBwYWRkaW5nLlxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICBtYXJnaW4sXG4gICAgICAkaWNvbi1wYWRkaW5nIC0gJGxhYmVsLXBhZGRpbmcsXG4gICAgICAkaWNvbi1wYWRkaW5nKTtcbiAgfVxuXG4gIC8vIEZvciBFeHRlbmRlZCBGQUIgd2l0aCB0ZXh0IGxhYmVsIGZvbGxvd2VkIGJ5IGljb24uXG4gIC5tZGMtZmFiX19sYWJlbCArIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShcbiAgICAgIG1hcmdpbixcbiAgICAgICRpY29uLXBhZGRpbmcsXG4gICAgICAkaWNvbi1wYWRkaW5nIC0gJGxhYmVsLXBhZGRpbmcpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcoJGxhYmVsLXBhZGRpbmcpIHtcbiAgcGFkZGluZzogMCAkbGFiZWwtcGFkZGluZztcbn1cblxuQG1peGluIG1kYy1mYWItc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtZmFiLWhlaWdodCwgJHJhZGl1cyksICRydGwtcmVmbGV4aXZlKTtcblxuICAmLm1kYy1mYWItLW1pbmkge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMobWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1mYWItbWluaS1oZWlnaHQsICRyYWRpdXMpLCAkcnRsLXJlZmxleGl2ZSk7XG4gIH1cblxuICAmLm1kYy1mYWItLWV4dGVuZGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtZmFiLWV4dGVuZGVkLWhlaWdodCwgJHJhZGl1cyksICRydGwtcmVmbGV4aXZlKTtcbiAgfVxufVxuXG4kbWRjLWZhYi1pY29uLWVudGVyLWRlbGF5XzogOTBtcztcbiRtZGMtZmFiLWljb24tZW50ZXItZHVyYXRpb25fOiAxODBtcztcblxuQG1peGluIG1kYy1mYWItYmFzZV8ge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNik7XG4gIEBpbmNsdWRlIG1kYy1mYWItc2hhcGUtcmFkaXVzKDUwJSk7XG5cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkbWRjLWZhYi1oZWlnaHQ7XG4gIGhlaWdodDogJG1kYy1mYWItaGVpZ2h0O1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOlxuICAgIGJveC1zaGFkb3cgJG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixcbiAgICBvcGFjaXR5IDE1bXMgbGluZWFyIDMwbXMsXG4gICAgbWRjLWFuaW1hdGlvbi1lbnRlcih0cmFuc2Zvcm0sICRtZGMtZmFiLWljb24tZW50ZXItZHVyYXRpb25fICsgJG1kYy1mYWItaWNvbi1lbnRlci1kZWxheV8pO1xuICBib3JkZXI6IG5vbmU7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDgpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMTIpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIC8vIFRPRE8oYWNkdm9yYWspOiBTaG91bGQgdGhpcyBiZSBwYWlyZWQgd2l0aCBzdGF0ZXMgYW5kL29yIHJpcHBsZT8gV2UgZG9uJ3Qgd2FudCB0byBkaXNhYmxlIG91dGxpbmVcbiAgICAvLyAoYW4gYWNjZXNzaWJpbGl0eS91c2FiaWxpdHkgZmVhdHVyZSkgdW5sZXNzIHdlJ3JlIGNvbmZpZGVudCB0aGF0IHRoZXJlIGlzIGFsc28gYSB2aXN1YWwgaW5kaWNhdGlvbiB0aGF0IHRoZVxuICAgIC8vIGVsZW1lbnQgaGFzIGZvY3VzLiBJZiB0aGUgY2xpZW50IGhhcyBjdXN0b21pemVkIHRoZSBET00gaW4gc29tZSB1bmV4cGVjdGVkIHdheSwgYW5kIGlzIGNlcnRhaW4gdGhhdCBhbm90aGVyXG4gICAgLy8gZWxlbWVudCB3aWxsIHJlY2VpdmUgZm9jdXMgaW5zdGVhZCwgdGhleSBjYW4gYWx3YXlzIG92ZXJyaWRlIHRoaXMgcHJvcGVydHkgbWFudWFsbHkgaW4gdGhlaXIgQ1NTLlxuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAvLyBUaGlzIGFsbG93cyBmb3IgdXNpbmcgU1ZHcyB3aXRoaW4gdGhlbSB0byBhbGlnbiBwcm9wZXJseSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIENhbiByZW1vdmUgb25jZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDUxNSBpcyByZXNvbHZlZC5cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICA+IHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxufVxuXG5AbWl4aW4gbWRjLWZhYi0tbWluaV8ge1xuICB3aWR0aDogJG1kYy1mYWItbWluaS1oZWlnaHQ7XG4gIGhlaWdodDogJG1kYy1mYWItbWluaS1oZWlnaHQ7XG59XG5cbkBtaXhpbiBtZGMtZmFiLS1leHRlbmRlZF8ge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShidXR0b24pO1xuICBAaW5jbHVkZSBtZGMtZmFiLWV4dGVuZGVkLXBhZGRpbmcoXG4gICAgJG1kYy1mYWItZXh0ZW5kZWQtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcpO1xuXG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJG1kYy1mYWItZXh0ZW5kZWQtaGVpZ2h0O1xufVxuXG5AbWl4aW4gbWRjLWZhYl9faWNvbl8ge1xuICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgJG1kYy1mYWItaWNvbi1lbnRlci1kdXJhdGlvbl8sICRtZGMtZmFiLWljb24tZW50ZXItZGVsYXlfKTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG5AbWl4aW4gbWRjLWZhYl9fbGFiZWxfIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1peGluIG1kYy1mYWJfX2ljb24tb3ZlcnJpZGVzXyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1peGluIG1kYy1mYWItLWV4aXRlZF8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMTVtcyBsaW5lYXIgMTUwbXMsXG4gICAgbWRjLWFuaW1hdGlvbi1leGl0LXBlcm1hbmVudCh0cmFuc2Zvcm0sIDE4MG1zKTtcbiAgb3BhY2l0eTogMDtcblxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtcGVybWFuZW50KHRyYW5zZm9ybSwgMTM1bXMpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgdGhlbWUgY29sb3Igc3R5bGUgdG8gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS5cbi8vICRwcm9wZXJ0eSBpcyB0eXBpY2FsbHkgY29sb3Igb3IgYmFja2dyb3VuZC1jb2xvciwgYnV0IGNhbiBiZSBhbnkgQ1NTIHByb3BlcnR5IHRoYXQgYWNjZXB0cyBjb2xvciB2YWx1ZXMuXG4vLyAkc3R5bGUgc2hvdWxkIGJlIG9uZSBvZiB0aGUgbWFwIGtleXMgaW4gJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMgKF92YXJpYWJsZXMuc2NzcyksIG9yIGEgY29sb3IgdmFsdWUuXG4vLyAkZWRnZU9wdE91dCBjb250cm9scyB3aGV0aGVyIHRvIGZlYXR1cmUtZGV0ZWN0IGFyb3VuZCBFZGdlIHRvIGF2b2lkIGVtaXR0aW5nIENTUyB2YXJpYWJsZXMgZm9yIGl0LFxuLy8gaW50ZW5kZWQgZm9yIHVzZSBpbiBjYXNlcyB3aGVyZSBpbnRlcmFjdGlvbnMgd2l0aCBwc2V1ZG8tZWxlbWVudCBzdHlsZXMgY2F1c2UgcHJvYmxlbXMgZHVlIHRvIEVkZ2UgYnVncy5cbkBtaXhpbiBtZGMtdGhlbWUtcHJvcCgkcHJvcGVydHksICRzdHlsZSwgJGltcG9ydGFudDogZmFsc2UsICRlZGdlT3B0T3V0OiBmYWxzZSkge1xuICBAaWYgbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgICN7JHByb3BlcnR5fTogJHN0eWxlICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICRzdHlsZTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSkge1xuICAgICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZTogJyN7JHN0eWxlfScuIENob29zZSBvbmUgb2Y6ICN7bWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpfVwiO1xuICAgIH1cblxuICAgICR2YWx1ZTogbWFwLWdldCgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKTtcblxuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBpZiAkZWRnZU9wdE91dCB7XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOmF1dG8pIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG5cbiAgICAgIEBpZiAkZWRnZU9wdE91dCB7XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOmF1dG8pIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBGbGlwcyB0aGUgcmFkaXVzIHZhbHVlcyBiYXNlZCBvbiBSVEwgY29udGV4dC5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyAxLiBtZGMtc2hhcGUtZmxpcC1yYWRpdXMoKDAsIDRweCwgNHB4LCAwKSkgPT4gNHB4IDAgMCA0cHhcbi8vIDIuIG1kYy1zaGFwZS1mbGlwLXJhZGl1cygoMCwgOHB4KSkgPT4gOHB4IDBcbi8vXG5AZnVuY3Rpb24gbWRjLXNoYXBlLWZsaXAtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xuICAgIEBpZiBsZW5ndGgoJHJhZGl1cykgPiA0IHtcbiAgICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XG4gICAgfVxuICB9XG5cbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA9PSA0IHtcbiAgICBAcmV0dXJuIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDQpIG50aCgkcmFkaXVzLCAzKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMyk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkcmFkaXVzO1xuICB9XG59XG5cbi8vXG4vLyBSZXNvbHZlcyB0aGUgcGVyY2VudGFnZSB1bml0IHJhZGl1cyB0byBhcHByb3ByaWF0ZSBhYnNvbHV0ZSByYWRpdXMgdmFsdWUgYmFzZWQgb24gY29tcG9uZW50IGhlaWdodC5cbi8vIFVzZSB0aGlzIGZvciBmaXhlZCBoZWlnaHQgY29tcG9uZW50cyBvbmx5LlxuLy9cbi8vIEV4YW1wbGVzOlxuLy9cbi8vIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKDM2cHgsIDUwJSkgPT4gYDE4cHhgIChpLmUuLCAzNnB4IC8gMilcbi8vXG5AZnVuY3Rpb24gbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJGNvbXBvbmVudC1oZWlnaHQsICRyYWRpdXMpIHtcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xuICAgICRyYWRpdXMtdmFsdWU6ICgpO1xuXG4gICAgQGVhY2ggJGNvcm5lciBpbiAkcmFkaXVzIHtcbiAgICAgICRyYWRpdXMtdmFsdWU6IGFwcGVuZCgkcmFkaXVzLXZhbHVlLCBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkY29ybmVyKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmFkaXVzLXZhbHVlO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtZm9yLWNvcm5lcl8oJGNvbXBvbmVudC1oZWlnaHQsICRyYWRpdXMpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKSB7XG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibnVtYmVyXCIgYW5kIHVuaXQoJHJhZGl1cykgPT0gXCIlXCIge1xuICAgIC8vIENvbnZlcnRzIHRoZSBwZXJjZW50YWdlIHRvIG51bWJlciB3aXRob3V0IHVuaXQuIEV4YW1wbGU6IDUwJSA9PiA1MC5cbiAgICAkcGVyY2VudGFnZTogJHJhZGl1cyAvICgkcmFkaXVzICogMCArIDEpO1xuXG4gICAgQHJldHVybiAkY29tcG9uZW50LWhlaWdodCAqICgkcGVyY2VudGFnZSAvIDEwMCk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHJhZGl1cztcbiAgfVxufVxuXG4vL1xuLy8gU3RyaXBzIHVuaXQgZnJvbSBudW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5IGRpdmlkaW5nIHRoZSB2YWx1ZSBieSBpdHNlbGYgdG8gY2FuY2VsIG91dCB1bml0cywgd2hpbGUgcmVzdWx0aW5nXG4vLyBpbiBhIGRlbm9taW5hdG9yIG9mIDEuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gNTAlID0+IDUwXG4vL1xuQGZ1bmN0aW9uIG1kYy1zaGFwZS1zdHJpcC11bml0XygkbnVtYmVyKSB7XG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpID09IFwibnVtYmVyXCIgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbi8vXG4vLyBSZXR1cm5zICRyYWRpdXMgdmFsdWUgb2Ygc2hhcGUgY2F0ZWdvcnkgLSBgbGFyZ2VgLCBgbWVkaXVtYCBvciBgc21hbGxgLlxuLy8gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIHRoZSAkcmFkaXVzIGl0c2VsZiBpZiB2YWxpZC5cbi8vICRyYWRpdXMgY2FuIGJlIGEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdXAgdG8gNC5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyBtZGMtc2hhcGUtcHJvcC12YWx1ZV8oc21hbGwpID0+IDRweFxuLy9cbkBmdW5jdGlvbiBtZGMtc2hhcGUtcHJvcC12YWx1ZV8oJHJhZGl1cykge1xuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcImxpc3RcIiB7XG4gICAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDQge1xuICAgICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcbiAgICB9XG5cbiAgICAkcmFkaXVzLXZhbHVlOiAoKTtcblxuICAgIEBlYWNoICRjb3JuZXIgaW4gJHJhZGl1cyB7XG4gICAgICAkcmFkaXVzLXZhbHVlOiBhcHBlbmQoJHJhZGl1cy12YWx1ZSwgbWRjLXNoYXBlLXByb3AtY29ybmVyLXZhbHVlXygkY29ybmVyKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmFkaXVzLXZhbHVlO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1kYy1zaGFwZS1wcm9wLWNvcm5lci12YWx1ZV8oJHJhZGl1cyk7XG4gIH1cbn1cblxuLy9cbi8vIEFjY2VwdHMgcmFkaXVzIG51bWJlciBvciBsaXN0IG9mIDItNCByYWRpdXMgdmFsdWVzIGFuZCByZXR1cm5zIDQgdmFsdWUgbGlzdCB3aXRoXG4vLyBtYXNrZWQgY29ybmVycyBhcyBtZW50aW9uZWQgaW4gYCRtYXNrZWQtY29ybmVyc2Bcbi8vXG4vLyBFeGFtcGxlOlxuLy9cbi8vIDEuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cygycHggM3B4LCAxIDEgMCAwKSA9PiAycHggM3B4IDAgMFxuLy8gMi4gbWRjLXNoYXBlLW1hc2stcmFkaXVzKDhweCwgMCAwIDEgMSkgPT4gMCAwIDhweCA4cHhcbi8vIDMuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cyg0cHggNHB4IDRweCA0cHgsIDAgMSAxIDApID0+IDAgNHB4IDRweCAwXG4vL1xuQGZ1bmN0aW9uIG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAkbWFza2VkLWNvcm5lcnMpIHtcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xuICAgIEBpZiBsZW5ndGgoJHJhZGl1cykgPiA0IHtcbiAgICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XG4gICAgfVxuICB9XG5cbiAgQGlmIGxlbmd0aCgkbWFza2VkLWNvcm5lcnMpICE9IDQge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIG1hc2tlZC1jb3JuZXJzIG9mIGxlbmd0aCA0IGJ1dCBnb3QgJyN7bGVuZ3RoKCRtYXNrZWQtY29ybmVycyl9Jy5cIjtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMyB7XG4gICAgJHJhZGl1czogbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMykgbnRoKCRyYWRpdXMsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAyIHtcbiAgICAkcmFkaXVzOiBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDEge1xuICAgICRyYWRpdXM6ICRyYWRpdXMgJHJhZGl1cyAkcmFkaXVzICRyYWRpdXM7XG4gIH1cblxuICBAcmV0dXJuIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDEpID09IDEsIG50aCgkcmFkaXVzLCAxKSwgMClcbiAgICBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCAyKSA9PSAxLCBudGgoJHJhZGl1cywgMiksIDApXG4gICAgaWYobnRoKCRtYXNrZWQtY29ybmVycywgMykgPT0gMSwgbnRoKCRyYWRpdXMsIDMpLCAwKVxuICAgIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDQpID09IDEsIG50aCgkcmFkaXVzLCA0KSwgMCk7XG59XG5cbkBmdW5jdGlvbiBtZGMtc2hhcGUtcHJvcC1jb3JuZXItdmFsdWVfKCRyYWRpdXMpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkcmFkaXVzKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkcmFkaXVzKTtcbiAgfSBAZWxzZSBpZiBtZGMtc2hhcGUtaXMtdmFsaWQtcmFkaXVzLXZhbHVlXygkcmFkaXVzKSB7XG4gICAgQHJldHVybiAkcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIHJhZGl1cyBpcyBub3Qgc3VwcG9ydGVkXCI7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRyYWRpdXMpO1xufVxuXG5AZnVuY3Rpb24gbWRjLXNoYXBlLWlzLXZhbGlkLXJhZGl1cy12YWx1ZV8oJHJhZGl1cykge1xuICAkaXMtbnVtYmVyOiB0eXBlLW9mKCRyYWRpdXMpID09IFwibnVtYmVyXCI7XG4gICRpcy1wZXJjZW50YWdlOiAkaXMtbnVtYmVyIGFuZCB1bml0KCRyYWRpdXMpID09IFwiJVwiO1xuXG4gIEBpZiAkaXMtcGVyY2VudGFnZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkaXMtbnVtYmVyIG9yIHN0cl9pbmRleCgkcmFkaXVzLCBcInZhcihcIikgb3Igc3RyX2luZGV4KCRyYWRpdXMsIFwiY2FsYyhcIik7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcblxuJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3I6IGJsYWNrO1xuJG1kYy1lbGV2YXRpb24tdW1icmEtb3BhY2l0eTogLjI7XG4kbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1vcGFjaXR5OiAuMTQ7XG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW9wYWNpdHk6IC4xMjtcblxuJG1kYy1lbGV2YXRpb24tdW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDJweCAxcHggLTFweFwiLFxuICAyOiBcIjBweCAzcHggMXB4IC0ycHhcIixcbiAgMzogXCIwcHggM3B4IDNweCAtMnB4XCIsXG4gIDQ6IFwiMHB4IDJweCA0cHggLTFweFwiLFxuICA1OiBcIjBweCAzcHggNXB4IC0xcHhcIixcbiAgNjogXCIwcHggM3B4IDVweCAtMXB4XCIsXG4gIDc6IFwiMHB4IDRweCA1cHggLTJweFwiLFxuICA4OiBcIjBweCA1cHggNXB4IC0zcHhcIixcbiAgOTogXCIwcHggNXB4IDZweCAtM3B4XCIsXG4gIDEwOiBcIjBweCA2cHggNnB4IC0zcHhcIixcbiAgMTE6IFwiMHB4IDZweCA3cHggLTRweFwiLFxuICAxMjogXCIwcHggN3B4IDhweCAtNHB4XCIsXG4gIDEzOiBcIjBweCA3cHggOHB4IC00cHhcIixcbiAgMTQ6IFwiMHB4IDdweCA5cHggLTRweFwiLFxuICAxNTogXCIwcHggOHB4IDlweCAtNXB4XCIsXG4gIDE2OiBcIjBweCA4cHggMTBweCAtNXB4XCIsXG4gIDE3OiBcIjBweCA4cHggMTFweCAtNXB4XCIsXG4gIDE4OiBcIjBweCA5cHggMTFweCAtNXB4XCIsXG4gIDE5OiBcIjBweCA5cHggMTJweCAtNnB4XCIsXG4gIDIwOiBcIjBweCAxMHB4IDEzcHggLTZweFwiLFxuICAyMTogXCIwcHggMTBweCAxM3B4IC02cHhcIixcbiAgMjI6IFwiMHB4IDEwcHggMTRweCAtNnB4XCIsXG4gIDIzOiBcIjBweCAxMXB4IDE0cHggLTdweFwiLFxuICAyNDogXCIwcHggMTFweCAxNXB4IC03cHhcIlxuKTtcblxuJG1kYy1lbGV2YXRpb24tcGVudW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDFweCAxcHggMHB4XCIsXG4gIDI6IFwiMHB4IDJweCAycHggMHB4XCIsXG4gIDM6IFwiMHB4IDNweCA0cHggMHB4XCIsXG4gIDQ6IFwiMHB4IDRweCA1cHggMHB4XCIsXG4gIDU6IFwiMHB4IDVweCA4cHggMHB4XCIsXG4gIDY6IFwiMHB4IDZweCAxMHB4IDBweFwiLFxuICA3OiBcIjBweCA3cHggMTBweCAxcHhcIixcbiAgODogXCIwcHggOHB4IDEwcHggMXB4XCIsXG4gIDk6IFwiMHB4IDlweCAxMnB4IDFweFwiLFxuICAxMDogXCIwcHggMTBweCAxNHB4IDFweFwiLFxuICAxMTogXCIwcHggMTFweCAxNXB4IDFweFwiLFxuICAxMjogXCIwcHggMTJweCAxN3B4IDJweFwiLFxuICAxMzogXCIwcHggMTNweCAxOXB4IDJweFwiLFxuICAxNDogXCIwcHggMTRweCAyMXB4IDJweFwiLFxuICAxNTogXCIwcHggMTVweCAyMnB4IDJweFwiLFxuICAxNjogXCIwcHggMTZweCAyNHB4IDJweFwiLFxuICAxNzogXCIwcHggMTdweCAyNnB4IDJweFwiLFxuICAxODogXCIwcHggMThweCAyOHB4IDJweFwiLFxuICAxOTogXCIwcHggMTlweCAyOXB4IDJweFwiLFxuICAyMDogXCIwcHggMjBweCAzMXB4IDNweFwiLFxuICAyMTogXCIwcHggMjFweCAzM3B4IDNweFwiLFxuICAyMjogXCIwcHggMjJweCAzNXB4IDNweFwiLFxuICAyMzogXCIwcHggMjNweCAzNnB4IDNweFwiLFxuICAyNDogXCIwcHggMjRweCAzOHB4IDNweFwiXG4pO1xuXG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcDogKFxuICAwOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAxOiBcIjBweCAxcHggM3B4IDBweFwiLFxuICAyOiBcIjBweCAxcHggNXB4IDBweFwiLFxuICAzOiBcIjBweCAxcHggOHB4IDBweFwiLFxuICA0OiBcIjBweCAxcHggMTBweCAwcHhcIixcbiAgNTogXCIwcHggMXB4IDE0cHggMHB4XCIsXG4gIDY6IFwiMHB4IDFweCAxOHB4IDBweFwiLFxuICA3OiBcIjBweCAycHggMTZweCAxcHhcIixcbiAgODogXCIwcHggM3B4IDE0cHggMnB4XCIsXG4gIDk6IFwiMHB4IDNweCAxNnB4IDJweFwiLFxuICAxMDogXCIwcHggNHB4IDE4cHggM3B4XCIsXG4gIDExOiBcIjBweCA0cHggMjBweCAzcHhcIixcbiAgMTI6IFwiMHB4IDVweCAyMnB4IDRweFwiLFxuICAxMzogXCIwcHggNXB4IDI0cHggNHB4XCIsXG4gIDE0OiBcIjBweCA1cHggMjZweCA0cHhcIixcbiAgMTU6IFwiMHB4IDZweCAyOHB4IDVweFwiLFxuICAxNjogXCIwcHggNnB4IDMwcHggNXB4XCIsXG4gIDE3OiBcIjBweCA2cHggMzJweCA1cHhcIixcbiAgMTg6IFwiMHB4IDdweCAzNHB4IDZweFwiLFxuICAxOTogXCIwcHggN3B4IDM2cHggNnB4XCIsXG4gIDIwOiBcIjBweCA4cHggMzhweCA3cHhcIixcbiAgMjE6IFwiMHB4IDhweCA0MHB4IDdweFwiLFxuICAyMjogXCIwcHggOHB4IDQycHggN3B4XCIsXG4gIDIzOiBcIjBweCA5cHggNDRweCA4cHhcIixcbiAgMjQ6IFwiMHB4IDlweCA0NnB4IDhweFwiXG4pO1xuXG4vLyBUaGUgY3NzIHByb3BlcnR5IHVzZWQgZm9yIGVsZXZhdGlvbi4gSW4gbW9zdCBjYXNlcyB0aGlzIHNob3VsZCBub3QgYmUgY2hhbmdlZC4gSXQgaXMgZXhwb3NlZFxuLy8gYXMgYSB2YXJpYWJsZSBmb3IgYWJzdHJhY3Rpb24gLyBlYXN5IHVzZSB3aGVuIG5lZWRpbmcgdG8gcmVmZXJlbmNlIHRoZSBwcm9wZXJ0eSBkaXJlY3RseSwgZm9yXG4vLyBleGFtcGxlIGluIGEgYHdpbGwtY2hhbmdlYCBydWxlLlxuJG1kYy1lbGV2YXRpb24tcHJvcGVydHk6IGJveC1zaGFkb3cgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG4vL1xuLy8gTWFpbiB0aGVtZSBjb2xvcnMgZm9yIHlvdXIgYnJhbmQuXG4vL1xuLy8gSWYgeW91J3JlIGEgdXNlciBjdXN0b21pemluZyB5b3VyIGNvbG9yIHNjaGVtZSBpbiBTQVNTLCB0aGVzZSBhcmUgcHJvYmFibHkgdGhlIG9ubHkgdmFyaWFibGVzIHlvdSBuZWVkIHRvIGNoYW5nZS5cbi8vXG5cbiRtZGMtdGhlbWUtcHJpbWFyeTogIzYyMDBlZSAhZGVmYXVsdDsgLy8gYmFzZWxpbmUgcHVycGxlLCA1MDAgdG9uZVxuJG1kYy10aGVtZS1vbi1wcmltYXJ5OiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLXByaW1hcnkpID09IFwiZGFya1wiLCAjMDAwLCAjZmZmKSAhZGVmYXVsdDtcblxuLy8gVGhlICRtZGMtdGhlbWUtYWNjZW50IHZhcmlhYmxlIGlzIERFUFJFQ0FURUQgLSBpdCBleGlzdHMgcHVyZWx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuLy8gVGhlICRtZGMtdGhlbWUtc2Vjb25kYXJ5KiB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgZm9yIGFsbCBuZXcgcHJvamVjdHMuXG4kbWRjLXRoZW1lLWFjY2VudDogIzAxODc4NiAhZGVmYXVsdDsgLy8gYmFzZWxpbmUgdGVhbCwgNjAwIHRvbmVcbiRtZGMtdGhlbWUtc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLWFjY2VudCAhZGVmYXVsdDtcbiRtZGMtdGhlbWUtb24tc2Vjb25kYXJ5OiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLXNlY29uZGFyeSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuJG1kYy10aGVtZS1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0OyAvLyBXaGl0ZVxuXG4kbWRjLXRoZW1lLXN1cmZhY2U6ICNmZmYgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLW9uLXN1cmZhY2U6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtc3VyZmFjZSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuXG4kbWRjLXRoZW1lLWVycm9yOiAjYjAwMDIwICFkZWZhdWx0O1xuJG1kYy10aGVtZS1vbi1lcnJvcjogI2ZmZiAhZGVmYXVsdDtcblxuLy9cbi8vIFRleHQgY29sb3JzIGFjY29yZGluZyB0byBsaWdodCB2cyBkYXJrIGFuZCB0ZXh0IHR5cGUuXG4vL1xuXG4kbWRjLXRoZW1lLXRleHQtY29sb3JzOiAoXG4gIGRhcms6IChcbiAgICBwcmltYXJ5OiByZ2JhKGJsYWNrLCAuODcpLFxuICAgIHNlY29uZGFyeTogcmdiYShibGFjaywgLjU0KSxcbiAgICBoaW50OiByZ2JhKGJsYWNrLCAuMzgpLFxuICAgIGRpc2FibGVkOiByZ2JhKGJsYWNrLCAuMzgpLFxuICAgIGljb246IHJnYmEoYmxhY2ssIC4zOClcbiAgKSxcbiAgbGlnaHQ6IChcbiAgICBwcmltYXJ5OiB3aGl0ZSxcbiAgICBzZWNvbmRhcnk6IHJnYmEod2hpdGUsIC43KSxcbiAgICBoaW50OiByZ2JhKHdoaXRlLCAuNSksXG4gICAgZGlzYWJsZWQ6IHJnYmEod2hpdGUsIC41KSxcbiAgICBpY29uOiByZ2JhKHdoaXRlLCAuNSlcbiAgKVxuKSAhZGVmYXVsdDtcblxuJG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzOiAoXG4gIGhpZ2g6IC44NyxcbiAgbWVkaXVtOiAuNixcbiAgZGlzYWJsZWQ6IC4zOCxcbik7XG5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXygkdGV4dC1zdHlsZSwgJGZpbGwtY29sb3IpIHtcbiAgJGNvbnRyYXN0LXRvbmU6IG1kYy10aGVtZS1jb250cmFzdC10b25lKCRmaWxsLWNvbG9yKTtcblxuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkbWRjLXRoZW1lLXRleHQtY29sb3JzLCAkY29udHJhc3QtdG9uZSksICR0ZXh0LXN0eWxlKTtcbn1cblxuLy9cbi8vIFByaW1hcnkgdGV4dCBjb2xvcnMgZm9yIGVhY2ggb2YgdGhlIHRoZW1lIGNvbG9ycy5cbi8vXG5cbiRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzOiAoXG4gIC8vIFByaW1hcnlcbiAgcHJpbWFyeTogJG1kYy10aGVtZS1wcmltYXJ5LFxuICAvLyBTZWNvbmRhcnlcbiAgc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLXNlY29uZGFyeSxcbiAgLy8gQmFja2dyb3VuZFxuICBiYWNrZ3JvdW5kOiAkbWRjLXRoZW1lLWJhY2tncm91bmQsXG4gIC8vIFN1cmZhY2VcbiAgc3VyZmFjZTogJG1kYy10aGVtZS1zdXJmYWNlLFxuICAvLyBFcnJvclxuICBlcnJvcjogJG1kYy10aGVtZS1lcnJvcixcbiAgb24tcHJpbWFyeTogJG1kYy10aGVtZS1vbi1wcmltYXJ5LFxuICBvbi1zZWNvbmRhcnk6ICRtZGMtdGhlbWUtb24tc2Vjb25kYXJ5LFxuICBvbi1zdXJmYWNlOiAkbWRjLXRoZW1lLW9uLXN1cmZhY2UsXG4gIG9uLWVycm9yOiAkbWRjLXRoZW1lLW9uLWVycm9yLFxuICAvLyBUZXh0LXByaW1hcnkgb24gXCJiYWNrZ3JvdW5kXCIgYmFja2dyb3VuZFxuICB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8ocHJpbWFyeSwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oc2Vjb25kYXJ5LCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICB0ZXh0LWhpbnQtb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaGludCwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgdGV4dC1kaXNhYmxlZC1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhkaXNhYmxlZCwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgdGV4dC1pY29uLW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGljb24sICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIC8vIFRleHQtcHJpbWFyeSBvbiBcImxpZ2h0XCIgYmFja2dyb3VuZFxuICB0ZXh0LXByaW1hcnktb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHByaW1hcnksIGxpZ2h0KSxcbiAgdGV4dC1zZWNvbmRhcnktb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHNlY29uZGFyeSwgbGlnaHQpLFxuICB0ZXh0LWhpbnQtb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGhpbnQsIGxpZ2h0KSxcbiAgdGV4dC1kaXNhYmxlZC1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oZGlzYWJsZWQsIGxpZ2h0KSxcbiAgdGV4dC1pY29uLW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhpY29uLCBsaWdodCksXG4gIC8vIFRleHQtcHJpbWFyeSBvbiBcImRhcmtcIiBiYWNrZ3JvdW5kXG4gIHRleHQtcHJpbWFyeS1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhwcmltYXJ5LCBkYXJrKSxcbiAgdGV4dC1zZWNvbmRhcnktb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oc2Vjb25kYXJ5LCBkYXJrKSxcbiAgdGV4dC1oaW50LW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGhpbnQsIGRhcmspLFxuICB0ZXh0LWRpc2FibGVkLW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGRpc2FibGVkLCBkYXJrKSxcbiAgdGV4dC1pY29uLW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGljb24sIGRhcmspXG4pO1xuXG4vLyBJZiBgJHN0eWxlYCBpcyBhIGNvbG9yIChhIGxpdGVyYWwgY29sb3IgdmFsdWUsIGBjdXJyZW50Q29sb3JgLCBvciBhIENTUyBjdXN0b20gcHJvcGVydHkpLCBpdCBpcyByZXR1cm5lZCB2ZXJiYXRpbS5cbi8vIE90aGVyd2lzZSwgYCRzdHlsZWAgaXMgdHJlYXRlZCBhcyBhIHRoZW1lIHByb3BlcnR5IG5hbWUsIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmcm9tXG4vLyBgJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXNgIGlzIHJldHVybmVkLiBJZiB0aGlzIGFsc28gZmFpbHMsIGFuIGVycm9yIGlzIHRocm93bi5cbi8vXG4vLyBUaGlzIGlzIG1haW5seSB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBgbWRjLXRoZW1lLXByb3BgIGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IChlLmcuLCBgYm94LXNoYWRvd2ApLlxuLy9cbi8vIEV4YW1wbGVzOlxuLy9cbi8vIDEuIG1kYy10aGVtZS1wcm9wLXZhbHVlKHByaW1hcnkpID0+IFwiIzYyMDBlZVwiXG4vLyAyLiBtZGMtdGhlbWUtcHJvcC12YWx1ZShibHVlKSAgICA9PiBcImJsdWVcIlxuLy9cbi8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBkZWZpbmVkIGluIF92YXJpYWJsZXMuc2NzcyBpbnN0ZWFkIG9mIF9mdW5jdGlvbnMuc2NzcyB0byBhdm9pZCBjaXJjdWxhciBpbXBvcnRzLlxuQGZ1bmN0aW9uIG1kYy10aGVtZS1wcm9wLXZhbHVlKCRzdHlsZSkge1xuICBAaWYgbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICAgIEByZXR1cm4gJHN0eWxlO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCB0aGVtZSBwcm9wZXJ0eTogJyN7JHN0eWxlfScuIENob29zZSBvbmUgb2Y6ICN7bWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpfVwiO1xuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xufVxuXG4vLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgZGVmaW5lZCBpbiBfdmFyaWFibGVzLnNjc3MgaW5zdGVhZCBvZiBfZnVuY3Rpb25zLnNjc3MgdG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cy5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGZpbGwtY29sb3IsICR0ZXh0LXN0eWxlOiBwcmltYXJ5KSB7XG4gICRmaWxsLWNvbG9yLXZhbHVlOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkZmlsbC1jb2xvcik7XG4gICRjb2xvci1tYXAtZm9yLXRvbmU6IG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWNvbG9ycywgbWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJGZpbGwtY29sb3ItdmFsdWUpKTtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRjb2xvci1tYXAtZm9yLXRvbmUsICR0ZXh0LXN0eWxlKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCAkdGV4dC1zdHlsZTogJyN7JHRleHQtc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkY29sb3ItbWFwLWZvci10b25lKX1cIjtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkY29sb3ItbWFwLWZvci10b25lLCAkdGV4dC1zdHlsZSk7XG59XG5cbi8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgZGVwZW5kZWQgdXBvbiBieSBtZGMtdGhlbWUtcHJvcC12YWx1ZSAoYWJvdmUpIGFuZCB0aHVzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGlzIGZpbGUuXG5AZnVuY3Rpb24gbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHN0eWxlKSA9PSBcImNvbG9yXCIgb3IgJHN0eWxlID09IFwiY3VycmVudENvbG9yXCIgb3Igc3RyX3NsaWNlKCRzdHlsZSwgMSwgNCkgPT0gXCJ2YXIoXCI7XG59XG5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcygkZW1waGFzaXMpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcywgJGVtcGhhc2lzKTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uOiA3NW1zO1xuJG1kYy1yaXBwbGUtZmFkZS1vdXQtZHVyYXRpb246IDE1MG1zO1xuJG1kYy1yaXBwbGUtdHJhbnNsYXRlLWR1cmF0aW9uOiAyMjVtcztcbiRtZGMtc3RhdGVzLXdhc2gtZHVyYXRpb246IDE1bXM7XG5cbiRtZGMtcmlwcGxlLWRhcmstaW5rLW9wYWNpdGllczogKFxuICBob3ZlcjogLjA0LFxuICBmb2N1czogLjEyLFxuICBwcmVzczogLjE2LFxuICBzZWxlY3RlZDogLjA4LFxuICBhY3RpdmF0ZWQ6IC4xMlxuKSAhZGVmYXVsdDtcblxuJG1kYy1yaXBwbGUtbGlnaHQtaW5rLW9wYWNpdGllczogKFxuICBob3ZlcjogLjA4LFxuICBmb2N1czogLjI0LFxuICBwcmVzczogLjMyLFxuICBzZWxlY3RlZDogLjE2LFxuICBhY3RpdmF0ZWQ6IC4yNFxuKSAhZGVmYXVsdDtcblxuLy8gTGVnYWN5XG5cbiRtZGMtcmlwcGxlLXByZXNzZWQtZGFyay1pbmstb3BhY2l0eTogLjE2O1xuJG1kYy1yaXBwbGUtcHJlc3NlZC1saWdodC1pbmstb3BhY2l0eTogLjMyO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZmFiLWV4dGVuZGVkLWljb24tcGFkZGluZzogMTJweDtcbiRtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmc6IDIwcHg7XG4kbWRjLWZhYi1oZWlnaHQ6IDU2cHg7XG4kbWRjLWZhYi1taW5pLWhlaWdodDogNDBweDtcbiRtZGMtZmFiLWV4dGVuZGVkLWhlaWdodDogNDhweDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2Uge1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1kYy10eXBvZ3JhcGh5LWJhc2Uge1xuICAgICN7JGtleX06ICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHkoJHN0eWxlKSB7XG4gICRzdHlsZS1wcm9wczogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpO1xuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhICN7JHN0eWxlfSBkb2Vzbid0IGV4aXN0LiBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcyl9XCI7XG4gIH1cblxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN0eWxlLXByb3BzIHtcbiAgICAjeyRrZXl9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gRWxlbWVudCBtdXN0IGJlIGBkaXNwbGF5OiBibG9ja2Agb3IgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgZm9yIHRoaXMgdG8gd29yay5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1vdmVyZmxvdy1lbGxpcHNpcyB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRkaXN0YW5jZSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgdmVydGljYWwtYWxpZ246IDA7XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkZGlzdGFuY2UpIHtcbiAgbWFyZ2luLWJvdHRvbTogLTEgKiAkZGlzdGFuY2U7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgdmVydGljYWwtYWxpZ246IC0xICogJGRpc3RhbmNlO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogJGRpc3RhbmNlO1xuICBjb250ZW50OiBcIlwiO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIENyZWF0ZXMgYSBydWxlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gYW4gTURDIFdlYiBjb21wb25lbnQgaXMgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFuIFJUTCBsYXlvdXQuXG4vL1xuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIGxlZnQ6IGF1dG87XG4vLyAgICAgcmlnaHQ6IDA7XG4vLyAgIH1cbi8vXG4vLyAgICZfX2JhciB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbi8vICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1mb29cIikge1xuLy8gICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyAubWRjLWZvby0tbW9kIHtcbi8vICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBwYWRkaW5nLWxlZnQ6IGF1dG87XG4vLyAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBtaXhpbiB3b3JrcyBieSBjaGVja2luZyBmb3IgYW4gYW5jZXN0b3IgZWxlbWVudCB3aXRoIGBbZGlyPVwicnRsXCJdYC5cbi8vIEFzIGEgcmVzdWx0LCBuZXN0ZWQgYGRpcmAgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkOlxuLy9cbi8vIGBgYGh0bWxcbi8vIDxodG1sIGRpcj1cInJ0bFwiPlxuLy8gICA8IS0tIC4uLiAtLT5cbi8vICAgPGRpdiBkaXI9XCJsdHJcIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwibWRjLWZvb1wiPlN0eWxlZCBpbmNvcnJlY3RseSBhcyBSVEwhPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy8gPC9odG1sPlxuLy8gYGBgXG4vL1xuLy8gSW4gdGhlIGZ1dHVyZSwgc2VsZWN0b3JzIHN1Y2ggYXMgdGhlIGA6ZGlyYCBwc2V1ZG8tY2xhc3MgKGh0dHA6Ly9tZG4uaW8vY3NzLzpkaXIpIHdpbGwgaGVscCB1cyBtaXRpZ2F0ZSB0aGlzLlxuQG1peGluIG1kYy1ydGwoJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmICgkcm9vdC1zZWxlY3Rvcikge1xuICAgIEBhdC1yb290IHtcbiAgICAgICN7JHJvb3Qtc2VsZWN0b3J9W2Rpcj1cInJ0bFwiXSAmLFxuICAgICAgW2Rpcj1cInJ0bFwiXSAjeyRyb290LXNlbGVjdG9yfSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBbZGlyPVwicnRsXCJdICYsXG4gICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFRha2VzIGEgYmFzZSBib3gtbW9kZWwgcHJvcGVydHkgbmFtZSAoYG1hcmdpbmAsIGBib3JkZXJgLCBgcGFkZGluZ2AsIGV0Yy4pIGFsb25nIHdpdGggYVxuLy8gZGVmYXVsdCBkaXJlY3Rpb24gKGBsZWZ0YCBvciBgcmlnaHRgKSBhbmQgdmFsdWUsIGFuZCBlbWl0cyBydWxlcyB3aGljaCBhcHBseSB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlXG4vLyBzcGVjaWZpZWQgZGlyZWN0aW9uIGJ5IGRlZmF1bHQgYW5kIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gaW4gUlRMLlxuLy9cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogOHB4O1xuLy8gICBtYXJnaW4tcmlnaHQ6IDA7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gd2hlcmVhczpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCA4cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBZb3UgY2FuIGFsc28gcGFzcyBhbiBvcHRpb25hbCA0dGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCB3aGljaCB3aWxsIGJlIGZvcndhcmRlZCB0byBgbWRjLXJ0bGAsXG4vLyBlLmcuIGBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgsIFwiLm1kYy1jb21wb25lbnRcIilgLlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHplcm8gb3V0IHRoZSBvcmlnaW5hbCB2YWx1ZSBpbiBhbiBSVEwgY29udGV4dC5cbi8vIElmIHlvdSdyZSB0cnlpbmcgdG8gZmxpcCB0aGUgdmFsdWVzLCB1c2UgYG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KClgIGluc3RlYWQuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUtYm94KCRiYXNlLXByb3BlcnR5LCAkZGVmYXVsdC1kaXJlY3Rpb24sICR2YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmIChpbmRleCgocmlnaHQsIGxlZnQpLCAkZGVmYXVsdC1kaXJlY3Rpb24pID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIGRlZmF1bHQgZGlyZWN0aW9uOiAnI3skZGVmYXVsdC1kaXJlY3Rpb259Jy4gUGxlYXNlIHNwZWNpZml5IGVpdGhlciAncmlnaHQnIG9yICdsZWZ0Jy5cIjtcbiAgfVxuXG4gICRsZWZ0LXZhbHVlOiAkdmFsdWU7XG4gICRyaWdodC12YWx1ZTogMDtcblxuICBAaWYgKCRkZWZhdWx0LWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgICRsZWZ0LXZhbHVlOiAwO1xuICAgICRyaWdodC12YWx1ZTogJHZhbHVlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoJGJhc2UtcHJvcGVydHksICRsZWZ0LXZhbHVlLCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgYSBiYXNlIHByb3BlcnR5IGFuZCBlbWl0cyBydWxlcyB0aGF0IGFzc2lnbiA8YmFzZS1wcm9wZXJ0eT4tbGVmdCB0byA8bGVmdC12YWx1ZT4gYW5kXG4vLyA8YmFzZS1wcm9wZXJ0eT4tcmlnaHQgdG8gPHJpZ2h0LXZhbHVlPiBpbiBhIExUUiBjb250ZXh0LCBhbmQgdmljZSB2ZXJzYSBpbiBhIFJUTCBjb250ZXh0LlxuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIGF1dG8sIDEycHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMTJweDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIDR0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IGNhbiBiZSBnaXZlbiwgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICAkcHJvcC1sZWZ0OiAjeyRiYXNlLXByb3BlcnR5fS1sZWZ0O1xuICAkcHJvcC1yaWdodDogI3skYmFzZS1wcm9wZXJ0eX0tcmlnaHQ7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUoJHByb3AtbGVmdCwgJGxlZnQtdmFsdWUsICRwcm9wLXJpZ2h0LCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgYW4gYXJndW1lbnQgc3BlY2lmeWluZyBhIGhvcml6b250YWwgcG9zaXRpb24gcHJvcGVydHkgKGVpdGhlciBcImxlZnRcIiBvciBcInJpZ2h0XCIpIGFzIHdlbGxcbi8vIGFzIGEgdmFsdWUsIGFuZCBhcHBsaWVzIHRoYXQgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiBhIExUUiBjb250ZXh0LCBhbmQgZmxpcHMgaXQgaW4gYVxuLy8gUlRMIGNvbnRleHQuIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbGVmdDogMDtcbi8vICAgcmlnaHQ6IGluaXRpYWw7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBsZWZ0OiBpbml0aWFsO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCB0aGlyZCAkcm9vdC1zZWxlY3RvciBhcmd1bWVudCBtYXkgYWxzbyBiZSBnaXZlbiwgd2hpY2ggaXMgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbigkcG9zaXRpb24tcHJvcGVydHksICR2YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmIChpbmRleCgocmlnaHQsIGxlZnQpLCAkcG9zaXRpb24tcHJvcGVydHkpID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHBvc2l0aW9uICN7cG9zaXRpb24tcHJvcGVydHl9LiBQbGVhc2Ugc3BlY2lmaXkgZWl0aGVyIHJpZ2h0IG9yIGxlZnRcIjtcbiAgfVxuXG4gIC8vIFRPRE86IFwiaW5pdGlhbFwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTEuIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLWluaXRpYWwtdmFsdWVcbiAgJGxlZnQtdmFsdWU6ICR2YWx1ZTtcbiAgJHJpZ2h0LXZhbHVlOiBpbml0aWFsO1xuXG4gIEBpZiAoJHBvc2l0aW9uLXByb3BlcnR5ID09IHJpZ2h0KSB7XG4gICAgJHJpZ2h0LXZhbHVlOiAkdmFsdWU7XG4gICAgJGxlZnQtdmFsdWU6IGluaXRpYWw7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShsZWZ0LCAkbGVmdC12YWx1ZSwgcmlnaHQsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBwYWlyIG9mIHByb3BlcnRpZXMgd2l0aCB2YWx1ZXMgYXMgYXJndW1lbnRzIGFuZCBmbGlwcyBpdCBpbiBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUobGVmdCwgMnB4LCByaWdodCwgNXB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBsZWZ0OiAycHg7XG4vLyAgIHJpZ2h0OiA1cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICByaWdodDogMnB4O1xuLy8gICAgIGxlZnQ6IDVweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgZmlmdGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCBtYXkgYWxzbyBiZSBnaXZlbiwgd2hpY2ggaXMgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZShcbiAgJGxlZnQtcHJvcGVydHksXG4gICRsZWZ0LXZhbHVlLFxuICAkcmlnaHQtcHJvcGVydHksXG4gICRyaWdodC12YWx1ZSxcbiAgJHJvb3Qtc2VsZWN0b3I6IG51bGxcbikge1xuICAvKiBAbm9mbGlwICovXG4gICN7JGxlZnQtcHJvcGVydHl9OiAkbGVmdC12YWx1ZTtcblxuICAvKiBAbm9mbGlwICovXG4gICN7JHJpZ2h0LXByb3BlcnR5fTogJHJpZ2h0LXZhbHVlO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwoJHJvb3Qtc2VsZWN0b3IpIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgI3skbGVmdC1wcm9wZXJ0eX06ICRyaWdodC12YWx1ZTtcblxuICAgIC8qIEBub2ZsaXAgKi9cbiAgICAjeyRyaWdodC1wcm9wZXJ0eX06ICRsZWZ0LXZhbHVlO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIC4yLCAxKSAhZGVmYXVsdDtcbiRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSkgIWRlZmF1bHQ7XG4kbWRjLWFuaW1hdGlvbi1hY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuJG1kYy1hbmltYXRpb24tc2hhcnAtY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIC42LCAxKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWZpbGxlZC1hY2Nlc3NpYmxlKCRjb250YWluZXItZmlsbC1jb2xvcikge1xuICAkZmlsbC10b25lOiBtZGMtdGhlbWUtdG9uZSgkY29udGFpbmVyLWZpbGwtY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbnRhaW5lci1maWxsLWNvbG9yKTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyayk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tZGFyayk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tbGlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvcikge1xuICAvLyA6bm90KDpkaXNhYmxlZCkgaXMgdXNlZCB0byBzdXBwb3J0IGxpbmsgc3R5bGVkIGFzIGJ1dHRvblxuICAvLyBhcyBsaW5rIGRvZXMgbm90IHN1cHBvcnQgOmVuYWJsZWQgc3R5bGVcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yLCAkZWRnZU9wdE91dDogdHJ1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWljb24tY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KDpkaXNhYmxlZCkgLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWluay1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtYnV0dG9uLWhlaWdodCwgJHJhZGl1cyksICRydGwtcmVmbGV4aXZlKTtcblxuICAmLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtZGVuc2UtYnV0dG9uLWhlaWdodCwgJHJhZGl1cyksICRydGwtcmVmbGV4aXZlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmcpIHtcbiAgLy8gJHBhZGRpbmcgc2hvdWxkIGJlIGEgc2luZ2xlIHZhbHVlOyBlbmZvcmNlIGl0IGJ5IHNwZWNpZnlpbmcgYWxsIDQgc2lkZXMgaW4gdGhlIG91dHB1dFxuICBwYWRkaW5nOiAwICRwYWRkaW5nIDAgJHBhZGRpbmc7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLW91dGxpbmUtd2lkdGgoJG91dGxpbmUtd2lkdGgsICRwYWRkaW5nOiAkbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nKSB7XG4gIC8vIE5vdGU6IEFkanVzdCBwYWRkaW5nIHRvIG1haW50YWluIGNvbnNpc3RlbnQgd2lkdGggd2l0aCBub24tb3V0bGluZWQgYnV0dG9uc1xuICAkcGFkZGluZy12YWx1ZTogbWF4KCRwYWRkaW5nIC0gJG91dGxpbmUtd2lkdGgsIDApO1xuXG4gIEBpbmNsdWRlIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLXZhbHVlKTtcblxuICBib3JkZXItd2lkdGg6ICRvdXRsaW5lLXdpZHRoO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1iYXNlXygpIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYnV0dG9uKTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkO1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIGhlaWdodDogJG1kYy1idXR0b24taGVpZ2h0O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gICY6YWN0aXZlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuXG4gICAgY29sb3I6ICRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb25fIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLXN2Z18ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZF8ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIC00cHgsIDhweCk7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1vdXRsaW5lZF8oKSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tLWZpbGxlZF8oKSB7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRtZGMtYnV0dG9uLWNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmcpO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMik7XG4gICAgY29sb3I6ICRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tcmFpc2VkXygpIHtcbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigyKTtcblxuICB0cmFuc2l0aW9uOiBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoKTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oOCk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDApO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1kZW5zZV8oKSB7XG4gIGhlaWdodDogJG1kYy1kZW5zZS1idXR0b24taGVpZ2h0O1xuICBmb250LXNpemU6IC44MTI1cmVtOyAvLyAxM3NwXG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gU2hhcGUgY2F0ZWdvcmllc1xuJG1kYy1zaGFwZS1zbWFsbC1zdXJmYWNlLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJG1kYy1zaGFwZS1tZWRpdW0tc3VyZmFjZS1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtc2hhcGUtbGFyZ2Utc3VyZmFjZS1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIFNoYXBlIGNhdGVnb3J5IG1hcHBpbmcuXG4kbWRjLXNoYXBlLWNhdGVnb3J5LXZhbHVlczogKFxuICBzbWFsbDogJG1kYy1zaGFwZS1zbWFsbC1zdXJmYWNlLXJhZGl1cyxcbiAgbWVkaXVtOiAkbWRjLXNoYXBlLW1lZGl1bS1zdXJmYWNlLXJhZGl1cyxcbiAgbGFyZ2U6ICRtZGMtc2hhcGUtbGFyZ2Utc3VyZmFjZS1yYWRpdXMsXG4pO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL2NvbW1vblwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBidXR0b25cbi5tZGMtYnV0dG9uIHtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1iYXNlXztcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1zaGFwZS1yYWRpdXMoc21hbGwpO1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMocHJpbWFyeSk7XG5cbiAgLy8gVGhlIGljb24gQ1NTIGNsYXNzIG92ZXJyaWRlcyBzdHlsZXMgZGVmaW5lZCBpbiB0aGUgLm1hdGVyaWFsLWljb25zIENTU1xuICAvLyBjbGFzcywgd2hpY2ggaXMgbG9hZGVkIHNlcGFyYXRlbHkgc28gdGhlIG9yZGVyIG9mIENTUyBkZWZpbml0aW9ucyBpcyBub3RcbiAgLy8gZ3VhcmFudGVlZC4gVGhlcmVmb3JlLCBpbmNyZWFzZSBzcGVjaWZpdHkgYnkgbmVzdGluZyB0aGlzIGNsYXNzIHRvIGVuc3VyZVxuICAvLyBvdmVycmlkZXMgYXBwbHkuXG4gIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uXztcbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgc3ZnLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tc3ZnXztcbiAgfVxufVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQsXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgLy8gSWNvbnMgaW5zaWRlIGNvbnRhaW5lZCBidXR0b25zIGhhdmUgZGlmZmVyZW50IHN0eWxlcyBkdWUgdG8gaW5jcmVhc2VkIGJ1dHRvbiBwYWRkaW5nXG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbi1jb250YWluZWRfO1xuICB9XG59XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCB7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24tLWZpbGxlZF87XG4gIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKG9uLXByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzKG9uLXByaW1hcnkpO1xufVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIHtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tcmFpc2VkXztcbn1cblxuLm1kYy1idXR0b24tLW91dGxpbmVkIHtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tb3V0bGluZWRfO1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLW91dGxpbmUtd2lkdGgoMnB4KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1vdXRsaW5lLWNvbG9yKHByaW1hcnkpO1xufVxuXG4ubWRjLWJ1dHRvbi0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLS1kZW5zZV87XG59XG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtYnV0dG9uLWhlaWdodDogMzZweDtcbiRtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZzogOHB4O1xuJG1kYy1idXR0b24tY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZzogMTZweDtcbiRtZGMtZGVuc2UtYnV0dG9uLWhlaWdodDogMzJweDtcblxuJG1kYy1idXR0b24tZGlzYWJsZWQtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpO1xuIiwiQGltcG9ydCBcIl92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmFiL21kYy1mYWJcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYnV0dG9uL21kYy1idXR0b25cIjtcblxuLy8gIF9fX19fICAgICAgICAgICAgICAgICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgIF9cbi8vIHxfICAgX3wgICAgICAgICAgICAgICAgICAgXyAgICB8IHwgICAgICAgICB8IHwgICAgICAgIHwgfFxuLy8gICB8IHwgIF9fXyBfX18gIF8gX18gICAgX3wgfF8gIHwgfCAgICAgX18gX3wgfF9fICAgX19ffCB8XG4vLyAgIHwgfCAvIF9fLyBfIFxcfCAnXyBcXCAgfF8gICBffCB8IHwgICAgLyBfYCB8ICdfIFxcIC8gXyBcXCB8XG4vLyAgX3wgfHwgKF98IChfKSB8IHwgfCB8ICAgfF98ICAgfCB8X19ffCAoX3wgfCB8XykgfCAgX18vIHxcbi8vICBcXF9fXy9cXF9fX1xcX19fL3xffCB8X3wgICAgICAgICBcXF9fX19fL1xcX18sX3xfLl9fLyBcXF9fX3xffFxuLy9cblxuLmxkay13c3AtYnV0dG9uIC53c3AtaWNvbj5pbWcge1xuICAgIHdpZHRoOiAkaWNvbi1zaXplO1xuICAgIGhlaWdodDogJGljb24tc2l6ZTtcbn1cblxuXG4ubGRrLXdzcC1idXR0b24ge1xuICAgICYuc21hbGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyAvLyBTbyBpdCBhbGlnbnMgd2l0aCBjbGllbmdvIHdpZGdldCB2MiBwb3NpdGlvblxuICAgIH1cblxuICAgIC53c3AtaWNvbiB7XG4gICAgICAgIEBleHRlbmQgLm1kYy1mYWJfX2ljb247XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAud3NwLWxhYmVsIHtcbiAgICAgICAgQGV4dGVuZCAubWRjLWZhYl9fbGFiZWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubGRrLXdzcC1idXR0b246bm90KC5zbWFsbCkge1xuICAgIC53c3AtaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG59XG5cbi5sZGstd3NwLWJ1dHRvbi5zbWFsbCB7XG4gICAgLndzcC1sYWJlbHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIF9fX19fXyAgICAgICBfICAgX1xuLy8gfCBfX18gXFwgICAgIHwgfCB8IHxcbi8vIHwgfF8vIC9fICAgX3wgfF98IHxfIF9fXyAgXyBfX1xuLy8gfCBfX18gXFwgfCB8IHwgX198IF9fLyBfIFxcfCAnXyBcXFxuLy8gfCB8Xy8gLyB8X3wgfCB8X3wgfHwgKF8pIHwgfCB8IHxcbi8vIFxcX19fXy8gXFxfXyxffFxcX198XFxfX1xcX19fL3xffCB8X3xcbi8vXG5cbi5sZGstd3NwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAubWRjLWZhYjtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWFjY2Vzc2libGUoJHdzcC1ncmVlbi1kYXJrKTtcbiAgICAmLnNtYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIC53c3AtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoZWlnaHQ6ICRidXR0b24taGVpZ2h0O1xuICAgIHdpZHRoOiAkYnV0dG9uLWhlaWdodDtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6JGljb24tc3Ryb2tlIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiA4MDgwO1xuXG4gICAgLy8gRm9yIGhvdmVyaW5nIGVmZmVjdFxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgLy8gd2lkdGg6IDEyMCU7XG4gICAgICAgIC8vIGhlaWdodDogMTIwJTtcbiAgICAgICAgLy8gdG9wOiAtMTAlO1xuICAgICAgICAvLyBsZWZ0OiAtMTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0b3A6IDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBGb3IgYWN0aXZlIGVmZmVjdFxuICAgICY6YWZ0ZXIge1xuICAgICAgICAvLyB3aWR0aDogMTMwJTtcbiAgICAgICAgLy8gaGVpZ2h0OiAxMzAlO1xuICAgICAgICAvLyB0b3A6IC0xNSU7XG4gICAgICAgIC8vIGxlZnQ6IC0xNSU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMCU7XG4gICAgICAgIGxlZnQ6IDAlO1xuICAgIH1cbn1cblxuLmxkay13c3AtYnV0dG9uLnNtYWxsIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbn1cblxuXG4ubGRrLXdzcC1idXR0b246bm90KC5zbWFsbCkge1xuXG4gICAgLy8gVGhpcyBDU1MgaXMgZnJvbSBleHRlbmRlZCBjbGFzcyBpbiBtYXRlcmlhbCBkZXNpZ25cbiAgICAvLyBDb3VsZCBub3QgdXNlIGFuIEBleHRlbmQgZGlyZWN0aXZlIGluc2lkZSBtZWRpYSBxdWVyeSA6KFxuICAgIGZvbnQtZmFtaWx5OiBOdW5pdG8sIHNhbnMtc2VyaWY7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC8vIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgLy8gbGV0dGVyLXNwYWNpbmc6IDAuMDg5MjllbTtcbiAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICAvLyBGb3IgaG92ZXJpbmcgZWZmZWN0XG4gICAgJjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgaGVpZ2h0OiAyMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgdG9wOiAwJTtcbiAgICB9XG5cbiAgICAvLyBGb3IgYWN0aXZlIGVmZmVjdFxuICAgICY6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgaGVpZ2h0OiAyMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgdG9wOiAwJTtcbiAgICB9XG59XG5cbi5sZGstd3NwLWNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMTk5OTk5OTtcbiAgICAmLmxkay1kaXNhYmxlZCB7XG4gICAgICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZGMtZmFiLWFjY2Vzc2libGUoI2MwYzBjMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8gRm9yIGxlZ2FjeSBidXR0b25cbi5sZGstd3NwLWJ1dHRvbiB7XG4gICAgJi5sZGstZGlzYWJsZWQge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmFiLWFjY2Vzc2libGUoI2MwYzBjMCk7XG4gICAgfVxufVxuXG4vLyAgIF9fX19fICAgICAgICAgICAgICAgICAgICAgIF9fX18gICAgICAgIF8gICAgICAgICAgICAgICBfIF8gICAgIF9fX18gICAgICAgIF8gICBfXG4vLyAgfCAgX19ffF9fICBfIF9fIF8gX18gX19fICAgLyBfX198IF8gICBffCB8X18gIF8gX18gX19fIChfKSB8XyAgfCBfXyApIF8gICBffCB8X3wgfF8gX19fICBfIF9fXG4vLyAgfCB8XyAvIF8gXFx8ICdfX3wgJ18gYCBfIFxcICBcXF9fXyBcXHwgfCB8IHwgJ18gXFx8ICdfIGAgXyBcXHwgfCBfX3wgfCAgXyBcXHwgfCB8IHwgX198IF9fLyBfIFxcfCAnXyBcXFxuLy8gIHwgIF98IChfKSB8IHwgIHwgfCB8IHwgfCB8ICBfX18pIHwgfF98IHwgfF8pIHwgfCB8IHwgfCB8IHwgfF8gIHwgfF8pIHwgfF98IHwgfF98IHx8IChfKSB8IHwgfCB8XG4vLyAgfF98ICBcXF9fXy98X3wgIHxffCB8X3wgfF98IHxfX19fLyBcXF9fLF98Xy5fXy98X3wgfF98IHxffF98XFxfX3wgfF9fX18vIFxcX18sX3xcXF9ffFxcX19cXF9fXy98X3wgfF98XG4vL1xuLndzcC1mb3JtLXN1Ym1pdCB7XG5cbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICYgW3R5cGU9c3VibWl0XSB7XG4gICAgICAgIEBleHRlbmQgLm1kYy1idXR0b247XG4gICAgICAgIEBleHRlbmQgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkd3NwLWdyZWVuLWxpZ2h0Mik7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKCRpY29uLXN0cm9rZSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIGZvbnQ6IGJvbGQgMjBweCBOdW5pdG87XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgfVxufVxuXG4vLyAgIF9fX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICBfX19fXG4vLyAgfCAgXyBcXCBfX19fXyAgICAgIF9fX19fIF8gX18gX19fICBfX3wgfCB8IF9fICkgXyAgIF9cbi8vICB8IHxfKSAvIF8gXFwgXFwgL1xcIC8gLyBfIFxcICdfXy8gXyBcXC8gX2AgfCB8ICBfIFxcfCB8IHwgfFxuLy8gIHwgIF9fLyAoXykgXFwgViAgViAvICBfXy8gfCB8ICBfXy8gKF98IHwgfCB8XykgfCB8X3wgfFxuLy8gIHxffCAgIFxcX19fLyBcXF8vXFxfLyBcXF9fX3xffCAgXFxfX198XFxfXyxffCB8X19fXy8gXFxfXywgfFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfF9fXy9cblxuLndzcC1wb3dlcmVkLWJ5IHtcbiAgICBpbWcge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIGNvbG9yOiAjYWFhIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bywgSGVsdmV0aWNhIE5ldWUsc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAwLjJyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuIiwiLy8gJHdzcC1ncmVlbi1kYXJrOiAjMDA5ZDg3O1xuJHdzcC1ncmVlbi1kYXJrOiAjMDBjOWEzOyAvLyBDb2xvciBvZmljaWFsIFdoYXRzQXBwXG4kd3NwLWdyZWVuLWxpZ2h0MjogIzI1ZDM2NjtcbiR3c3AtZ3JlZW4tbGlnaHQ6ICMwMGZmNmE7IC8vIENvbG9yIG9maWNpYWwgV2hhdHNBcHBcbiRpY29uLXN0cm9rZTogd2hpdGU7XG4kaWNvbi1zaXplOiAyNHB4O1xuJGZvcm0tYnV0dG9uLWJnOiBibHVlO1xuJGdyZXktY29sb3I6ICM2NjY7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAjYjBhZmIwO1xuJGlucHV0LXRleHQtY29sb3I6ICM3MjcyNzI7XG4kZ2VuZXJhbC1mb250LWNvbG9yOiAjNTE1MTUxO1xuJHN1YnRpdGxlLWNvbG9yOiAkZ2VuZXJhbC1mb250LWNvbG9yO1xuJG1hcmdpbjogLjQ4cmVtOyAvLyBTbyBpdCBmaXRzIHdpdGggY2xpZW5nbyB3aWRnZXQgdjIgcG9zaXRpb25cbiRidXR0b24taGVpZ2h0OiA2NXB4O1xuJGNhcmQtbWQtaGVpZ2h0OiA1MzBweDtcbiRjYXJkLW1kLXdpZHRoOiAzMTVweDtcbiRjbGllbmdvLW1hcmdpbi14OiAwLjg1O1xuJGNsaWVuZ28tbWFyZ2luLXk6IDY7XG5cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TnVuaXRvOjQwMCw0MDBpLDcwMCcpO1xuIiwiLy8gIF9fX19fICAgICAgICAgICAgIF8gICAgICAgIF9cbi8vIC8gIF9fIFxcICAgICAgICAgICB8IHwgICAgICAoXylcbi8vIHwgLyAgXFwvIF9fXyAgXyBfXyB8IHxfIF9fIF8gXyBfIF9fICAgX19fIF8gX18gX19fXG4vLyB8IHwgICAgLyBfIFxcfCAnXyBcXHwgX18vIF9gIHwgfCAnXyBcXCAvIF8gXFwgJ19fLyBfX3xcbi8vIHwgXFxfXy9cXCAoXykgfCB8IHwgfCB8fCAoX3wgfCB8IHwgfCB8ICBfXy8gfCAgXFxfXyBcXFxuLy8gIFxcX19fXy9cXF9fXy98X3wgfF98XFxfX1xcX18sX3xffF98IHxffFxcX19ffF98ICB8X19fL1xuLy9cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuLmxkay13c3AtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbml0aWFsIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIC5sZGstd3NwLWxvYWRpbmcsIC5sZGstd3NwLWVycm9yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAud3NwLWNhcmQge1xuICAgICAgICAvLyBUT0RPOiBoZWlnaHQ6IGNhbGMoICN7JGJ1dHRvbi1oZWlnaHR9ICsgMnJlbSApO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC53c3AtZm9ybS1jb250YWluZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIC53c3AtZm9ybSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAuc3BhY2UtcGFkZGluZy13c3B7cGFkZGluZzogMTJweCAyNHB4O31cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLndzcC10aXRsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBmb250OiAyM3B4IE51bml0byxzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzdWJ0aXRsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDVweCAwIDhweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLndzcC1ub3RpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQ6IDE0cHggTnVuaXRvLHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzdWJ0aXRsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC53c3AtdGl0bGUtdG9we1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd3NwLWdyZWVuLWRhcms7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAud3NwLWljb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaXRpYWwhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdGVyaWFsLWljb25zIHtcbiAgICAgICAgICAgICAgICAvLyBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaWNvbi1zdHJva2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIZWlnaHQgYW5kIHdpZHRoIG9mIGNvbnRhaW5lclxuICAgICYuaXMtZXhwYW5kaW5nLCAmLmlzLXVuZXhwYW5kaW5nLCAmLmlzLWV4cGFuZGVkIHtcbiAgICAgICAgJiAsICYgLndzcC1jYXJkIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCAxMDB2dyAtICN7MiokbWFyZ2lufSApIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIFRPRE86IGhlaWdodDogY2FsYyggMTAwJSAtICN7JG1hcmdpbn0gKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAgICAgICAgICAgJiAsICYgLndzcC1jYXJkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGNhcmQtbWQtd2lkdGghaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGNhcmQtbWQtaGVpZ2h0IWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY2xpZW5nby1jb21wYXRpYmxlIHtcbiAgICAgICAgICAgICYgLCAmIC53c3AtY2FyZCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoIDEwMHZ3IC0gI3syKiRjbGllbmdvLW1hcmdpbi14KiRtYXJnaW59ICkhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyggMTAwJSAtICN7KDErJGNsaWVuZ28tbWFyZ2luLXkpKiRtYXJnaW59ICkhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgICAgICAgICAgICAgJiAsICYgLndzcC1jYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRjYXJkLW1kLXdpZHRoIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkY2FyZC1tZC1oZWlnaHQhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZXhwYW5kaW5nLCAmLmlzLWV4cGFuZGVke1xuICAgICAgICAud3NwLWNhcmQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZXhwYW5kaW5nIHtcbiAgICAgICAgLndzcC1jYXJkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3c3AtZ3JlZW4tZGFyaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZXhwYW5kZWQge1xuICAgICAgICB6LWluZGV4OiA5OTk5OTk5OyAvLyBTbyBpdCBvdmVybGFwcyBjbGllbmdvIHdpZGdldCB3aGVuIGV4cGFuZGVkXG4gICAgICAgIC5sZGstd3NwLWVycm9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4zKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBOdW5pdG8sIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA1MCUgMCAwIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxkay13c3AtbG9hZGluZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHdzcC1sb2FkaW5nIDJzIGVhc2UgMHMgaW5maW5pdGUgbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndzcC1jYXJkIHtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgICAgICAgICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLndzcC10aXRsZS10b3Age1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiX3ZhcmlhYmxlc1wiO1xuXG4vLyBfX19fX18gICAgICAgXyAgIF8gICAgICAgICAgICAgICAgIF9fXyAgICAgICAgXyAgICAgICAgICAgICAgICAgXyAgIF8gICAgICAgICAgICAgXG4vLyB8IF9fXyBcXCAgICAgfCB8IHwgfCAgICAgICAgICAgICAgIC8gXyBcXCAgICAgIChfKSAgICAgICAgICAgICAgIHwgfCAoXykgICAgICAgICAgICBcbi8vIHwgfF8vIC9fICAgX3wgfF98IHxfIF9fXyAgXyBfXyAgIC8gL19cXCBcXF8gX18gIF8gXyBfXyBfX18gICBfXyBffCB8XyBfICBfX18gIF8gX18gIFxuLy8gfCBfX18gXFwgfCB8IHwgX198IF9fLyBfIFxcfCAnXyBcXCAgfCAgXyAgfCAnXyBcXHwgfCAnXyBgIF8gXFwgLyBfYCB8IF9ffCB8LyBfIFxcfCAnXyBcXCBcbi8vIHwgfF8vIC8gfF98IHwgfF98IHx8IChfKSB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgKF98IHwgfF98IHwgKF8pIHwgfCB8IHxcbi8vIFxcX19fXy8gXFxfXyxffFxcX198XFxfX1xcX19fL3xffCB8X3wgXFxffCB8Xy9ffCB8X3xffF98IHxffCB8X3xcXF9fLF98XFxfX3xffFxcX19fL3xffCB8X3xcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuLmxkay13c3AtYnV0dG9uIHtcbiAgICB0cmFuc2l0aW9uOiAgb3BhY2l0eSAxNzVtcyAxNTBtcztcbiAgICBvcGFjaXR5OiAwIWltcG9ydGFudDtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLmxkay13c3AtYnV0dG9uLmluaXRpYWxpemVkIHtcbiAgICBvcGFjaXR5OiAxIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xufVxuXG4vLyBfX19fX18gICAgICAgICAgICAgICAgICAgICAgX19fICAgICAgICBfICAgICAgICAgICAgICAgICBfICAgXyAgICAgICAgICAgICBcbi8vIHwgIF9fX3wgICAgICAgICAgICAgICAgICAgIC8gXyBcXCAgICAgIChfKSAgICAgICAgICAgICAgIHwgfCAoXykgICAgICAgICAgICBcbi8vIHwgfF8gX19fICBfIF9fIF8gX18gX19fICAgLyAvX1xcIFxcXyBfXyAgXyBfIF9fIF9fXyAgIF9fIF98IHxfIF8gIF9fXyAgXyBfXyAgXG4vLyB8ICBfLyBfIFxcfCAnX198ICdfIGAgXyBcXCAgfCAgXyAgfCAnXyBcXHwgfCAnXyBgIF8gXFwgLyBfYCB8IF9ffCB8LyBfIFxcfCAnXyBcXCBcbi8vIHwgfHwgKF8pIHwgfCAgfCB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgfCB8IHwgfCAoX3wgfCB8X3wgfCAoXykgfCB8IHwgfFxuLy8gXFxffCBcXF9fXy98X3wgIHxffCB8X3wgfF98IFxcX3wgfF8vX3wgfF98X3xffCB8X3wgfF98XFxfXyxffFxcX198X3xcXF9fXy98X3wgfF98XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuLy8gUkVGRVJFTkNJQSBERSBBTklNQUNJT05FUyBQSU9MQSBWQUdPXG4vLyBodHRwczovL2NvZGVwZW4uaW8vSm9sbGUvcGVuL0xOS3dSTVxuLy8gaHR0cDovL3d3dy5rb2RodXMuY29tL2tvZG5lc3QvY29kaWZ5L0tLelJGTS9sYXlvdXQvMVxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL2VxdWludXNvY2lvL3Blbi9lTmFOZ3FcblxuLmxkay13c3AtY29udGFpbmVyIHtcblxuICAgIC53c3AtY2FyZCB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCA3MDBtcyBlYXNlIC0yMDBtcztcbiAgICBcbiAgICAgICAgLndzcC1mb3Jte1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgNzAwbXMgY3ViaWMtYmV6aWVyKDAuMjMwLCAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB3aWR0aCxoZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAubGRrLXdzcC1idXR0b24gLndzcC1pY29uLCAubGRrLXdzcC1idXR0b24gLndzcC1sYWJlbHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZSA3MDBtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9uIG9wZW5pbmcgdHJhbnNpdGlvbnNcbiAgICAmLmlzLWV4cGFuZGluZyB7XG5cbiAgICAgICAgLndzcC1jYXJkIHtcbiAgICAgICAgICAgIC8vIFRyYW5zaXRpb25cbiAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsYm94LXNoYWRvdyxib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiA1MDBtcztcbiAgICBcbiAgICAgICAgICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCkgMjAwbXM7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSg2MCk7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMzApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIC5sZGstd3NwLWJ1dHRvbiAud3NwLWljb24sIC5sZGstd3NwLWJ1dHRvbiAud3NwLWxhYmVse1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDBzIGN1YmljLWJlemllcigwLjIzMCwgMS4wMDAsIDAuMzIwLCAxLjAwMCkgMHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWV4cGFuZGVkIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gICAgICAgICAgICAvLyBBbGxvdyB2ZXJ0aWNhbCBzY3JvbGwgb24gbW9iaWxlLCBhcyBrZXlib2FyZCBtaWdodCByZXNpemUgdmlld1xuICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC53c3AtY2FyZCwgLndzcC1mb3JtIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IHBvd2VyZWQgYnkgb25jZSBmb3JtIGlzIGV4cGFuZGVkXG4gICAgICAgIC53c3AtcG93ZXJlZC1ieSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLndzcC1mb3Jte1xuICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcyBlYXNlLWluLW91dCAyMDBtcztcbiAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIC5sZGstd3NwLWJ1dHRvbiAud3NwLWljb24sIC5sZGstd3NwLWJ1dHRvbiAud3NwLWxhYmVse1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZSA3MDBtcztcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vLyAgIF8gICAgICAgICAgICAgICAgICAgIF8gXyAgICAgICAgICAgICAgICAgIF8gICAgICAgICAgXyAgICAgICAgICAgICAgICAgXyAgIF8gICAgICAgICAgICAgXG4vLyAgfCB8ICAgIF9fXyAgIF9fIF8gIF9ffCAoXylfIF9fICAgX18gXyAgICAgLyBcXCAgIF8gX18gKF8pXyBfXyBfX18gICBfXyBffCB8XyhfKSBfX18gIF8gX18gIFxuLy8gIHwgfCAgIC8gXyBcXCAvIF9gIHwvIF9gIHwgfCAnXyBcXCAvIF9gIHwgICAvIF8gXFwgfCAnXyBcXHwgfCAnXyBgIF8gXFwgLyBfYCB8IF9ffCB8LyBfIFxcfCAnXyBcXCBcbi8vICB8IHxfX3wgKF8pIHwgKF98IHwgKF98IHwgfCB8IHwgfCAoX3wgfCAgLyBfX18gXFx8IHwgfCB8IHwgfCB8IHwgfCB8IChffCB8IHxffCB8IChfKSB8IHwgfCB8XG4vLyAgfF9fX19fXFxfX18vIFxcX18sX3xcXF9fLF98X3xffCB8X3xcXF9fLCB8IC9fLyAgIFxcX1xcX3wgfF98X3xffCB8X3wgfF98XFxfXyxffFxcX198X3xcXF9fXy98X3wgfF98XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X19fLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbkBrZXlmcmFtZXMgd3NwLWxvYWRpbmcge1xuICAgIGZyb20ge3RyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7fVxuICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB3c3AtbG9hZGluZyB7XG4gICAgZnJvbSB7dHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG4gICAgdG8ge3RyYW5zZm9ybTogcm90YXRlKDBkZWcpO31cbn1cblxuIiwiLy8gX19fICBfX19fICAgICAgX1xuLy8gfCAgXFwvICAoXykgICAgKF8pXG4vLyB8IC4gIC4gfF9fXyAgX19fIF8gX18gIF9fX1xuLy8gfCB8XFwvfCB8IFxcIFxcLyAvIHwgJ18gXFwvIF9ffFxuLy8gfCB8ICB8IHwgfD4gIDx8IHwgfCB8IFxcX18gXFxcbi8vIFxcX3wgIHxfL18vXy9cXF9cXF98X3wgfF98X19fL1xuLy9cblxuQG1peGluIGxkay1wb3NpdGlvbnMoJG9mZnNldCkge1xuICAgICYubGRrLXJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6ICRvZmZzZXQ7XG4gICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgfVxuICAgICYubGRrLWxlZnQge1xuICAgICAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICB9XG4gICAgJi5sZGstdG9wIHtcbiAgICAgICAgdG9wOiAkb2Zmc2V0O1xuICAgICAgICBib3R0b206IGluaXRpYWw7XG4gICAgfVxuICAgICYubGRrLWJvdHRvbSB7XG4gICAgICBib3R0b206ICRvZmZzZXQ7XG4gICAgICB0b3A6IGluaXRpYWw7XG4gICAgfVxufVxuXG5AbWl4aW4gbGRrLW1kLXBvc2l0aW9ucygkb2Zmc2V0KSB7XG4gICAgJi5tZC1yaWdodCB7XG4gICAgICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgIH1cbiAgICAmLm1kLWxlZnQge1xuICAgICAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICB9XG4gICAgJi5tZC10b3Age1xuICAgICAgICB0b3A6ICRvZmZzZXQ7XG4gICAgICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICB9XG4gICAgJi5tZC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAkb2Zmc2V0O1xuICAgICAgdG9wOiBpbml0aWFsO1xuICAgIH1cbn1cblxuQG1peGluIGxkay1jb250YWluZXItYnV0dG9uLXBvc2l0aW9uKCRvZmZzZXQpIHtcbiAgICAmLmxkay1yaWdodCAubGRrLXdzcC1idXR0b257XG4gICAgICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgIH1cbiAgICAmLmxkay1sZWZ0IC5sZGstd3NwLWJ1dHRvbntcbiAgICAgICAgbGVmdDogJG9mZnNldDtcbiAgICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgfVxuICAgICYubGRrLXRvcCAubGRrLXdzcC1idXR0b257XG4gICAgICAgIHRvcDogJG9mZnNldDtcbiAgICAgICAgYm90dG9tOiBpbml0aWFsO1xuICAgIH1cbiAgICAmLmxkay1ib3R0b20gLmxkay13c3AtYnV0dG9ue1xuICAgICAgYm90dG9tOiAkb2Zmc2V0O1xuICAgICAgdG9wOiBpbml0aWFsO1xuICAgIH1cbn1cblxuLy8gX19fX19fICAgICAgIF8gICBfICAgICAgICAgICAgICAgX19fX19fICAgICAgICAgXyBfICAgXyAgICAgICAgICAgICBfXG4vLyB8IF9fXyBcXCAgICAgfCB8IHwgfCAgICAgICAgICAgICAgfCBfX18gXFwgICAgICAgKF8pIHwgKF8pICAgICAgICAgICAoXylcbi8vIHwgfF8vIC9fICAgX3wgfF98IHxfIF9fXyAgXyBfXyAgIHwgfF8vIC9fXyAgX19fIF98IHxfIF8gIF9fXyAgXyBfXyAgXyBfIF9fICAgX18gX1xuLy8gfCBfX18gXFwgfCB8IHwgX198IF9fLyBfIFxcfCAnXyBcXCAgfCAgX18vIF8gXFwvIF9ffCB8IF9ffCB8LyBfIFxcfCAnXyBcXHwgfCAnXyBcXCAvIF9gIHxcbi8vIHwgfF8vIC8gfF98IHwgfF98IHx8IChfKSB8IHwgfCB8IHwgfCB8IChfKSBcXF9fIFxcIHwgfF98IHwgKF8pIHwgfCB8IHwgfCB8IHwgfCAoX3wgfFxuLy8gXFxfX19fLyBcXF9fLF98XFxfX3xcXF9fXFxfX18vfF98IHxffCBcXF98ICBcXF9fXy98X19fL198XFxfX3xffFxcX19fL3xffCB8X3xffF98IHxffFxcX18sIHxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX18vIHxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X19fL1xuXG4ubGRrLXdzcC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAkbWFyZ2luO1xuICAgIHRvcDogJG1hcmdpbjtcbiAgICBAaW5jbHVkZSBsZGstcG9zaXRpb25zKDIqJG1hcmdpbik7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGxkay1tZC1wb3NpdGlvbnMoJG1hcmdpbik7XG4gICAgfVxufVxuXG4vLyAgX19fX18gICAgICAgICAgICAgICBfICBfX19fX18gICAgICAgICBfIF8gICBfICAgICAgICAgICAgIF9cbi8vIC8gIF9fIFxcICAgICAgICAgICAgIHwgfCB8IF9fXyBcXCAgICAgICAoXykgfCAoXykgICAgICAgICAgIChfKVxuLy8gfCAvICBcXC8gX18gXyBfIF9fIF9ffCB8IHwgfF8vIC9fXyAgX19fIF98IHxfIF8gIF9fXyAgXyBfXyAgXyBfIF9fICAgX18gX1xuLy8gfCB8ICAgIC8gX2AgfCAnX18vIF9gIHwgfCAgX18vIF8gXFwvIF9ffCB8IF9ffCB8LyBfIFxcfCAnXyBcXHwgfCAnXyBcXCAvIF9gIHxcbi8vIHwgXFxfXy9cXCAoX3wgfCB8IHwgKF98IHwgfCB8IHwgKF8pIFxcX18gXFwgfCB8X3wgfCAoXykgfCB8IHwgfCB8IHwgfCB8IChffCB8XG4vLyAgXFxfX19fL1xcX18sX3xffCAgXFxfXyxffCBcXF98ICBcXF9fXy98X19fL198XFxfX3xffFxcX19fL3xffCB8X3xffF98IHxffFxcX18sIHxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX18vIHxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X19fL1xuXG4ubGRrLXdzcC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBsZWZ0OiAkbWFyZ2luO1xuICAgIHRvcDogJG1hcmdpbjtcblxuICAgIC53c3AtY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsZGstcG9zaXRpb25zKCRtYXJnaW4pO1xuICAgIEBpbmNsdWRlIGxkay1jb250YWluZXItYnV0dG9uLXBvc2l0aW9uKCRtYXJnaW4pO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gICAgICAgICAgICAmLmlzLWV4cGFuZGVkLCAmLmlzLWV4cGFuZGluZyB7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRjYXJkLW1kLWhlaWdodDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGNhcmQtbWQtd2lkdGg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygtI3skY2FyZC1tZC13aWR0aH0vMik7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtI3skY2FyZC1tZC1oZWlnaHR9LzIpO1xuXG4gICAgICAgICAgICAgICAgLndzcC1jYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sZGstd3NwLWJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogJG1hcmdpbjtcbiAgICAgICAgdG9wOiAkbWFyZ2luO1xuXG4gICAgICAgIC8vIE1vZGlmaWVzIHRoZSBzaGFkb3cgb24gaG92ZXIgYW5kIGFjdGl2ZSBiZWNhdXNlIGdldHMgcGxhaW4gd2hlbiBidXR0b24gaXMgYXQgdGhlIGJvdHRvbVxuICAgICAgICAmLmJvdHRvbTpob3ZlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMC4yNXJlbSA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwLjVyZW0gMTBweCAwLjFyZW0gcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDAuMnJlbSAxNHB4IDAuM3JlbSByZ2JhKDAsIDAsIDAsIDAuMTIpXG4gICAgICAgIH1cblxuICAgICAgICAmLmJvdHRvbTphY3RpdmUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDAuMjVyZW0gNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMC41cmVtIDEwcHggMC4xcmVtIHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwLjJyZW0gMTRweCAwLjNyZW0gcmdiYSgwLCAwLCAwLCAwLjEyKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jbGllbmdvLWNvbXBhdGlibGUge1xuICAgICAgICBib3R0b206IDYqJG1hcmdpbjtcbiAgICAgICAgcmlnaHQ6IDAuODVyZW07XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIl92YXJpYWJsZXNcIjtcbi5wb3dlcmVkQnlQb3B1cC1oaWRkZW57XG4gIGRpc3BsYXk6bm9uZTtcbn1cbi5wb3dlcmVkLWJ5LXBvcHVwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC43KTtcbiAgei1pbmRleDogMTAwMDAwO1xuICBib3JkZXItcmFkaXVzOiA3cHggN3B4IDAgMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgLmRpYWxvZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gICAgcGFkZGluZzogNDhweCAyNHB4IDMycHggMjRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDcwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM1MTUxNTE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRpb246IHNsaWRlSW4gMzAwbXMgMTAwbXMgZm9yd2FyZHM7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bywgc2Fucy1zZXJpZjtcblxuICAgIC5jbG9zZS1kaWFsb2cge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICB0b3A6IDhweDtcbiAgICAgIGNvbG9yOiAjQjNCM0IzO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICAuaWNvbi1jYW5jZWx7XG4gICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmN0YSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogIzgzNjdGNTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgLjE2KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXM7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oIzgzNjdGNSwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbi5pY29uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaWNvbi1jYW5jZWxhcjo6YmVmb3JlIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4uaWNvbi1jYW5jZWxhciB7XG4gIGN1cnNvcjogcy1yZXNpemU7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4ud3NwLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1ib3R0b206IDZweCAhaW1wb3J0YW50O1xuXG4gIGEge1xuICAgIGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLmxkay1pbnB1dC1lcnJvciB7XG4gICAgbGFiZWwge1xuICAgICAgY29sb3I6ICNmMDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgaW5wdXQsIHNlbGVjdCB7XG4gICAgICBib3JkZXItY29sb3I6ICNmMDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmxkay1lcnJvci1tc2cge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAubGRrLWVycm9yLW1zZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjb2xvcjogI2YwMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBOdW5pdG8sIEhlbHZldGljYSBOZXVlLCBzYW5zLXNlcmlmO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiAkZ2VuZXJhbC1mb250LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgZm9udDogYm9sZCAxNHB4IE51bml0byxzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgaW5wdXQsIHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bywgSGVsdmV0aWNhIE5ldWUsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFREVERUQgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIDMwMG1zICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGdlbmVyYWwtZm9udC1jb2xvciAhaW1wb3J0YW50O1xuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHdzcC1ncmVlbi1kYXJrICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGdlbmVyYWwtZm9udC1jb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4ubGRrLWZvcm0tZmllbGQge1xuICAvL0BleHRlbmQgLm1kYy10ZXh0LWZpZWxkO1xuICAvL0BleHRlbmQgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDtcbiAgLy9AZXh0ZW5kIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb247XG59XG4iLCIvLyAgX18gICAgICAgIF9fXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fX18gICAgICAgICAgICAgXyAgICAgICBfICAgICAgICAgICAgICAgICBcbi8vICBcXCBcXCAgICAgIC8gLyB8X18gICBfXyBffCB8XyBfX18gIF9fIF8gXyBfXyAgXyBfXyAgIHwgX18gKSAgX18gXyAgX19ffCB8IF9fX198IHxfIF9fIF9fXyAgXyBfXyAgXG4vLyAgIFxcIFxcIC9cXCAvIC98ICdfIFxcIC8gX2AgfCBfXy8gX198LyBfYCB8ICdfIFxcfCAnXyBcXCAgfCAgXyBcXCAvIF9gIHwvIF9ffCB8LyAvIF9gIHwgJ19fLyBfIFxcfCAnXyBcXCBcbi8vICAgIFxcIFYgIFYgLyB8IHwgfCB8IChffCB8IHxfXFxfXyBcXCAoX3wgfCB8XykgfCB8XykgfCB8IHxfKSB8IChffCB8IChfX3wgICA8IChffCB8IHwgfCAoXykgfCB8XykgfFxuLy8gICAgIFxcXy9cXF8vICB8X3wgfF98XFxfXyxffFxcX198X19fL1xcX18sX3wgLl9fL3wgLl9fLyAgfF9fX18vIFxcX18sX3xcXF9fX3xffFxcX1xcX18sX3xffCAgXFxfX18vfCAuX18vIFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X3wgICB8X3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X3wgICAgXG5cbi53aGF0c2FwcC1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDQwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgb3BhY2l0eTogMC41O1xufSIsIkBpbXBvcnQgJ192YXJpYWJsZXMnO1xuXG4ud3NwLWNhcmQge1xuICAmX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */