/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/css-loader@7.1.4_webpack@5.109.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/.pnpm/postcss-loader@8.2.1_@typescript+typescript6@6.0.2_postcss@8.5.26_webpack@5.109.2/node_modules/postcss-loader/dist/cjs.js??postcss!./res/themes/light-custom/css/light-custom.pcss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@layer compound-tokens, compound-web, shared-components, app-web;
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * SCSS variables defining a range of font sizes.
 *
 * These are defined in `rem` so that they scale with the `font-size` of the root element (which is adjustable via the
 * "Font size" setting). They exist to make the job of converting designs (which tend to be based in pixels) into CSS
 * easier.
 */

/*
 * These variables are now *deprecated* and should not be used in new code; instead Compound typographic tokens
 * should be used. Direct equivalents for these old font size tokens are listed below; where no equivalent exists,
 * that suggests that the design is using a non-standard font size and should be updated.
 *
 * In fact, modern Figma designs should actually use a named Typography style such as "Web/font/heading/sm/semibold",
 * translates directly to `font: var(--cpd-font-heading-sm-semibold)`.
 */ /* Compound equivalent: --cpd-font-size-body-xs */ /* Compound equivalent: --cpd-font-size-body-sm */ /* Compound equivalent: --cpd-font-size-body-md */ /* Compound equivalent: --cpd-font-size-body-lg */ /* Compound equivalent: --cpd-font-size-heading-sm */ /* Compound equivalent: --cpd-font-size-heading-md */ /* Compound equivalent: --cpd-font-size-heading-lg */ /* Compound equivalent: --cpd-font-size-heading-xl */
}
@layer app-web{

/*
 * Nunito.
 * Includes extended Latin and Vietnamese character sets
 * Current URLs are taken from
 * https://github.com/alexeiva/NunitoFont/releases/tag/v3.500
 * ...in order to include cyrillic.
 *
 * Previously, they were
 * https://fonts.googleapis.com/css?family=Nunito:400,400i,600,600i,700,700i&subset=latin-ext,vietnamese
 *
 * We explicitly do not include Nunito's italic variants, as they are not italic enough
 * and it's better to rely on the browser's built-in obliquing behaviour.
 */

/* Grab the other fonts from the current theme, so we can override to Inter */
/* in custom fonts if needed. */
}
@layer app-web{

/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */

/* Twemoji COLR */
@font-face {
    font-family: "Twemoji";
    font-weight: 400;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
/* For at least Chrome on Windows 10, we have to explictly add extra weights for the emoji to appear in bold messages, etc. */
@font-face {
    font-family: "Twemoji";
    font-weight: 600;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
@font-face {
    font-family: "Twemoji";
    font-weight: 700;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
}
@layer app-web{
/* Nunito as the default, for old time's sake on legacy themes. */
/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 400;
    src: url(../../fonts/Nunito/Nunito-Regular.d3e2991.ttf) format("truetype");
}
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 600;
    src: url(../../fonts/Nunito/Nunito-SemiBold.58f5995.ttf) format("truetype");
}
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 700;
    src: url(../../fonts/Nunito/Nunito-Bold.b3a1698.ttf) format("truetype");
}
}
@layer app-web{

:root {
    /* This is set to Twemoji when the user opts into the bundled emoji font */
    --emoji-font-family: "";
}

/* Nunito lacks combining diacritics, so these will fall through
   to the next font.  Helevetica's diacritics sometimes do not combine
   nicely (on OSX, at least) and result in a huge horizontal mess.
   Arial empirically gets it right, hence prioritising Arial here. */
/* Noto Color Emoji contains digits, in fixed-width, therefore causing
   digits in flowed text to stand out.
   TODO: Consider putting all emoji fonts to the end rather than the front. */

/* unified palette */
/* try to use these colors when possible */

/* typical text (dark-on-white in light skin) */ /* Commonly used in headings and relevant alt text */

/* used for dialog box text */

/* used for focusing form controls */

/* button UI (white-on-green in light skin) */

/* informational plinth */

/* left-panel style muted accent color */

/* used by RoomDropTarget */

/* used by Autocomplete */

/* selected for hoverover & selected event tiles */

/* used for the hairline dividers in RoomView */

/* used for the border of input text fields */

/* apart from login forms, which have stronger border */

/* used for UserSettings EditableText */
/* scrollbars */
/* context menus */

/* ******************** */

/* Legacy theme backports */

/* Legacy theme backports */

/* ******************** */ /* XXX: Color from dark theme */

/* All of these are from dark theme */

/**
 * Creating a `semantic` color scale. This will not be needed with the new
 * visual language, but necessary during the transition period
 * This abstract the `green` away from where accent shades are used
 * Take: `background: rgba($accent, 0.1);`
 * would be transformed to: `background: $accent-300;`
 *
 * To use under very rare circumstances, always prefer the semantics defined
 * in https://compound.element.io/?path=/docs/tokens-semantic-colors--docs
 */

/* ******************** */

/* ******************** */

/* $event-highlight-bg-color shares this value, */
/* so to not make their order dependent on who depends on who, have a shared value */
/* defined before both */

/* event timestamp */

/* e2e */

/*** ImageView ***/

/* Tabbed views */

/* Buttons */ /* TODO: Verify color */

/* Toggle switch */

/* See non-legacy _light for variable information */

/* Bubble tiles */

/* pinned events indicator */

/* Location sharing */
/* ******************** */
/* ******************** */

body {
    color-scheme: light;
}

/* diff highlight colors */
.hljs-addition {
    background: #dfd;
}

.hljs-deletion {
    background: #fdd;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Colors from Figma Compound https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=559%3A741 */

/* --timeline-background-color */ /* still needs alpha at .5 */ /* still needs alpha at .59 */

/* --roomlist-highlights-color */

/* --sidebar-color */

/* --roomlist-background-color */
/* these were #f2f5f8 instead of #f3f8fd, but close enough */

/* --timeline-text-color */
/* was #212121 */
/* was #45474a */
/* was #4e5054 */
/* was #232f32 */

/* --roomlist-separator-color */ /* originally #e5e5e5, but close enough */

/* --timeline-text-secondary-color */
/* was #747474 */

/* was #888888 */

/* --primary-color */

/* --warning-color */ /* still needs alpha at 0.5 */

/* --timeline-highlights-color */

/* redirect some variables away from their hardcoded values in the light theme */

/* --eventbubble colors */

/**
 * Variation of the accent color.
 * Generate this colour scale using LeonardoColor
 * TODO: Add link
 */
}
@layer app-web{
/* autogenerated by rethemendex.sh */
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
 * React Transition Group animations are prefixed with 'mx_rtg--' so that we
 * know they should not be used anywhere outside of React Transition Groups.
*/

.mx_rtg--fade-enter {
    opacity: 0;
}
.mx_rtg--fade-enter-active {
    opacity: 1;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}
.mx_rtg--fade-exit {
    opacity: 1;
}
.mx_rtg--fade-exit-active {
    opacity: 0;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}

:root {
    --hover-transition: 0.08s cubic-bezier(0.46, 0.03, 0.52, 0.96); /* quadratic */
}

@-webkit-keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@-webkit-keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion) {
    @-webkit-keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }
    @keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    .mx_rtg--fade-enter-active {
        -webkit-transition: none;
        transition: none;
    }
    .mx_rtg--fade-exit-active {
        -webkit-transition: none;
        transition: none;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C
Copyright 2017-2019 New Vector Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
}
@layer app-web{
:root {
    --container-border-width: 8px;
    --container-gap-width: 8px; /* only even numbers should be used because otherwise we get 0.5px margin values. */
    --transition-short: 0.1s;
    --transition-standard: 0.3s;
    --buttons-dialog-gap-row: var(--cpd-space-2x);
    --buttons-dialog-gap-column: var(--cpd-space-2x);
    --MBody-border-radius: 8px;
    --EventTileBubble_margin-block: 10px;
    --MessageTimestamp-width: 46px; /* 8 + 30 (avatar) + 8 */

    /* Expected z-indexes for dialogs:
        4000 - Default wrapper index
        4009 - Static dialog background
        4010 - Static dialog itself
        4011 - Standard dialog background
        4012 - Standard dialog itself

       These are set up such that the static dialog always appears
       underneath the standard dialogs.
     */
    --dialog-zIndex-wrapper-default: 4000;
    --dialog-zIndex-static-background: 4009;
    --dialog-zIndex-static: calc(var(--dialog-zIndex-static-background) + 1); /* 4010 */
    --dialog-zIndex-standard-background: calc(var(--dialog-zIndex-static) + 1); /* 4011 */
    --dialog-zIndex-standard: calc(var(--dialog-zIndex-standard-background) + 1); /* 4012 */
}

#matrixchat {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    contain: strict;
}
#mx_ContextualMenu_Container,
#mx_PersistedElement_container,
#mx_Dialog_Container,
#mx_Dialog_StaticContainer {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    isolation: isolate;
}

/**
 * Disable pointer events inside the persistentElement container when the room-list is being resized.
 * This is necessary to avoid the pointer events from being hijacked by the content rendered inside
 * that div.
 */
:root:has(.mx_Separator[data-separator="active"]) #mx_PersistedElement_container {
    pointer-events: none;
}

/**
 * We need to increase the specificity of the selector to override the
 * custom property set by the design tokens package
 */
[class^="cpd-theme"][class^="cpd-theme"] {
    /**
     * The design tokens package currently does not expose the fallback fonts
     * We want to keep on re-using `$font-family` to not break custom themes
     * and because we can to use `Twemoji` to display emoji rather than using
     * system ones
     */
    --cpd-font-family-sans: var(--font-family, "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji");
}

@media (prefers-reduced-motion) {
    :root {
        --transition-short: 0;
        --transition-standard: 0;
    }
}

html {
    /* hack to stop overscroll bounce on OSX and iOS.
       N.B. Breaks things when we have legitimate horizontal overscroll */
    height: 100%;
    overflow: hidden;
    /* Stop similar overscroll bounce in Firefox Nightly for macOS */
    -ms-scroll-chaining: none;
        overscroll-behavior: none;
}

body {
    /* !important because compound overrides these font settings for body */
    font: var(--cpd-font-body-md-regular) !important;
    letter-spacing: var(--cpd-font-letter-spacing-body-md) !important;
    /**
     * We want to apply Inter Dynamic metrics (https://rsms.me/inter/dynmetrics/)
     * We need to tweak the `letter-spacing` property and doing so, disables by
     * default the optional ligatures
     * `font-feature-settings` allows us to override this behaviour and have the
     * correct ligatures and the proper dynamic metric spacing.
     */
    -webkit-font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;
            font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-color);
    border: 0px;
    margin: 0px;

    /* needed to match the designs correctly on macOS */
    /* see https://github.com/vector-im/element-web/issues/11425 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

pre,
code {
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji");
    font-size: 100% !important;
}

.error,
.warning,
.text-error,
.text-warning {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.text-success {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.text-muted {
    color: #61708b;
}

.text-primary {
    color: var(--timeline-text-color);
}

.text-secondary {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_Verified {
    color: #0dbd8b;
}

.mx_Untrusted {
    color: #ff5b55;
}

b {
    /* On Firefox, the default weight for `<b>` is `bolder` which results in no bold */
    /* effect since we only have specific weights of our fonts available. */
    font-weight: bold;
}

/* Keep the legacy link colour without overriding Compound anchors or shared timestamp styling. */
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):hover,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):link,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):visited {
    color: var(--primary-color);
}

:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="text"],
:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="search"] {
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}

input[type="text"].mx_textinput_icon,
input[type="search"].mx_textinput_icon {
    padding-left: 36px;
    background-repeat: no-repeat;
    background-position: 10px center;
}

/* FIXME THEME - Tint by CSS rather than referencing a duplicate asset */
input[type="text"].mx_textinput_icon.mx_textinput_search,
input[type="search"].mx_textinput_icon.mx_textinput_search {
    background-image: url(../../icons/search.7258145.svg);
}

/* dont search UI as not all browsers support it, */
/* we implement it ourselves where needed instead */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

/* Override Firefox's UA style so we get a consistent look across browsers */
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-moz-placeholder, textarea::-moz-placeholder {
    opacity: 1;
    opacity: initial;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    opacity: initial;
}

input[type="text"],
textarea {
    background-color: transparent;
    color: var(--timeline-text-color);
}

/* Required by Firefox */
textarea {
    color: var(--timeline-text-color);
}

input[type="text"]:focus,
textarea:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
}

/* This is used to hide the standard outline added by browsers for */
/* accessible (focusable) components. Not intended for buttons, but */
/* should be used on things like focusable containers where the outline */
/* is usually not helping anyone. */
*:focus:not(:focus-visible) {
    outline: none;
}

summary {
    cursor: pointer;
}

/* .mx_textinput is a container for a text input */
/* + some other controls like buttons, ... */
/* it has the appearance of a text box so the controls */
/* appear to be part of the input */
    .mx_Dialog .mx_textinput > input[type="text"],
    .mx_Dialog .mx_textinput > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="text"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="search"] {
        border: none;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        color: var(--timeline-text-color);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_Dialog .mx_textinput,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput {
        display: block;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: transparent;
        color: #9fa9ba;
        border-radius: 4px;
        border: 1px solid var(--secondary-hairline-color);
        /* these things should probably not be defined globally */
        margin: 9px;
    }

    .mx_Dialog .mx_textinput, .mx_MatrixChat_wrapper .mx_textinput {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_Dialog .mx_textinput input::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-webkit-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_Dialog .mx_textinput input::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-moz-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_Dialog .mx_textinput input:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input:-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_Dialog .mx_textinput input::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_Dialog .mx_textinput input::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_MatrixChat_wrapper .mx_textinput input::placeholder {
        color: var(--cpd-color-text-secondary);
    }

/* Prevent ugly dotted highlight around selected elements in Firefox */
::-moz-focus-inner {
    border: 0;
}

/* These are magic constants which are excluded from tinting, to let themes */
/* (which only have CSS) tell the app what their non-tinted */
/* colourscheme is by inspecting the stylesheet DOM. */
/* They are not used for layout!! */
#mx_theme_accentColor {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

#mx_theme_secondaryAccentColor {
    color: var(--roomlist-background-color);
}

.mx_Dialog_wrapper {
    position: fixed;
    z-index: 4000;
    z-index: var(--dialog-zIndex-wrapper-default);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_Dialog_border {
    z-index: calc(calc(calc(4009 + 1) + 1) + 1);
    z-index: var(--dialog-zIndex-standard);
    position: relative;
    width: 100%;
    max-width: -webkit-fit-content;
    max-width: -moz-fit-content;
    max-width: fit-content;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-height: calc(100% - var(--cpd-space-6x));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_Dialog_lightbox .mx_Dialog_border {
        /* The lightbox isn't so much of a dialog as a fullscreen overlay. We
        don't want the glass border. */
        display: contents;
    }

.mx_Dialog {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-secondary-color);
    font-size: 0.9375rem;
    position: relative;
    padding: var(--cpd-space-8x) var(--cpd-space-10x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    overflow-y: auto;
}

    .mx_Dialog_staticWrapper .mx_Dialog {
        z-index: calc(4009 + 1);
        z-index: var(--dialog-zIndex-static);
        contain: content;
    }

    .mx_Dialog_lightbox .mx_Dialog {
        border-radius: 0px;
        background-color: transparent;
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        pointer-events: none;
        padding: 0;
    }

    /* Styles copied/inspired by GroupLayout, ReplyTile, and EventTile variants. */
    .mx_Dialog .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit;

        /* Make h1 and h2 the same size as h3. */
    } /* inherit the colour from the dark or light theme by default (but not for code blocks) */

        .mx_Dialog .markdown-body pre,
        .mx_Dialog .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f3f8fd;
        }

        /* this selector wrongly applies to code blocks too but we will unset it in the next one */
        .mx_Dialog .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_Dialog .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_Dialog .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_Dialog .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_Dialog .markdown-body pre code > * {
                    display: inline;
                }

        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2,
        .mx_Dialog .markdown-body h3,
        .mx_Dialog .markdown-body h4,
        .mx_Dialog .markdown-body h5,
        .mx_Dialog .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }
        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_Dialog .markdown-body a {
            color: var(--primary-color);
        }

        .mx_Dialog .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            border-radius: 2px;
            padding: 0 10px;
        }

.mx_Dialog_fixedWidth {
    width: 60vw;
    max-width: 704px;
}

.mx_Dialog_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--sidebar-color-50pct);
    z-index: calc(calc(4009 + 1) + 1);
    z-index: var(--dialog-zIndex-standard-background);
}

    .mx_Dialog_background.mx_Dialog_staticBackground {
        z-index: 4009;
        z-index: var(--dialog-zIndex-static-background);
    }

    .mx_Dialog_wrapperWithStaticUnder .mx_Dialog_background {
        /* Roughly half of what it would normally be - we don't want to black out */
        /* the app, just make it clear that the dialogs are stacked. */
        opacity: 0.4;
    }

    .mx_Dialog_lightbox .mx_Dialog_background {
        opacity: 0.95;
        background-color: #000;
        -webkit-animation-name: mx_Dialog_lightbox_background_keyframes;
                animation-name: mx_Dialog_lightbox_background_keyframes;
        -webkit-animation-duration: 300ms;
                animation-duration: 300ms;
    }

.mx_Dialog_titleImage {
    vertical-align: sub;
    width: 25px;
    height: 25px;
    margin-left: -2px;
    margin-right: 4px;
    margin-bottom: 2px;
}

.mx_Dialog_title {
    color: var(--timeline-text-color);
    display: inline-block;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
}

    .mx_Dialog_title.danger {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

.mx_Dialog_header {
    position: relative;
    padding: 0;
    -webkit-padding-end: 20px;
            padding-inline-end: 20px; /* Reserve room for the close button */
    margin-bottom: var(--cpd-space-2x);
}

    .mx_Dialog_header.mx_Dialog_headerWithButton > .mx_Dialog_title {
        text-align: center;
    }

.mx_Dialog_cancelButton {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_Dialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_Dialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_Dialog_cancelButton{
    position: absolute;
    top: var(--cpd-space-4x);
    right: var(--cpd-space-4x);
}

.mx_Dialog_content {
    margin: 24px 0 68px;
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    word-wrap: break-word;
}

.mx_Dialog_buttons {
    margin-top: var(--cpd-space-5x);
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    text-align: right;
}

    .mx_Dialog_buttons .mx_Dialog_buttons_additive {
        /* The consumer is responsible for positioning their elements. */
        float: left;
    }

    .mx_Dialog_buttons .mx_Dialog_buttons_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        text-align: left;
        text-align: initial;
        -webkit-margin-start: auto;
                margin-inline-start: auto;

        /* default gap among elements */
        -webkit-column-gap: var(--buttons-dialog-gap-column);
           -moz-column-gap: var(--buttons-dialog-gap-column);
                column-gap: var(--buttons-dialog-gap-column);
        row-gap: var(--buttons-dialog-gap-row);
    }

        .mx_Dialog_buttons .mx_Dialog_buttons_row button {
            margin: 0 !important; /* override the margin settings */
        }

/* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied
 * to them that no button anywhere else in the app gets by default. In practice, buttons in other places
 * in the app look the same by being AccessibleButtons, or possibly by having explict button classes.
 * We should go through and have one consistent set of styles for buttons throughout the app.
 * For now, I am duplicating the selectors here for mx_Dialog and mx_DialogButtons.
 */
.mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[type="submit"] {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;

    /* flip colours for the secondary ones */
}
    .mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ):not(:focus-visible), .mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):not(:focus-visible), .mx_Dialog input[type="submit"]:not(:focus-visible), .mx_Dialog_buttons input[type="submit"]:not(:focus-visible) {
        outline: none;
    }
    .mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[type="submit"]{
    margin-left: 0px;
    margin-right: var(--buttons-dialog-gap-column);
    margin-bottom: 5px;
    font-weight: var(--cpd-font-weight-semibold);
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    color: var(--cpd-color-text-primary);
    background-color: transparent;
    font-family: inherit;
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):last-child {
    margin-right: 0px;
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):focus,
.mx_Dialog input[type="submit"]:focus,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):focus,
.mx_Dialog_buttons input[type="submit"]:focus {
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
}

.mx_Dialog button.mx_Dialog_primary:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"], [data-kind]),
.mx_Dialog input[type="submit"].mx_Dialog_primary,
.mx_Dialog_buttons
    button:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .cancel,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ),
.mx_Dialog_buttons input[type="submit"].mx_Dialog_primary {
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-bg-action-primary-rest);
    border-color: var(--cpd-color-bg-action-primary-rest);
    min-width: 156px;
}

.mx_Dialog button.danger:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].danger,
.mx_Dialog_buttons
    button.danger:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button
    ),
.mx_Dialog_buttons input[type="submit"].danger {
    background-color: var(--cpd-color-bg-critical-primary);
    border: solid 1px var(--cpd-color-bg-critical-primary);
    color: var(--cpd-color-text-on-solid-primary);
}

.mx_Dialog button.warning:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].warning {
    border: solid 1px var(--cpd-color-border-critical-subtle);
    color: var(--cpd-color-text-critical-primary);
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):disabled,
.mx_Dialog input[type="submit"]:disabled,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton):disabled,
.mx_Dialog_buttons input[type="submit"]:disabled {
    background-color: var(--timeline-text-secondary-color);
    border: solid 1px var(--timeline-text-secondary-color);
    opacity: 0.7;
}

.mx_Dialog_buttons button.cancel {
    color: var(--cpd-color-text-primary);
    background-color: var(--cpd-color-bg-action-secondary-rest);
    border-color: var(--cpd-color-border-interactive-secondary);
    min-width: 156px;
}

/* Spinner Dialog overide */
    /* This is not a real dialog, so we shouldn't show a glass border */
    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog_border {
        display: contents;
    }

    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog {
        inline-size: auto;
        block-size: auto;
        border-radius: 8px;
        padding: 8px;
        -webkit-box-shadow: none;
                box-shadow: none;

        /* Don't show scroll-bars on spinner dialogs */
        overflow-x: hidden;
        overflow-y: hidden;
    }

/* TODO: Review mx_GeneralButton usage to see if it can use a different class */
/* These classes were brought in from the old UserSettings and are included here to avoid */
/* breaking the app. */
/* Ref: https://github.com/vector-im/element-web/issues/8420 */
.mx_GeneralButton {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;
}
    .mx_GeneralButton:not(:focus-visible) {
        outline: none;
    }
    .mx_GeneralButton{
    display: inline;
    margin: auto;
}

.mx_TextInputDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_TextInputDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

.mx_button_row {
    margin-top: 69px;
}

/* username colors */
/* used by SenderProfile & RoomPreviewBar */
.mx_Username_color1 {
    color: var(--cpd-color-text-decorative-1);
}

.mx_Username_color2 {
    color: var(--cpd-color-text-decorative-2);
}

.mx_Username_color3 {
    color: var(--cpd-color-text-decorative-3);
}

.mx_Username_color4 {
    color: var(--cpd-color-text-decorative-4);
}

.mx_Username_color5 {
    color: var(--cpd-color-text-decorative-5);
}

.mx_Username_color6 {
    color: var(--cpd-color-text-decorative-6);
}

.mx_AppWarning,
.mx_AppPermission {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_lineClamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    -webkit-line-clamp: var(--mx-line-clamp, 1);
    overflow: hidden;
}

/* Layout compatibility hook for timestamp placement in existing app/web timeline surfaces. */
.mx_MessageTimestamp {
    display: block; /* enable the width setting below */
    width: 46px;
    width: var(--MessageTimestamp-width);
}
}
@layer app-web{
/* Auto-generated by scripts/extract-brand-colors.py from /root/metmet/hydrogen-html/logo.png — do not edit by hand. */
:root {
    --metmet-brand-primary: #028e91;
    --metmet-brand-secondary: #3ac6cb;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconListItem {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: var(--cpd-space-3x) 0;

    border-bottom: 1px solid #f4f6fa;

    border-bottom: 1px solid var(--system, #f4f6fa);

    cursor: pointer;
}

.mx_BeaconListItem_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
}

.mx_BeaconListItem_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-right: var(--cpd-space-2x);
    border: 2px solid #5c56f5;
    border-radius: 50%;
}

.mx_BeaconListItem_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

.mx_BeaconListItem_status {
    /* override beacon status padding */
    padding: 0 !important;
    margin-bottom: var(--cpd-space-2x);
}

    .mx_BeaconListItem_status .mx_BeaconStatus_label {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_BeaconListItem_lastUpdated {
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
    font-size: 0.625rem;
}

.mx_BeaconListItem_interactions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatus {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-2x);

    color: var(--color);
    font-size: 0.75rem;
}

.mx_BeaconStatus_Loading,
.mx_BeaconStatus_Stopped {
    --color: var(--tertiary-content, #2e2f32);
}

.mx_BeaconStatus_Active,
.mx_BeaconStatus_Error {
    --color: var(--timeline-text-color);
}

.mx_BeaconStatus_icon {
    height: 32px;
    width: 32px;

    -webkit-box-flex: 0;

        -ms-flex: 0 0 32px;

            flex: 0 0 32px;
    margin-right: var(--cpd-space-2x);
}

.mx_BeaconStatus_description {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    line-height: 0.875rem;

    padding-right: var(--cpd-space-2x);

    white-space: nowrap;
    overflow: hidden;
}

    .mx_BeaconStatus_description .mx_BeaconStatus_description_status {
        text-overflow: ellipsis;
        overflow: hidden;
    }

.mx_BeaconStatus_expiryTime {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_BeaconStatus_label {
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatusTooltip {
    position: absolute;
    top: 42px;
    max-width: 150px;
    height: 38px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    padding-top: var(--cpd-space-2x);
}

.mx_BeaconStatusTooltip_inner {
    position: relative;
    height: 100%;
    border-radius: 4px;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-shadow: 4px 4px 12px 0 rgba(118, 131, 156, 0.6);
            box-shadow: 4px 4px 12px 0 rgba(118, 131, 156, 0.6);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconViewDialog_wrapper .mx_Dialog {
    padding: 0px;

    /* Unset contain and position to allow the close button
    to appear outside the dialog */
    contain: unset;
    position: static;
    position: initial;
}

.mx_BeaconViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;

    /* sidebar is absolutely positioned inside */
    position: relative;
}

    .mx_BeaconViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_cancelButton {
            z-index: 4010;
            position: fixed;
            right: 5vw;
            top: 5vh;
            width: 20px;
            height: 20px;
            background-color: #ffffff;
        }

.mx_BeaconViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}

.mx_BeaconViewDialog_mapFallbackMessage {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-bottom: var(--cpd-space-4x);
}

.mx_BeaconViewDialog_viewListButton {
    position: absolute;
    top: var(--cpd-space-6x);
    left: var(--cpd-space-6x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogOwnBeaconStatus {
    position: absolute;
    bottom: var(--cpd-space-8x);
    width: 300px;
    margin-left: -150px;
    left: 50%;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: stretch;
        -ms-flex-pack: stretch;
            justify-content: stretch;

    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 8px;
    -webkit-box-shadow: 4px 4px 12px 0 rgba(118, 131, 156, 0.6);
            box-shadow: 4px 4px 12px 0 rgba(118, 131, 156, 0.6);

    padding: 0 var(--cpd-space-3x);
}

.mx_DialogOwnBeaconStatus_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: 2px solid #5c56f5;
    border-radius: 50%;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_status {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
    padding-right: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogSidebar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 265px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-4x);

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-shadow: 0px 4px 4px rgba(118, 131, 156, 0.6);
            box-shadow: 0px 4px 4px rgba(118, 131, 156, 0.6);
}

    .mx_DialogSidebar .mx_DialogSidebar_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;

        -webkit-box-flex: 0;

            -ms-flex: 0 0;

                flex: 0 0;
        margin-bottom: var(--cpd-space-4x);

        color: var(--timeline-text-color);
    }

        .mx_DialogSidebar .mx_DialogSidebar_header .mx_DialogSidebar_closeButtonIcon {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }

    .mx_DialogSidebar .mx_DialogSidebar_list {
        list-style: none;
        padding: 0;
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        width: 100%;
        overflow: auto;
    }

.mx_DialogSidebar_noResults {
    font: var(--cpd-font-body-md-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LeftPanelLiveShareWarning {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-1x);
    text-align: center;

    background-color: #0dbd8b;

    background-color: var(--accent-color, #0dbd8b);
    color: #fff;
    font-size: 0.625rem;

    /* panel backdrops overlay the whole sidepanel */
    /* go above to get hover for title */
    z-index: 1;
}

.mx_LeftPanelLiveShareWarning__error {
    background-color: #ff5b55;
    background-color: var(--alert, #ff5b55);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveTimeRemaining {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OwnBeaconStatus_button {
    margin-left: var(--cpd-space-2x);
}

.mx_EventTile[data-layout="bubble"] .mx_OwnBeaconStatus_button {
    /* align to top to make room for timestamp */
    /* in bubble view */
    -ms-flex-item-align: start;
        align-self: start;
}

.mx_OwnBeaconStatus_destructiveButton {
    /* override button link_inline styles */
    color: #ff5b55 !important;
    color: var(--alert, #ff5b55) !important;
    font-weight: var(--cpd-font-weight-semibold) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareLatestLocation_icon {
    height: 13px;
    width: 13px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

/* double class to be more specific than the general mx_CopyableText CSS rule */
    /* override copyable text style to make compact */
    .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton {
        height: 13px;
        margin-left: var(--cpd-space-2x) !important;
        position: relative;
        top: -1px;
        width: 13px;
    }

        .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton::before {
            background-color: #2e2f32;
            background-color: var(--secondary-content, #2e2f32);
            height: 13px;
            width: 13px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_StyledLiveBeaconIcon {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    background-color: #5c56f5;
    border-color: #5c56f5;
    padding: 2px;
    /* colors icon */
    color: white;
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_error {
    background-color: #ff5b55;
    background-color: var(--alert, #ff5b55);
    border-color: #ff5b55;
    border-color: var(--alert, #ff5b55);
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_idle {
    background-color: #6f7882;
    background-color: var(--quaternary-content, #6f7882);
    border-color: #6f7882;
    border-color: var(--quaternary-content, #6f7882);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KebabContextMenu_icon {
    width: 24px;
    height: 24px;
    color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollDetailHeader {
    /* override accessiblebutton style */
    font-size: 0.9375rem !important;
}

.mx_PollDetailHeader_icon {
    height: 16px;
    width: 16px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItem {
    width: 100%;
}

.mx_PollListItem_content {
    width: 100%;
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: auto auto auto;
    grid-template-rows: auto;
    cursor: pointer;

    color: var(--timeline-text-color);
}

.mx_PollListItem_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItem_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItemEnded {
    width: 100%;
}

.mx_PollListItemEnded_content {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: var(--timeline-text-color);
    cursor: pointer;
}

.mx_PollListItemEnded_title {
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: -webkit-min-content 1fr -webkit-min-content;
    grid-template-columns: min-content 1fr min-content;
    grid-template-rows: auto;
}

.mx_PollListItemEnded_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItemEnded_date {
    font-size: 0.75rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_PollListItemEnded_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mx_PollListItemEnded_answers {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    margin-top: var(--cpd-space-3x);
}

.mx_PollListItemEnded_voteCount {
    /* 6px to match PollOption padding */
    margin: var(--cpd-space-2x) 0 0 6px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppPermission {
    font-size: 0.75rem;
    width: 100%; /* make mx_AppPermission fill width of mx_AppTileBody so that scroll bar appears on the edge */
    overflow-y: scroll;
}
    .mx_AppPermission .mx_AppPermission_bolder,
    .mx_AppPermission .mx_AppPermission_content_bolder {
        font-weight: var(--cpd-font-weight-semibold);
    }
    .mx_AppPermission .mx_AppPermission_content {
        margin-block: auto; /* place at the center */
    }

        .mx_AppPermission .mx_AppPermission_content > div {
            margin-block: 12px;
        }

        .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon {
            display: inline-block;
            height: 0.875rem; /* align with characters on the same line */
            vertical-align: middle;
        }

            .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon .mx_Icon {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Suguru Hirahara

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppWarning {
    font-size: 1rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_AppWarning h4 {
        margin: 0;
        padding: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilterDropdown .mx_Dropdown_menu {
        margin-top: var(--cpd-space-1x);
        left: auto;
        left: initial;
        right: calc(-1 * var(--cpd-space-3x));
        width: 232px;
        padding: var(--cpd-space-3x);

        border: 1px solid #6f7882;

        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 8px;
        -webkit-box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);

        background-color: #f4f6fa;

        background-color: var(--system, #f4f6fa);
    }

        .mx_FilterDropdown .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: transparent;
        }

    .mx_FilterDropdown .mx_Dropdown_input {
        height: 24px;
        background-color: transparent;
        border-color: transparent;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        border-radius: 4px;
    }

        .mx_FilterDropdown .mx_Dropdown_input:focus,
        .mx_FilterDropdown .mx_Dropdown_input:hover {
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            border-color: #6f7882;
            border-color: var(--quinary-content, #6f7882);
        }

    .mx_FilterDropdown .mx_Dropdown_arrow {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_FilterDropdown_option {
    position: relative;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-2x) 0 var(--cpd-space-2x) var(--cpd-space-5x);

    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: var(--timeline-text-color);
}

.mx_FilterDropdown_optionSelectedIcon {
    height: 14px;
    width: 14px;
    position: absolute;
    top: var(--cpd-space-2x);
    left: 0;
}

.mx_FilterDropdown_optionLabel {
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
}

.mx_FilterDropdown_optionDescription {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-top: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilterTabGroup {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;

    color: var(--timeline-text-color);
}
    .mx_FilterTabGroup label {
        margin-right: var(--cpd-space-3x);
        cursor: pointer;
    }
        .mx_FilterTabGroup label span {
            display: inline-block;
            line-height: 1.5rem;
        }
    .mx_FilterTabGroup input[type="radio"] {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        margin: 0;
        padding: 0;
    }
            .mx_FilterTabGroup input[type="radio"]:focus + span, .mx_FilterTabGroup input[type="radio"]:hover + span {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_FilterTabGroup input[type="radio"]:checked + span {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            font-weight: var(--cpd-font-weight-semibold);
            /* underline */
            -webkit-box-shadow: 0 1.5px 0 0 currentColor;
                    box-shadow: 0 1.5px 0 0 currentColor;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LearnMore_button {
    margin-left: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EnableLiveShare {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-8x) var(--cpd-space-4x);
    text-align: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_EnableLiveShare_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_EnableLiveShare_icon {
    height: 58px;
    width: 58px;
}

.mx_EnableLiveShare_description {
    padding: 0 var(--cpd-space-6x);
    margin-bottom: var(--cpd-space-8x);
    line-height: 1.25rem;
}

.mx_EnableLiveShare_button {
    margin-top: var(--cpd-space-8x);
    height: 48px;
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveDurationDropdown {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationShareMenu {
    width: 375px;
    height: 460px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapError {
    padding: 100px var(--cpd-space-8x) 0;
    text-align: center;

    --mx-map-error-icon-color: var(--secondary-content, #2e2f32);
    --mx-map-error-icon-size: 58px;
}

.mx_MapError.mx_MapError_isMinimised {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-6x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    font-size: 0.75rem;
    line-height: 1rem;

    --mx-map-error-icon-color: var(--alert, #ff5b55);
    --mx-map-error-icon-size: 26px;
}

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_message {
        margin: 0;
        max-width: 275px;
    }

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_heading {
        padding-top: var(--cpd-space-2x);
        /* override h3 heading size */
        font-size: inherit !important;
        font-weight: normal !important;
    }

.mx_MapError_message {
    margin: var(--cpd-space-4x) 0 var(--cpd-space-8x);
}

.mx_MapError_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_MapError_icon {
    height: var(--mx-map-error-icon-size);
    width: var(--mx-map-error-icon-size);
    color: var(--mx-map-error-icon-color);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapFallback {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    z-index: 0;

    background-color: #f4f6fa;

    background-color: var(--system, #f4f6fa);
}

.mx_MapFallback_bg {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    min-width: 100%;
    color: #6f7882;
    color: var(--quinary-content, #6f7882);
    z-index: -1;

    pointer-events: none;
}

.mx_MapFallback_icon {
    width: 65px;
    margin-bottom: var(--cpd-space-4x);
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Marker_defaultColor {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.mx_Marker_border {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    -webkit-filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
            filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
    background-color: currentColor;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    /* caret down */
    .mx_Marker_border::before {
        content: "";
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 5px solid currentColor;
        position: absolute;
        bottom: -4px;
    }

.mx_Marker_icon {
    color: white;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialogButtons {
    position: absolute;
    width: 100%;
    height: 0;
    top: 0;
}

button.mx_ShareDialogButtons_button {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    opacity: 0.8;
    text-align: center;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    position: absolute;
    top: var(--cpd-space-4x);
}

    button.mx_ShareDialogButtons_button:hover,
    button.mx_ShareDialogButtons_button:focus {
        opacity: 1;
    }

    button.mx_ShareDialogButtons_button.left {
        left: var(--cpd-space-4x);
    }

    button.mx_ShareDialogButtons_button.right {
        right: var(--cpd-space-4x);
    }

.mx_ShareDialogButtons_button-icon {
    width: 20px;
    height: 20px;
    margin: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareType {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: 60px var(--cpd-space-3x) var(--cpd-space-8x);

    color: var(--timeline-text-color);
}

    .mx_ShareType .mx_ShareType_wrapper_options {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        row-gap: var(--cpd-space-3x);
        width: 100%;
        margin-top: var(--cpd-space-3x);
    }

        .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
            padding: var(--cpd-space-2x) var(--cpd-space-5x);
            background: none;

            border: 1px solid #6f7882;

            border: 1px solid var(--quinary-content, #6f7882);
            border-radius: 8px;

            font-size: 0.9375rem;
            font-family: inherit;
            line-height: inherit;
            color: var(--timeline-text-color);
        }

            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:hover,
            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:focus {
                border-color: #0dbd8b;
                border-color: var(--accent-color, #0dbd8b);
            }

.mx_ShareType_badge {
    height: 60px;
    width: 60px;
    margin-bottom: var(--cpd-space-5x);
    background-color: #0dbd8b;
    background-color: var(--accent-color, #0dbd8b);
    border-radius: 50%;
    border: 14px solid #0dbd8b;
    border: 14px solid var(--accent-color, #0dbd8b);
    /* colors icon */
    color: white;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_ShareType_heading {
    padding-bottom: var(--cpd-space-8x);
    text-align: center;
}

.mx_ShareType_option-icon {
    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin-right: var(--cpd-space-3x);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    /* Live is styled by StyledLiveBeaconIcon */
}

    .mx_ShareType_option-icon.Own {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
    }

    .mx_ShareType_option-icon.Pin {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        padding: 7px;
        /* colors icon */
        color: white;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ZoomButtons {
    position: absolute;
    bottom: var(--cpd-space-8x);
    right: var(--cpd-space-6x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: var(--cpd-space-2x);
}

    .mx_ZoomButtons .mx_ZoomButtons_button {

        border-radius: 4px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 24px;
        width: 24px;
        background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        -webkit-box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
                box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
    }

        .mx_ZoomButtons .mx_ZoomButtons_button .mx_ZoomButtons_icon {

            height: 12px;
            width: 12px;
            color: var(--timeline-text-color);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MBeaconBody {
    position: relative;
    height: 220px;
    max-width: 325px;
    width: 100%;

    border-radius: 8px;

    border-radius: var(--MBody-border-radius);
    overflow: hidden;
}

.mx_MBeaconBody.mx_MBeaconBody_withoutMap {
    height: auto;
}

    .mx_MBeaconBody.mx_MBeaconBody_withoutMap .mx_MBeaconBody_chin {
        position: relative;
        background-color: transparent;
    }

.mx_MBeaconBody_withoutMapContent {
    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 4px;
}

.mx_MBeaconBody_withoutMapInfoLastUpdated {
    /* 48px lines up with icon in BeaconStatus */
    margin-top: calc(-1 * var(--cpd-space-2x));
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 48px;

    color: #2e2f32;

    color: var(--tertiary-content, #2e2f32);
    font-size: 0.625rem;
}

.mx_MBeaconBody_map {
    height: 100%;
    width: 100%;
    z-index: 0; /* keeps the entire map under the message action bars */

    cursor: pointer;
}

.mx_MBeaconBody_mapFallback,
.mx_MBeaconBody_mapError {
    /* pushes spinner/icon up */
    /* to appear more centered with the footer */
    padding-bottom: 50px !important;
}

.mx_MBeaconBody_mapErrorInteractive {
    cursor: pointer;
}

.mx_MBeaconBody_mapFallback {
    cursor: default;
}

.mx_MBeaconBody_chin {
    position: absolute;
    bottom: 0;
    width: 100%;
    background-color: var(--cpd-color-bg-canvas-default);
    opacity: 0.85;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MBeaconBody {
    max-width: 100%;
    width: 450px;
}

.mx_ReplyTile .mx_MBeaconBody {
    /* Prevent clicking a beacon within a reply */
    pointer-events: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaProcessingError_Icon {
    margin-right: var(--cpd-space-1x);
    vertical-align: text-top;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollOption {
    border: 1px solid #6f7882;
    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 8px;
    padding: 6px 12px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

    .mx_PollOption .mx_StyledRadioButton_content,
    .mx_PollOption .mx_PollOption_endedOption {
        padding-top: 2px;
        margin-right: 0px;
    }

    .mx_PollOption .mx_StyledRadioButton_spacer {
        display: none;
    }

.mx_PollOption,
/* label has cursor: default in user-agent stylesheet */
/* override */
.mx_PollOption_live-option {
    cursor: pointer;
}

.mx_PollOption_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_PollOption_optionVoteCount {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
    white-space: nowrap;
}

.mx_PollOption_winnerIcon {
    height: 12px;
    width: 12px;
    color: var(--cpd-color-icon-accent-tertiary);
    margin-right: var(--cpd-space-1x);
    vertical-align: middle;
}
        .mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-primary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-primary);
            background-color: var(--cpd-color-icon-primary);
        }

            .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div {
                background: none;
            }

                .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div svg {
                    color: var(--cpd-color-icon-on-solid-primary);
                    width: 12px;
                    height: 12px;
                    margin: -2px;
                    display: block;
                }
        .mx_PollOption_ended.mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_ended.mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-accent-tertiary);
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

/* options not actionable in these states */
.mx_PollOption_checked,
.mx_PollOption_ended {
    pointer-events: none;
}

.mx_PollOption_popularityBackground {
    width: 100%;
    height: 8px;
    margin-right: 12px;
    border-radius: 8px;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    margin-top: var(--cpd-space-2x);
}

    .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
        width: 0%;
        height: 8px;
        border-radius: 8px;
        background-color: var(--cpd-color-icon-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * These used to live in General User Settings. These components are horribly duplicative
 * but share the same styles. For now I'm putting them here so I can renamed the general
 * tab sensibly and before I can refactor these components.
 */

.mx_AddRemoveThreepids_existing {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_AddRemoveThreepids_existing_address,
.mx_AddRemoveThreepids_existing_promptText {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_AddRemoveThreepids_existing_button {
    margin-left: 5px;
}

.mx_EmailAddressesPhoneNumbers_verify {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_EmailAddressesPhoneNumbers_existing_button {
    -webkit-box-pack: right;
        -ms-flex-pack: right;
            justify-content: right;
}

.mx_EmailAddressesPhoneNumbers_verify_instructions {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CurrentDeviceSection_deviceDetails {
    /* align with text of session tile */
    margin-left: 56px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetailHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_DeviceDetailHeading_renameCta {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_DeviceDetailHeading_renameForm {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

.mx_DeviceDetailHeading_renameFormButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

    .mx_DeviceDetailHeading_renameFormButtons .mx_Spinner {
        width: auto;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

.mx_DeviceDetailHeading_renameFormInput {
    /* override field styles */
    margin: 0 0 var(--cpd-space-1x) 0 !important;
}

.mx_DeviceDetailHeading_renameFormHeading {
    margin: 0;
}

.mx_DeviceDetailHeading_renameFormError {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    padding-right: var(--cpd-space-1x);
    display: block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetails {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-top: var(--cpd-space-4x);
    padding: var(--cpd-space-6x);
    border-radius: 8px;
    border: 1px solid #6f7882;
    border: 1px solid var(--quinary-content, #6f7882);
}

.mx_DeviceDetails_section {
    padding-bottom: var(--cpd-space-5x);
    margin-bottom: var(--cpd-space-5x);
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);

    display: grid;
    grid-gap: var(--cpd-space-6x);
    gap: var(--cpd-space-6x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

    .mx_DeviceDetails_section:last-child {
        padding-bottom: 0;
        border-bottom: 0;
        margin-bottom: 0;
    }

.mx_DeviceDetails_sectionHeading {
    margin: 0;
}

    .mx_DeviceDetails_sectionHeading .mx_DeviceDetails_sectionSubheading {
        display: block;
        font-size: 0.75rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        line-height: 0.875rem;
        margin-top: var(--cpd-space-1x);
    }

.mx_DeviceDetails_metadataTable {
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);

    width: 100%;

    border-spacing: 0;
}

    .mx_DeviceDetails_metadataTable th {
        text-transform: uppercase;
        font-weight: normal;
        text-align: left;
    }

    .mx_DeviceDetails_metadataTable td {
        padding-top: var(--cpd-space-2x);
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataLabel {
        width: 160px;
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataValue {
        color: var(--timeline-text-color);
    }

.mx_DeviceDetails_signOutButtonContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-1x);
}

.mx_DeviceDetails_pushNotifications {
    display: block;
}
    .mx_DeviceDetails_pushNotifications .mx_ToggleSwitch {
        float: right;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceExpandDetailsButton {
    height: 32px;
    width: 32px;
    background: transparent;

    border-radius: 4px;
    color: var(--icon-button-color, var(--cpd-color-icon-tertiary));

    --icon-transform: rotate(-90deg);
}

    .mx_DeviceExpandDetailsButton:hover {
        background: #6f7882;
        background: var(--quinary-content, #6f7882);
    }

.mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded {
    --icon-transform: rotate(0deg);

    background: #f4f6fa;

    background: var(--system, #f4f6fa);
}

    .mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded:hover {
        background: #6f7882;
        background: var(--quinary-content, #6f7882);
    }

.mx_DeviceExpandDetailsButton_icon {
    height: 24px;
    width: 24px;

    -webkit-transition: all 0.3s;

    transition: all 0.3s;
    -webkit-transform: var(--icon-transform);
            transform: var(--icon-transform);
    -webkit-transform-origin: center;
            transform-origin: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceSecurityCard {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-4x);

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 8px;
}

.mx_DeviceSecurityCard_icon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: var(--cpd-space-4x);
    border-radius: 8px;

    height: 40px;
    width: 40px;

    color: var(--icon-color);
    background-color: var(--background-color);
}

    .mx_DeviceSecurityCard_icon.Verified {
        --icon-color: #0dbd8b;
        --background-color: var(--cpd-color-green-300);
    }

    .mx_DeviceSecurityCard_icon.Unverified {
        --icon-color: #ff5b55;
        --background-color: var(--cpd-color-red-300);
    }

    .mx_DeviceSecurityCard_icon.Inactive {
        --icon-color: var(--secondary-content, #2e2f32);
        --background-color: var(--panels, var(--cpd-color-gray-600));
    }

.mx_DeviceSecurityCard_content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
}
.mx_DeviceSecurityCard_heading {
    margin: 0 0 var(--cpd-space-1x) 0;
}
.mx_DeviceSecurityCard_description {
    margin: 0;
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_DeviceSecurityCard_actions {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_DeviceTile_interactive {
    cursor: pointer;
}

.mx_DeviceTile_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_DeviceTile_metadata {
    margin-top: var(--cpd-space-1x);
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_DeviceTile_inactiveIcon {
    height: 14px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}

.mx_DeviceTile_actions {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-auto-flow: column;
    margin-left: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTypeIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    margin-right: var(--cpd-space-2x);
    /* creates space for verification icon to overlap */
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 0;
}

.mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: var(--panels, var(--cpd-color-gray-600));
    --icon-color: var(--secondary-content, #2e2f32);

    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: var(--cpd-space-2x) solid var(--background-color);
    border-radius: 50%;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    color: var(--icon-color);
    background-color: var(--background-color);
}

.mx_DeviceTypeIcon_selected .mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: var(--timeline-text-color);
    --icon-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

.mx_DeviceTypeIcon_deviceIcon {
    height: 24px;
    width: 24px;
}

.mx_DeviceTypeIcon_verificationIcon {
    position: absolute;
    bottom: 0;
    right: 0;
    height: 24px;
    width: 24px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 50%;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

    color: var(--v-icon-color);
}

    .mx_DeviceTypeIcon_verificationIcon.verified {
        --v-icon-color: #0dbd8b;
    }

    .mx_DeviceTypeIcon_verificationIcon.unverified {
        --v-icon-color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilteredDeviceList .mx_Dropdown {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 80px;
                flex: 1 0 80px;
    }

.mx_FilteredDeviceList_list {
    list-style-type: none;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin: 0;
    padding: 0 var(--cpd-space-4x);
}

.mx_FilteredDeviceList_listItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_FilteredDeviceList_securityCard {
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_noResults {
    width: 100%;
    text-align: center;
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_headerButton {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    /* override inline button styling */
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

.mx_FilteredDeviceList_deviceDetails {
    /* align with text of session tile */
    margin-left: 88px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilteredDeviceListHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-4x);

    width: 100%;
    height: 48px;
    padding: 0 var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-8x);

    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 8px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    /* Higher specificity selector to override the flex-start value */
    .mx_FilteredDeviceListHeader .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        -ms-flex-item-align: center;
            align-self: center;
    }

.mx_FilteredDeviceListHeader_label {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRecommendations_spacing {
    height: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SelectableDeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_SelectableDeviceTile_checkbox {
    -webkit-box-flex: 1;
        -ms-flex: 1 0;
            flex: 1 0;
}

    .mx_SelectableDeviceTile_checkbox > div {
        margin-top: auto;
        margin-bottom: auto;
        margin-right: var(--cpd-space-1x);
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_KeyStoragePanel_toggleRow {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsection {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_SettingsSubsection.mx_SettingsSubsection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
    }

    .mx_SettingsSubsection *[role="separator"] {
        /**
         * The gap between subsections is 32px and inside the subsection is 24px.
         * The separator separates the subsections, so it should have the same gap as the subsections.
         * We add 12px and the separator spacing (8px) to the top margin to make the separator visually centered between the subsections.
         * !important because it's overriding compound margin.
         */
        margin-top: var(--cpd-space-5x) !important;
    }

.mx_SettingsSubsection_description {
    margin-top: var(--cpd-space-2x);
}

.mx_SettingsSubsection_text {
    width: 100%;
    -webkit-box-sizing: inherit;
            box-sizing: inherit;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_SettingsSubsection_content {
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    /* setting minwidth 0 makes columns definitely sized fixing horizontal overflow */
    grid-template-columns: minmax(0, 1fr);
    justify-items: flex-start;
    margin-top: var(--cpd-space-6x);
}

    .mx_SettingsSubsection_content summary {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        .mx_SettingsSubsection_content details[open] summary {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_contentStretch {
        justify-items: stretch;
    }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_noHeading {
        margin-top: 0;
    }
    .mx_SettingsSubsection_content.mx_SettingsSubsection_content_newUi {
        gap: var(--cpd-space-6x);
        margin-top: 0;
    }

    .mx_SettingsSubsection_content .mx_SettingsSubsection_dropdown {
        min-width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsectionHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;

    gap: var(--cpd-space-2x);
}

.mx_SettingsSubsectionHeading_heading {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickThemeSwitcher {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_QuickThemeSwitcher .mx_Dropdown {
        min-width: 100px;
        margin-left: auto;
        height: -webkit-min-content;
        height: -moz-min-content;
        height: min-content;
    }

    .mx_QuickThemeSwitcher .mx_Dropdown_menu {
        /* Quick settings lives at the bottom of the window, so a menu dropping downwards would run
           off the bottom of the viewport. Open it upwards, where there is room for every theme. */
        top: auto;
        bottom: 100%;
    }

.mx_QuickThemeSwitcher_heading {
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    text-transform: uppercase;
    display: inline-block;
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Caption {
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_Caption.mx_Caption_error {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * Compound icon

 * {@link https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed}
 */

.mx_Icon {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_Icon_accent {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.mx_Icon_bg-accent-light {
    background-color: var(--accent-color-300);
}

.mx_Icon_alert {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_Icon_circle-40 {
    border-radius: 20px;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    height: 40px;
    padding: 0 12px;
    width: 40px;
}

.mx_Icon_8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8px;
            flex: 0 0 8px;
    height: 8px;
    width: 8px;
}

.mx_Icon_10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 10px;
            flex: 0 0 10px;
    height: 10px;
    width: 10px;
}

.mx_Icon_12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12px;
            flex: 0 0 12px;
    height: 12px;
    width: 12px;
}

.mx_Icon_16 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16px;
            flex: 0 0 16px;
    height: 16px;
    width: 16px;
}

.mx_Icon_24 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 24px;
            flex: 0 0 24px;
    height: 24px;
    width: 24px;
}

.mx_Icon_32 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 32px;
            flex: 0 0 32px;
    height: 32px;
    width: 32px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SuccessDialog {
    text-align: center;
}

    .mx_SuccessDialog .mx_Icon {
        margin-bottom: var(--cpd-space-4x);
    }

    .mx_SuccessDialog .mx_Dialog_header {
        margin: 0 0 var(--cpd-space-4x);
        padding: 0;
    }

    .mx_SuccessDialog .mx_Dialog_title {
        margin: 0;
    }

    .mx_SuccessDialog .mx_Dialog_content {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        margin: 0 0 var(--cpd-space-10x);
    }
        .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row button.mx_Dialog_primary {
                height: 48px;
                min-width: 328px;
            }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* make any scrollbar grey and thin */
html {
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
}
/* scrollbar-width is not inherited (but -color is, why?!), */
/* so declare it on every element */
* {
    scrollbar-width: thin;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background-color: rgba(0, 0, 0, 0.2);
}

/* make auto-hide scrollbars not transparent again on hover */
.mx_AutoHideScrollbar:hover {
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
}

    .mx_AutoHideScrollbar:hover::-webkit-scrollbar-thumb {
        background-color: rgba(0, 0, 0, 0.2);
    }

/* make scrollbars transparent for autohide scrollbars */
.mx_AutoHideScrollbar {
    overflow-x: hidden;
    overflow-y: auto;
    overflow-y: overlay; /* where supported */
    -ms-overflow-style: -ms-autohiding-scrollbar;
}

    .mx_AutoHideScrollbar::-webkit-scrollbar {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar::-webkit-scrollbar-thumb {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar{

    scrollbar-color: transparent transparent;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AutocompleteInput {
    position: relative;
}

.mx_AutocompleteInput_search_icon {
    margin-left: var(--cpd-space-2x);
    fill: #2e2f32;
    fill: var(--secondary-content, #2e2f32);
}

.mx_AutocompleteInput_editor {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid #e7e7e7;
    border-radius: 4px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
}

    .mx_AutocompleteInput_editor > input {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 40%;
        resize: none;
        /* `!important` is required to bypass global input styles. */
        margin: 0 !important;
        padding: var(--cpd-space-2x) 9px;
        border: none !important;
        color: var(--timeline-text-color) !important;
        font-weight: normal !important;
    }

        .mx_AutocompleteInput_editor > input::-webkit-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-moz-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input:-ms-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-ms-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

.mx_AutocompleteInput_editor--focused {
    border-color: #0086e6;
    border-color: var(--links, #0086e6);
}

.mx_AutocompleteInput_editor--has-suggestions {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.mx_AutocompleteInput_editor_selection {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-left: var(--cpd-space-2x);
}

.mx_AutocompleteInput_editor_selection_pill {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 12px;
    padding-left: var(--cpd-space-2x);
    padding-right: var(--cpd-space-2x);
    background-color: var(--cpd-color-text-decorative-1);
    color: #ffffff;
    font-size: 0.75rem;
}

.mx_AutocompleteInput_editor_selection_remove_button svg {
    vertical-align: middle;
}

.mx_AutocompleteInput_matches {
    position: absolute;
    left: 0;
    right: 0;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1px solid #0086e6;
    border: 1px solid var(--links, #0086e6);
    border-top-color: #e7e7e7;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    z-index: 1000;
}

.mx_AutocompleteInput_suggestion {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--cpd-space-2x);
    cursor: pointer;
}

    .mx_AutocompleteInput_suggestion > * {
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_AutocompleteInput_suggestion:hover {
        background-color: #6f7882;
        background-color: var(--quinary-content, #6f7882);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion--selected {
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
}

    .mx_AutocompleteInput_suggestion--selected:last-child {
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion_title {
    margin-right: var(--cpd-space-2x);
}

.mx_AutocompleteInput_suggestion_description {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
}
}
@layer app-web{

.mx_CompatibilityPage {
    width: 100%;
    height: 100%;
    background-color: #e55;
}

.mx_CompatibilityPage_box {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 500px;
    height: 300px;
    border: 1px solid;
    padding: 10px;
    background-color: #fcc;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ContextualMenu_wrapper {
    position: fixed;
    z-index: 5000;
}

.mx_ContextualMenu_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
}

.mx_ContextualMenu {
    border-radius: 12px;
    -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
            box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
    background-color: var(--cpd-color-bg-canvas-default);
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
    color: var(--timeline-text-color);
    position: absolute;
    z-index: 5001;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

.mx_ContextualMenu_right {
    right: 16px;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_right {
    right: 8px;
}

.mx_ContextualMenu_chevron_right {
    position: absolute;
    right: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-left: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_left {
    left: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_left {
    left: 8px;
}

.mx_ContextualMenu_chevron_left {
    position: absolute;
    left: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-right: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_top {
    top: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_top {
    top: 8px;
}

.mx_ContextualMenu_chevron_top {
    position: absolute;
    left: 0px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_bottom {
    bottom: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_bottom {
    bottom: 8px;
}

.mx_ContextualMenu_chevron_bottom {
    position: absolute;
    left: 0px;
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_rightAligned {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
}

.mx_ContextualMenu_bottomAligned {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorMessage {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 0.75rem;
    gap: var(--cpd-space-2x);
    line-height: 1.2em;
    min-height: 2.4em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

@-webkit-keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

.mx_FileDropTarget {
    min-width: 0;
    width: 100%;
    height: 100%;

    font-size: 1.125rem;
    text-align: center;

    pointer-events: none;

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    opacity: 0.95;

    position: absolute;
    z-index: 3000;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    -webkit-animation: mx_FileDropTarget_animation;

            animation: mx_FileDropTarget_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
}

@-webkit-keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

@keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

.mx_FileDropTarget_image {
    width: 32px;
    -webkit-animation: mx_FileDropTarget_image_animation;
            animation: mx_FileDropTarget_image_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilePanel {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-y: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    /* FIXME: rather than having EventTile's default CSS be for MessagePanel,
   we should make EventTile a base CSS class and customise it specifically
   for usage in {Message,File,Notification}Panel. */
}

    .mx_FilePanel .mx_RoomView_messageListWrapper {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_FilePanel .mx_RoomView_MessageList {
        width: 100%;
        gap: var(--cpd-space-6x);
    }

    /* Overrides for the attachment body tiles */
    .mx_FilePanel .mx_EventTile {
        word-break: break-word;
        padding-top: 0;
    }

        .mx_FilePanel .mx_EventTile + .mx_EventTile {
            border-top: 1px solid var(--cpd-color-gray-400);
            padding-top: var(--cpd-space-6x);
        }

        .mx_FilePanel .mx_EventTile .mx_EventTile_line {
            -webkit-padding-start: 0;
                    padding-inline-start: 0;
        }

        .mx_FilePanel .mx_EventTile .mx_MFileBody [data-type="download"] {
            margin-top: var(--cpd-space-4x);
        }

        .mx_FilePanel .mx_EventTile .mx_ImageBody {
            gap: 0;
        }

        /* anchor link as wrapper */
        .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink {
            text-decoration: none;
            margin-bottom: var(--cpd-space-1x);
            display: block;
        }

            .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                margin-top: -2px;
                gap: var(--cpd-space-2x);
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_DisambiguatedProfile {
                    color: #acacac; /* for ellipsis. Color of displayName and mxid is inherited */
                }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_MessageTimestamp {
                    margin-left: auto;
                }

    .mx_FilePanel .mx_EventTile_line {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
        -webkit-padding-start: 0;
                padding-inline-start: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericDropdownMenu_button {
    padding: 3px 4px 3px 8px;
    border-radius: 4px;
    line-height: 1.5;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font-size: 0.75rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_GenericDropdownMenu_button svg {
        width: 18px;
        height: 18px;
        float: right;
    }

.mx_GenericDropdownMenu_button:hover,
.mx_GenericDropdownMenu_button[aria-expanded="true"] {
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
}
    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu {
        position: static;
        position: initial;

        font-size: 0.75rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        padding-top: 10px;
        padding-bottom: 10px;

        border: 1px solid #6f7882;

        border: 1px solid var(--quinary-content, #6f7882);
        -webkit-box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: #6f7882;
        border-bottom-color: var(--quinary-content, #6f7882);
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            position: absolute;
            top: 1px;
            left: -8px;
        }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_divider {
        display: block;
        height: 0;
        margin-left: 4px;
        margin-right: 19px;
        border-top: 1px solid #6f7882;
        border-top: 1px solid var(--quinary-content, #6f7882);
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;

            margin: 0;
        }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:first-child {
                color: var(--timeline-text-color);
                font-weight: var(--cpd-font-weight-semibold);
            }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header > .mx_GenericDropdownMenu_Option--label span:first-child {
            font-size: 0.9375rem;
        }
            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item:hover {
                background-color: #f5f8fa;
                background-color: var(--menu-selected-color, #f5f8fa);
            }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item .mx_GenericDropdownMenu_Option--checkIcon {
                width: 16px;
                height: 16px;
                margin-left: -22px;
                margin-right: 6px;
                color: var(--timeline-text-color);
                display: inline-block;
                vertical-align: middle;
            }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HomePage {
    display: grid;
    place-items: center;
    width: min(100% - 50px, 960px);
    height: 100%;
    margin: 0 auto;
    container-type: inline-size;
    container-name: homepage;
}

.mx_HomePage_default {
    text-align: center;
}

    .mx_HomePage_default img {
        height: 48px;
    }

    .mx_HomePage_default h1 {
        margin-bottom: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        line-height: 1.375;
    }

    .mx_HomePage_default h2 {
        margin-top: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.125rem;
        line-height: 1.5625rem;
        color: #61708b;
    }

    .mx_HomePage_default .mx_MiniAvatarUploader {
        margin: 0 auto;
    }

    .mx_HomePage_default .mx_HomePage_default_buttons {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 5px 40px;
        gap: 5px 40px;
        width: 100%;
        margin-top: 80px;
        margin-bottom: 20px;
    }

        .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            gap: 13px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            width: 160px;
            min-height: 132px;
            padding: 8px 15px;
            border-radius: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.9375rem;
            line-height: 1.25rem;
            color: #fff; /* on all themes */
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
        }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                display: block;
                width: 100%;
                height: 40px;
                -o-object-fit: contain;
                   object-fit: contain;
                color: #fff; /* on all themes */
            }

        @container homepage (max-width: 559px) {

    .mx_HomePage_default .mx_HomePage_default_buttons {
            grid-template-columns: 1fr
    }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                width: 100%;
                min-height: 0;
            }

                .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                    width: 24px;
                }
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LargeLoader {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
}

    .mx_LargeLoader .mx_Spinner {
        -webkit-box-flex: initial;
            -ms-flex: initial;
                flex: initial;
        height: auto;
        margin-bottom: 32px;
        margin-top: 33vh;
    }

    .mx_LargeLoader .mx_LargeLoader_text {
        font-size: 24px;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 0 16px;
        position: relative;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MatrixChat--with-avatar .mx_LeftPanel,
    .mx_MatrixChat--with-avatar .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        background-color: transparent;
    }

.mx_LeftPanel_outerWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 50%;
    position: relative;
}

.mx_LeftPanel_wrapper,
.mx_LeftPanel {
    --collapsedWidth: 68px;
}
    .mx_LeftPanel_panel .mx_LeftPanel_outerWrapper {
        height: 100%;
        max-width: none;
    }

    .mx_LeftPanel_panel .mx_LeftPanel_wrapper--user {
        width: 100%;
    }

.mx_LeftPanel_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 100%; /* ensure space panel is still scrollable with an outer wrapper */
}

    .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        overflow: hidden;
        position: relative;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user[data-collapsed] {
            max-width: var(--collapsedWidth);
        }

.mx_LeftPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    /* The room list is not designed to be collapsed to just icons. */
    /* 224 + 68(spaces bar) was deemed by design to be a good minimum for the left panel. */
    --collapsedWidth: 224px;

    /* Create a row-based flexbox for the space panel and the room list */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    contain: content;
    position: relative;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        /* Create another flexbox (this time a column) for the room list components */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    /* These styles override the defaults for the minimized (66px) layout */
    .mx_LeftPanel.mx_LeftPanel_minimized {
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        min-width: 0;
        min-width: initial;
        width: auto !important;
        width: initial !important;
    }

        .mx_LeftPanel.mx_LeftPanel_minimized .mx_LeftPanel_roomListContainer {
            width: var(--collapsedWidth);
        }

#left-panel .mx_LeftPanel_wrapper--user {
    /*
     * Disable background when using the new room list.
     * This background sometimes shows when the panel is resized and it looks like a thicker border.
     */
    background: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MainSplit {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    min-width: 0;
    min-height: 0;
    height: 100%;
}
    .mx_MainSplit > .mx_RightPanel_ResizeWrapper:hover .mx_ResizeHandle--horizontal::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-150%, -50%);
                transform: translate(-150%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: "";

        background-color: var(--timeline-text-color);
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MatrixChat_splash {
    position: relative;
    height: 100%;
}

.mx_MatrixChat_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    height: 100%;
}

.mx_MatrixToolbar {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;

    height: 40px;
}

.mx_MatrixChat {
    position: relative;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;

    -webkit-box-flex: 1;

        -ms-flex: 1;

            flex: 1;
    min-height: 0;
}

/* not the left panel, and not the resize handle, so the roomview and friends */
.mx_MatrixChat > :not(.mx_LeftPanel):not(.mx_SpacePanel):not(.mx_ResizeHandle):not(.mx_LeftPanel_outerWrapper) {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

    -webkit-box-flex: 1;

        -ms-flex: 1 1 0px;

            flex: 1 1 0;
    min-width: 0;

    /* To fix https://github.com/vector-im/element-web/issues/3298 where Safari
       needed height 100% all the way down to the HomePage. Height does not
       have to be auto, empirically.
    */
    height: 100%;
}

.mx_MatrixChat > .mx_ResizeHandle--horizontal:hover {
    position: relative;
}

    .mx_MatrixChat > .mx_ResizeHandle--horizontal:hover::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: " ";

        background-color: var(--timeline-text-color);
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NonUrgentToastContainer {
    position: absolute;
    bottom: 30px;
    left: 28px;
    z-index: 101; /* same level as other toasts */
}

    .mx_NonUrgentToastContainer .mx_NonUrgentToastContainer_toast {
        padding: 10px 12px;
        border-radius: 8px;
        width: 320px;
        font-size: 0.8125rem;
        margin-top: 8px;

        /* We don't use variables on the colours because we want it to be the same */
        /* in all themes. */
        background-color: #17191c;
        color: #fff;
    }
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PictureInPictureDragger {
    cursor: -webkit-grab;
    cursor: grab;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    left: 0;
    position: fixed;
    top: 0;
    /* Display above any widget elements */
    z-index: 102;
}

.mx_PictureInPictureDragger:active {
    cursor: -webkit-grabbing;
    cursor: grabbing;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickSettingsButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 12px auto 12px;
}

    .mx_QuickSettingsButton svg {
        fill: #2e2f32;
        fill: var(--secondary-content, #2e2f32);
    }

    .mx_QuickSettingsButton:not(.expanded):hover {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: #6f7882 !important;
        background-color: var(--quaternary-content, #6f7882) !important;
        color: var(--timeline-text-color);
    }

        .mx_QuickSettingsButton:not(.expanded):hover svg {
            fill: var(--timeline-text-color);
        }

    .mx_QuickSettingsButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the label into the indicator icon button
         **/
        .mx_QuickSettingsButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_QuickSettingsButton.expanded svg {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_QuickSettingsButton.expanded .mx_QuickSettingsButton_label {
            /* !important override compound  */
            color: #2e2f32 !important;
            color: var(--secondary-content, #2e2f32) !important;
        }

.mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu {
    padding: 16px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    min-width: 200px;
    contain: unset; /* let the dropdown paint beyond the context menu */
}

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-secondary);
        margin: 0 0 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_AccessibleButton_hasKind {
        display: block;
        margin-top: 4px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h4 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
        color: var(--cpd-color-text-secondary);
        margin: 20px 0 12px;
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_moreOptionsButton {
        margin-left: var(--cpd-space-7x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-primary);
        position: relative;
        margin-bottom: 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option {
        margin-bottom: var(--cpd-space-3x);
    }
        .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option label {
            /* Correctly line up icons and text. */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickThemeSwitcher {
        margin-top: var(--cpd-space-2x);
    }

.mx_QuickSettingsButton_icon {
    margin-right: var(--cpd-space-1x);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    width: 18px;
    height: 18px;
    margin-top: auto;
    margin-bottom: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RightPanel {
    overflow-x: hidden;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    border-left: 1px solid var(--cpd-color-gray-400);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 100%;
    contain: strict;
    background-color: var(--cpd-color-bg-canvas-default);
}

    .mx_RightPanel .mx_RoomView_MessageList {
        padding: 14px 18px; /* top and bottom is 4px smaller to balance with the padding set above */
    }

.mx_RightPanel .mx_MemberList,
.mx_RightPanel .mx_MemberInfo {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_RightPanel .mx_RoomView_messagePanelSpinner {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --RoomView_MessageList-padding: 18px;
}
    .mx_LeftPanel_panel .mx_RoomView_wrapper {
        height: 100%;
    }

.mx_RoomView_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    /* Contain the amount of layers rendered by constraining what actually needs re-layering via css */
    contain: strict;
}

.mx_RoomView {
    word-wrap: break-word;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
}

    .mx_RoomView .mx_MainSplit {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }

    .mx_RoomView .mx_MessageComposer {
        width: 100%;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-right: 2px;
        padding-bottom: 1em;
    }

.mx_RoomView_auxPanel_hiddenHighlights {
    border-bottom: 1px solid var(--roomlist-separator-color);
    padding: 10px 26px;
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    cursor: pointer;
}

.mx_RoomView_messagePanel {
    width: 100%;
    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-anchor: none;
}

.mx_RoomView_messagePanelSearchSpinner {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-position: center 367px;
    background-size: 25px;
    background-repeat: no-repeat;
    position: relative;
}

    .mx_RoomView_messagePanelSearchSpinner svg {
        color: var(--timeline-text-secondary-color);
        width: 50px;
        height: 50px;
        position: absolute;
        top: 286px;
        left: calc(50% - 25px);
    }

.mx_RoomView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    container-type: size;
    container-name: roomview;
}

    .mx_RoomView_body .mx_RoomView_messagePanel,
    .mx_RoomView_body .mx_RoomView_messagePanelSpinner,
    .mx_RoomView_body .mx_RoomView_messagePanelSearchSpinner {
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2;
    }

    .mx_RoomView_body .mx_RoomView_timeline {
        /* offset parent for mx_RoomView_topUnreadMessagesBar  */
        position: relative;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

/* Restore the gap between the timeline and the right panel only when the panel is open.
   Without this, the scrollbar on mx_RoomView_messagePanel would sit 4 px away from the
   viewport edge in Firefox (which does not support overflow:overlay). */
.mx_MainSplit:has(.mx_RightPanel_ResizeWrapper) .mx_RoomView_timeline {
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
}

.mx_RoomView_statusArea {
    width: 100%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;

    max-height: 0px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    z-index: 1000;
    overflow: hidden;

    -webkit-transition: all 0.2s ease-out;

    transition: all 0.2s ease-out;
}

.mx_RoomView_statusArea_expanded {
    max-height: 100px;
}

.mx_RoomView_statusAreaBox {
    margin: auto;
    min-height: 50px;
}

.mx_RoomView_statusAreaBox_line {
    margin-left: 65px;
    border-top: 1px solid var(--roomlist-separator-color);
    height: 1px;
}

.mx_RoomView_messageListWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    position: relative;
}
    .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper {
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
    }

        .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper > .mx_RoomView_MessageList > li > ol {
            list-style-type: none;
        }

    .mx_RoomView_searchResultsPanel a {
        text-decoration: none;
        color: inherit;
    }

.mx_RoomView_empty {
    font-size: 0.8125rem;
    padding: 0 24px;
    margin-right: 30px;
    text-align: center;
    margin-bottom: 80px; /* visually center the content (intentional offset) */
}

.mx_RoomView_MessageList {
    list-style-type: none;
    padding: 18px;
    padding: var(--RoomView_MessageList-padding); /* mx_ProfileResizer depends on this value */
    margin: 0;
    /* needed as min-height is set to clientHeight in ScrollPanel
    to prevent shrinking when WhoIsTypingTile is hidden */
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_RoomView_MessageList li {
        clear: both;
    }

    .mx_ScrollPanel .mx_RoomView_MessageList {
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;

        content-visibility: auto;
        contain-intrinsic-size: 50px;
    }

    .mx_RoomView--local .mx_ScrollPanel .mx_RoomView_MessageList {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
    .mx_RoomView_inCall .mx_RoomView_statusAreaBox_line {
        margin-top: 2px;
        border: none;
        height: 0px;
    }

    .mx_RoomView_inCall .mx_MessageComposer_wrapper {
        border-top: 2px hidden;
        padding-top: 1px;
    }
    .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList {
        margin-bottom: 4px;
    }

        .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList h2 {
            margin-top: 6px;
        }

    .mx_MatrixChat_useCompactLayout .mx_RoomView_statusAreaBox {
        min-height: 42px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchBox {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    min-width: 0;
    min-height: 36px; /* to avoid jumping when the X to clear shows/hides */
}

    .mx_SearchBox.mx_SearchBox_blurred:not(:hover) {
        background-color: transparent;
    }

    .mx_SearchBox .mx_SearchBox_closeButton {
        cursor: pointer;
        height: 16px;
        width: 16px;
        padding: 9px;
    }

        .mx_SearchBox .mx_SearchBox_closeButton svg {
            height: inherit;
            width: inherit;
            color: var(--cpd-color-icon-secondary);
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceRoomView_landing .mx_AccessibleButton_kind_link {
        font-size: inherit;
    }

    .mx_SpaceRoomView_landing .mx_SearchBox {
        margin: 24px 0 16px;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_noResults {
        text-align: center;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_noResults > div {
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 12px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        margin-bottom: 12px;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_header {
            grid-column-start: 1;
            font-weight: var(--cpd-font-weight-semibold);
            margin: 0;
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons {
            grid-column-start: 2;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-flow: wrap;
                flex-flow: wrap;
            gap: 12px;
            min-height: 32px;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons .mx_AccessibleButton {
                padding: 4px 12px;
                font-weight: normal;
            }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_danger_outline,
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_primary_outline {
            padding: 3px 12px; /* to account for the 1px border */
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error {
        position: relative;
        font-weight: var(--cpd-font-weight-semibold);
        color: #ff5b55;
        color: var(--alert, #ff5b55);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        margin: 20px auto 12px;
        padding-left: 24px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error::before {
            content: "";
            position: absolute;
            height: 16px;
            width: 16px;
            left: 0;
            background-image: url(../../icons/error-solid.7cb2e4d.svg);
            background-size: cover;
            background-repeat: no-repeat;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > h3 {
            display: inline;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            color: var(--timeline-text-color);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > span {
            margin-left: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle {
        position: absolute;
        left: -1px;
        top: 10px;
        height: 16px;
        width: 16px;
        border-radius: 4px;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle svg {
            width: inherit;
            height: inherit;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            -webkit-transform: rotate(270deg);
                    transform: rotate(270deg);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle.mx_SpaceHierarchy_subspace_toggle_shown svg {
            -webkit-transform: rotate(0deg);
                    transform: rotate(0deg);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children {
        position: relative;
        padding-left: 12px;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper {
            list-style: none;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile {
                position: relative;
                padding: 8px 16px;
                border-radius: 8px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                gap: 6px 12px;
            }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item {
                    font-weight: var(--cpd-font-weight-semibold);
                    font-size: 0.9375rem;
                    line-height: 1.125rem;
                    display: grid;
                    grid-template-columns: 20px auto;
                    grid-gap: 6px 8px;
                    gap: 6px 8px;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1; /* wrap action buttons */
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_avatar {
                        grid-row: 1;
                        grid-column: 1;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name {
                        grid-row: 1;
                        grid-column: 2;
                    }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip,
                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            margin-left: 12px;
                            color: #2e2f32;
                            color: var(--tertiary-content, #2e2f32);
                            font-size: 0.75rem;
                            line-height: 0.9375rem;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip {
                            display: inline-block;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            display: -webkit-inline-box;
                            display: -ms-inline-flexbox;
                            display: inline-flex;
                            -webkit-box-align: center;
                                -ms-flex-align: center;
                                    align-items: center;
                            vertical-align: middle;
                        }

                            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined svg {
                                width: 20px;
                                height: 20px;
                                color: #0dbd8b;
                                color: var(--accent-color, #0dbd8b);
                            }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_info {
                        grid-row: 2;
                        grid-column: 2;
                        font: var(--cpd-font-body-md-regular);
                        font-weight: normal;
                        font-weight: initial;
                        line-height: 1.125rem;
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2;
                        overflow: hidden;
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-column-gap: 12px;
                       -moz-column-gap: 12px;
                            column-gap: 12px;
                    margin-left: auto;
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton {
                        line-height: 1.5rem;
                        padding: 4px 16px;
                        display: inline-block;
                        visibility: hidden;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_danger_outline,
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_primary_outline {
                        padding: 3px 16px; /* to account for the 1px border */
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover,
                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within {
                    background-color: var(--sidebar-color);
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover .mx_AccessibleButton, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within .mx_AccessibleButton {
                        visibility: visible;
                    }
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile.mx_SpaceHierarchy_joining .mx_AccessibleButton {
                        visibility: visible;
                        padding: 4px 18px;
                    }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomTile::before, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children::before {
            content: "";
            position: absolute;
            background-color: var(--sidebar-color);
            width: 1px;
            height: 100%;
            left: 6px;
            top: 0;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_actions .mx_SpaceHierarchy_actionsText {
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing > hr {
        border: none;
        height: 1px;
        background-color: rgb(141, 151, 165, 0.2);
        margin: 20px 0;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_createRoom {
        display: block;
        margin: 16px auto 0;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePanel {
    --activeBackground-color: var(--roomlist-highlights-color);
    --activeBorder-color: var(--timeline-text-color);
    --activeBorder-transparent-gap: 1px;
    --gutterSize: 14px;
    --height-nested: 24px;
    --height-topLevel: 32px;

    background-color: var(--cpd-color-bg-canvas-default);
    border-right: 1px solid var(--cpd-color-bg-subtle-primary);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    padding: 0;
    margin: 0;
    position: relative;
    /* Fix for the blurred avatar-background */
    z-index: 1;

    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;

    /* Create another flexbox so the Panel fills the container */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpacePanel.collapsed {
        width: 68px;
    }

    .mx_SpacePanel .mx_SpacePanel_toggleCollapse {
        position: absolute;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        top: 19px; /* v-align with avatar */
        right: -8px;
    }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse svg {
            height: inherit;
            width: inherit;
            display: inline-block;
            color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            /* Slight alignment tweak to center the asset */
            margin-left: 1px;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse:not(.expanded) {
            opacity: 0;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse.expanded svg {
            -webkit-transform: rotate(180deg);
                    transform: rotate(180deg);
            /* Slight alignment tweak to center the asset */
            margin-left: -1px;
        }

    .mx_SpacePanel:hover .mx_SpacePanel_toggleCollapse,
    .mx_SpacePanel .mx_SpacePanel_toggleCollapse:focus-visible {
        opacity: 1;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

    .mx_SpacePanel ul {
        margin: 0;
        list-style: none;
        padding: 0;
    }

    .mx_SpacePanel .mx_SpaceButton_toggleCollapse {
        cursor: pointer;
    }
        .mx_SpacePanel .mx_SpaceItem_dragging .mx_SpaceButton_toggleCollapse {
            visibility: hidden;
        }

    .mx_SpacePanel .mx_SpaceItem {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
    }

        .mx_SpacePanel .mx_SpaceItem.mx_SpaceItem_narrow {
            -ms-flex-item-align: baseline;
                align-self: baseline;
        }
        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceButton > .mx_SpaceButton_toggleCollapse {
            padding: 0 10px;
            margin: 0 -10px;
        }

        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceTreeLevel {
            display: none;
        }

    .mx_SpacePanel .mx_SpaceItem_new {
        position: relative;
    }

    .mx_SpacePanel .mx_SpaceItem:not(.hasSubSpaces) > .mx_SpaceButton {
        margin-left: var(--gutterSize);
        min-width: 40px;
    }

    .mx_SpacePanel .mx_SpaceButton {
        border-radius: 8px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 4px 4px 4px 0;
        width: 100%;
        /* Override the unlayered cursor: grab; rule from react-beautiful-dnd */
        cursor: pointer !important;
    }
            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active:not(.mx_SpaceButton_narrow) .mx_SpaceButton_selectionWrapper {
                background-color: var(--activeBackground-color);
            }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
                padding: var(--activeBorder-transparent-gap);
                border: 3px var(--activeBorder-color) solid;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_selectionWrapper {
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 12px;
            padding: 4px;
            width: calc(100% - 32px);
            min-width: 0;
        }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            width: 32px;
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_name {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin-left: 8px;
            white-space: nowrap;
            display: block;
            text-overflow: ellipsis;
            overflow: hidden;
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse {
            height: 20px;
            width: var(--gutterSize);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            padding: 10px 0;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse svg {
                width: 20px;
                height: inherit;
                display: inline-block;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
                /* Re-align with parent */
                margin-left: -3px;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon {
            /* Calculate height excluding padding to allow svg to inherit */
            width: calc(var(--height-topLevel) - 14px);
            height: calc(var(--height-topLevel) - 14px);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            border-radius: 8px;
            padding: 7px;
            background-color: var(--roomlist-highlights-color);
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon svg {
                width: inherit;
                height: inherit;
                display: block;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon {
            background-color: transparent;
            background-color: initial;
        }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon svg {
                color: var(--timeline-text-color);
                -webkit-transition: all 0.2s ease-in-out;
                transition: all 0.2s ease-in-out; /* TODO transition */
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_newCancel .mx_SpaceButton_icon svg {
            -webkit-transform: rotate(45deg);
                    transform: rotate(45deg);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton {
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            margin-top: auto;
            margin-bottom: auto;
            display: none;
            position: absolute;
            right: 4px;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton svg {
                width: inherit;
                height: inherit;
                display: block;
                color: var(--timeline-text-color);
            }

    .mx_SpacePanel .mx_SpaceTreeLevel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        max-width: 250px;
        min-width: 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_SpacePanel .mx_SpaceTreeLevel .mx_SpaceTreeLevel {
            /* Indent subspaces */
            padding-left: 16px;
        }

    .mx_SpacePanel .mx_SpaceButton_avatarWrapper {
        position: relative;
        line-height: 0;
    }

    .mx_SpacePanel .mx_SpacePanel_badgeContainer {
        /* Create a flexbox to make aligning dot badges easier */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: absolute;
        right: -3px;
        top: -3px;
    }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer .mx_SpacePanel_notificationBadge {
            margin: 0 2px; /* centering */
            background-clip: padding-box;
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="dot"] {
            /* make the smaller dot occupy the same width for centering */
            margin: 0 -1px 0 0;
            border: 3px solid var(--sidebar-color);
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_2char"],
        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_3char"] {
            margin: -5px -5px 0 0;
            border: 2px solid var(--sidebar-color);
        }
        .mx_SpacePanel .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton {
            display: block;
        }
            .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name {
                max-width: calc(100% - 56px);
            }

    /* root space buttons are bigger and not indented */
    .mx_SpacePanel > .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        padding: 0 0 16px 0;
        scrollbar-gutter: stable;
    }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow {
            -webkit-mask-image: linear-gradient(to bottom, transparent, black 16px);
                    mask-image: linear-gradient(to bottom, transparent, black 16px);
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_bottomOverflow {
            -webkit-mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
                    mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow.mx_IndicatorScrollbar_bottomOverflow {
            /* This stacks two gradients on top of one another, which lets us
               have a fixed pixel offset from both top and bottom for the colour stops.
               Note the top fade is much smaller because the spaces start close to the top,
               so otherwise a large gradient suddenly appears when you scroll down.
             */
            -webkit-mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
                    mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
            -webkit-mask-position:
                0% 0%,
                0% 100%;
                    mask-position:
                0% 0%,
                0% 100%;
            -webkit-mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
                    mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
            -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
        }

.mx_SpacePanel_contextMenu {
    max-width: 360px;
}

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_header {
        margin: 12px 16px 12px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_separatorLabel {
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        font-size: 0.625rem;
        line-height: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SpacePanel_sharePublicSpace {
    margin: 0;
}
    .mx_SpacePanel_Tooltip_KeyboardShortcut kbd {
        font-family: inherit;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2025 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePillButton {
    position: relative;
    padding: 16px 32px 16px 72px;
    width: 432px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid #e7e7e7;
    font-size: 1.0625rem;
    font-weight: var(--cpd-font-weight-semibold);
    margin: 20px 0;
}

    .mx_SpacePillButton > div {
        margin-top: 4px;
        font-weight: normal;
        font-size: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_SpacePillButton svg {
        position: absolute;
        content: "";
        width: 28px;
        height: 28px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 22px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_SpacePillButton:hover {
        border-color: var(--cpd-color-bg-action-primary-rest);
    }

        .mx_SpacePillButton:hover svg {
            color: var(--cpd-color-icon-primary);
        }

        .mx_SpacePillButton:hover > span {
            color: var(--timeline-text-color);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceRoomView {
    --innerWidth: 428px;

    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

    .mx_SpaceRoomView .mx_MainSplit > div:first-child {
        padding: 80px 60px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        max-height: 100%;
        overflow-y: auto;
    }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child h1 {
            margin: 0;
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: var(--timeline-text-color);
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_description {
            font-size: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-top: 12px;
            margin-bottom: 24px;
            max-width: var(--innerWidth);
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
                height: calc(100vh - 360px);
                max-height: 400px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons {
            display: block;
            margin-top: 44px;
            width: var(--innerWidth);
            text-align: right; /* button alignment right */
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons .mx_AccessibleButton_hasKind {
                padding: 8px 22px;
                margin-left: 16px;
            }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons input.mx_AccessibleButton {
                border: none; /* override default styles */
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field + .mx_Field {
                margin-top: 28px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_errorText {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #ff5b55;
            color: var(--alert, #ff5b55);
            margin-bottom: 28px;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }

    .mx_SpaceRoomView .mx_SpaceRoomView_landing {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-width: 0;
    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header .mx_BaseAvatar {
                width: 80px;
            }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name {
            margin: 24px 0 16px;
            font-size: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-flow: column;
                        flex-flow: column;
                gap: 12px 0;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span h1 {
                    display: inline-block;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    width: 100%;
                }
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name .mx_SpaceRoomView_landing_inviter .mx_BaseAvatar {
                    margin-right: 4px;
                    vertical-align: middle;
                }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            gap: 12px;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            line-height: 1.5rem;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: 12px 12px;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_FacePile {
                    display: inline-block;
                    cursor: pointer;
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton,
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    position: relative;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg, .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        position: absolute;
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton {
                    padding: 4px 18px 4px 40px;
                    height: -webkit-min-content;
                    height: -moz-min-content;
                    height: min-content;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg {
                        left: 8px;
                        height: 16px;
                        width: 16px;
                        color: var(--cpd-color-icon-on-solid-primary);
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    width: 24px;
                    height: 24px;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        left: 0;
                        top: 0;
                        height: 24px;
                        width: 24px;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_topic {
            font-size: 0.9375rem;
            margin-top: 12px;
            margin-bottom: 16px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SearchBox {
            margin: 0 0 20px;
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
        }
        .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-top: 28px;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton {
                position: relative;
                display: inline-block;
                padding-left: 32px;
                line-height: 24px; /* to center icons */
                color: var(--cpd-color-text-primary);
                font-weight: var(--cpd-font-weight-semibold);
                text-decoration: underline;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton svg {
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: 0;
                    left: 0;
                    color: var(--cpd-color-icon-primary);
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 32px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SplashPage {
    position: relative;
    height: 100%;
}

    .mx_SplashPage::before {
        content: "";
        display: block;
        position: absolute;
        z-index: -1;
        opacity: 0.6;
        background-image:
            radial-gradient(
                53.85% 66.75% at 87.55% 0%,
                hsl(250deg, 76%, 71%, 0.261) 0%,
                hsl(250deg, 100%, 88%, 0) 100%
            ),
            radial-gradient(41.93% 41.93% at 0% 0%, hsl(222deg, 29%, 20%, 0.28) 0%, hsl(250deg, 100%, 88%, 0) 100%),
            radial-gradient(100% 100% at 0% 0%, hsl(250deg, 100%, 88%, 0.174) 0%, hsl(0deg, 100%, 86%, 0) 100%),
            radial-gradient(106.35% 96.26% at 100% 0%, hsl(250deg, 100%, 88%, 0.4) 0%, hsl(167deg, 76%, 82%, 0) 100%);
        /* blur to reduce color banding issues due to alpha-blending multiple gradients */
        -webkit-filter: blur(8px);
                filter: blur(8px);
        inset: -9px;
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TabbedView {
    margin: 0;
    padding: 0 0 0 var(--cpd-space-8x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    inset: 0;
    margin-top: 8px;
}

.mx_TabbedView_tabsOnLeft {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: absolute;
}

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabels {
        width: 220px;
        max-width: 220px;
        position: fixed;
        margin: 0; /* Remove the default value */
        padding: 0; /* Remove the default value */
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabPanel {
        margin-left: 280px; /* 220px sidebar + 60px padding */
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel:hover,
    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        color: #ffffff;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_TabbedView_tabsOnTop {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabels {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-bottom: 8px;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel {
        padding-left: 0px;
        padding-right: 52px;
    }

        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel .mx_TabbedView_tabLabel_text {
            font-size: 15px;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabPanel {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active .mx_TabbedView_tabLabel_text {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

.mx_TabbedView_tabLabels {
    color: #45474a;
}

.mx_TabbedView_tabLabel {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    vertical-align: text-top;
    cursor: pointer;
    padding-block: var(--cpd-space-2x);
    padding-inline: var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-block-size: 40px;
    min-inline-size: 40px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-medium);
    position: relative;
    -webkit-transition:
        color 0.1s,
        background-color 0.1s;
    transition:
        color 0.1s,
        background-color 0.1s;
}

    .mx_TabbedView_tabLabel svg {
        width: 20px;
        height: 20px;
        margin-right: var(--cpd-space-3x);
    }

.mx_TabbedView_tabLabel_text {
    vertical-align: middle;
}

.mx_TabbedView_tabPanel {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    min-height: 0; /* firefox */
}

.mx_TabbedView_tabPanelContent {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: auto;
    min-height: 0; /* firefox */
}

/* Hide the labels on tabs, showing only the icons, on narrow viewports. */
@media (max-width: 1024px) {
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel_text {
            display: none;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabPanel {
            margin-left: 72px; /* 40px sidebar + 32px padding */
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabels {
            width: auto;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel {
            padding-inline: 0 0;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }
            .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel svg {
                margin-right: 0;
            }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadsActivityCentre_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_ThreadsActivityCentreButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 18px auto auto auto;
}

    .mx_ThreadsActivityCentreButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the `Threads` label into the indicator icon button
         **/
        .mx_ThreadsActivityCentreButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ThreadsActivityCentreButton.expanded > div::before {
                inline-size: 8px;
                block-size: 8px;
                left: 17px;
            }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Icon {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Text {
            /* !important override compound  */
            color: #2e2f32 !important;
            color: var(--secondary-content, #2e2f32) !important;
        }
        .mx_ThreadsActivityCentreButton:not(.expanded):hover,
        .mx_ThreadsActivityCentreButton:not(.expanded):hover .mx_ThreadsActivityCentreButton_Icon {
            /* !important override compound */
            background-color: #6f7882 !important;
            background-color: var(--quaternary-content, #6f7882) !important;
            fill: var(--timeline-text-color);
        }

    .mx_ThreadsActivityCentreButton .mx_ThreadsActivityCentreButton_Icon {
        fill: #2e2f32;
        fill: var(--secondary-content, #2e2f32);
    }

.mx_ThreadsActivityCentre_rows {
    overflow-y: scroll;
    /* Let some space at the top and the bottom of the pop-up */
    max-height: calc(100vh - 200px);
}

    .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow {
        height: 48px;
    }

        /* Make the label of the MenuItem stay on one line and truncate with ellipsis if needed */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow > span {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            /* Arbitrary size, keep the TAC as the wanted width */
            width: 202px;
        }

        /* Hide the notification badge on hover — compound's `nav-hint ~ *` rule would normally
         * do this, but the app-web CSS layer overrides compound-web regardless of specificity. */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow:hover .mx_ThreadsActivityCentre_notificationBadge {
            display: none;
        }

.mx_ThreadsActivityCentre_emptyCaption {
    padding-left: 16px;
    padding-right: 16px;
    font-size: 13px;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToastContainer {
    position: absolute;
    top: 12px;
    left: 62px;
    z-index: 101;
    display: grid;
    grid-template-rows: 1fr 28px 8px;
}

    .mx_ToastContainer.mx_ToastContainer_stacked::before {
        content: "";
        margin: 0 var(--cpd-space-1-5x);
        grid-row: 2 / -1;
        grid-column: 1;
        background-color: #f4f6fa;
        background-color: var(--system, #f4f6fa);
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
        border-radius: var(--cpd-space-6x);
    }

    .mx_ToastContainer .mx_Toast_toast {
        grid-row: 1 / 3;
        grid-column: 1;
        background-color: var(--cpd-color-bg-canvas-default);
        color: var(--timeline-text-color);
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-3x);
        overflow: hidden;
        display: grid;
        grid-template-columns: 20px 1fr auto;
        grid-column-gap: var(--cpd-space-2x);
        -webkit-column-gap: var(--cpd-space-2x);
           -moz-column-gap: var(--cpd-space-2x);
                column-gap: var(--cpd-space-2x);
        grid-row-gap: 4px;
        row-gap: 4px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: calc(var(--cpd-space-5x) - var(--cpd-border-width-1));
    }
            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon svg {
                width: 20px;
                height: 20px;
                grid-column: 1;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_title {
                grid-column: 2;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_closebutton {
                grid-column: 3;
            }
        .mx_ToastContainer .mx_Toast_toast:not(.mx_Toast_hasIcon) .mx_Toast_title {
            grid-column: 1 / -1;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_title h2 {
                margin: 0;
                font: var(--cpd-font-body-lg-semibold);
                display: inline;
                width: auto;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_body {
            grid-column: 1 / -1;
            grid-row: 2;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons .mx_AccessibleButton {
                min-width: 96px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_description {
            max-width: 272px;
            overflow: hidden;
            text-overflow: ellipsis;
            margin: var(--cpd-space-1x) 0 11px 0;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_description a {
                text-decoration: none;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_deviceID {
            font-size: 0.625rem;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadBar {
    /* line up with the shield area in the composer */
    padding: 5px 21px 0;
    position: relative;

    display: grid;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / -webkit-min-content auto -webkit-min-content;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / min-content auto min-content;
    grid-gap: var(--cpd-space-1-5x);
    gap: var(--cpd-space-1-5x);
}

    .mx_UploadBar > svg {
        grid-area: icon;
        height: 18px;
        width: 18px;
        color: #61708b;
        align-self: center;
    }

    .mx_UploadBar .mx_UploadBar_filename {
        grid-area: filename;
        color: #61708b;
        position: relative;
        font-size: 0.9375rem;
        vertical-align: middle;
    }

    .mx_UploadBar .mx_UploadBar_cancel {
        grid-area: cancel;
        height: 16px;
        width: 16px;
        color: #61708b;
        align-self: center;
    }

    .mx_UploadBar .mx_ProgressBar {
        grid-area: progress;
        width: 100%;
    }
    .mx_ThreadView .mx_UploadBar {
        padding-left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ViewSource pre {
        font-size: 0.75rem;
        padding: 0.5em 1em;
        word-wrap: break-word;
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

    .mx_ViewSource .mx_ViewSource_header {
        border-bottom: 1px solid #6f7882;
        border-bottom: 1px solid var(--quinary-content, #6f7882);
        padding-bottom: var(--cpd-space-3x);
        margin-bottom: var(--cpd-space-3x);
        font-family: monospace;
    }

        .mx_ViewSource .mx_ViewSource_header .mx_CopyableText {
            word-break: break-all;
        }

    .mx_ViewSource .mx_ViewSource_heading {
        font-size: 1.0625rem;
        font-weight: 400;
        color: var(--timeline-text-color);
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_ViewSource_details {
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_CopyableText_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurity_header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIcon.mx_CompleteSecurity_headerIcon {
    width: 24px;
    height: 24px;
    margin-right: 4px;
    display: inline-block;
}

.mx_E2EIcon.mx_CompleteSecurity_heroIcon {
    width: 128px;
    height: 128px;
    margin: 0 auto;
}

.mx_CompleteSecurity_skip {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_CompleteSecurity_skip:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_CompleteSecurity_skip svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_CompleteSecurity_skip{
    position: absolute;
    right: 24px;
}

.mx_CompleteSecurity_body {
    font-size: 0.9375rem;
}

.mx_CompleteSecurity_waiting {
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
}

.mx_CompleteSecurity_actionRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 1.75rem;
}

    .mx_CompleteSecurity_actionRow .mx_AccessibleButton {
        -webkit-margin-start: 18px;
                margin-inline-start: 18px;
    }

        .mx_CompleteSecurity_actionRow .mx_AccessibleButton.warning {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmSessionLockTheftView {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ConfirmSessionLockTheftView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Login_submit {
    width: 100%;
    margin-top: 24px;
    margin-bottom: 24px;
}

.mx_Login_loader {
    display: inline;
    position: relative;
    top: 2px;
    left: 8px;
}

.mx_Login_loader .mx_Spinner {
    display: inline;
}

.mx_Login_loader .mx_Spinner img {
    width: 16px;
    height: 16px;
}

.mx_Login_error {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    font-weight: bold;
    text-align: center;
    margin-top: 12px;
    margin-bottom: 12px;
}

.mx_Login_error.mx_Login_serverError {
    text-align: left;
    font-weight: normal;
}

.mx_Login_error.mx_Login_serverError.mx_Login_serverErrorNonFatal {
    color: #ff8d13; /* Only used here */
}

.mx_Login_type_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

    .mx_Login_type_container .mx_Field {
        margin: 0;
    }

.mx_Login_type_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Login_underlinedServerName {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    border-bottom: 1px dashed #0dbd8b;
    border-bottom: 1px dashed var(--accent-color, #0dbd8b);
}

div.mx_AccessibleButton_kind_link.mx_Login_forgot {
    display: block;
    margin-top: 24px;
}

    div.mx_AccessibleButton_kind_link.mx_Login_forgot.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

.mx_Login_spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 14px;
}

.mx_Login_fullWidthButton {
    width: 100%;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginSplashView_migrationProgress {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    -webkit-box-align: center;

        -ms-flex-align: center;

            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
    height: 100%;
}

    .mx_LoginSplashView_migrationProgress .mx_ProgressBar {
        height: 8px;
        width: 600px;

        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-bar,
    .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

.mx_LoginSplashView_splashButtons {
    text-align: center;
    width: 100%;
    position: absolute;
    bottom: 30px;
}

.mx_LoginSplashView_syncError {
    color: #ffffff;
    background-color: #df2a8b; /* Only used here */
    border-radius: 5px;
    display: table;
    padding: 30px;
    position: absolute;
    top: 100px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MobileRegister_body {
    padding: 32px;
    height: 100vh;
    overflow-y: auto;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Register_mainContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 270px;
}

    .mx_Register_mainContent p {
        font: var(--cpd-font-body-md-regular);
        color: var(--timeline-text-color);
    }

        .mx_Register_mainContent p.secondary {
            color: var(--timeline-text-secondary-color);
        }

    .mx_Register_mainContent > img:first-child {
        margin-bottom: 16px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

    .mx_Register_mainContent .mx_Login_submit {
        margin-bottom: 0;
    }

/* Medium rather than the bold every other auth error uses: this one sits directly above the button it
   is disabling, and does not need to shout over it. Scoped so the login errors keep their weight. */
.mx_Login_error.mx_Registration_rateLimitError {
    font-weight: var(--cpd-font-weight-medium);
}

.mx_Register_footerActions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 16px;
    margin-top: 16px;
    border-top: 1px solid rgb(141, 151, 165, 0.2);
}

    .mx_Register_footerActions > * {
        -ms-flex-preferred-size: content;
            flex-basis: content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SessionLockStolenView h1 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        text-align: center;
    }

    .mx_SessionLockStolenView h2 {
        margin: 0;
        font-weight: 500;
        font-size: 1.5rem;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetupEncryptionBody {
    width: 600px;
}
}
@layer app-web{

/*
Copyright (C) 2026 MetMet

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GuestOnboarding {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
    width: 100%;
    background-color: #fff;
    padding: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_GuestOnboarding_card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center;
    max-width: 360px;
    width: 100%;
}

.mx_GuestOnboarding_logo {
    width: 88px;
    height: 88px;
    margin-bottom: 24px;
}

.mx_GuestOnboarding_title {
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 8px 0;
}

.mx_GuestOnboarding_description {
    font-size: 15px;
    color: #6f6f6f;
    margin: 0 0 28px 0;
    line-height: 1.4;
}

.mx_GuestOnboarding_actions {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
}

.mx_GuestOnboarding_primaryButton {
    width: 100%;
    padding: 14px 24px;
    border-radius: 8px;
    border: none;
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.mx_GuestOnboarding_primaryButton:hover {
    background-color: #3ac6cb;
    background-color: var(--metmet-brand-secondary);
}

.mx_GuestOnboarding_skip {
    margin-top: 20px;
    background: none;
    border: none;
    color: #9a9a9a;
    font-size: 14px;
    cursor: pointer;
    text-decoration: underline;
}

.mx_GuestOnboarding_fallback {
    margin-top: 16px;
    padding: 12px 16px;
    background-color: #f5f5f5;
    border-radius: 8px;
    font-size: 14px;
    color: #444;
    text-align: left;
}

.mx_GuestOnboardingOverlay {
    position: fixed;
    inset: 0;
    background-color: rgb(0 0 0 / 55%);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-bottom: 15vh;
    z-index: 5000;
}

.mx_GuestOnboardingOverlay_text {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 12px;
    text-align: center;
}

.mx_GuestOnboardingOverlay_arrow {
    font-size: 40px;
    -webkit-animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
            animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
}

@-webkit-keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

@keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

.mx_GuestConnecting_spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #3ac6cb;
    border: 3px solid var(--metmet-brand-secondary);
    border-top-color: #028e91;
    border-top-color: var(--metmet-brand-primary);
    border-radius: 50%;
    -webkit-animation: mx_GuestConnecting_spin 0.8s linear infinite;
            animation: mx_GuestConnecting_spin 0.8s linear infinite;
    margin-bottom: 16px;
}

@-webkit-keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

@keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Dev note: there's no actual component called <PlaybackContainer />. These classes */
/* are shared amongst multiple voice message components. */

/* Container for live recording and playback controls */
.mx_VoiceMessagePrimaryContainer {
    /* Match mx_MediaBody spacing, offsetting the waveform's 1px internal right padding. */
    padding: 6px 11px 6px 12px;

    /* Cheat at alignment a bit */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    contain: content;
}

    .mx_VoiceMessagePrimaryContainer .mx_Waveform,
    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        min-width: 0; /* Prevent a blowout */
    }

    /* Waveforms are present in live recording only */
    .mx_VoiceMessagePrimaryContainer .mx_Waveform {
        /* default, overridden in JS */
        --barHeight: 1;
    }
        .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar {
            background-color: #6f7882;
            background-color: var(--quaternary-content, #6f7882);
            height: 100%;
            -webkit-transform: scaleY(max(0.05, var(--barHeight)));
                    transform: scaleY(max(0.05, var(--barHeight)));
        }

            .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar.mx_Waveform_bar_100pct {
                /* Small animation to remove the mechanical feel of progress */
                -webkit-transition: background-color 250ms ease;
                transition: background-color 250ms ease;
                background-color: #2e2f32;
                background-color: var(--secondary-content, #2e2f32);
            }

    .mx_VoiceMessagePrimaryContainer .mx_Clock {
        width: 2.625rem; /* we're not using a monospace font, so fake it */
        min-width: 2.625rem; /* force sensible layouts in awkward flexboxes (file panel, for example) */
        padding-right: 6px; /* with the fixed width this ends up as a visual 8px most of the time, as intended. */
        padding-left: 8px; /* isolate from recording circle / play control */
    }

    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        margin-left: 8px;
        margin-right: 6px;
        position: relative;
        display: inline-block;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        height: 30px;
    } /* same height as mx_Waveform, needed for automatic vertical centering */

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_Waveform {
            left: 0;
            top: 0;
        }

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar {
            position: absolute;
            left: 0;
            height: 30px;
            top: -2px; /* visually vertically centered */

            /* Hide the hairline progress bar since we're at 100% height. Need to have distinct rules */
            /* because CSS is weird. */
            background: none;

            /* Make the thumb easier to see. Like the SeekBar original styles, these need to be */
            /* distinct. We make it transparent so it doesn't show up on the UI, but also larger */
        }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::before {
                background: none;
            }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-progress {
                background: none;
            }
            /* move and drag the thumb regardless of hitting the thumb, however. */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-webkit-slider-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }
            /* so it's easier to grab by mouse users in some browsers. Most browsers let the user */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }

        /* For timeline-rendered playback, the clock is on the other side of the waveform. */
        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle + .mx_Clock {
            text-align: right;

            /* Take the padding off the clock because it's accounted for by the `timelineLayoutMiddle` */
            padding: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* CSS inspiration from: */
/* * https://www.w3schools.com/howto/howto_js_rangeslider.asp */
/* * https://stackoverflow.com/a/28283806 */
/* * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */

.mx_SeekBar {
    /* default, overridden in JS */
    --fillTo: 1;

    /* Dev note: we deliberately do not have the -ms-track (and friends) selectors because we don't */
    /* need to support IE. */

    -webkit-appearance: none;

       -moz-appearance: none;

            appearance: none; /* default style override */

    width: 100%;
    height: 1px;
    background: #6f7882;
    background: var(--quaternary-content, #6f7882);
    outline: none; /* remove blue selection border */
    position: relative; /* for before+after pseudo elements later on */

    cursor: pointer;

    /* This is for webkit support, but we can't limit the functionality of it to just webkit */
    /* browsers. Firefox responds to webkit-prefixed values now, which means we can't use media */

    /* Increase clickable area for the slider (approximately same size as browser default) */
    /* We do it this way to keep the same padding and margins of the element, avoiding margin math. */
}

    .mx_SeekBar::-webkit-slider-thumb {
        -webkit-appearance: none;
                appearance: none; /* default style override */

        /* Dev note: This needs to be duplicated with the -moz-range-thumb selector */
        /* because otherwise Edge (webkit) will fail to see the styles and just refuse */
        /* to apply them. */
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        cursor: pointer;
    }

    .mx_SeekBar::-moz-range-thumb {
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        cursor: pointer;

        /* Firefox adds a border on the thumb */
        border: none;
    }
    /* in firefox, so it's just wasted CPU/GPU time. */
    .mx_SeekBar::before {
        /* ::before to ensure it ends up under the thumb */
        content: "";
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);

        /* Absolute positioning to ensure it overlaps with the existing bar */
        position: absolute;
        top: 0;
        left: 0;

        /* Sizing to match the bar */
        width: 100%;
        height: 1px;

        /* And finally dynamic width without overly hurting the rendering engine. */
        -webkit-transform-origin: 0 100%;
                transform-origin: 0 100%;
        -webkit-transform: scaleX(var(--fillTo));
                transform: scaleX(var(--fillTo));
    }

    /* This is firefox's built-in support for the above, with 100% less hacks. */
    .mx_SeekBar::-moz-range-progress {
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        height: 1px;
    }
    /* or support queries to selectively apply the rule. An upside is that this CSS doesn't work */

    .mx_SeekBar:disabled {
        opacity: 0.5;
    }
    /* Source: https://front-back.com/expand-clickable-areas-for-a-better-touch-experience/ */
    .mx_SeekBar::after {
        content: "";
        position: absolute;
        top: -6px;
        bottom: -6px;
        left: 0;
        right: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Waveform {
    position: relative;
    height: 30px; /* tallest bar can only be 30px */
    top: 1px; /* because of our border trick (see below), we're off by 1px of aligntment */

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; /* so the bars grow from the middle */

    overflow: hidden; /* this is cheaper than a `max-height: calc(100% - 4px)` in the bar's CSS. */

    /* A bar is meant to be a 2x2 circle when at zero height, and otherwise a 2px wide line */
}
    /* with rounded caps. */
    .mx_Waveform .mx_Waveform_bar {
        width: 0; /* 0px width means we'll end up using the border as our width */
        border: 1px solid transparent; /* transparent means we'll use the background colour */
        border-radius: 2px; /* rounded end caps, based on the border */
        min-height: 0; /* like the width, we'll rely on the border to give us height */
        max-height: 100%; /* this makes the `height: 42%` work on the element */
        margin-left: 1px; /* we want 2px between each bar, so 1px on either side for balance */
        margin-right: 1px;

        /* background color is handled by the parent components */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody {
    width: 500px;
    font-size: 0.75rem;
    color: var(--timeline-text-secondary-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 0 var(--cpd-space-6x) var(--cpd-space-6x) 0;
    padding: 25px 60px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_AuthBody strong {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AuthBody.mx_AuthBody_flex {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_AuthBody h1 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: var(--cpd-space-2x);
        color: var(--timeline-text-color);
    }

    .mx_AuthBody h2 {
        font: var(--cpd-font-body-md-semibold);
        color: var(--timeline-text-secondary-color);
    }

    .mx_AuthBody h2.mx_AuthBody_centered {
        text-align: center;
    }

    .mx_AuthBody a:link,
    .mx_AuthBody a:hover,
    .mx_AuthBody a:visited {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_AuthBody fieldset {
        /* Reset the browser default <fieldset> styling */
        display: block;
        margin-inline: unset;
        padding-block: unset;
        padding-inline: unset;
        min-inline-size: unset;
        border: none;
    }

    .mx_AuthBody .mx_AuthBody_icon {
        width: 44px;
        height: 44px;
    }

    .mx_AuthBody .mx_AuthBody_lockIcon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: 32px;
        width: 32px;
    }

    .mx_AuthBody .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-12x);
        margin-top: 0;
    }

    .mx_AuthBody input[type="text"],
    .mx_AuthBody input[type="password"] {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody input[type="password"] {
        background-color: transparent;
    }
        .mx_AuthBody input[type="password"]:focus {
            outline: none;
            -webkit-box-shadow: none;
                    box-shadow: none;
        }

    .mx_AuthBody .mx_Field label {
        color: var(--timeline-text-secondary-color);
    }

    .mx_AuthBody .mx_Field input,
    .mx_AuthBody .mx_Field select {
        color: var(--timeline-text-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field input:not(:-moz-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-moz-placeholder) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field input:not(:-ms-input-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-ms-input-placeholder) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field_labelAlwaysTopLeft label,
    .mx_AuthBody .mx_Field select + label,
    .mx_AuthBody .mx_Field input:focus + label,
    .mx_AuthBody .mx_Field input:not(:placeholder-shown) + label,
    .mx_AuthBody .mx_Field textarea:focus + label,
    .mx_AuthBody .mx_Field textarea:not(:placeholder-shown) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody input.error {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

    .mx_AuthBody .mx_Login_submit {
        height: 32px;
        margin-top: var(--cpd-space-4x);
    }

    .mx_AuthBody .mx_ErrorMessage {
        margin-bottom: 12px;
        margin-top: 2px;
    }

    .mx_AuthBody .mx_Field input {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AuthBody .mx_Field_select::before {
        background-color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown_arrow {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown_menu {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_AuthBody .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: #dddddd;
        }

/* specialisation for password reset views */
.mx_AuthBody.mx_AuthBody_forgot-password {
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    padding: 50px 32px;
    min-height: 600px;
}

    .mx_AuthBody.mx_AuthBody_forgot-password h1 {
        margin: var(--cpd-space-6x) 0;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_button-container {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_Login_submit {
        margin: 0 0 var(--cpd-space-4x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-8x);
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text p {
            margin: 0 0 var(--cpd-space-2x);
        }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_sign-in-instead-button {
        font-weight: var(--cpd-font-weight-semibold);
        padding: var(--cpd-space-1x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_fieldRow {
        margin-bottom: var(--cpd-space-6x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        background: none;
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind:disabled {
            cursor: default;
            opacity: 0.4;
        }

.mx_AuthBody_did-not-receive {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}

.mx_AuthBody_resend-button {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 8px;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1x);
    padding: var(--cpd-space-1x);
}

    .mx_AuthBody_resend-button:hover {
        background-color: #f4f6fa;
        background-color: var(--system, #f4f6fa);
    }

.mx_AuthBody_emailPromptIcon {
    width: 57px;
}

.mx_AuthBody_emailPromptIcon--shifted {
    margin-bottom: -17px; /* Prevent layout jump by relative positioning. */
    position: relative;
    top: -17px; /* This icon is higher than the other icons. Shift up to prevent icon jumping. */
    width: 57px;
}

.mx_AuthBody_fieldRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 10px;
}

.mx_AuthBody_fieldRow > .mx_Field {
    margin: 0 5px;
}

.mx_AuthBody_fieldRow > .mx_Field:first-child {
    margin-left: 0;
}

.mx_AuthBody_fieldRow > .mx_Field:last-child {
    margin-right: 0;
}

.mx_AuthBody_paddedFooter {
    height: 80px; /* height of the submit button + register link */
    padding-top: 28px;
    text-align: center;
}

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title {
        margin-top: var(--cpd-space-4x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

        .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title .mx_InlineSpinner svg {
            vertical-align: sub;
            margin-right: 5px;
        }

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_subtitle {
        margin-top: var(--cpd-space-2x);
        font-size: 0.625rem;
        line-height: 0.875rem;
    }

.mx_AuthBody_changeFlow {
    display: block;
    text-align: center;
}

    .mx_AuthBody_changeFlow > a {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SSOButtons + .mx_AuthBody_changeFlow {
    margin-top: var(--cpd-space-6x);
}

.mx_AuthBody_spinner {
    margin: 1em 0;
}

@media only screen and (max-width: 480px) {
    .mx_AuthBody {
        border-radius: 4px;
        width: auto;
        max-width: 500px;
        padding: 10px;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthFooter {
    text-align: center;
    width: 100%;
    font: var(--cpd-font-body-md-regular);
    opacity: 0.72;
    padding: 20px 0;
    background: -webkit-gradient(linear, left top, left bottom, from(rgb(0, 0, 0, 0)), to(rgb(0, 0, 0, 0.8)));
    background: linear-gradient(rgb(0, 0, 0, 0), rgb(0, 0, 0, 0.8));
}

.mx_AuthFooter a:link,
.mx_AuthFooter a:hover,
.mx_AuthFooter a:visited {
    color: #ffffff;
    margin: 0 22px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 206px;
    padding: 25px 25px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeader {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeaderLogo {
    margin-top: 15px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding: 0 25px;
}

.mx_AuthHeaderLogo img {
    width: 100%;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeaderLogo {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthPage {
    width: 100%;
    min-height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: #2e3649;
    height: 100vh;
    overflow: auto;
}

.mx_AuthPage_modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 100px auto auto;
    border-radius: var(--cpd-space-6x);
    background-color: var(--timeline-background-color-50pct);
}

    @media only screen and (max-height: 768px) {

.mx_AuthPage_modal {
        margin-top: 50px
}
    }

    @media only screen and (max-width: 480px) {

.mx_AuthPage_modal {
        margin-top: 0
}
    }

    .mx_AuthPage_modal.mx_AuthPage_modal_withBlur {
        /* Apply a blurred shadow around the modal */
        -webkit-box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
                box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
    }

        .mx_AuthPage_modal.mx_AuthPage_modal_withBlur .mx_AuthPage_modalContent {
            /* Make the modal's background semitransparent */
            background-color: rgb(255, 255, 255, 0.59);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurityBody {
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 24px;
    padding: 20px 20px 60px 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_CompleteSecurityBody h2 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 0;
    }

    .mx_CompleteSecurityBody h3 {
        font: var(--cpd-font-body-md-semibold);
    }

    .mx_CompleteSecurityBody a:link,
    .mx_CompleteSecurityBody a:hover,
    .mx_CompleteSecurityBody a:visited {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CountryDropdown .mx_Dropdown_input .mx_Dropdown_option {
    padding: 0 3px;
}

.mx_CountryDropdown .mx_Dropdown_arrow {
    padding-right: 3px;
}

.mx_CountryDropdown_shortOption {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
}

.mx_CountryDropdown_option {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DefaultWelcome {
    text-align: center;
}

    .mx_DefaultWelcome .mx_DefaultWelcome_logo img {
        height: 48px;
        aspect-ratio: auto;
        display: block;
        margin: 0 auto;
    }

    .mx_DefaultWelcome h1 {
        margin: var(--cpd-space-4x) 0 var(--cpd-space-2x);
    }

    .mx_DefaultWelcome p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

    .mx_DefaultWelcome .mx_DefaultWelcome_buttons {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-1x);
        padding-bottom: var(--cpd-space-4x);
        border-bottom: 1px solid var(--cpd-color-separator-primary);
    }

        .mx_DefaultWelcome .mx_DefaultWelcome_buttons a {
            width: 380px;
            margin-bottom: var(--cpd-space-4x);
        }
    .mx_WelcomePage_registrationDisabled .mx_DefaultWelcome_buttons_register {
        display: none;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_InteractiveAuthEntryComponents .mx_InteractiveAuthEntryComponents_termsSubmit {
        margin-top: 20px;
        margin-bottom: 5px;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box; /* prevent overflowing */
    }

.mx_InteractiveAuthEntryComponents_msisdnWrapper {
    text-align: center;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry {
    font-size: 200%;
    font-weight: bold;
    border: 1px solid #c7c7c7;
    border: 1px solid var(--strong-input-border-color, #c7c7c7);
    border-radius: 3px;
    width: 6em;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry:focus {
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
}

.mx_InteractiveAuthEntryComponents_msisdnSubmit {
    margin-top: 4px;
    margin-bottom: 5px;
}

/* XXX: This should be a common button class */
.mx_InteractiveAuthEntryComponents_msisdnSubmit:disabled {
    background-color: var(--timeline-text-secondary-color);
    cursor: default;
}

.mx_InteractiveAuthEntryComponents_termsPolicy {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InteractiveAuthEntryComponents_passwordSection {
    width: 300px;
}

.mx_InteractiveAuthEntryComponents_sso_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 20px;
}

    .mx_InteractiveAuthEntryComponents_sso_buttons .mx_AccessibleButton {
        margin-left: 5px;
    }
    /* "Resend" button/link */
    .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline {
        /* We need this to be an inline-block so positioning works correctly */
        display: inline-block !important;
    }

        /* Spinner as end adornment of the "resend" button/link */
        .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline .mx_Spinner {
            /* Spinners are usually block elements, but we need it as inline element */
            display: -webkit-inline-box !important;
            display: -ms-inline-flexbox !important;
            display: inline-flex !important;
            /* Spinners by default fill all available width, but we don't want that */
            width: auto !important;
            /* We need to center the spinner relative to the button/link */
            vertical-align: middle !important;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody_language {
    width: 100%;
}

.mx_AuthBody_language .mx_Dropdown_input {
    border: none;
    font: var(--cpd-font-body-md-semibold);
    color: var(--timeline-text-color);
    width: auto;
}

.mx_AuthBody_language .mx_Dropdown_arrow {
    color: var(--timeline-text-color);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginWithQRSection p {
    margin-top: 0;
    margin-bottom: var(--cpd-space-4x);
}
    .mx_LoginWithQRSection .mx_AccessibleButton_kind_primary + p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

.mx_LoginWithQRSection .mx_AccessibleButton svg {
    margin-right: var(--cpd-space-3x);
}

.mx_LoginWithQR_dialog .mx_Dialog {
    padding: var(--cpd-space-12x) var(--cpd-space-12x) var(--cpd-space-10x);
}

    .mx_LoginWithQR_dialog .mx_Dialog .mx_LoginWithQR {
        width: 500px;
    }

.mx_LoginWithQR {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 500px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_LoginWithQR h1 {
        font-size: 1.5rem;
        margin-bottom: 0;
    }

    .mx_LoginWithQR h2 {
        margin-top: var(--cpd-space-6x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_qrWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: var(--cpd-space-7x) 0;
    }

        .mx_LoginWithQR .mx_LoginWithQR_qrWrapper .mx_Spinner {
            /* Match the size of the QR code to prevent jumps */
            height: 200px;
            width: 200px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationDigits {
        text-align: center;
        margin: var(--cpd-space-12x) auto;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.5rem;
        color: var(--timeline-text-color);
    }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert {
        border: 1px solid #6f7882;
        border: 1px solid var(--quaternary-content, #6f7882);
        border-radius: var(--cpd-space-2x);
        padding: var(--cpd-space-2x);
        line-height: 1.5em;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert svg {
            height: 30px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_separator {
        margin: 1em 0;
    }

    .mx_LoginWithQR ol {
        -webkit-padding-start: 0;
                padding-inline-start: 0;
        list-style: none;
    } /* list markers do not support the outlined number styling we need */

        .mx_LoginWithQR ol li {
            position: relative;
            padding-left: var(--cpd-space-7x);
            color: 1px solid var(--cpd-color-text-secondary);
            margin-bottom: var(--cpd-space-4x);
            line-height: 20px;
            text-align: left;
            text-align: initial;
        }

        /* Circled number list item marker */
        .mx_LoginWithQR ol li::before {
            content: counter(list-item);
            position: absolute;
            left: 0;
            display: inline-block;
            width: 20px;
            height: 20px;
            line-height: 20px;
            border-radius: 50%;
            border: 1px solid var(--cpd-color-text-secondary);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            text-align: center;
        }

    .mx_LoginWithQR label[for="mx_LoginWithQR_checkCode"] {
        margin-top: var(--cpd-space-6x);
        color: var(--cpd-color-text-primary);
        margin-bottom: var(--cpd-space-1x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_checkCode_input {
        margin-bottom: var(--cpd-space-1x);
        text-align: left;
        text-align: initial;
    }

        .mx_LoginWithQR .mx_LoginWithQR_checkCode_input input {
            /* Workaround for one of the input rules in _common.pcss being not specific enough */
            padding: 0;
            -webkit-padding-start: calc(40px / 2 - (1ch / 2));
                    padding-inline-start: calc(40px / 2 - (1ch / 2));
        }

    .mx_LoginWithQR .mx_LoginWithQR_heading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-3x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_BackButton {
        height: var(--cpd-space-7x);
        border-radius: var(--cpd-space-7x);
        padding: var(--cpd-space-1x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--cpd-color-bg-subtle-secondary);
    }
        .mx_LoginWithQR .mx_LoginWithQR_BackButton svg {
            height: 100%;
        }

    .mx_LoginWithQR .mx_LoginWithQR_breadcrumbs {
        font-size: 0.8125rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_LoginWithQR .mx_LoginWithQR_main {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: var(--timeline-text-color);
        text-align: center;
    }

        .mx_LoginWithQR .mx_LoginWithQR_main p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-bottom: var(--cpd-space-8x);
        }

    .mx_LoginWithQR .mx_LoginWithQR_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
    }

        .mx_LoginWithQR .mx_LoginWithQR_buttons .mx_AccessibleButton {
            width: 300px;
            height: 48px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_LoginWithQR .mx_QRCode {
        border-radius: var(--cpd-space-2x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_spinner {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_PassphraseField_progress {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    width: 100%;
    border: 0;
    height: 4px;
    position: absolute;
    top: -10px;
    left: 0;

    border-radius: "2px";
}

    progress.mx_PassphraseField_progress::-moz-progress-bar {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress::-webkit-progress-bar,
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress{
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}
    progress.mx_PassphraseField_progress::-moz-progress-bar {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }
    progress.mx_PassphraseField_progress[value="2"],
    progress.mx_PassphraseField_progress[value="3"] {
        color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-moz-progress-bar, progress.mx_PassphraseField_progress[value="3"]::-moz-progress-bar {
        background-color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-webkit-progress-value, progress.mx_PassphraseField_progress[value="3"]::-webkit-progress-value {
        background-color: var(--cpd-color-text-decorative-5);
    }
    progress.mx_PassphraseField_progress[value="4"] {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        progress.mx_PassphraseField_progress[value="4"]::-moz-progress-bar {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }
        progress.mx_PassphraseField_progress[value="4"]::-webkit-progress-value {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Welcome {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background-color: var(--cpd-color-bg-canvas-default);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-11x) var(--cpd-space-12x) var(--cpd-space-4x);
}
        .mx_Welcome.mx_WelcomePage_registrationDisabled .mx_ButtonCreateAccount {
            display: none;
        }

.mx_Welcome .mx_AuthBody_language {
    width: 160px;
    margin: var(--cpd-space-1x) 0;
}

/* Invert image colours in dark mode. */
.cpd-theme-dark .mx_WelcomePage_logo {
    -webkit-filter: invert(1);
            filter: invert(1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

button.mx_BaseAvatar {
    /* <button> is a form element and by default it uses the user agent (browser) styling.
       We want it to inherit the font-family and line-height from its parent.
     */
    font-family: inherit;
    line-height: inherit;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DecoratedRoomAvatar,
.mx_ExtraTile {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_DecoratedRoomAvatar.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar, .mx_ExtraTile.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar {
        -webkit-mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
                mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon {
        position: absolute;
        /* the following percentage based sizings are to match the scalable svg mask for the cutout */
        bottom: 6.25%; /* 2px for a 32x32 avatar */
        right: 6.25%;
        width: 25%; /* 8px for a 32x32 avatar */
        height: 25%;
        border-radius: 50%;
    }

        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon::before,
        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon svg,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon::before,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon svg {
            width: 100%;
            height: 100%;
            right: 0;
            position: absolute;
            border-radius: 8px;
        }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_globe svg, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_globe svg {
        /* Oversize the icon to account for the dead space around the icon within the canvas */
        width: 120%;
        height: 120%;
        margin: -10%;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_offline::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_offline::before {
        content: "";
        background-color: #e3e8f0;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_online::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_online::before {
        content: "";
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_away::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_away::before {
        content: "";
        background-color: #d9b072;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_busy::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_busy::before {
        content: "";
        background-color: #ff5b55;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_DecoratedRoomAvatar .mx_RoomTile_badgeContainer,
    .mx_ExtraTile .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_ExtraTile .mx_RoomTile_badgeContainer {
        position: absolute;
        top: 0;
        right: 0;
        height: 18px;
        width: 18px;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomAvatarView {
    --room-avatar-size: 32px;

    position: relative;

    /* Keep the container to the same size than the avatar */
    inline-size: 32px;
    inline-size: var(--room-avatar-size);
    block-size: 32px;
    block-size: var(--room-avatar-size);
}

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar {
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        pointer-events: none;
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_icon {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_presence {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_icon {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (16px) / 2) */
        left: calc((var(--room-avatar-size) - 8px));
        bottom: var(--cpd-space-0-5x);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_PresenceDecoration {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (8px) / 2) */
        left: calc((var(--room-avatar-size) - 4px));
        bottom: var(--cpd-space-0-5x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WidgetAvatar {
    /* !important override compound avatar */
    border-radius: 4px !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WithPresenceIndicator {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_WithPresenceIndicator .mx_WithPresenceIndicator_icon {
        position: absolute;
        right: 0px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BetaCard {
    padding: var(--cpd-space-6x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 8px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_BetaCard .mx_BetaCard_columns {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: var(--cpd-space-5x);
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_title {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 1.125rem;
                line-height: 1.375rem;
                color: var(--timeline-text-color);
                margin: var(--cpd-space-1x) 0 14px;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-column-gap: var(--cpd-space-3x);
                   -moz-column-gap: var(--cpd-space-3x);
                        column-gap: var(--cpd-space-3x);
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_caption {
                font-size: 0.9375rem;
                line-height: 1.25rem;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap-reverse;
                    flex-wrap: wrap-reverse;
                gap: var(--cpd-space-3x);
                margin: var(--cpd-space-5x) auto 0;
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton {
                    padding: 7px 40px;
                    width: auto;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    white-space: nowrap; /* text might overflow */
                }

                    .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton:nth-child(1) {
                        -webkit-box-ordinal-group: 3;
                            -ms-flex-order: 2;
                                order: 2; /* Place feedback button top and right */
                    }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_refreshWarning {
                margin-top: var(--cpd-space-2x);
                font-size: 0.625rem;
                text-align: center;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq {
                margin-top: var(--cpd-space-5x);
                font: var(--cpd-font-body-xs-regular);
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > h4 {
                    margin: var(--cpd-space-3x) 0 0;
                }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > p {
                    margin: 0;
                }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper {
            margin: auto 0;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper .mx_BetaCard_columns_image {
                width: 100%;
                max-width: 300px;
                -o-object-fit: contain;
                   object-fit: contain;
                height: 100%;
                border-radius: 4px;
            }
        .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag {
            margin: var(--cpd-space-4x) 0 0;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: var(--timeline-text-color);
        }

            .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag .mx_SettingsFlag_microcopy {
                margin-top: var(--cpd-space-1x);
                font: var(--cpd-font-body-sm-regular);
            }

.mx_BetaCard_betaPill {
    background-color: var(--primary-color);
    padding: var(--cpd-space-1x) 10px;
    border-radius: 8px;
    text-transform: uppercase;
    font-size: 0.75rem;
    font-weight: var(--cpd-font-weight-semibold);
    line-height: 15px;
    color: #ffffff;
    display: inline-block;
    vertical-align: text-bottom;
    word-break: keep-all; /* avoid multiple lines on CJK language */
}

    .mx_BetaCard_betaPill.mx_AccessibleButton {
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceContextMenu {
    max-width: 252px;
}

    .mx_DeviceContextMenu .mx_IconizedContextMenu_label {
        padding-left: 0 !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* A context menu that largely fits the | [icon]    [label] | format. */
.mx_IconizedContextMenu {
    min-width: 146px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    /* override default ul styles */
    margin: 0;
    padding: 0;
}
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList > * {
            padding-left: 20px;
            padding-right: 20px;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_label {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        /* the notFirst class is for cases where the optionList might be under a header of sorts. */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:nth-child(n + 2),
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_notFirst {
            border-top: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
        }

        /* round the top corners of the top button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child .mx_IconizedContextMenu_item:first-child {
            border-radius: 8px 8px 0 0; /* radius matches .mx_ContextualMenu */
        }

        /* round the bottom corners of the bottom button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:last-child .mx_IconizedContextMenu_item:last-child {
            border-radius: 0 0 8px 8px; /* radius matches .mx_ContextualMenu */
        }

        /* round all corners of the only button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child:last-child .mx_IconizedContextMenu_item:first-child:last-child {
            border-radius: 8px; /* radius matches .mx_ContextualMenu */
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item {
            /* pad the inside of the button so that the hover background is padded too */
            padding-top: 12px;
            padding-bottom: 12px;
            text-decoration: none;
            color: var(--timeline-text-color);
            font: var(--cpd-font-body-md-regular);

            /* Create a flexbox to more easily define the list items */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:hover,
            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:focus-visible {
                background-color: var(--cpd-color-bg-action-secondary-hovered);
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item.mx_AccessibleButton_disabled {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item span.mx_IconizedContextMenu_label {
                /* labels */
                width: 100%;
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;

                /* Ellipsize any text overflow */
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg {
                width: 16px;
                height: 16px;
                display: block;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

                .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg + .mx_IconizedContextMenu_label {
                    padding-left: 14px;
                }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item .mx_BetaCard_betaPill {
                margin-left: 16px;
            }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red .mx_IconizedContextMenu_item {
            color: #ff5b55 !important;
            color: var(--alert, #ff5b55) !important;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red svg {
            color: var(--cpd-color-icon-critical-primary);
        }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red {
        color: #ff5b55 !important;
        color: var(--alert, #ff5b55) !important;
    }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red svg {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item,
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item {
            color: #0dbd8b !important;
            color: var(--accent-color, #0dbd8b) !important;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item svg, .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }
        .mx_IconizedContextMenu.mx_IconizedContextMenu_compact .mx_IconizedContextMenu_optionList > * {
            padding: 8px 16px 8px 12px;
        }

    .mx_IconizedContextMenu svg.mx_IconizedContextMenu_checked {
        margin-left: 16px;
        margin-right: -5px;
    }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_sublabel {
        margin-left: 20px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

.mx_IconizedContextMenu_item.mx_IconizedContextMenu_itemDestructive {
    color: #ff5b55 !important;
    color: var(--alert, #ff5b55) !important;
}
}
@layer app-web{

/*
Copyright 2020-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallContextMenu_item {
    width: 205px;
    height: 40px;
    padding-left: 16px;
    line-height: 40px;
    vertical-align: center;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AddExistingToSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
    .mx_AddExistingToSpace .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_noResults {
        display: block;
        margin-top: 24px;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_section {
        margin-right: 12px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section ul {
            list-style: none;
            padding-left: 0;
        }

        /* provides space for scrollbar so that checkbox and scrollbar do not collide */
        .mx_AddExistingToSpace .mx_AddExistingToSpace_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section > h3 {
            margin: 0;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section .mx_AccessibleButton_kind_link {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-top: 8px;
        }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar {
                height: 8px;
                width: 100%;

                border-radius: 8px;
            }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-bar,
    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_AddExistingToSpaceDialog_progressText {
                margin-top: 8px;
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: var(--timeline-text-color);
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span > * {
                vertical-align: middle;
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error {
            padding-left: 12px;
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error > img {
                -ms-flex-item-align: center;
                    align-self: center;
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorHeading {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #ff5b55;
                color: var(--alert, #ff5b55);
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorCaption {
                margin-top: 4px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: var(--timeline-text-color);
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton_kind_primary {
            padding: 8px 36px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpaceDialog_retryButton svg {
            color: var(--timeline-text-color);
            width: 18px;
            height: 18px;
            margin-right: var(--cpd-space-2x);
        }

.mx_AddExistingToSpaceDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_AddExistingToSpaceDialog .mx_AddExistingToSpace {
        display: contents;
    }

.mx_SubspaceSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

    .mx_SubspaceSelector .mx_BaseAvatar {
        margin: auto 16px auto 5px;
    }
        .mx_SubspaceSelector > div > h1 {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            margin: 0;
        }

    .mx_SubspaceSelector .mx_Dropdown_input {
        border: none;
    }

        .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option {
            padding-left: 0;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: auto;
            height: initial;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

            .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option .mx_BaseAvatar {
                display: none;
            }

        .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            padding-right: 24px;
            position: relative;
        }

            .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive svg {
                width: 20px;
                height: 20px;
                right: 0;
                position: absolute;
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

    .mx_SubspaceSelector .mx_SubspaceSelector_onlySpace {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

.mx_AddExistingToSpace_entry {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: 12px;
}

    .mx_AddExistingToSpace_entry form {
        /* Align checkboxes. */
        margin-top: auto;
        margin-bottom: auto;
    }

    /* we can't target .mx_BaseAvatar here as it'll break the decorated avatar styling */
    .mx_AddExistingToSpace_entry .mx_DecoratedRoomAvatar {
        margin-right: 12px;
    }

    .mx_AddExistingToSpace_entry .mx_AddExistingToSpace_entry_name {
        font-size: 0.9375rem;
        line-height: 30px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        margin-right: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AnalyticsLearnMoreDialog {
    max-width: 500px;
}
    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_image_holder {
        background-image: url(../../img/element-shiny.f5a5e6e.svg);
        background-repeat: no-repeat;
        background-position: center top;
        height: 112px;
        padding: 20px 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_Dialog_content {
        margin-bottom: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_copy {
        border-bottom: 1px solid #e7e7e7;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }

    .mx_AnalyticsLearnMoreDialog a {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets {
        padding-left: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li {
        list-style-type: none;
        padding: 2px 0 0 32px;
        margin-bottom: 20px;
        vertical-align: middle;
        position: relative;
    }

        .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li svg {
            position: absolute;
            width: 26px;
            height: 26px;
            left: 0;
            top: 0;
            color: #0dbd8b;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_BugReportDialog .mx_BugReportDialog_download .mx_AccessibleButton_kind_link {
            margin-right: 18px; /* Space between "Downloading logs..." */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 Aviral Dasgupta

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ChangelogDialog_content {
    max-height: 300px;
    overflow: auto;
}

.mx_ChangelogDialog_li {
    padding: 0.2em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* -------------------------------------------------------------------------------- */
/* DEV NOTE: This stylesheet covers dialogs listed by the compound, including */
/* over multiple React components. The actual inner contents of the dialog should */
/* be in their respective stylesheets. */
/* -------------------------------------------------------------------------------- */

/* Override legacy/default styles for dialogs */
.mx_Dialog_wrapper.mx_CompoundDialog .mx_Dialog {
    padding: 0; /* we'll manage it ourselves */
    color: var(--timeline-text-color);
}
    .mx_CompoundDialog .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_CompoundDialog .mx_CompoundDialog_header {
        padding: 32px 32px 16px 32px;
    }

        .mx_CompoundDialog .mx_CompoundDialog_header h1 {
            display: inline-block;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.5rem;
            margin: 0; /* managed by header class */
        }

    .mx_CompoundDialog .mx_CompoundDialog_cancelButton {
        width: 20px;
        height: 20px;
        padding: var(--cpd-space-1x);
        border-radius: 14px;
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* Align with corner radius of dialog */
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton{
        position: absolute;
        top: var(--cpd-space-4x);
        right: var(--cpd-space-4x);
}

    .mx_CompoundDialog .mx_CompoundDialog_form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_content {
        overflow: auto;
        padding: 8px 32px;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_footer {
        padding: 20px 32px;
        text-align: right;
    }

        .mx_CompoundDialog .mx_CompoundDialog_footer .mx_AccessibleButton {
            margin-left: 24px;
        }

.mx_ScrollableBaseDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    width: 544px; /* fixed */
    height: 516px; /* fixed */
    max-width: 100%;
    min-height: 0;
    max-height: 80%;
}

    .mx_ScrollableBaseDialog .mx_CompoundDialog_footer {
        -webkit-box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05);
                box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05); /* hardcoded colour for both themes */
        z-index: 1; /* needed to make footer & shadow appear above dialog content */
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmKeyStorageOffDialog .mx_Dialog_border {
        width: 600px;
    }

    .mx_ConfirmKeyStorageOffDialog .mx_EncryptionCard {
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmSpaceUserActionDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

.mx_ConfirmSpaceUserActionDialog {
    width: 440px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    height: 520px;
}

    .mx_ConfirmSpaceUserActionDialog .mx_Dialog_content {
        margin: 12px 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow-y: auto;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmUserActionDialog_reasonField {
        margin-bottom: 12px;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning {
        border-radius: 8px;
        padding: 12px 8px;
        background-color: var(--roomlist-background-color);

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning svg {
            height: 16px;
            width: 16px;
            vertical-align: -4px;
            margin-right: var(--cpd-space-1-5x);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmUserActionDialog .mx_Dialog_content .mx_ConfirmUserActionDialog_user {
    min-height: 48px;
    margin-bottom: 24px;
}

.mx_ConfirmUserActionDialog_avatar {
    float: left;
    margin-right: 20px;
}

.mx_ConfirmUserActionDialog_name {
    padding-top: 2px;
    font-size: 1.125rem;
}

.mx_ConfirmUserActionDialog_userId {
    font-size: 0.8125rem;
}

.mx_ConfirmUserActionDialog_reasonField {
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateRoomDialog_details {
    margin-top: 15px;
}

    .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary {
        list-style: none;
        font-weight: var(--cpd-font-weight-semibold);
        cursor: pointer;
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

        /* list-style doesn't do it for webkit */
        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary::-webkit-details-marker {
            display: none;
        }

        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary:not(:focus-visible) {
            outline: none;
        }

    .mx_CreateRoomDialog_details > div {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        margin: 5px 0;
    }

        .mx_CreateRoomDialog_details > div input[type="checkbox"] {
            margin-right: 10px;
        }

.mx_CreateRoomDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_CreateRoomDialog_input_container {
    padding-right: 20px;
}

.mx_CreateRoomDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    width: 100%;
}

.mx_CreateRoomDialog_aliasContainer {
    /* needed to make the alias field only grow as wide as needed as opposed to full width */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
    .mx_CreateRoomDialog.mx_Dialog_fixedWidth {
        width: 450px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content {
        margin-bottom: 40px;
    }

    .mx_CreateRoomDialog p,
    .mx_CreateRoomDialog .mx_Field_input label {
        color: #61708b;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateRoomDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content > .mx_SettingsFlag {
        margin-top: 24px;
    }

    .mx_CreateRoomDialog .mx_Field {
        margin: 0;
    }

    .mx_CreateRoomDialog form {
        gap: var(--cpd-space-4x);
    }

    .mx_CreateRoomDialog p {
        margin: 0 85px 0 0;
        font-size: 0.75rem;
    }

.mx_CreateRoomDialog_labelledCheckbox {
    color: #61708b;
    margin-top: var(--cpd-space-6x);
}
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_CreateSectionDialog {
    color: var(--cpd-color-text-primary);
}

    .mx_CreateSectionDialog .mx_CreateSectionDialog_title {
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

    .mx_CreateSectionDialog.mx_Dialog_fixedWidth {
        /* 576px coming from Figma and remove external padding */
        max-width: calc(576px - var(--cpd-space-20x));
    }

    .mx_CreateSectionDialog .mx_Dialog_header {
        margin-bottom: var(--cpd-space-6x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_CreateSubspaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_CreateSubspaceDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
}

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice {
            padding: 12px 16px;
            border-radius: 8px;
            background-color: var(--roomlist-background-color);
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice .mx_BetaCard_betaPill {
                margin-right: 8px;
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_JoinRuleDropdown + p {
            color: #61708b;
            font-size: 0.75rem;
        }

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt > * {
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton_kind_primary {
            margin-left: 16px;
            padding: 8px 36px;
        }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_Crypto table {
        margin: var(--cpd-space-4x) 0;
        text-align: left;
        border-spacing: var(--cpd-space-2x) 0;
    }

        .mx_Crypto table thead {
            font: var(--cpd-font-heading-sm-semibold);
        }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeactivateAccountDialog .mx_Dialog_content {
    margin-bottom: 30px;
}

.mx_DeactivateAccountDialog .mx_DeactivateAccountDialog_input_section .mx_Field {
    width: 300px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_DevtoolsDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        max-height: 100%;
    }

        .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth .mx_Dialog_buttons button {
            margin-bottom: 0;
        }

    .mx_DevtoolsDialog_wrapper .mx_DevTools_toggleForm {
        gap: var(--cpd-space-2x);
    }

.mx_DevTools_toolHeading {
    color: var(--cpd-color-text-secondary);
    font: var(--cpd-font-heading-sm-semibold);
}

.mx_DevTools_content {
    overflow-y: auto;
    /* Give room for focus outlines */
    -webkit-padding-start: var(--cpd-space-0-5x);
            padding-inline-start: var(--cpd-space-0-5x);
    -webkit-padding-after: var(--cpd-space-0-5x);
            padding-block-end: var(--cpd-space-0-5x);
}

.mx_DevTools_RoomStateExplorer_query {
    margin-bottom: 10px;
}

.mx_DevTools_button {
    font-family: monospace !important;
    margin-bottom: 8px !important;
}

.mx_DevTools_RoomStateExplorer_button_hasSpaces {
    text-decoration: underline;
}

.mx_DevTools_button.mx_DevTools_RoomStateExplorer_button_emptyString {
    font-style: italic;
}

.mx_DevTools_label_left {
    float: left;
}

.mx_DevTools_label_right {
    float: right;
}

.mx_DevTools_label_bottom {
    clear: both;
    border-bottom: 1px solid #e5e5e5;
}

.mx_DevTools_inputRow {
    display: table-row;
}

.mx_DevTools_inputLabelCell {
    display: table-cell;
    font-weight: bold;
    padding-right: 24px;
}

.mx_DevTools_textarea {
    font-size: 0.75rem;
    max-width: 684px;
    min-height: 250px;
    padding: 10px;
}

.mx_DevTools_eventTypeStateKeyGroup {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}

.mx_DevTools_content .mx_Field_input:first-of-type {
    margin-right: 42px;
}

.mx_DevTools_VerificationRequest {
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 1px 5px;
    margin-bottom: 6px;
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji");
}

    .mx_DevTools_VerificationRequest dl {
        display: grid;
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto;
        margin: 0;
    }

    .mx_DevTools_VerificationRequest dd {
        grid-column-start: 2;
    }

    .mx_DevTools_VerificationRequest dd:empty {
        color: #666666;
    }
        .mx_DevTools_VerificationRequest dd:empty::after {
            content: "(empty)";
        }

    .mx_DevTools_VerificationRequest dt {
        font-weight: bold;
        grid-column-start: 1;
    }

    .mx_DevTools_VerificationRequest dt::after {
        content: ":";
    }
    .mx_DevTools_SettingsExplorer table {
        width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
    }

        .mx_DevTools_SettingsExplorer table th {
            /* Colour choice: first one autocomplete gave me. */
            border-bottom: 1px solid #0dbd8b;
            border-bottom: 1px solid var(--accent-color, #0dbd8b);
            text-align: left;
        }

        .mx_DevTools_SettingsExplorer table td,
        .mx_DevTools_SettingsExplorer table th {
            width: 360px; /* "feels right" number */

            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }

        .mx_DevTools_SettingsExplorer table td + td,
        .mx_DevTools_SettingsExplorer table th + th {
            width: auto;
        }

        .mx_DevTools_SettingsExplorer table tr:hover {
            /* Colour choice: first one autocomplete gave me. */
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
        }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_mutable {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_immutable {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_edit {
        float: right;
        margin-right: 16px;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_warning {
        border: 2px solid #ff5b55;
        border: 2px solid var(--alert, #ff5b55);
        border-radius: 4px;
        padding: 4px;
        margin-bottom: 8px;
    }

.mx_DevTools_SettingsExplorer_setting {
    /* override default link button color */
    /* as it is the same as the background highlight */
    /* used on focus */
    color: #0086e6 !important;
    color: var(--links, #0086e6) !important;
}
    .mx_DevTools_sticky_explorer table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        margin-top: var(--cpd-space-3x);
    }

        .mx_DevTools_sticky_explorer table th {
            text-align: left;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table th#user_header {
            width: 35%;
        }
        .mx_DevTools_sticky_explorer table th#sticky_key_header {
            width: 50%;
        }
        .mx_DevTools_sticky_explorer table th#expires_in_header {
            width: 15%;
        }

        .mx_DevTools_sticky_explorer table tr {
            cursor: pointer;
            border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
            background: transparent;
        }

        .mx_DevTools_sticky_explorer table tr:hover {
            color: var(--cpd-color-text-secondary);
            background: var(--cpd-color-bg-action-secondary-hovered);
        }

        .mx_DevTools_sticky_explorer table tr:focus-visible {
            outline: var(--cpd-border-width-2) solid var(--cpd-color-border-focused);
        }

        .mx_DevTools_sticky_explorer table td {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table td.remaining_time_column {
            text-align: right;
        }
}
@layer app-web{

/*
Copyright (C) 2026 MetMet

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* "HAPANA" (stay) is the prominent, default option; "NDIYO" (leave) stays small and outlined —
   a deliberate retention nudge, matching the guest-onboarding brand colors. */
.mx_ExitRoomConfirmDialog_stayButton.mx_Dialog_primary {
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    border-color: #028e91;
    border-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 1rem;
    padding: 10px 24px;
}

.mx_ExitRoomConfirmDialog_exitButton {
    background-color: transparent;
    border: 1px solid #3ac6cb;
    border: 1px solid var(--metmet-brand-secondary);
    color: #3ac6cb;
    color: var(--metmet-brand-secondary);
    font-size: 0.8125rem;
    padding: 4px 12px;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ExportDialog .mx_ExportDialog_subheading {
        font-size: 1rem;
        display: block;
        font-family: "Nunito", "", "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
        font-family: var(--font-family, "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji");
        font-weight: var(--cpd-font-weight-semibold);
        color: var(--timeline-text-color);
        margin-top: 18px;
        margin-bottom: 12px;
    }
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_ExportDialog_options {
            pointer-events: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_select::before {
            display: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div > div {
            background: var(--timeline-text-secondary-color);
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div {
            border-color: currentcolor;
            border-color: initial;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field label,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within label {
            color: inherit;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within {
            border-color: #e7e7e7;
        }
        .mx_ExportDialog .mx_ExportDialog_progress .mx_Dialog_buttons {
            margin-top: 0;
            margin-top: initial;
            margin-left: 18px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress .mx_Spinner {
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            margin-right: 10px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress{

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
}

    .mx_ExportDialog .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        margin-top: 5px;
        margin-bottom: 5px;
    }

    .mx_ExportDialog .mx_Field {
        width: 256px;
    }

    .mx_ExportDialog .mx_Field_postfix {
        padding: 9px 10px;
    }

.mx_ExportDialog_attachments-checkbox {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FeedbackDialog hr {
        margin: 24px 0;
        border-color: #e7e7e7;
    }

    .mx_FeedbackDialog .mx_Dialog_content {
        margin-bottom: 24px;
    }

        .mx_FeedbackDialog .mx_Dialog_content > h2 {
            margin-bottom: 32px;
        }

    .mx_FeedbackDialog .mx_FeedbackDialog_section {
        position: relative;
        padding: 12px 52px 12px 68px;
        border-radius: 8px;
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
    }

        .mx_FeedbackDialog .mx_FeedbackDialog_section + .mx_FeedbackDialog_section {
            margin-top: 16px;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > h3 {
            margin-top: 0;
            margin-bottom: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.9375rem;
            line-height: 1.5rem;
            margin: 8px 0 0;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_FeedbackDialog_section_microcopy {
            font-size: 0.75rem;
            line-height: 0.9375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section a,
        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_AccessibleButton_kind_link {
            text-decoration: underline;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > svg {
            position: absolute;
            left: 16px;
            top: 12px;
            padding: var(--cpd-space-2x);
            width: 24px;
            height: 24px;
            background-color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
            color: #ffffff;
            border-radius: 8px;
        }
        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            font-size: 20px;
            -webkit-transition:
                font-size 1s,
                border 0.5s;
            transition:
                font-size 1s,
                border 0.5s;
            border-radius: 50%;
            border: 2px solid transparent;
            margin-top: 12px;
            margin-bottom: 24px;
            vertical-align: top;
            cursor: pointer;
        }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton input[type="radio"] + div {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_content {
                background: var(--icon-button-color, var(--cpd-color-icon-tertiary));
                width: 40px;
                height: 40px;
                text-align: center;
                line-height: 40px;
                border-radius: 20px;
                margin: 5px;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton + .mx_StyledRadioButton {
                margin-left: 16px;
            }

        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton_checked {
            font-size: 24px;
            border-color: var(--cpd-color-bg-action-primary-rest);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ForwardDialog {
    width: 520px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_ForwardDialog > h3 {
        margin: 0 0 6px;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 0.9375rem;
    }

    .mx_ForwardDialog > .mx_ForwardDialog_preview {
        max-height: 30%;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        overflow-y: auto;

        /* When forwarding messages from encrypted rooms, EventTile will complain */
        /* that our preview is unencrypted, which doesn't actually matter */
        /* We also hide download links to not encourage users to try interacting */
    }

        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile[data-layout="bubble"] {
            margin-top: 20px;
        }

        .mx_ForwardDialog > .mx_ForwardDialog_preview div {
            pointer-events: none;
        }
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_msgOption,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_e2eIcon,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="download"] {
            display: none;
        }

    .mx_ForwardDialog > hr {
        width: 100%;
        border: none;
        border-top: 1px solid #e7e7e7;
        margin: 12px 0;
    }

    .mx_ForwardDialog > .mx_ForwardList {
        display: contents;
    }

        .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox {
            /* To match the space around the title */
            margin: 0 0 15px 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
        }

            .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox:not(:focus-within) + .mx_ForwardList_content {
                /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
                --mx_ForwardList_entry_selectedBgColor: transparent;
            }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_content {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_noResults {
            display: block;
            margin-top: 24px;
        }
            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results:not(:first-child) {
                margin-top: 24px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_resultsList {
                padding-right: 8px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                height: 32px;
                padding: 6px;
                border-radius: 8px;
            }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry:hover,
                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry.mx_ForwardList_entry_active {
                    background-color: var(--mx_ForwardList_entry_selectedBgColor, var(--sidebar-color));
                }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    margin-right: 12px;
                    min-width: 0;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_DecoratedRoomAvatar {
                        margin-right: 12px;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name,
                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        line-height: 30px;
                        overflow: hidden;
                        white-space: nowrap;
                        text-overflow: ellipsis;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name {
                        font-size: 0.9375rem;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        font-size: 0.75rem;
                        margin-left: 8px;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton {
                    position: relative;
                    margin-left: 12px;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton:not(.mx_ForwardList_canSend) .mx_ForwardList_sendLabel {
                        /* Hide the "Send" label while preserving button size */
                        visibility: hidden;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton > svg {
                        position: absolute;
                        width: 14px;
                        height: 14px;
                        color: #0dbd8b;
                        color: var(--accent-color, #0dbd8b);
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton .mx_ForwardDialog_notificationBadge {
                        /* Match the failed to send indicator's color with the disabled button */
                        background-color: #ffffff;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_GenericFeatureFeedbackDialog .mx_GenericFeatureFeedbackDialog_subheading {
        color: var(--timeline-text-color);
        font: var(--cpd-font-body-md-regular);
        line-height: 1.25rem;
        margin-bottom: 24px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingSasDialog_opponentProfile_image {
    position: relative;
}

.mx_IncomingSasDialog_opponentProfile h2 {
    display: inline-block;
    margin-left: 10px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteDialog_flexWrapper .mx_Dialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_InviteDialog_transferWrapper .mx_Dialog {
    padding-bottom: var(--cpd-space-4x);
}

.mx_InviteDialog_addressBar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    /* Right margin for the design. We could apply this to the whole dialog, but then the scrollbar */
    /* for the user section gets weird. */
    margin: var(--cpd-space-2x) 45px 0 0;
}

    .mx_InviteDialog_addressBar .mx_InviteDialog_editor {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-left: var(--cpd-space-0-5x);
    }

    .mx_InviteDialog_addressBar .mx_InviteDialog_goButton {
        min-width: 86px;
        -webkit-margin-start: 10px;
                margin-inline-start: 10px;
        height: 41px;
        line-height: 1.5625rem;
    }

.mx_InviteDialog_section {
    padding-bottom: var(--cpd-space-1x);
}

    .mx_InviteDialog_section .mx_InviteDialog_section_showMore {
        margin: 7px 18px;
        display: block;
    }

.mx_InviteDialog_section_hidden_suggestions_disclaimer {
    padding: var(--cpd-space-2x) 0 var(--cpd-space-4x) 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > span {
        color: var(--timeline-text-color);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > p {
        margin: 0;
    }

.mx_InviteDialog_footer {
    border-top: 1px solid #e7e7e7;
}

    .mx_InviteDialog_footer > h3 {
        margin: var(--cpd-space-3x) 0;
        font-size: 0.75rem;
        color: #61708b;
        font-weight: bold;
        text-transform: uppercase;
    }

    .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border {
        width: auto;
        width: initial; /* full width */
        margin-bottom: 0;
    }

        .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border > a {
            text-decoration: none;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            overflow: hidden;
            text-overflow: ellipsis;
        }

.mx_InviteDialog_other {
    /* Prevent the dialog from jumping around randomly when elements change. */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px;
    overflow: hidden;
}

    .mx_InviteDialog_other h2 {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_InviteDialog_other .mx_InviteDialog_addressBar {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
    }

    .mx_InviteDialog_other .mx_InviteDialog_userSections {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-top: var(--cpd-space-3x);
        gap: var(--cpd-space-3x);
    }

        .mx_InviteDialog_other .mx_InviteDialog_userSections .mx_InviteDialog_section {
            padding-bottom: 0;
        }

.mx_InviteDialog_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_InviteDialog_content .mx_InviteProgressBody {
        margin-top: var(--cpd-space-12x);
    }

.mx_InviteDialog_transfer {
    width: auto;
}

    .mx_InviteDialog_transfer .mx_InviteDialog_content {
        width: 496px;
        height: 430px;
        overflow: visible;
    }

        .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            min-height: 0;
        }

            .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
            }

                .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel .mx_TabbedView_tabPanelContent {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                }

    .mx_InviteDialog_transfer .mx_InviteDialog_addressBar {
        margin-top: var(--cpd-space-2x);
    }

    .mx_InviteDialog_transfer input[type="checkbox"] {
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
    }

.mx_InviteDialog_userSections {
    overflow-y: auto;
    padding: 0 45px var(--cpd-space-1x) 0;
}

.mx_InviteDialog_helpText {
    margin: 0;
}

.mx_InviteDialog_dialPad {
    width: 224px;
    margin-top: var(--cpd-space-4x);
    margin-inline: auto;
}

    .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField {
        border-top: 0;
        border-inline: 0;
        border-radius: 0;
        margin-top: 0;
        border-color: #6f7882;
        border-color: var(--quaternary-content, #6f7882);
    }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField:focus-within {
            border-color: #0dbd8b;
            border-color: var(--accent-color, #0dbd8b);
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField input {
            font-size: 18px;
            font-weight: var(--cpd-font-weight-semibold);
            padding-top: 0;
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField .mx_Field_postfix {
            /* Remove border separator between postfix and field content */
            border-left: none;
        }

    .mx_InviteDialog_dialPad .mx_DialPad {
        row-gap: var(--cpd-space-4x);
        -webkit-column-gap: 48px;
           -moz-column-gap: 48px;
                column-gap: 48px;
        margin-inline: auto;
    }

.mx_InviteDialog_transferConsultConnect {
    padding-top: var(--cpd-space-4x);
    /* This wants a drop shadow the full width of the dialog, so use negative margin to make it full width,
     * then compensate with padding
     */
    padding-inline: var(--cpd-space-6x);
    margin-inline: calc(-1 * var(--cpd-space-6x));
    border-top: 1px solid #6f7882;
    border-top: 1px solid var(--quinary-content, #6f7882);

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InviteDialog_transferConsultConnect_pushRight {
    -webkit-margin-start: auto;
            margin-inline-start: auto;
}

.mx_InviteDialog_tile {
    cursor: pointer;
    display: grid;
    grid-gap: var(--cpd-space-2x) var(--cpd-space-3x);
    gap: var(--cpd-space-2x) var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_InviteDialog_tile.mx_InviteDialog_tile--inviterError {
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto; /* max-content = avatar width */
    }

    .mx_InviteDialog_tile * {
        vertical-align: middle;
    }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack {
        width: 36px;
        height: 36px;
        display: inline-block;
        position: relative;
        grid-row-start: 1;
        grid-column-start: 1;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack > * {
            position: absolute;
            top: 0;
            left: 0;
        }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack {
        grid-row-start: 1;
        grid-column-start: 2;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        align-self: center;
        -webkit-box-align: baseline;
            -ms-flex-align: baseline;
                align-items: baseline;
        gap: 2px 0;
        overflow: hidden;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name,
        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 100%;
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: var(--timeline-text-color);
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            font-size: 0.75rem;
            color: #61708b;
        }

.mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog {
    width: 600px;
    max-width: 100%;
}

    .mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog .mx_Dialog_fixedWidth {
        width: auto;
    }
    .mx_InviteDialog_multiInviterError > h4 {
        font: var(--cpd-font-body-md-regular);
        color: var(--cpd-color-text-secondary);
    }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-2x);
        margin-bottom: var(--cpd-space-6x);
    }

        .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group:last-child {
            margin-bottom: 0;
        }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_reason {
        margin-bottom: var(--cpd-space-2x);

        font-size: var(--cpd-font-size-body-md);
        color: var(--cpd-color-text-critical-primary);
    }

.mx_InviteDialog_identityServer {
    margin-top: 1em;
}

.mx_InviteDialog_oneThreepid {
    font-size: 0.75rem;
    margin: var(--cpd-space-2x) 0;
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteProgressBody {
    text-align: center;
    font: var(--cpd-font-body-lg-regular);
}

    .mx_InviteProgressBody h1 {
        color: var(--cpd-color-text-primary);
        font: var(--cpd-font-heading-sm-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleDropdown {
    margin-bottom: 8px;
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
}

    .mx_JoinRuleDropdown .mx_Dropdown_option {
        font: var(--cpd-font-body-md-regular);
        line-height: 2rem;
        height: 32px;
        min-height: 32px;
    }

        .mx_JoinRuleDropdown .mx_Dropdown_option > div {
            padding-left: var(--cpd-space-1-5x);
        }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div svg {
                width: 16px;
                height: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                vertical-align: -2px;
                margin-right: var(--cpd-space-1-5x);
            }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div.mx_JoinRuleDropdown_knock::before {
                content: normal;
            }

    .mx_JoinRuleDropdown .mx_JoinRuleDropdown_icon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        position: absolute;
        left: 6px;
        top: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LeaveSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

        .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog {
            width: 440px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-wrap: nowrap;
                flex-wrap: nowrap;
            height: 520px;
        }

            .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                margin: 0;
                overflow-y: auto;
            }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning {
                    border-radius: 8px;
                    margin: 12px 0 0;
                    padding: 12px 8px;
                    background-color: var(--roomlist-background-color);

                    font-size: 0.75rem;
                    line-height: 0.9375rem;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

                    .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning svg {
                        height: 16px;
                        width: 16px;
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        vertical-align: middle;
                        margin: 0 var(--cpd-space-1x);
                    }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content > p {
                    color: var(--timeline-text-color);
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationViewDialog_wrapper .mx_Dialog {
    padding: 0px;
}

.mx_LocationViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;
}

    .mx_LocationViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_LocationViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

    .mx_LocationViewDialog .mx_Dialog_cancelButton {
        z-index: 4010;
        position: absolute;
        left: var(--cpd-space-4x);
        top: var(--cpd-space-4x);
    }

.mx_LocationViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Manan Sadana <manancodes.dev@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LogoutDialog {
    width: 26rem;
}

    .mx_LogoutDialog .mx_EncryptionCard {
        gap: 0;
    }
        .mx_LogoutDialog .mx_EncryptionCard h2 {
            text-align: center;
            color: var(--cpd-color-text-primary);
        }
        .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent {
            text-align: center;
            margin-top: var(--cpd-space-2x);
            margin-bottom: var(--cpd-space-12x);
        }
            .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent p {
                margin: 0;
            }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ManageRestrictedJoinRuleDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_ManageRestrictedJoinRuleDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 60vh;
}

    .mx_ManageRestrictedJoinRuleDialog .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_noResults {
        display: block;
        margin-top: 24px;
    }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section > h3 {
            margin: 0;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            margin-top: 12px;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry > div {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_name {
                margin: 0 8px;
                font-size: 0.9375rem;
                line-height: 30px;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_description {
                margin-top: 8px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
            }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_spaces .mx_BaseAvatar {
            margin-right: 12px;
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info {
        position: relative;
        border-radius: 8px;
        margin: 12px 0;
        padding: 8px;
        background-color: var(--roomlist-background-color);

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info svg {
            height: 16px;
            width: 16px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            vertical-align: middle;
            margin: 0 var(--cpd-space-1x);
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer {
        margin-top: 20px;
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
            margin-left: auto;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton {
                display: inline-block;
            }

                .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageEditHistoryDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 60vh;
}

.mx_MessageEditHistoryDialog_scrollPanel {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
}

.mx_MessageEditHistoryDialog_error {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    text-align: center;
}

.mx_MessageEditHistoryDialog_edits {
    list-style-type: none;
    font: var(--cpd-font-body-md-regular);
    padding: 0;
    color: var(--timeline-text-color);
}

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_emoteSender {
        cursor: pointer;
    }

    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_deletion,
    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_insertion {
        padding: 0px 2px;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_deletion {
        color: rgb(255, 76, 85);
        background-color: rgb(255, 76, 85, 0.1);
        text-decoration: line-through;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_insertion {
        color: rgb(26, 169, 123);
        background-color: rgb(26, 169, 123, 0.1);
        text-decoration: underline;
    }

    /* Emulate mx_EventTile[data-layout="group"] */
    .mx_MessageEditHistoryDialog_edits .mx_EventTile {
        padding-top: 0;
    }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line {
            padding-top: var(--EventTile_group_line-spacing-block-start);
            padding-bottom: var(--EventTile_group_line-spacing-block-end);
            padding-left: var(--EventTile_group_line-spacing-inline-start);
            line-height: var(--EventTile_group_line-line-height);
        }

            .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line .mx_EventTile_content {
                margin-right: 0px;
            }
        .mx_MessageEditHistoryDialog_edits .mx_EventTile::before {
            content: "";
            position: absolute;
            top: -1px;
            bottom: -1px;
            left: -10px;
            right: -10px;
            z-index: -1;
            border-radius: 4px;
        }
            .mx_MessageEditHistoryDialog_edits .mx_EventTile:hover::before {
                background: #fafbfd;
                background: var(--eventbubble-bg-hover, #fafbfd);
            }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar {
        border-radius: 0 !important;
    }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar [data-presentation="label"] {
        line-height: 24px !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning {
        margin-bottom: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning > img {
            vertical-align: middle;
            margin-right: 8px;
        }

    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons {
        float: right;
        margin-top: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons .mx_AccessibleButton + .mx_AccessibleButton {
            margin-left: 8px;
        }

    .mx_ModalWidgetDialog iframe {
        width: 100%;
        height: 450px;
        border: 0;
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_PollCreateDialog .mx_PollCreateDialog_busy {
        position: absolute;
        inset: 0;
        background-color: rgba(255,255,255, 0.85);
        z-index: 1;
    }

    .mx_PollCreateDialog h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: 8px;
    }

        .mx_PollCreateDialog h2:nth-child(n + 2) {
            margin-top: 20px;
        }

    .mx_PollCreateDialog p {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_PollCreateDialog .mx_PollCreateDialog_option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: 11px;
        margin-bottom: 16px; /* 11px from the top will collapse, so this creates a 16px gap between options */
    }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_Field {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin: 0;
        }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption {
            margin-left: 12px;
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            border-radius: 50%;
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            cursor: pointer;
        }

            .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption svg {
                width: inherit;
                height: inherit;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_PollCreateDialog .mx_PollCreateDialog_addOption {
        padding: 0;
        margin-bottom: 40px; /* arbitrary to create scrollable area under the poll */
    }

    .mx_PollCreateDialog .mx_AccessibleButton_disabled {
        opacity: 0.4;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RegistrationEmailPromptDialog {
    width: 417px;
}

    .mx_RegistrationEmailPromptDialog .mx_Dialog_content {
        margin-bottom: 24px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_RegistrationEmailPromptDialog .mx_Dialog_primary {
        width: 100%;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RemoveSectionDialog {
    color: var(--cpd-color-text-primary);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ReportRoomDialog textarea, .mx_DeclineAndBlockInviteDialog textarea {
        font: var(--cpd-font-body-md-regular);
        border: 1px solid var(--cpd-color-border-interactive-primary);
        background: var(--cpd-color-bg-canvas-default);
        border-radius: 0.5rem;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
    }

    /*
      Workaround to fix labels appearing with the wrong color.

      .mx_Dialog (in res/css/_common.pcss) redefines the body color
      as $light-fg-color rather than the standard primary color.

      This forces the colour to match the Compound style, but
      in the future the Dialogs should not force a color.
    */
    .mx_ReportRoomDialog form label, .mx_DeclineAndBlockInviteDialog form label {
        color: var(--cpd-color-text-primary);
    }
    .mx_DeclineAndBlockInviteDialog div[aria-disabled="true"] > label {
        color: var(--cpd-color-text-secondary);
    }

    .mx_DeclineAndBlockInviteDialog .mx_SettingsFlag_label {
        color: var(--cpd-color-text-primary);
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog .mx_Dialog_title {
    -ms-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
    padding-right: 80px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog_BridgeList {
    padding: 0;
}

    .mx_RoomSettingsDialog_BridgeList li {
        list-style-type: none;
    }

        .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            gap: var(--cpd-space-2x);
            padding: 5px;
            margin-bottom: var(--cpd-space-2x);

            /* border-style around each bridge list item */
            border-width: 1px 1px;
            border-color: var(--roomlist-separator-color);
            border-style: solid;
            border-radius: 5px;
        }
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    -webkit-box-sizing: border-box;
                            box-sizing: border-box;
                    border-radius: 5px;
                    border: 1px solid var(--roomlist-separator-color);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                    border-radius: 5px;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    width: 48px;
                    height: 48px;
                    background: var(--roomlist-separator-color);
                }
                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                        border-width: 1px 1px;
                        border-color: var(--roomlist-separator-color);
                    }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span {
                        /* Correct letter placement */
                        left: auto;
                    }

            .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data {
                display: inline-block;
                width: 85%;
            }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-bottom: 0;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata {
                    margin-top: var(--cpd-space-1x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li {
                    margin-top: var(--cpd-space-2x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-top: 0;
                    font-size: 16pt;
                    color: var(--timeline-text-color);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details {
                    color: var(--timeline-text-color);
                    font-weight: var(--cpd-font-weight-semibold);
                }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details .mx_RoomSettingsDialog_channel {
                        -webkit-margin-start: 5px;
                                margin-inline-start: 5px;
                    }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_metadata {
                    color: #61708b;
                    margin-bottom: 0;
                    overflow-y: visible;
                    text-overflow: ellipsis;
                    white-space: normal;
                    padding: 0;
                }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeDialog {
    padding-right: 70px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningDialog {
    max-width: 38vw;
    width: 38vw;
}
        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar {
            height: 8px;
            width: 100%;

            border-radius: 8px;
        }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-bar,
    .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_RoomUpgradeWarningDialog_progressText {
            margin-top: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: var(--timeline-text-color);
        }

.mx_RoomUpgradeWarningDialog .mx_SettingsFlag {
    font-weight: 700;
}

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 8px;
        float: right;
    }

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_SettingsFlag_label {
        display: inline-block;
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content {
        padding-right: 85px;
        color: var(--timeline-text-color);
    }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content hr {
            border-color: var(--timeline-text-color);
            opacity: 0.1;
            border-bottom: none;
        }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul {
            padding: 16px;
        }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul li:nth-child(n + 2) {
                margin-top: 16px;
            }
            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timestamp {
                display: inline-block;
                width: 115px;
                color: #61708b;
                line-height: 24px; /* same as avatar */
                vertical-align: top;
            }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline {
                display: inline-block;
                width: calc(100% - 155px); /* 115px timestamp width + 40px right margin */
            }
                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_timeline_header span {
                        margin-left: 8px;
                        vertical-align: middle;
                    }

                .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn {
                    position: relative;
                    margin-top: 8px;
                }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_ServerOfflineDialog_content_context_txn_desc {
                        width: calc(100% - 100px); /* 100px is an arbitrary margin for the button */
                    }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_AccessibleButton {
                        float: right;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPickerDialog {
    width: 468px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_ServerPickerDialog .mx_Dialog_content {
        margin-bottom: 0;
    }

        .mx_ServerPickerDialog .mx_Dialog_content > p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font: var(--cpd-font-body-md-regular);

            margin: 16px 0;
        }

            .mx_ServerPickerDialog .mx_Dialog_content > p:first-of-type {
                margin-bottom: 40px;
            }

            .mx_ServerPickerDialog .mx_Dialog_content > p:last-of-type {
                margin: 0 24px 24px;
            }

        .mx_ServerPickerDialog .mx_Dialog_content > h2 {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin: 16px 0 16px 8px;
        }

        .mx_ServerPickerDialog .mx_Dialog_content > a {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            margin-left: 8px;
        }
        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserverRadio input[type="radio"] + div {
            margin-top: auto;
            margin-bottom: auto;
        }

    .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver {
        border-top: none;
        border-left: none;
        border-right: none;
        border-radius: 0;
        border-radius: initial;
    }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > input {
            padding-left: 0;
        }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > label {
            margin-left: 0;
        }

    .mx_ServerPickerDialog .mx_AccessibleButton_kind_primary {
        width: calc(100% - 26px);
        margin: 0 8px;
        padding: 15px 18px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetEmailDialog_email_input {
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: rgba(74, 74, 74, 0.9);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    font-size: 0.9375rem;
    width: 100%;
    max-width: 280px;
    margin-bottom: 10px;
}

.mx_SetEmailDialog_email_input:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Not actually a component but things shared by settings components */
.mx_UserSettingsDialog,
.mx_RoomSettingsDialog,
.mx_SpaceSettingsDialog,
.mx_SpacePreferencesDialog {
    width: 90vw;
    max-width: 980px;
    /* set the height too since tabbed view scrolls itself. */
    height: 80vh;
}

    .mx_UserSettingsDialog .mx_TabbedView, .mx_RoomSettingsDialog .mx_TabbedView, .mx_SpaceSettingsDialog .mx_TabbedView, .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 90px;
    }

    .mx_UserSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_RoomSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpaceSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        min-width: 580px;
        padding-right: 100px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        /* Put some padding on the bottom to avoid the settings tab from */
        /* colliding harshly with the dialog when scrolled down. */
        padding-bottom: 100px;
    }

    .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
        position: absolute;
        right: var(--cpd-space-4x);
    }

/* On narrow viewports, the tab labels are hidden, so we need to shift the indicator so it isn't over the tab icon. */
@media (max-width: 1024px) {
        .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
            right: var(--cpd-space-1x);
            top: var(--cpd-space-1x);
        }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialog {
    /* Value from figma design */
    width: 416px;
}

    .mx_ShareDialog .mx_Dialog_header {
        text-align: center;
        margin-bottom: var(--cpd-space-6x);
        /* Override dialog header padding to able to center it */
        -webkit-padding-end: 0;
                padding-inline-end: 0;
    }

    .mx_ShareDialog .mx_ShareDialog_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: 100%;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top span {
                text-align: center;
                font: var(--cpd-font-body-sm-semibold);
                color: var(--cpd-color-text-secondary);
                text-overflow: ellipsis;
                white-space: nowrap;
                overflow: hidden;
                width: 100%;
            }

        .mx_ShareDialog .mx_ShareDialog_content label {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            font: var(--cpd-font-body-md-medium);
        }

        .mx_ShareDialog .mx_ShareDialog_content button {
            width: 100%;
        }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a {
                width: 48px;
                height: 48px;
                border-radius: 99px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border: 1px solid var(--cpd-color-border-interactive-secondary);
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a img {
                    width: 24px;
                    height: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SlashCommandHelpDialog .mx_SlashCommandHelpDialog_headerRow h2 {
    margin-bottom: 2px;
}

.mx_SlashCommandHelpDialog .mx_Dialog_content {
    margin-top: 12px;
    margin-bottom: 34px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePreferencesDialog {
    width: 700px;
    height: 400px;
}

    .mx_SpacePreferencesDialog > h4 {
        margin: -12px 0 0;
        font-weight: normal;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 80px;
    }

        .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
            min-width: 0;
            min-width: initial;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceSettingsDialog {
    color: var(--timeline-text-color);
}

    .mx_SpaceSettingsDialog .mx_SpaceSettings_errorText {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #ff5b55;
        color: var(--alert, #ff5b55);
        margin-bottom: 28px;
    }

    .mx_SpaceSettingsDialog .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 16px;
    }
        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_SettingsTab_section_caption {
            margin-top: 12px;
            margin-bottom: 20px;
        }

        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton {
            margin-top: 8px;
            margin-bottom: 4px;
        }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton .mx_StyledRadioButton_content {
                font-weight: var(--cpd-font-weight-semibold);
                line-height: 1.125rem;
                color: var(--timeline-text-color);
            }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton + span {
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                margin-left: 26px;
            }

    .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 64px;
    }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton {
            display: inline-block;
        }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton_kind_link {
            margin-left: auto;
        }
        .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link {
            font: var(--cpd-font-body-md-semibold);
            margin: 7px 18px;
        }

            .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link.mx_SettingsTab_showAdvanced {
                margin: 18px 0;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpotlightDialog_wrapper .mx_Dialog_border {
        /* Disable the glass border as this dialog wasn't designed with it in mind */
        display: contents;
    }

    .mx_SpotlightDialog_wrapper .mx_Dialog {
        /* !important because it's overriding compound  */
        width: -webkit-fit-content !important;
        width: -moz-fit-content !important;
        width: fit-content !important;
        border-radius: 8px !important;
        height: 60% !important;
        overflow-y: visible;
        overflow-y: initial;
        position: relative;
        padding: 0;
        contain: unset; /* needed for #mx_SpotlightDialog_keyboardPrompt to not be culled */
    }

        .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt {
            position: absolute;
            padding: var(--cpd-space-2x);
            border-radius: 8px;
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            top: -60px; /* relative to the top of the modal */
            left: 50%;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt kbd {
                display: inline-block;
                padding: 2px var(--cpd-space-1x);
                margin: 0 var(--cpd-space-1x);
                border-radius: 6px;
                background-color: #6f7882;
                background-color: var(--quinary-content, #6f7882);
                vertical-align: middle;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
                /* To avoid any styling inherent with <kbd> elements */
                font-family: inherit;
                font-weight: inherit;
                font-size: inherit;
            }

.mx_SpotlightDialog {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpotlightDialog .mx_Dialog_header {
        display: none;
    }

    .mx_SpotlightDialog .mx_SpotlightDialog_searchBox {
        margin: 0;
        border: none;
        border-radius: 8px 8px 0 0;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
        border-bottom: 1px solid #f4f6fa;
        border-bottom: 1px solid var(--system, #f4f6fa);
    }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-line-pack: center;
                align-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 8px;
            margin-right: var(--cpd-space-2x);
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            vertical-align: middle;
            color: var(--timeline-text-color);
            position: relative;
            padding: var(--cpd-space-1x) var(--cpd-space-2x) var(--cpd-space-1x) 37px;
        }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter > svg {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                width: 18px;
                height: 18px;
                position: absolute;
                left: var(--cpd-space-2x);
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
            }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close {
                display: inline-block;
                width: 14px;
                height: 14px;
                padding: 1px;
                background: #f4f6fa;
                background: var(--system, #f4f6fa);
                border-radius: 8px;
                margin-left: var(--cpd-space-2x);
                text-align: center;
                line-height: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

                .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close svg {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                    width: inherit;
                    height: inherit;
                }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > input {
            display: block;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            background-color: transparent;
            width: 100%;
            height: 32px;
            padding: 0;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            font-weight: normal;
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            margin-left: var(--cpd-space-4x);
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content {
            /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
            --mx_SpotlightDialog_option_selectedBgColor: transparent;
        }

            /* Hide the enter prompt as in this state pressing enter would not actuate that option */
            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
                visibility: hidden;
            }

    .mx_SpotlightDialog #mx_SpotlightDialog_content {
        height: 100%;
        overflow-y: auto;
        padding: var(--cpd-space-4x);
    }

        .mx_SpotlightDialog #mx_SpotlightDialog_content ul {
            padding: 0;
            margin: 0;
        }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > .mx_SpotlightDialog_sectionHeader > h4 {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                margin: 0;
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4 {
                margin-bottom: var(--cpd-space-2x);
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                margin-bottom: var(--cpd-space-2x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader .mx_SpotlightDialog_options {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    gap: var(--cpd-space-1x);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section + .mx_SpotlightDialog_section {
                margin-top: var(--cpd-space-6x);
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option {
            border-radius: 8px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option:hover,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option[aria-selected="true"] {
                background-color: #6f7882;
                background-color: var(--mx_SpotlightDialog_option_selectedBgColor, var(--quinary-content, #6f7882));
            }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed > div {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                white-space: nowrap;
                overflow-x: hidden;
                margin-right: 1px; /* occlude the 1px visible of the very next tile to prevent it looking broken */
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option {
                padding: var(--cpd-space-1x);
                color: var(--timeline-text-color);
                font-size: 0.75rem;
                line-height: 0.9375rem;
                display: inline-block;
                width: 58px;
                height: 58px;
                min-width: 58px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                text-align: center;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option .mx_DecoratedRoomAvatar {
                    margin: 0 9px var(--cpd-space-1x); /* maintain centering */
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option + .mx_SpotlightDialog_option {
                    margin-left: var(--cpd-space-4x);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option {
                --mx_SpotlightDialog_option_selectedBgColor: var(--system, #f4f6fa);

                padding: 6px var(--cpd-space-1x);
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: var(--timeline-text-color);
                position: relative;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                white-space: nowrap;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment {
                    display: -webkit-inline-box;
                    display: -ms-inline-flexbox;
                    display: inline-flex;
                    -webkit-box-orient: horizontal;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: row;
                            flex-direction: row;
                    margin-left: auto;
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline {
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton {
                        padding: var(--cpd-space-1x) var(--cpd-space-5x);
                        margin: 2px var(--cpd-space-1x);
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt {
                        margin-top: 9px;
                        margin-right: var(--cpd-space-2x);
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name {
                    min-width: 0;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar {
                    margin-right: var(--cpd-space-2x);
                    width: 24px;
                    height: 24px;
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar {
                        width: inherit;
                        height: inherit;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                    -webkit-box-flex: 1;
                        -ms-flex-positive: 1;
                            flex-grow: 1;
                    min-width: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader {
                        display: -webkit-box;
                        display: -ms-flexbox;
                        display: flex;
                        -webkit-box-orient: horizontal;
                        -webkit-box-direction: normal;
                            -ms-flex-direction: row;
                                flex-direction: row;
                        line-height: 1.5rem;
                        margin-right: var(--cpd-space-2x);
                    }

                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName {
                            color: var(--timeline-text-color);
                            font-size: 0.9375rem;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias {
                            color: #2e2f32;
                            color: var(--tertiary-content, #2e2f32);
                            font-size: 0.75rem;
                            margin-left: var(--cpd-space-2x);
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        font-size: 0.75rem;
                        white-space: normal;
                        word-wrap: break-word;
                        line-height: 1.25rem;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 3;
                        overflow: hidden;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge {
                    margin-left: var(--cpd-space-2x);
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications {
                    width: 16px;
                    height: 16px;
                    padding: var(--cpd-space-0-5x);
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                    margin-top: auto;
                    margin-bottom: auto;
                    position: relative;
                    display: none;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg {
                        width: inherit;
                        height: inherit;
                        display: block;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg {
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                    }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications {
                        display: block;
                    }

                    /* $secondary-content/$tertiary-content do not have enough contrast against
                       the hover background ($quinary-content) to meet WCAG AA (4.5:1). */
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                            color: var(--timeline-text-color);
                        }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt {
                    display: inline-block;
                }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink,
        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom {
            margin-top: var(--cpd-space-2x);
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton {
                position: relative;
                margin: 0;
                padding: 3px var(--cpd-space-2x) 3px var(--cpd-space-7x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton svg {
                    display: block;
                    position: absolute;
                    left: var(--cpd-space-2x);
                    width: 16px;
                    height: 16px;
                    color: var(--cpd-color-icon-primary);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option {
                padding-left: var(--cpd-space-8x);
                position: relative;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option svg {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                    width: 24px;
                    height: 24px;
                    position: absolute;
                    left: var(--cpd-space-1x);
                    top: 50%;
                    -webkit-transform: translateY(-50%);
                            transform: translateY(-50%);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_otherSearches_messageSearchText {
                font-size: 0.9375rem;
                line-height: 1.5rem;
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_result_details {
            margin-left: var(--cpd-space-2x);
            margin-right: var(--cpd-space-2x);
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches > h4 > .mx_AccessibleButton_kind_link {
            float: right;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
            padding: 2px var(--cpd-space-1x);
            /* To avoid any styling inherent with <kbd> elements */
            font-family: inherit;
            font-weight: inherit;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            border-radius: 6px;
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            margin-right: var(--cpd-space-1x);
            display: none;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_metaspaceResult svg {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            width: inherit;
            height: inherit;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * To avoid visual glitching of two modals stacking briefly, we customise the
 * terms dialog sizing when it will appear for the integration manager so that
 * it gets the same basic size as the IM's own modal.
 */
.mx_TermsDialog_forIntegrationManager .mx_Dialog_border {
    width: 60%;
    height: 70%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_TermsDialog_termsTableHeader {
    font-weight: bold;
    text-align: left;
}

.mx_TermsDialog_termsTable {
    font-size: 0.75rem;
    width: 100%;
}

.mx_TermsDialog_service,
.mx_TermsDialog_summary {
    padding-right: 10px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_UnpinAllDialog {
    /* 396 is coming from figma and we remove the left and right paddings of the dialog */
    width: calc(396px - (var(--cpd-space-10x) * 2));
    padding-bottom: var(--cpd-space-2x);
}

    .mx_UnpinAllDialog .mx_UnpinAllDialog_title {
        /* Override the default heading style */
        font: var(--cpd-font-heading-sm-semibold) !important;
        margin-bottom: var(--cpd-space-3x);
    }

    .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        margin: var(--cpd-space-8x) var(--cpd-space-2x) 0 var(--cpd-space-2x);
    }

        .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons button {
            width: 100%;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadConfirmDialog_fileIcon {
    margin-right: 5px;
}

.mx_UploadConfirmDialog_previewOuter {
    text-align: center;
}

.mx_UploadConfirmDialog_previewInner {
    display: inline-block;
    text-align: left;
}

.mx_UploadConfirmDialog_imagePreview {
    max-height: 300px;
    max-width: 100%;
    border-radius: 4px;
    border: 1px solid var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDialog_toastContainer {
    position: absolute;
    bottom: var(--cpd-space-10x);
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_UserSettingsDialog_title {
    /* Override default dialog font style */
    font: var(--cpd-font-heading-md-regular) !important;
}

    .mx_UserSettingsDialog_title .mx_UserSettingsDialog_title_strong {
        font: var(--cpd-font-heading-md-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerifyEMailDialog {
    height: auto;
    top: 300px;
}

    .mx_VerifyEMailDialog .mx_Dialog {
        color: var(--timeline-text-color);
        font: var(--cpd-font-body-md-regular);
        padding: var(--cpd-space-6x) var(--cpd-space-6x) var(--cpd-space-4x);
        text-align: center;
        /* !important override compound  */
        width: 485px !important;
    }

        .mx_VerifyEMailDialog .mx_Dialog h1 {
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_VerifyEMailDialog_text-light {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            line-height: 20px;
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_AuthBody_did-not-receive {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            margin-bottom: var(--cpd-space-2x);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_Dialog_cancelButton {
            right: 10px;
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCapabilitiesPromptDialog .text-muted {
        font-size: 0.75rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_content {
        margin-bottom: 16px;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_WidgetCapabilitiesPromptDialog_cap {
        margin-top: 20px;
        font-size: 0.9375rem;
        line-height: 0.9375rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_buttons {
        margin-top: 40px; /* double normal */
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag {
        line-height: calc(0.875rem + 7px + 7px); /* 7px top & bottom padding */
        color: #61708b;
        font-size: 0.75rem;
    }

        .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch {
            /* downsize the switch + ball */
            width: 2rem;
            height: 0.9375rem;
        }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
                left: calc(100% - 0.9375rem);
            }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch .mx_ToggleSwitch_ball {
                width: 0.9375rem;
                height: 0.9375rem;
                border-radius: 0.9375rem;
            }
}
@layer app-web{

/*
 Copyright 2026 Element Creations Ltd.

 SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 Please see LICENSE files in the repository root for full details.
*/

.mx_UnknownIdentityUsersWarningDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px; /* Consistency with InviteDialog */
}

.mx_UnknownIdentityUsersWarningDialog_headerContainer {
    /* Centre the PageHeader component horizontally */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    /* Styling for the regular text inside the header */
    font: var(--cpd-font-body-lg-regular);

    /* Space before the list */
    padding-bottom: var(--cpd-space-6x);
}

.mx_UnknownIdentityUsersWarningDialog_userList {
    width: 100%;
    overflow: auto;

    /* Fill available vertical space, but don't allow it to shrink to less than 60px (about the height of a single tile) */
    -webkit-box-flex: 1;
        -ms-flex: 1 0 60px;
            flex: 1 0 60px;

    /* Remove browser default ul padding/margin */
    padding: 0;
    margin: 0;
}

.mx_UnknownIdentityUsersWarningDialog_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
}

    .mx_UnknownIdentityUsersWarningDialog_buttons > button {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018, 2019 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AccessSecretStorageDialog.mx_EncryptionCard {
        /* override some styles that we don't need */
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input {
                /*
                * From figma: https://www.figma.com/design/ZodBLtGnKmRTGJo5SGLnH3/ER-137--Excluding-Insecure-Devices?node-id=102-43729&t=QmewENUd7f6Tmw9U-1
                */
                width: 448px;
                height: 70px;
                margin: 0px;
                border: 1px solid;
                background-color: transparent;
                color: var(--timeline-text-color);
                padding: 9px;
                font: var(--cpd-font-body-md-semibold);
                font-weight: var(--cpd-font-weight-semibold);
            }
                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback svg {
                display: inline-block;
                vertical-align: bottom;
                width: 20px;
                height: 20px;
                -webkit-mask-size: 20px;
                        mask-size: 20px;
                -webkit-margin-end: 5px;
                        margin-inline-end: 5px;
            }

            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid {
                color: #ff5b55;
                color: var(--alert, #ff5b55);
            }

                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid svg {
                    color: #ff5b55;
                    color: var(--alert, #ff5b55);
                }

    .mx_AccessSecretStorageDialog .mx_EncryptionCard_buttons {
        margin-top: var(--cpd-space-20x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateCrossSigningDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateCrossSigningDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateCrossSigningDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateSecretStorageDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateSecretStorageDialog.mx_SuccessDialog {
        padding: 56px; /* 80px from design - 24px wrapper padding */
    }

        .mx_CreateSecretStorageDialog.mx_SuccessDialog .mx_Dialog_title {
            margin-bottom: var(--cpd-space-4x);
        }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateSecretStorageDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateSecretStorageDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateSecretStorageDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}

.mx_CreateSecretStorageDialog_centeredTitle,
.mx_CreateSecretStorageDialog_centeredBody {
    text-align: center;
}

.mx_CreateSecretStorageDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding-top: 20px;
}

    .mx_CreateSecretStorageDialog_primaryContainer.mx_CreateSecretStorageDialog_recoveryKeyPrimarycontainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

.mx_CreateSecretStorageDialog_primaryContainer::after {
    content: "";
    clear: both;
    display: block;
}

.mx_CreateSecretStorageDialog_primaryContainer .mx_StyledRadioButton {
    margin-bottom: 16px;
    padding: 11px;
}

.mx_CreateSecretStorageDialog_optionTitle {
    color: var(--timeline-text-color);
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 1.125rem;
    padding-bottom: 10px;
}

.mx_CreateSecretStorageDialog_passPhraseContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

.mx_Field.mx_CreateSecretStorageDialog_passPhraseField {
    margin-top: 0px;
}

.mx_CreateSecretStorageDialog_passPhraseMatch {
    width: 200px;
    margin-left: 20px;
}

.mx_CreateSecretStorageDialog_recoveryKeyContainer {
    display: inline-block;
}

.mx_CreateSecretStorageDialog_recoveryKey {
    font-weight: bold;
    text-align: center;
    padding: 20px;
    color: var(--timeline-text-secondary-color);
    background-color: #f7f7f7;
    border-radius: 6px;
    word-spacing: 1em;
    margin-bottom: 20px;
}

    .mx_CreateSecretStorageDialog_recoveryKey code {
        display: inline-block;
        width: 30rem;
    }

.mx_CreateSecretStorageDialog_recoveryKeyButtons {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons_copyBtn {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons .mx_AccessibleButton {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    white-space: nowrap;
}

.mx_CreateSecretStorageDialog_continueSpinner {
    margin-top: 33px;
    text-align: right;
}

.mx_CreateSecretStorageDialog_continueSpinner img {
    width: 20px;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyBackupFailedDialog .mx_Dialog_title {
    margin-bottom: 32px;
}

.mx_KeyBackupFailedDialog_title {
    padding-bottom: 10px;
}

    .mx_KeyBackupFailedDialog_title svg {
        margin-right: var(--cpd-space-2x);
        vertical-align: -2px;
        color: var(--timeline-text-color);
    }

.mx_KeyBackupFailedDialog .mx_Dialog_buttons {
    margin-top: 36px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RestoreKeyBackupDialog_keyStatus {
    height: 30px;
}

.mx_RestoreKeyBackupDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding: 20px;
}

.mx_RestoreKeyBackupDialog_passPhraseInput {
    background-color: transparent;
    color: var(--timeline-text-color);
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}
    .mx_RestoreKeyBackupDialog_passPhraseInput:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_RestoreKeyBackupDialog_passPhraseInput,
.mx_RestoreKeyBackupDialog_recoveryKeyInput {
    width: 300px;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
    border-radius: 5px;
    padding: 10px;
}

.mx_RestoreKeyBackupDialog_content > div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    min-height: 110px; /* Empirically measured */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header {
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-1x);
            min-width: 160px;
        }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item {
            padding-top: var(--cpd-space-1x);
            padding-bottom: var(--cpd-space-1x);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item > .mx_GenericDropdownMenu_Option--label span:first-child {
                font-weight: normal;
            }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: baseline;
                -ms-flex-align: baseline;
                    align-items: baseline;
            -ms-flex-line-pack: baseline;
                align-content: baseline;
            color: var(--timeline-text-color);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:not(:first-child) {
                margin-left: var(--cpd-space-1x);
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider {
        margin-top: var(--cpd-space-1x);
        margin-bottom: var(--cpd-space-1x);
    }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider + .mx_GenericDropdownMenu_Option .mx_GenericDropdownMenu_Option--label {
            font-size: 0.9375rem;
        }

.mx_NetworkDropdown_removeServer {
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
    padding: 1px;
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
    border-radius: 8px;
    text-align: center;
    line-height: 16px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-left: auto;
}

    .mx_NetworkDropdown_removeServer svg {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: inherit;
        width: inherit;
    }

.mx_NetworkDropdown_dialog .mx_Dialog {
    width: 45vw;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AccessibleButton {
    cursor: pointer;
}

    .mx_AccessibleButton:where(button) {
        /* Clear default button styling */
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        background: none;
        border: none;
        padding: 0;
        margin: 0;
        font-size: inherit;
        font-family: inherit;
        line-height: inherit;
        -webkit-box-sizing: content-box;
                box-sizing: content-box;
    }

    .mx_AccessibleButton.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_accent,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_danger_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_content_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_sm {
            opacity: 0.4;
        }

    .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        padding: 7px 18px;
        text-align: center;
        border-radius: 24px;
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        font: var(--cpd-font-body-md-semibold);
        border: none; /* override default <button /> styles */
        word-break: keep-all; /* prevent button text in Chinese/Japanese/Korean (CJK) from being collapsed */
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            padding: 5px 12px;
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-action-primary-rest);
            border: 1px solid var(--cpd-color-bg-action-primary-rest);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
            border: 1px solid var(--cpd-color-bg-critical-primary);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            color: var(--cpd-color-text-primary);
            text-decoration: underline;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary_outline {
            padding: 0;
            height: 32px;
            width: 32px;
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        border: 1px solid var(--cpd-color-bg-action-primary-rest);
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-action-primary-rest);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger {
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-critical-primary);
        border: 1px solid var(--cpd-color-bg-critical-primary);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline {
        color: var(--cpd-color-text-critical-primary);
        background-color: transparent;
        border: 1px solid var(--cpd-color-border-critical-subtle);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            border-color: var(--cpd-color-border-disabled);
        }
        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_sm.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            background-color: var(--cpd-color-bg-subtle-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        font-size: inherit;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: inherit;
        padding: 0;
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline {
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline {
        color: var(--cpd-color-text-critical-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        color: var(--timeline-text-color);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        display: inline;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CopyableText {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
}

    .mx_CopyableText.mx_CopyableText_border {
        overflow: auto;
        border-radius: 5px;
        border: solid 1px var(--timeline-text-secondary-color);
        margin-bottom: 10px;
        margin-top: 10px;
        padding: 10px;
    }

    .mx_CopyableText .mx_CopyableText_copyButton {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        display: block;
        /* If the copy button is used within a scrollable div, make it stick to the right while scrolling */
        position: sticky;
        margin-left: var(--cpd-space-1x);
    }

        .mx_CopyableText .mx_CopyableText_copyButton svg {
            color: var(--timeline-text-color);
            display: block;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_desktopCapturerSourcePicker {
    overflow: hidden;
}

    .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        height: 500px;
        overflow: overlay;
    }

        .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source {
            width: 50%;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail {
                margin: 4px;
                padding: 4px;
                border-width: 2px;
                border-radius: 8px;
                border-style: solid;
                border-color: transparent;
            }

                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail.mx_desktopCapturerSourcePicker_source_thumbnail_selected,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:hover,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:focus {
                    border-color: #0dbd8b;
                    border-color: var(--accent-color, #0dbd8b);
                }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_name {
                margin: 0 4px;
                white-space: nowrap;
                text-overflow: ellipsis;
                overflow: hidden;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadBackspaceButton {
    height: 20px;
    width: 20px;
    padding: var(--cpd-space-1x);
}

    .mx_DialPadBackspaceButton svg {
        color: #8d97a5;
        width: inherit;
        height: inherit;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dropdown {
    position: relative;
    color: var(--timeline-text-color);
}

.mx_Dropdown_disabled {
    opacity: 0.3;
}

.mx_Dropdown_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: 8px;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    font: var(--cpd-font-body-sm-regular);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.mx_Dropdown_input.mx_AccessibleButton_disabled {
    cursor: not-allowed;
}

.mx_Dropdown_input:focus {
    border-color: var(--primary-color);
}

/* Disable dropdown highlight on focus */
.mx_Dropdown_input.mx_AccessibleButton:focus {
    -webkit-filter: none;
            filter: none;
}

svg.mx_Dropdown_arrow {
    width: 18px;
    height: 18px;
    margin-right: 3px;
    color: var(--timeline-text-color);
}

.mx_Dropdown_option {
    height: 35px;
    line-height: 2.1875rem;
    /* Overwrites the default padding for any li elements */
    padding: 0 8px;
}

.mx_Dropdown_input > .mx_Dropdown_option {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_Dropdown_option div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_Dropdown_option img,
.mx_Dropdown_option .mx_Dropdown_option_emoji {
    margin: 5px;
    width: 16px;
    vertical-align: middle;
}

.mx_Dropdown_option_emoji {
    font-size: 1rem;
    line-height: 1rem;
}

input.mx_Dropdown_option,
input.mx_Dropdown_option:focus {
    font-weight: normal;
    border: 0;
    padding-top: 0;
    padding-bottom: 0;
    /* XXX: hack to prevent text box being too big and pushing */
    /* its parent out / overlapping the dropdown arrow. Only really */
    /* works in the Country dropdown. */
    width: 60%;
}

.mx_Dropdown_menu {
    position: absolute;
    left: -1px;
    right: -1px;
    top: 100%;
    z-index: 2;
    margin: 0;
    padding: 0px;
    border-radius: 4px;
    border: 1px solid var(--primary-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    max-height: 200px;
    overflow-y: auto;
}

.mx_Dropdown_menu .mx_Dropdown_option {
    height: auto;
    min-height: 35px;
}

ul.mx_Dropdown_menu li.mx_Dropdown_option {
    list-style: none;
}

.mx_Dropdown_menu .mx_Dropdown_option_highlight {
    background-color: #dddddd;
    background-color: var(--focus-bg-color, #dddddd);
}

.mx_Dropdown_searchPrompt {
    font-weight: normal;
    margin-left: 5px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditableItemList {
    margin-top: 12px;
    margin-bottom: 10px;
}

.mx_EditableItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 5px;
}

.mx_EditableItem_delete {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_EditableItem_delete:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_EditableItem_delete svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_EditableItem_delete{
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    vertical-align: middle;
    width: 28px;
    height: 28px;
    -webkit-mask-size: 100%;
            mask-size: 100%;
}

.mx_EditableItem_email {
    vertical-align: middle;
}

.mx_EditableItem_promptText {
    margin-right: 10px;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
}

.mx_EditableItem_confirmBtn {
    margin-right: 5px;
}

.mx_EditableItem_item {
    -webkit-box-flex: 1;
        -ms-flex: auto 1 0px;
            flex: auto 1 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: calc(100% - 28px); /* leave space for the remove button */
    overflow-x: hidden;
    text-overflow: ellipsis;
}

.mx_EditableItemList_label {
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorBoundary {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ErrorBoundary_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_ErrorBoundary_body .mx_AccessibleButton {
        margin-top: 5px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExternalLink {
    color: #0086e6;
    color: var(--links, #0086e6);
}

.mx_ExternalLink_icon {
    display: inline-block;
    width: 0.6875rem;
    height: 0.6875rem;
    margin-left: 0.3rem;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FacePile_more {
    /* Needed to calculate the offset on the face pile */
    --cpd-avatar-size: 28px;
    position: relative;
    border-radius: 100%;
    width: 28px;
    height: 28px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
    display: inline-block;
    z-index: 1;
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

.mx_FacePile_summary {
    margin-left: 12px;
    font: var(--cpd-font-body-md-regular);
    line-height: 1.5rem;
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* TODO: Consider unifying with general input styles in _light.pcss */

.mx_Field {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    position: relative;
    margin: 1em 0;
    border-radius: 8px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_prefix {
    border-right: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_postfix {
    border-left: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field input,
.mx_Field select,
.mx_Field textarea {
    font: var(--cpd-font-body-md-regular);
    border: none;
    /* Even without a border here, we still need this avoid overlapping the rounded */
    /* corners on the field above. */
    border-radius: 8px;
    padding: 8px 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
}

.mx_Field input[type="password"] {
    background-color: transparent;
    color: var(--timeline-text-color);
}
    .mx_Field input[type="password"]:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_Field select {
    -moz-appearance: none;
    -webkit-appearance: none;
    text-overflow: ellipsis;
}

.mx_Field_select_chevron {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 4px;
    width: 18px;
    height: 18px;
    color: var(--timeline-text-color);
    z-index: 1;
    pointer-events: none;
}

.mx_Field:focus-within {
    border-color: var(--primary-color);
}

.mx_Field input:focus,
.mx_Field select:focus,
.mx_Field textarea:focus {
    outline: 0;
}

.mx_Field input::-webkit-input-placeholder, .mx_Field textarea::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-moz-placeholder, .mx_Field textarea::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:-ms-input-placeholder, .mx_Field textarea:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-ms-input-placeholder, .mx_Field textarea::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::placeholder,
.mx_Field textarea::placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::-moz-placeholder, .mx_Field textarea:placeholder-shown:focus::-moz-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus:-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus:-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:-moz-placeholder:focus::placeholder, .mx_Field textarea:-moz-placeholder:focus::placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:-ms-input-placeholder:focus::placeholder, .mx_Field textarea:-ms-input-placeholder:focus::placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::placeholder,
.mx_Field textarea:placeholder-shown:focus::placeholder,
.mx_Field.mx_Field_placeholderIsHint input::placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field label {
    -webkit-transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    background-color: transparent;
    font: var(--cpd-font-body-md-regular);
    color: var(--cpd-color-text-secondary);
    -webkit-transform: translateY(0);
            transform: translateY(0);
    position: absolute;
    left: 0px;
    margin: 7px 8px;
    padding: 2px;
    pointer-events: none; /* Allow clicks to fall through to the input */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: calc(100% - 20px); /* 100% of parent minus margin and padding */
}

.mx_Field input:not(:-moz-placeholder) + label, .mx_Field textarea:not(:-moz-placeholder) + label {
    -moz-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field input:not(:-ms-input-placeholder) + label, .mx_Field textarea:not(:-ms-input-placeholder) + label {
    -ms-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field_labelAlwaysTopLeft label,
.mx_Field select + label /* Always show a select's label on top to not collide with the value */,
.mx_Field input:focus + label,
.mx_Field input:not(:placeholder-shown) + label,
.mx_Field textarea:focus + label,
.mx_Field textarea:not(:placeholder-shown) + label {
    -webkit-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    font-size: 0.625rem;
    -webkit-transform: translateY(-13px);
            transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field input:focus + label,
.mx_Field select:focus + label,
.mx_Field textarea:focus + label {
    color: var(--primary-color);
}

.mx_Field select:disabled,
.mx_Field select:disabled + label,
.mx_Field input:disabled,
.mx_Field input:disabled + label,
.mx_Field textarea:disabled,
.mx_Field textarea:disabled + label {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-secondary-color);
}
    .mx_Field_valid.mx_Field,
    .mx_Field_valid.mx_Field:focus-within {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
    }

    .mx_Field_valid.mx_Field label,
    .mx_Field_valid.mx_Field:focus-within label {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
    .mx_Field_invalid.mx_Field,
    .mx_Field_invalid.mx_Field:focus-within {
        border-color: #ff5b55;
        border-color: var(--alert, #ff5b55);
    }

    .mx_Field_invalid.mx_Field label,
    .mx_Field_invalid.mx_Field:focus-within label {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

/* Customise other components when placed inside a Field */

.mx_Field .mx_Dropdown_input {
    border: medium none currentcolor;
    border: initial;
    border-radius: 0;
    border-radius: initial;
}

.mx_Field .mx_CountryDropdown {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericEventListSummary {
    position: relative;
}

    .mx_GenericEventListSummary .mx_GenericEventListSummary_avatars {
        margin-right: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
        border-bottom: 1px solid var(--roomlist-separator-color);
        margin-left: 63px;
        line-height: 1.875rem; /* TODO: Use a variable */
    }

        .mx_IRCLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: var(--line-height);
        }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_toggle {
        /* We reuse a title cased translation */
        text-transform: lowercase;
    }
        .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_toggle, .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_toggle {
            float: right;
            margin-inline: 0 10px;
        }

    .mx_GenericEventListSummary[data-layout="group"] {
        margin-top: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary[data-layout="bubble"] {
        --maxWidth: 70%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-left: calc(var(--avatarSize) + var(--gutterSize));

        /* ideally we'd use display=contents here for the layout to all work regardless of the *ELS but */
    }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle {
            margin-block: 0;
        }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="false"] {
                -webkit-box-ordinal-group: 10;
                    -ms-flex-order: 9;
                        order: 9; /* TODO: Remove */
            }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="true"] {
                -webkit-margin-start: auto;
                        margin-inline-start: auto; /* reduce clickable area */
                -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
                        margin-inline-end: var(--EventTile_bubble-margin-inline-end); /* as the parent has zero margin */
            }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_spacer {
            display: none;
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 5px;
               -moz-column-gap: 5px;
                    column-gap: 5px;
        }
        /* that breaks ScrollPanel's reliance upon offsetTop so we have to have a bit more finesse. */
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            margin: 0;
        }

        .mx_GenericEventListSummary[data-layout="bubble"]::after {
            content: "";
            clear: both;
        }
            .mx_GenericEventListSummary[data-layout="bubble"]:hover::before {
                background: transparent;
            }

    .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary {
        font-size: 0.8125rem;
        margin-top: var(--cpd-space-1x);
    }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_EventTile_line {
            line-height: 1.25;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: 1.375;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_TextualEvent.mx_GenericEventListSummary_summary {
            font: var(--cpd-font-body-sm-regular);
        }

    /* Make all state events one order smaller than the other events */
    .mx_GenericEventListSummary .mx_EventTile {
        font: var(--cpd-font-body-sm-regular);
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_GenericEventListSummary_unstyledList {
    list-style: none;
    padding: 0;
}

.mx_TextualEvent.mx_GenericEventListSummary_summary {
    font: var(--cpd-font-body-sm-regular);
    display: inline;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_GenericEventListSummary_avatars {
    display: inline-block;
    line-height: 0.75rem;
}

    .mx_GenericEventListSummary_avatars .mx_BaseAvatar {
        margin-right: -4px;
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --image-view-panel-height: 68px;
}

.mx_ImageView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_image_wrapper {
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
    overflow: hidden;
}

.mx_ImageView_image {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_ImageView_image.mx_ImageView_image_animating {
        -webkit-transition: -webkit-transform 200ms ease 0s;
        transition: -webkit-transform 200ms ease 0s;
        transition: transform 200ms ease 0s;
        transition: transform 200ms ease 0s, -webkit-transform 200ms ease 0s;
    }

    .mx_ImageView_image.mx_ImageView_image_animatingLoading {
        -webkit-transition: -webkit-transform 300ms ease 0s;
        transition: -webkit-transform 300ms ease 0s;
        transition: transform 300ms ease 0s;
        transition: transform 300ms ease 0s, -webkit-transform 300ms ease 0s;
    }

.mx_ImageView_panel {
    width: 100%;
    height: 68px;
    height: var(--image-view-panel-height);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-animation-name: mx_ImageView_panel_keyframes;
            animation-name: mx_ImageView_panel_keyframes;
    -webkit-animation-duration: 300ms;
            animation-duration: 300ms;
}

.mx_ImageView_info_wrapper {
    pointer-events: initial;
    padding-left: 32px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ffffff;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
}

.mx_ImageView_info {
    padding-left: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_info_sender {
    font-weight: bold;
}

.mx_ImageView_title {
    color: #ffffff;
    font-size: 0.75rem;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    text-align: center;
}

.mx_ImageView_toolbar {
    --icon-size: 24px;

    padding-right: 16px;
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: var(--cpd-space-3x);
}

.mx_ImageView_button {
    padding: calc((32px - var(--icon-size)) / 2);
    width: var(--icon-size);
    height: var(--icon-size);
    display: block;
}

    .mx_ImageView_button svg {
        height: inherit;
        width: inherit;
        display: block;
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }

.mx_ImageView_button_more {
    --icon-size: 28px;
}

.mx_ImageView_button_close {
    border-radius: 100%;
    background: #21262c; /* same on all themes */
}

@media (prefers-reduced-motion) {
    .mx_ImageView_image_animating {
        -webkit-transition: none !important;
        transition: none !important;
    }

    .mx_ImageView_image_animatingLoading {
        -webkit-transition: none !important;
        transition: none !important;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InfoTooltip_icon {
    width: 16px;
    height: 16px;
    display: inline-block;
}

    .mx_InfoTooltip_icon svg {
        height: inherit;
        width: inherit;
        color: #61708b;
    }

.mx_InfoTooltip_icon::before {
    display: inline-block;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineSpinner {
    display: inline;
}

    .mx_InlineSpinner svg {
        margin: 0px 6px;
        vertical-align: -3px;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InteractiveTooltip_wrapper {
    position: fixed;
    z-index: 3999;
}

.mx_InteractiveTooltip {
    border-radius: 8px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-color);
    position: absolute;
    z-index: 5001;
    -webkit-box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
            box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_top {
    top: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_left {
    left: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_right {
    right: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_bottom {
    bottom: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip_chevron_top {
    position: absolute;
    left: calc(50% - 8px);
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_top {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(135deg);
                transform: rotate(135deg);
        border-radius: 0 0 0 3px;
        top: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}

.mx_InteractiveTooltip_chevron_bottom {
    position: absolute;
    left: calc(50% - 8px);
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_bottom {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(-45deg);
                transform: rotate(-45deg);
        border-radius: 0 0 0 3px;
        bottom: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteReason {
    position: relative;
    margin-bottom: 1em;
}

    .mx_InviteReason .mx_InviteReason_reason {
        visibility: visible;
    }

    .mx_InviteReason .mx_InviteReason_view {
        display: none;
        position: absolute;
        inset: 0;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        cursor: pointer;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_InviteReason .mx_InviteReason_view svg {
            width: 16px;
            height: 16px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            display: inline-block;
            margin-right: 8px;
        }
    .mx_InviteReason_hidden .mx_InviteReason_reason {
        visibility: hidden;
    }

    .mx_InviteReason_hidden .mx_InviteReason_view {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LabelledCheckbox {
    margin-top: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LanguageDropdown .mx_Dropdown_option > div {
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MiniAvatarUploader {
    position: relative;
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content;
}

    .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator {
        position: absolute;

        height: 16px;
        width: 16px;
        padding: 5px;

        right: -6px;
        bottom: -6px;

        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 50%;

        line-height: 0;
    }

        .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator .mx_MiniAvatarUploader_cameraIcon {
            height: inherit;
            width: inherit;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

.mx_MiniAvatarUploader_input {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Pill {
    padding: 0.0625rem 0.4em 0.0625rem 0.4em;
    line-height: 1.0625rem;
    border-radius: 1rem;
    vertical-align: text-top;
    display: inline-block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
    cursor: pointer;

    color: var(--cpd-color-text-on-solid-primary) !important; /* To override .markdown-body */
    background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest)) !important; /* To override .markdown-body */
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

    .mx_Pill > * {
        pointer-events: none;
    }

    .mx_Pill.mx_UserPill_me,
    .mx_Pill.mx_AtRoomPill,
    .mx_Pill.mx_KeywordPill {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
    }

    .mx_Pill:hover {
        background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-hovered)) !important; /* To override .markdown-body */
    }

    .mx_Pill:active {
        background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-pressed)) !important; /* To override .markdown-body */
    }

    .mx_Pill.mx_UserPill_me:hover {
        background-color: var(
            --cpd-color-bg-critical-hovered
        ) !important; /* To override .markdown-body | same on both themes */
    }

    /* We don't want to indicate clickability */
    .mx_Pill.mx_AtRoomPill:hover,
    .mx_Pill.mx_KeywordPill:hover {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
        cursor: inherit;
    }

    .mx_Pill::before,
    .mx_Pill .mx_BaseAvatar {
        -webkit-margin-start: -0.3em;
                margin-inline-start: -0.3em; /* Otherwise the gap is too large */
        -webkit-margin-end: 0.2em;
                margin-inline-end: 0.2em;
        min-width: 1rem; /* ensure the avatar is not compressed */
        -webkit-user-select: text;
           -moz-user-select: text;
            -ms-user-select: text;
                user-select: text;
        vertical-align: top;
    }

    .mx_Pill .mx_Pill_text {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_Pill .mx_Pill_userStatus {
        -webkit-margin-start: var(--cpd-space-1x);
                margin-inline-start: var(--cpd-space-1x);
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    /* Pills with user status are flex so the status emoji stays visible if the
       display name gets truncated. */
    .mx_Pill.mx_Pill_withStatus {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    a.mx_Pill {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        text-decoration: none !important; /* To override .markdown-body */
    }

    .mx_Pill .mx_Pill_LinkIcon {
        background-color: #0467dd;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        height: 16px;
        padding: 1px;
        width: 16px;
        border-radius: 50%;
    }

    .mx_Pill .mx_Pill_UserIcon {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: 16px;
        width: 16px;
    }

    .mx_Pill.mx_SpacePill {
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
        padding-left: 4px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PowerSelector {
    width: 100%;
}

.mx_PowerSelector .mx_Field select,
.mx_PowerSelector .mx_Field input {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_ProgressBar {
    height: 6px;
    width: 60px;
    overflow: hidden;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);

    border-radius: 6px;
}

    progress.mx_ProgressBar::-moz-progress-bar {
        border-radius: 6px;
    }

    progress.mx_ProgressBar::-webkit-progress-bar,
    progress.mx_ProgressBar::-webkit-progress-value {
        border-radius: 6px;
    }

    progress.mx_ProgressBar{
    color: var(--cpd-color-icon-accent-tertiary);
}
    progress.mx_ProgressBar::-moz-progress-bar {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar{
    background-color: rgba(141, 151, 165, 0.2);
}
    progress.mx_ProgressBar::-webkit-progress-bar {
        background-color: rgba(141, 151, 165, 0.2);
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        -webkit-transition: width 1s;
        transition: width 1s;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_QRCode img {
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyChain {
    margin: 0; /* Reset default blockquote margin */
    padding-left: 10px;
    border-left: 2px solid var(--username-color);
    border-radius: 2px;
}
        .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline {
            white-space: nowrap; /* Enforce 'In reply to' to be a single line */
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            -webkit-transition: color ease 0.15s;
            transition: color ease 0.15s;
            font-weight: var(--cpd-font-weight-regular);
            text-decoration: inherit;
        }

            .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline:hover {
                color: var(--timeline-text-color);
            }

    .mx_ReplyChain.mx_ReplyChain_color1 {
        --username-color: var(--cpd-color-text-decorative-1);
    }

    .mx_ReplyChain.mx_ReplyChain_color2 {
        --username-color: var(--cpd-color-text-decorative-2);
    }

    .mx_ReplyChain.mx_ReplyChain_color3 {
        --username-color: var(--cpd-color-text-decorative-3);
    }

    .mx_ReplyChain.mx_ReplyChain_color4 {
        --username-color: var(--cpd-color-text-decorative-4);
    }

    .mx_ReplyChain.mx_ReplyChain_color5 {
        --username-color: var(--cpd-color-text-decorative-5);
    }

    .mx_ReplyChain.mx_ReplyChain_color6 {
        --username-color: var(--cpd-color-text-decorative-6);
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ResizeHandle {
    cursor: row-resize;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    z-index: 100;
}

    .mx_ResizeHandle.mx_ResizeHandle--horizontal {
        margin: 0 -5px;
        padding: 0 5px;
        cursor: col-resize;
    }

        .mx_ResizeHandle.mx_ResizeHandle--horizontal > div {
            width: 1px;
            height: 100%;
        }

    .mx_ResizeHandle.mx_ResizeHandle--vertical {
        margin: -5px 0;
        padding: 5px 0;
    }

        .mx_ResizeHandle.mx_ResizeHandle--vertical > div {
            height: 1px;
        }
}
@layer app-web{
/* XXX: bleurgh, what is this? These classes totally break the component */
/* naming scheme; it's completely unclear where or how they're being used */
/* --Matthew */

.mx_Markdown_BOLD {
    font-weight: bold;
}

.mx_Markdown_ITALIC {
    font-style: italic;
    /*
    // interestingly, *not* using the explicit italic font
    // variant seems yield better results.

    // compensate for Nunito italics being terrible
    // https://github.com/google/fonts/issues/172
    transform: skewX(-14deg);
    display: inline-block;
    */
}

.mx_Markdown_CODE {
    padding: 0.2em 0;
    margin: 0;
    font-size: 85%;
    background-color: rgba(0, 0, 0, 0.04);
    border-radius: 3px;
}

.mx_Markdown_HR {
    display: block;
    background: #e9e9e9;
}

.mx_Markdown_STRIKETHROUGH {
    text-decoration: line-through;
}

.mx_Emoji {
    /* Should be 1.8rem for our default message bodies, and scale with the */
    /* surrounding text */
    font-size: max(1.125rem, 1em);
    vertical-align: bottom;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomAliasField {
    /* if parent is a flex container, this allows the */
    /* width to be as wide as needed, and not 100% */
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    min-width: 0;
    max-width: 100%;
}

    .mx_RoomAliasField input {
        width: 150px;
        padding-left: 0;
        padding-right: 0;
    }

    .mx_RoomAliasField input::-webkit-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-moz-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input:-ms-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-ms-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField .mx_Field_prefix,
    .mx_RoomAliasField .mx_Field_postfix {
        color: var(--timeline-text-secondary-color);
        border-left: none;
        border-right: none;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 9px 10px;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomAliasField .mx_Field_postfix {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        /* this allows the domain name to show */
        /* as long as it doesn't make the input shrink */
        /* if it's too big, it shows an ellipsis */
        /* 180: 28 for prefix, 152 for input */
        max-width: calc(100% - 180px);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SSOButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_SSOButtons .mx_SSOButtons_row + .mx_SSOButtons_row {
        margin-top: 16px;
    }

    .mx_SSOButtons .mx_SSOButton {
        position: relative;
        width: 100%;
        display: inline-block;
    }

        .mx_SSOButtons .mx_SSOButton svg,
        .mx_SSOButtons .mx_SSOButton img {
            width: 24px;
            height: 24px;
            -o-object-fit: contain;
               object-fit: contain;
            position: absolute;
            left: 8px;
            top: 4px;
            color: var(--cpd-color-icon-primary);
        }
        .mx_SSOButtons .mx_SSOButton_mini svg,
        .mx_SSOButtons .mx_SSOButton_mini img {
            /* 30px parent, 24px self */
            padding: 3px;
            position: static;
            position: initial;
        }

        .mx_SSOButtons .mx_SSOButton_mini + .mx_SSOButton_mini {
            margin-left: 16px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchWarning {
    text-align: center;
    padding: 0 16px;
}

    .mx_SearchWarning > * {
        vertical-align: middle;
    }

    .mx_SearchWarning > img {
        margin-right: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPicker {
    margin-bottom: 14px;
    padding-bottom: var(--cpd-space-4x);
    border-bottom: 1px solid rgb(141, 151, 165, 0.2);
    display: grid;
    grid-template-columns: auto -webkit-min-content;
    grid-template-columns: auto min-content;
    grid-template-rows: auto auto auto;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ServerPicker > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        margin: 0 0 20px;
        grid-column: 1;
        grid-row: 1;
    }

    .mx_ServerPicker .mx_ServerPicker_help {
        width: 24px;
        height: 24px;
        border-radius: 10px;
        grid-column: 2;
        grid-row: 1;
        margin-left: auto;
        margin-top: -2px;
        margin-right: -2px;
    }

        .mx_ServerPicker .mx_ServerPicker_help svg {
            width: inherit;
            height: inherit;
            color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
        }

    .mx_ServerPicker .mx_ServerPicker_server {
        color: var(--timeline-text-color);
        grid-column: 1;
        grid-row: 2;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-right: 8px;
    }

    .mx_ServerPicker .mx_ServerPicker_change {
        grid-column: 2;
        grid-row: 2;
    }

    .mx_ServerPicker .mx_ServerPicker_desc {
        margin-top: 4px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        grid-column: 1 / 2;
        grid-row: 3;
    }
    .mx_ServerPicker_helpDialog .mx_Dialog_content {
        width: 456px;
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDropdown {
    margin-bottom: var(--cpd-space-1x);
    width: 100%;
}

    .mx_SettingsDropdown .mx_SettingsDropdown_label {
        color: var(--timeline-text-color);
        margin: var(--cpd-space-1x) 0;
    }

    .mx_SettingsDropdown .mx_Dropdown_input {
        width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFlag {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-bottom: 4px;
    width: 100%;
}

    .mx_SettingsFlag .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }
        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_ToggleSwitch {
            display: inline-block;
            vertical-align: middle;
            margin-right: 8px;
        }

        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_SettingsFlag_label {
            display: inline-block;
            vertical-align: middle;
        }

.mx_SettingsFlag_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: var(--timeline-text-color);
    padding-right: 10px;
    padding-top: 4px;
}

.mx_SettingsFlag_microcopy {
    margin-top: 4px;
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);

    /* Support code/pre elements in settings flag descriptions */
}
    .mx_SettingsFlag_microcopy pre,
    .mx_SettingsFlag_microcopy code {
        font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
        font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
        background-color: rgba(0, 0, 0, 0.04);
    }

    .mx_SettingsFlag_microcopy .mx_SettingsTab_microcopy_warning::before {
        content: "⚠️ ";
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
    height: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_MatrixChat_middlePanel .mx_Spinner {
    height: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
* This component expects the parent to specify a positive padding and
* width
*/

.mx_StyledRadioButton {
    position: relative;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        margin-left: 8px;
        margin-right: 8px;
    }

    .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;

        height: 1rem;
        width: 1rem;
    }

    .mx_StyledRadioButton input[type="radio"] {
        /* Remove the OS's representation */
        margin: 0;
        padding: 0;
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
    }

        .mx_StyledRadioButton input[type="radio"] + div {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            -webkit-box-sizing: border-box;

                    box-sizing: border-box;
            height: 1rem;
            width: 1rem;
            margin-left: 2px; /* For the highlight on focus */

            border: 1px solid var(--cpd-color-border-interactive-primary);
            border-radius: 1rem;
        }

            .mx_StyledRadioButton input[type="radio"] + div > div {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                height: 0.5rem;
                width: 0.5rem;

                border-radius: 0.5rem;
            }
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
                outline-width: 2px;
                outline-style: solid;
                outline-color: Highlight;
            }
                /* WebKit gets its native focus styles. */
                @media (-webkit-min-device-pixel-ratio: 0) {
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
        outline-color: -webkit-focus-ring-color;
        outline-style: auto;
            }
    }
            .mx_StyledRadioButton input[type="radio"]:checked + div {
                border-color: var(--cpd-color-bg-accent-rest);
            }

                .mx_StyledRadioButton input[type="radio"]:checked + div > div {
                    background: var(--cpd-color-bg-accent-rest);
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }
            .mx_StyledRadioButton input[type="radio"]:disabled + div,
            .mx_StyledRadioButton input[type="radio"]:disabled + div + span {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_StyledRadioButton input[type="radio"]:disabled + div {
                border-color: var(--cpd-color-border-interactive-primary);
            }
            .mx_StyledRadioButton input[type="radio"]:checked:disabled + div > div {
                background-color: var(--cpd-color-border-interactive-primary);
            }

    .mx_StyledRadioButton .mx_StyledRadioButton_innerLabel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        position: relative;
        top: 4px;
    }

.mx_StyledRadioButton_outlined {
    border: 1px solid var(--roomlist-separator-color);
    border-radius: 8px;
}

.mx_StyledRadioButton_checked {
    border-color: var(--cpd-color-bg-accent-rest);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SyntaxHighlight {
    /* inhibit hljs styling */
    background: none !important;
    color: var(--timeline-text-secondary-color) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TagComposer .mx_TagComposer_input {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            min-width: 70px;
            padding: 0 8px; /* override from button styles */
            -ms-flex-item-align: stretch;
                align-self: stretch; /* override default settingstab style */
        }

        .mx_TagComposer .mx_TagComposer_input .mx_Field,
        .mx_TagComposer .mx_TagComposer_input .mx_Field input,
        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            /* So they look related to each other by feeling the same */
            border-radius: 8px;
        }

    .mx_TagComposer .mx_TagComposer_tags {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        margin-top: 12px; /* this plus 12px from the tags makes 24px from the input */
    }

    .mx_TagComposer .mx_Tag {
        margin-right: 12px;
        margin-top: 12px;
    }

.mx_Tag {
    font-size: 0.9375rem;

    display: -webkit-inline-box;

    display: -ms-inline-flexbox;

    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    gap: 8px;
    padding: 8px;
    border-radius: 8px;

    color: var(--timeline-text-color);
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
}

    .mx_Tag > svg:first-child {
        width: 1em;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        -webkit-transform: scale(1.25);
                transform: scale(1.25);
        -webkit-transform-origin: center;
                transform-origin: center;
    }

    .mx_Tag .mx_Tag_delete {
        border-radius: 50%;
        text-align: center;
        width: 1.066666em; /* 16px; */
        height: 1.066666em;
        line-height: 1em;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        background: #f4f6fa;
        background: var(--system, #f4f6fa);
        position: relative;
    }

        .mx_Tag .mx_Tag_delete svg {
            width: 16px;
            height: 16px;
        }
}
@layer app-web{
/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
.mx_TextWithTooltip_target {
    display: inline;
}

.mx_TextWithTooltip_tooltip {
    display: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToggleSwitch {
    --ToggleSwitch-min-width: 2.75rem;

    -webkit-transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    width: 2.75rem;
    height: 1.25rem;
    border-radius: 1.5rem;
    padding: 2px;

    background-color: var(--cpd-color-bg-canvas-disabled);
    border: 1px solid var(--cpd-color-border-disabled);
    cursor: not-allowed;
}

    .mx_ToggleSwitch.mx_ToggleSwitch_enabled {
        cursor: pointer;
        background-color: var(--cpd-color-bg-canvas-default);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled.mx_ToggleSwitch_on {
            background-color: var(--cpd-color-bg-accent-rest);
            border-color: var(--cpd-color-bg-accent-rest);
        }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled > .mx_ToggleSwitch_ball {
            background-color: var(--cpd-color-icon-secondary);
        }

    .mx_ToggleSwitch.mx_ToggleSwitch_on {
        background-color: var(--cpd-color-bg-action-primary-disabled);
        border-color: var(--cpd-color-bg-action-primary-disabled);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
            left: calc(100% - 1.25rem);
            background-color: var(--cpd-color-icon-on-solid-primary);
        }

.mx_ToggleSwitch_ball {
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 1.25rem;
    background-color: var(--cpd-color-bg-action-primary-disabled);
    -webkit-transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    left: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Validation {
    position: relative;
    max-width: 200px;
}

.mx_Validation_details {
    padding-left: 0;
    margin: 0;
}

.mx_Validation_description + .mx_Validation_details {
    margin: 1em 0 0;
}

.mx_Validation_detail {
    font-weight: normal;
    list-style: none;
    margin-bottom: 0.5em;
}

    .mx_Validation_detail:last-child {
        margin-bottom: 0;
    }

    .mx_Validation_detail svg {
        width: 14px;
        height: 14px;
        margin-right: var(--cpd-space-1x);
        vertical-align: text-bottom;
    }

    .mx_Validation_detail.mx_Validation_valid {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }

    .mx_Validation_detail.mx_Validation_invalid {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationPicker {
    border-radius: 8px;

    height: 100%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    /* when there are errors loading the map */
    /* the canvas is still inserted */
    /* and can overlap error message/close buttons */
}
    /* hide it */
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-canvas-container,
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-control-container {
            display: none;
        }

    .mx_LocationPicker #mx_LocationPicker_map {
        border-top-left-radius: inherit;
        border-top-right-radius: inherit;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group,
        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-attrib {
            margin-right: var(--cpd-space-4x);
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group {
            /* place below the close button */
            /* padding-16 + 24px close button + padding-10 */
            margin-top: 50px;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-accuracy-circle {
            display: none;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-dot {
            display: none;
        }

    .mx_LocationPicker .mx_LocationPicker_footer {
        -webkit-box-flex: 0;
            -ms-flex: 0;
                flex: 0;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: var(--cpd-space-4x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;

        border-bottom-left-radius: inherit;
        border-bottom-right-radius: inherit;

        background-color: var(--roomlist-background-color);
    }

.mx_LocationPicker_pinText {
    position: absolute;
    top: var(--cpd-space-4x);
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    text-align: center;
    height: 0;
    pointer-events: none;
}

    .mx_LocationPicker_pinText span {
        -webkit-box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
                box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
        border-radius: 8px;
        padding: var(--cpd-space-2x);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        color: var(--timeline-text-color);

        font-size: 0.75rem;
    }

.mx_LocationPicker_submitButton {
    width: 100%;
    height: 48px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

.mx_CallEvent {
    padding: 12px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-height: 60px;
    max-width: 600px;
    width: 100%;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    border-radius: 8px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    gap: var(--cpd-space-2x);
}

    .mx_CallEvent > .mx_BaseAvatar,
    .mx_CallEvent > .mx_Icon {
        -ms-flex-item-align: start;
            align-self: flex-start;
    }

    .mx_CallEvent > .mx_Icon {
        padding: 0;
        margin: var(--cpd-space-1x) 0;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_CallEvent .mx_LiveContentSummary {
        font-size: 0.75rem;
    }

    .mx_CallEvent{

    --facepile-background: var(--system, #f4f6fa);
}

.mx_CallEvent_title {
    font-size: 0.9375rem;
    line-height: 24px; /* in px to match the avatar */
}

.mx_CallEvent_inactive .mx_CallEvent_title svg {
    display: inline-block;
    vertical-align: middle;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    width: 16px;
    height: 16px;
    margin-right: var(--cpd-space-2x);
}

.mx_CallEvent_active .mx_CallEvent_title {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_CallEvent_columns {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_TimelineCard .mx_CallEvent_columns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: var(--cpd-space-2x);
}

.mx_CallEvent_details {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6px;
}

.mx_CallEvent_button {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-width: 120px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018-2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_CreateEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_CreateEvent svg {
        color: #91a1c0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/** Disambiguated profile needs to have a different layout in the member tile */
.mx_MemberTileView .mx_DisambiguatedProfile {
    /* Name and the user status emoji share the first row (with the name truncating and the emoji always visible)
       Disambiguated MXID gets a full row below. */
    display: grid;
    grid-template-columns: -webkit-min-content 1fr;
    grid-template-columns: min-content 1fr;
}

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_userStatus {
        -webkit-margin-start: var(--cpd-space-0-5x);
                margin-inline-start: var(--cpd-space-0-5x);
    }

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
        grid-column: 1 / -1;
        -webkit-margin-start: 0;
                margin-inline-start: 0;
        font: var(--cpd-font-body-sm-regular);
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .mx_MemberTileView .mx_DisambiguatedProfile span:not(.mx_DisambiguatedProfile_mxid) {
        /**
        In a member tile, this span element is a grid child and so
        we need the following for text overflow to work.
        **/
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

    .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-1x) 0;

        position: relative;
        margin: var(--cpd-space-1x) 0;
        padding: var(--cpd-space-3x) var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--roomlist-background-color);
        border-radius: 8px;
        width: 65%;
        height: -webkit-fit-content;
        height: -moz-fit-content;
        height: fit-content;
    }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton svg {
                height: 16px;
                width: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            max-width: 100%;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                gap: var(--cpd-space-1x);
                margin-left: 10px; /* To match mx_LegacyCallEvent */
                margin-right: 10px;
                min-width: 0;
            }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_sender {
                    font-weight: var(--cpd-font-weight-semibold);
                    margin-bottom: var(--cpd-space-1x);

                    overflow: hidden;
                    white-space: nowrap;
                    text-overflow: ellipsis;
                }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_type {
                    font-weight: 400;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            gap: var(--cpd-space-3x); /* See mx_IncomingLegacyCallToast_buttons */
            -webkit-margin-start: 42px;
                    margin-inline-start: 42px; /* avatar (32px) + mx_LegacyCallEvent_info_basic margin (10px) */
            word-break: break-word;
            max-width: -webkit-fit-content;
            max-width: -moz-fit-content;
            max-width: fit-content;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button{
                padding: 0 var(--cpd-space-3x);
                font-size: inherit;
}

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_tooltip {
                margin-right: 5px;
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: initial;
                -ms-flex-align: initial;
                    align-items: initial;
            gap: var(--cpd-space-1x) var(--cpd-space-4x);
            height: auto;
            height: initial;
            min-width: 290px;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_iconButton {
                position: absolute;
                margin-right: 0;
                top: 12px;
                right: 12px;
                height: 16px;
                width: 16px;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
            }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_info {
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

.mx_LegacyCallEvent_type_icon {
    height: 16px;
    width: 16px;
    margin-right: 6px;
    display: inline-block;
    vertical-align: -2px;
}

    .mx_LegacyCallEvent_type_icon svg {
        position: absolute;
        height: inherit;
        width: inherit;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_e2eIcon + .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            position: relative;

            /* 5px (gap) + 14px (e2e icon size * mask-size) + 9px (margin-left of e2e icon) */
            right: calc(5px + 14px + 9px);
        }
            .mx_EventTile_leftAlignedBubble .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
                gap: var(--cpd-space-2x) var(--cpd-space-1x);
            }
        .mx_IRCLayout .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            -webkit-margin-start: var(--cpd-space-1x);
                    margin-inline-start: var(--cpd-space-1x); /* display green line */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 Tulir Asokan <tulir@maunium.net>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MImageReplyBody .mx_MImageBody_banner, .mx_MStickerBody_wrapper .mx_MImageBody_banner {
        position: absolute;
        bottom: var(--cpd-space-1x);
        left: var(--cpd-space-1x);
        padding: var(--cpd-space-1x);
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        font-size: 0.9375rem;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
        pointer-events: none;
        max-width: min(100%, 350px);
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        background-color: rgb(0, 0, 0, 0.6);
        color: #ffffff;
    }

    .mx_MImageReplyBody .mx_MImageBody_placeholder, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_MImageReplyBody .mx_MImageBody_placeholder .mx_Blurhash > canvas, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder .mx_Blurhash > canvas {
            -webkit-animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
                    animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
        }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail_container {
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        overflow: hidden;
        contain: paint;
    }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail {
        display: block;
        height: 100%;
        width: 100%;
    }

    .mx_MImageReplyBody .mx_MImageBody_gifLabel, .mx_MStickerBody_wrapper .mx_MImageBody_gifLabel {
        position: absolute;
        display: block;
        top: 0px;
        left: 14px;
        padding: 5px;
        border-radius: 5px;
        background: rgba(0, 0, 0, 0.7);
        border: 2px solid rgba(0, 0, 0, 0.2);
        color: rgba(255, 255, 255, 1);
        pointer-events: none;
    }

.mx_MImageReplyBody {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 0; /* Prevent a blowout */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MLocationBody {
    max-width: 100%;
}

    .mx_MLocationBody .mx_MLocationBody_map {
        max-width: 100%;
        width: 450px;
        height: 300px;
        z-index: 0; /* keeps the entire map under the message action bar */

        border-radius: 8px;

        border-radius: var(--MBody-border-radius);
        cursor: pointer;
    }

/* In the timeline, we fit the width of the container */
.mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 450px;
    width: 100%;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 100%;
    width: 450px;
}

.mx_DisambiguatedProfile ~ .mx_MLocationBody {
    margin-top: 6px; /* See: https://github.com/matrix-org/matrix-react-sdk/pull/8442 */
}

.mx_ReplyTile .mx_MLocationBody {
    /* Prevent clicking a location within a reply */
    pointer-events: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MPollBody {
    margin-top: var(--cpd-space-2x);
    min-width: 0; /* Override fieldset default min-width: min-content */
    width: 100%; /* Ensure fieldset takes full available width */
    border: none; /* Remove default fieldset border */
    padding: 0; /* Remove default fieldset padding */
    margin-inline: unset; /* Remove default fieldset margin */
    display: inline-block; /* Preserve the fieldset display value we used to set globally */
}

    .mx_MPollBody legend {
        padding-inline: unset; /* Remove default legend padding */
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: var(--cpd-space-2x);
        letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-3x);
    }

        .mx_MPollBody legend svg {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--cpd-color-icon-primary);
        }

        .mx_MPollBody legend .mx_MPollBody_edited {
            color: var(--timeline-text-color-50pct);
            font-size: 0.75rem;
            opacity: 0.6;
        }

    .mx_MPollBody .mx_MPollBody_totalVotes {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: inline;
                flex-direction: inline;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: start;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.75rem;
    }

        .mx_MPollBody .mx_MPollBody_totalVotes .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
            margin-left: var(--cpd-space-2x);
        }

/* Prevent clicking a poll within a reply */
.mx_ReplyTile .mx_MPollBody {
    pointer-events: none;
}

.mx_MPollBody_allOptions {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-2x);
    max-width: 550px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MStickerBody_wrapper {
    padding: 12px 0px;
}

.mx_MStickerBody_hidden {
    max-width: 220px;
    text-decoration: none;
    text-align: center;

    /* To center the text in the middle of the frame */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MStickerBody_placeholder {
    /* centering */
    position: absolute;
    left: calc(50% - 40px);
    top: calc(50% - 40px);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageActionBar {
    --MessageActionBar-size-button: 28px;
    --MessageActionBar-size-margin: 3px;

    position: absolute;
    top: calc(
        -1 *
            (28px + 2 * (3px + var(--cpd-border-width-1)))
    );
    top: calc(
        -1 *
            (var(--MessageActionBar-size-button) + 2 * (var(--MessageActionBar-size-margin) + var(--cpd-border-width-1)))
    );
    right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* Ensure the action bar appears above other things like the read marker */
    /* and sender avatar (for small screens) */
    z-index: 10;

    /* Adds a previous event safe area so that you can't accidentally hover the */
    /* previous event while trying to mouse into the action bar or from the */
}
    /* react button to its tooltip. */
    .mx_MessageActionBar::before {
        content: "";
        position: absolute;
        /* tooltip safe mousing area + tooltip overhang + */
        /* action bar + action bar offset from event */
        width: calc(10px + 48px + 100% + 8px);
        /* safe area + action bar */
        height: calc(20px + 100%);
        top: -12px;
        left: -58px;
        z-index: -1;
        cursor: auto;
        cursor: initial;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_MessageActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_MessageActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TextualBody_urlPreviews {
    /* Let shared-components own preview link colours instead of the app-wide anchor colour. */
}
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):hover,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):link,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):visited {
        color: revert-layer;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadActionBar {
    position: absolute;
    visibility: hidden;
    top: calc(-1 * (28px + 2 * (3px + var(--cpd-border-width-1))));
    right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* Ensure the action bar appears above other things like the read marker */
    /* and sender avatar (for small screens) */
    z-index: 10;

    /* Adds a previous event safe area so that you can't accidentally hover the */
    /* previous event while trying to mouse into the action bar or from the */
}
    /* react button to its tooltip. */
    .mx_ThreadActionBar::before {
        content: "";
        position: absolute;
        /* tooltip safe mousing area + tooltip overhang + */
        /* action bar + action bar offset from event */
        width: calc(10px + 48px + 100% + 8px);
        /* safe area + action bar */
        height: calc(20px + 100%);
        top: -12px;
        left: -58px;
        z-index: -1;
        cursor: auto;
        cursor: initial;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_ThreadActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_ThreadActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_cryptoEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistory_content {
    height: 600px;
    width: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_PollHistory_header.mx_Heading_h2 {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistoryList {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    max-height: 100%;
}

.mx_PollHistoryList_list {
    overflow: auto;
    list-style: none;
    margin-block: 0;
    padding-inline: 0;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    -ms-flex-line-pack: start;
        align-content: flex-start;
    display: grid;
    grid-gap: var(--cpd-space-5x);
    gap: var(--cpd-space-5x);
    padding-right: var(--cpd-space-16x);
    margin: var(--cpd-space-8x) 0;
}

    .mx_PollHistoryList_list.mx_PollHistoryList_list_ENDED {
        gap: var(--cpd-space-8x);
    }

.mx_PollHistoryList_noResults {
    height: 100%;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-16x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;

    line-height: 1.5rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_PollHistoryList_noResults .mx_PollHistoryList_loadMorePolls {
        margin-top: var(--cpd-space-4x);
    }

.mx_PollHistoryList_loading {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    text-align: center;
}

    /* center in all free space
    when there are no results */
    .mx_PollHistoryList_loading.mx_PollHistoryList_noResultsYet {
        margin: auto auto;
    }

.mx_PollHistoryList_loadMorePolls {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BaseCard {
    --BaseCard_EventTile_line-padding-block: 2px;
    --BaseCard_EventTile-spacing-inline: 36px;
    --BaseCard_header-button-size: 28px;

    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: var(--cpd-font-size-body-md);
}

    .mx_BaseCard .mx_BaseCard_header {
        height: 64px;
        padding: var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        /* changing the color from $separator to transparent as it is
           the best visual output during the transition period. This will be
           reintroduced at a later stage. */
        border-bottom: 1px solid transparent;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-3x);
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-border-after: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
                border-block-end: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
    }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_spacer {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

        .mx_BaseCard .mx_BaseCard_header > h2 {
            margin: 0 44px;
            font: var(--cpd-font-body-sm-semibold);
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            height: 24px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_heading {
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                font: var(--cpd-font-body-md-medium);
                color: var(--cpd-color-text-secondary);
            }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option {
                position: relative;
                width: calc(var(--BaseCard_header-button-size) - 4px);
                height: calc(var(--BaseCard_header-button-size) - 4px);
                padding: 2px;
            }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option svg {
                    width: inherit;
                    height: inherit;
                    display: block;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option:hover svg {
                    color: var(--timeline-text-color);
                }

    .mx_BaseCard .mx_AutoHideScrollbar {
        min-height: 0;
        width: 100%;
        height: 100%;
        scrollbar-gutter: stable;
    }

    .mx_BaseCard .mx_BaseCard_footer {
        padding-top: var(--cpd-space-1x);
        text-align: center;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_kind_secondary {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            background-color: rgb(141, 151, 165, 0.2);
            font: var(--cpd-font-body-md-semibold);
        }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu {
        position: static;
        position: initial;
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu span:first-of-type {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: inherit;
            color: var(--timeline-text-color);
        }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu{

        font: var(--cpd-font-body-sm-regular);
        color: var(--timeline-text-color);
        padding-top: 10px;
        padding-bottom: 10px;

        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
}

    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: var(--cpd-color-border-interactive-secondary);
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--cpd-color-bg-canvas-default);
            position: absolute;
            top: 1px;
            left: -8px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmptyState {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-4x);
    text-align: center;
}

    .mx_EmptyState svg {
        width: 56px;
        height: 56px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-radius: 8px;
        padding: var(--cpd-space-3x);
        background-color: var(--roomlist-highlights-color);
    }

    .mx_EmptyState::before {
        /* Bloom using magic numbers directly out of Figma */
        content: "";
        position: absolute;
        z-index: -1;
        width: 642px;
        height: 775px;
        right: -253.77px;
        top: 0;
        background: radial-gradient(49.95% 49.95% at 50% 50%, rgb(13, 189, 139, 0.12) 0%, rgb(18, 115, 235, 0) 100%);
        -webkit-transform: rotate(-89.69deg);
                transform: rotate(-89.69deg);
        overflow: hidden;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_EncryptionInfo_spinner .mx_Spinner {
        margin-top: 25px;
        margin-bottom: 15px;
    }
    .mx_EncryptionInfo_spinner{

    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExtensionsCard {
    --cpd-separator-spacing: var(--cpd-space-6x);
    --AddExtension-overlap: -76px;
}
    .mx_ExtensionsCard .mx_AutoHideScrollbar {
        padding: 0 var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        /* Styling for the "Add extensions" button */
        .mx_ExtensionsCard .mx_AutoHideScrollbar > button {
            width: 100%;
        }

    .mx_ExtensionsCard .mx_ExtensionsCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_ExtensionsCard .mx_ExtensionsCard_Button {
        /* this button is special so we have to override some of the original styling */
        /* as we will be applying it in its children */
        padding: 0;
        height: auto;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        position: relative;
    }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_WidgetAvatar {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app {
            padding: var(--cpd-space-2x) var(--cpd-space-12x) var(--cpd-space-2x) var(--cpd-space-3x);
            text-overflow: ellipsis;
            overflow: hidden;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app p {
                margin: 0 var(--cpd-space-3x);
                color: var(--timeline-text-color);
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle,
        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            position: absolute;
            top: 0;
            height: 100%; /* to give bigger interactive zone */
            width: 24px;
            padding: var(--cpd-space-3x) var(--cpd-space-1x);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle svg, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options svg {
                width: 16px;
                height: 16px;
                color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
            }
                .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle:hover::after, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options:hover::after {
                    content: "";
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: var(--cpd-space-2x); /* equal to padding-top of parent */
                    left: 0;
                    border-radius: 12px;
                    background-color: rgb(141, 151, 165, 0.1);
                }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle {
            right: 8px;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            right: 32px; /* 24 + 8 */
        }
            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned::after {
                opacity: 0.2;
            }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned .mx_ExtensionsCard_app_pinToggle svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::before {
            content: normal;
            content: initial;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::after {
            top: var(--cpd-space-2x); /* re-align based on the height change */
            pointer-events: none; /* pass through to the real button */
        }

    /* Set layout for everyone button */
    .mx_ExtensionsCard a[data-kind="primary"] {
        margin-top: var(--cpd-space-10x);
    }

    .mx_ExtensionsCard .mx_EmptyState::before {
        /* Overlap the Add extensions button */
        top: var(--AddExtension-overlap);
    }

    .mx_ExtensionsCard .mx_EmptyState {
        /* Stop empty state scrolling */
        height: calc(100% + var(--AddExtension-overlap));
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedMessagesCard {
    --unpin-height: 76px;
}

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: var(--cpd-space-4x);
        gap: var(--cpd-space-6x);
        overflow-y: auto;
    }

        .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper .mx_PinnedMessagesCard_Separator {
            min-height: 1px;
            /* Override default compound value */
            margin-block: 0;
        }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper_unpin_all {
        /* Remove the unpin all button height and the top and bottom padding  */
        height: calc(100% - var(--unpin-height) - calc(var(--cpd-space-4x) * 2));
    }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_unpin {
        /* Make it float at the bottom of the unpin panel */
        position: absolute;
        bottom: 0;
        width: 100%;
        height: var(--unpin-height);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
                box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
        background: var(--cpd-color-bg-canvas-default);
    }

    .mx_PinnedMessagesCard .mx_EventTile_body {
        word-break: break-word;
    }
}
@layer app-web{

/*
Copyright 2024, 2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSummaryCard {
    --cpd-separator-inset: var(--cpd-space-4x);
    --cpd-separator-spacing: var(--cpd-space-4x);
}

    .mx_RoomSummaryCard .mx_RoomSummaryCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_roomName,
    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        text-overflow: ellipsis;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_topic {
        padding: 0 12px;
        color: var(--cpd-color-text-secondary);
    }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_box {
            width: 100%;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_container {
            text-align: start;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_edit {
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic p {
            white-space: pre-wrap;
            width: 100%;
            min-width: 0;
            margin: 0;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic a {
            cursor: pointer;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_chevron {
            -webkit-transition: -webkit-transform 0.3s;
            transition: -webkit-transform 0.3s;
            transition: transform 0.3s;
            transition: transform 0.3s, -webkit-transform 0.3s;
        }
            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed p {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: normal;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 2;
            }

            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed .mx_RoomSummaryCard_topic_chevron {
                -webkit-transform: rotate(-90deg);
                        transform: rotate(-90deg);
            }

    .mx_RoomSummaryCard .mx_AccessibleButton_kind_link {
        margin-top: 12px;
        margin-bottom: 12px;
        font-size: 0.8125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_RoomSummaryCard_badges {
    margin: var(--cpd-space-4x) 0;
}

.mx_RoomSummaryCard_search {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-width: 0;
}

    .mx_RoomSummaryCard_search input[type="search"]::-webkit-search-cancel-button {
        display: inline;
        display: initial; /* override _common.pcss which inhibits this */
    }

.mx_RoomSummaryCard_roomName {
    margin: var(--cpd-space-3x) 0 var(--cpd-space-1x);
}

.mx_RoomSummaryCard_bottomOptions {
    margin: 0 0 var(--cpd-space-8x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThreadPanel {
    height: 100px;
    overflow: visible;
}

    .mx_ThreadPanel .mx_ThreadPanelHeader {
        height: 64px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 16px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        border-bottom: 1px solid var(--cpd-color-gray-400);
    }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_AccessibleButton {
            font-size: 12px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_vertical_separator {
            height: 28px;
            margin-left: var(--cpd-space-3x);
            margin-right: var(--cpd-space-2x);
            border-left: 1px solid var(--cpd-color-gray-400);
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown {
            font: var(--cpd-font-body-sm-regular);
            padding: 3px var(--cpd-space-1x) 3px var(--cpd-space-2x);
            border-radius: 4px;
            line-height: 1.5;
            -webkit-user-select: none;
               -moz-user-select: none;
                -ms-user-select: none;
                    user-select: none;
        }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown:hover,
            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown[aria-expanded="true"] {
                background: #6f7882;
                background: var(--quinary-content, #6f7882);
            }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown svg {
                margin-left: 2px;
                height: 20px;
                width: 20px;
                display: inline-block;
                vertical-align: bottom;
            }

    .mx_ThreadPanel .mx_AutoHideScrollbar,
    .mx_ThreadPanel .mx_RoomView_messagePanelSpinner {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 8px;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        overflow-y: scroll; /* set gap between the thread tile and the right border */
        height: 100%;
    }
        .mx_ThreadPanel .mx_EventTile[data-layout="group"] .mx_MessageActionBar {
            right: 0;
            top: -36px; /* 2px above EventTile */
            z-index: 10; /* See _EventTile.pcss */
        }

    /* For style rules of EventTile in a thread, see _EventTile.pcss */
    .mx_ThreadPanel.mx_ThreadView {
        max-height: 100%;
    }

        .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper {
            position: relative;
            min-height: 0; /* don't displace the composer */
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

            .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper .mx_FileDropTarget {
                border-radius: 8px;
            }

        .mx_ThreadPanel.mx_ThreadView .mx_MessageComposer_sendMessage {
            margin-right: 0;
        }

        /* Make use of the space above the composer buttons too */
        .mx_ThreadPanel.mx_ThreadView .mx_Autocomplete {
            width: calc(100% + 140px);
        }
        .mx_ThreadPanel.mx_ThreadView.mx_ThreadView_narrow .mx_Autocomplete {
            width: calc(100% + 108px);
        }
        .mx_ThreadPanel .mx_RoomView_messagePanel.mx_RoomView_messageListWrapper {
            position: static;
            position: initial;
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_messageListWrapper {
            width: calc(100% + 6px); /* 8px - 2px */
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_empty {
            display: contents;
        }

    .mx_ThreadPanel .mx_RoomView_MessageList {
        -webkit-padding-start: var(--cpd-space-2x);
                padding-inline-start: var(--cpd-space-2x);
        -webkit-padding-end: var(--cpd-space-2x);
                padding-inline-end: var(--cpd-space-2x);
        content-visibility: visible;
    }

    .mx_ThreadPanel .mx_EventTile,
    .mx_ThreadPanel .mx_GenericEventListSummary {
        /* Account for scrollbar when hovering */
        padding-top: 0;
    }

        .mx_ThreadPanel .mx_EventTile .mx_TimelineSeparator, .mx_ThreadPanel .mx_GenericEventListSummary .mx_TimelineSeparator {
            display: none;
        }

        .mx_ThreadPanel .mx_EventTile.mx_EventTile_clamp:hover, .mx_ThreadPanel .mx_GenericEventListSummary.mx_EventTile_clamp:hover {
            cursor: pointer;
        }

    .mx_ThreadPanel .mx_MessageComposer {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 8px;
        margin-top: 8px;
        padding: 0 8px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_ThreadPanel .mx_BaseCard_footer {
        text-align: left;
        font-size: 0.75rem;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
        position: relative;
        top: 2px;
        padding-right: 8px;
    }

        .mx_ThreadPanel .mx_BaseCard_footer .mx_AccessibleButton_kind_link_inline {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
    .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem:hover {
            background-color: var(--timeline-highlights-color);
        }
            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] span:first-child {
                margin-left: -20px;
            }

            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] svg {
                width: 12px;
                height: 12px;
                margin-right: 8px;
                color: var(--timeline-text-color);
                display: inline-block;
                vertical-align: middle;
                position: absolute;
                top: 14px;
                left: 10px;
            }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem span:last-child {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TimelineCard .mx_TimelineCard_timeline {
        overflow: hidden;
        position: relative; /* offset parent for jump to bottom button */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        border-radius: 8px;
    }

    .mx_TimelineCard .mx_NewRoomIntro {
        -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
        -webkit-margin-end: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-end: var(--BaseCard_EventTile-spacing-inline);
    }

    .mx_TimelineCard .mx_EventTile_content {
        margin-right: 0;
    }
        .mx_TimelineCard .mx_EventTile .mx_ThreadSummary {
            position: relative;
            padding-right: 11px;
        }

            .mx_TimelineCard .mx_EventTile .mx_ThreadSummary::after {
                content: "";
                display: block;
                position: absolute;
                left: 0;
                bottom: -16px;
                height: 1px;
                width: 100%;
                border-bottom: 1px solid #e9edf1;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="irc"],
        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            --TimelineCard_ReadReceiptGroup-inset-block-start: -6px;
            --EventTile_group_line-spacing-inline-start: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding: var(--BaseCard_EventTile_line-padding-block) var(--BaseCard_EventTile-spacing-inline);
                -webkit-padding-end: 46px;
                        padding-inline-end: 46px;
                -webkit-padding-end: var(--MessageTimestamp-width);
                        padding-inline-end: var(--MessageTimestamp-width); /* ensure timestamp is not hidden */
            }

                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                    inset-inline-start: var(--cpd-space-2x);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info {

                /* Info events should have the same size as state events, those
                 * are usually wrapped in a generic event list summary */
            }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                    inset-inline-start: 18px;
                }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info{
                font: var(--cpd-font-body-sm-regular);
}

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
                inset-inline-start: -3px;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
            }

                .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                    top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                        margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile {
                max-width: calc(100% - var(--BaseCard_EventTile-spacing-inline)); /* instead of $left-gutter */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReplyTile .mx_DisambiguatedProfile {
                -webkit-margin-start: 0;
                        margin-inline-start: 0;
                max-width: none;
                max-width: initial;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                inset-inline: auto 0;
                font-size: 0.75rem;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReactionsRow, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReactionsRow {
                /* See: var(--ThreadView_group_spacing-end) for ReactionsRow on _EventTile.pcss */
                -webkit-margin-end: var(--cpd-space-2x);
                        margin-inline-end: var(--cpd-space-2x);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
                max-width: min(calc(100% - 36px), 600px);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
                position: absolute;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            /* Read receipt group on compact modern layout */
            /* This is required because mx_TimelineCard is a child element wrapped by mx_MatrixChat_useCompactLayout, */
        }
            /* which specifies the default position of mx_ReadReceiptGroup on compact modern layout. */
            .mx_MatrixChat_useCompactLayout .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReadReceiptGroup {
                top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="bubble"]::before {
                z-index: auto; /* enable background color on hover */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_MessageActionBar {
                /* 1px: border width */
                inset-inline-end: calc(8px + 1px);
                inset-inline-end: calc(var(--container-gap-width) + 1px);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

    .mx_TimelineCard .mx_LegacyCallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        margin: auto 5px;
    }
        .mx_TimelineCard .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            margin: 4px;
        }
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line {
                -webkit-padding-start: var(--BaseCard_EventTile-spacing-inline);
                        padding-inline-start: var(--BaseCard_EventTile-spacing-inline);
                -webkit-padding-end: 46px;
                        padding-inline-end: 46px;
                -webkit-padding-end: var(--MessageTimestamp-width);
                        padding-inline-end: var(--MessageTimestamp-width); /* ensure timestamp is not hidden */
            }

    .mx_TimelineCard .mx_WhoIsTypingTile {
        margin-left: -12px; /* undo padding on the message list */
    }

    .mx_TimelineCard .mx_WhoIsTypingTile_avatars {
        -ms-flex-preferred-size: 48px;
            flex-basis: 48px; /* 12 (padding on message list) + 36 (padding on event lines) */
    }
        /* RR next to a message on the messsge list */
            .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup {
                /* 6px: scroll bar width (magic number) */
                /* stylelint-disable-next-line declaration-colon-space-after */
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 8px + 6px
                );
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + var(--container-gap-width) + 6px
                );
            }
                .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup {
                    inset-inline-end: -4px; /* align with RR outside of info tile */
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserInfo.mx_BaseCard {
    /* UserInfo has a circular image at the top so it fits between the back & close buttons */
    padding-top: 0;
    overflow-y: auto;
    font-size: var(--cpd-font-size-body-sm);
}

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_container {
        padding: var(--cpd-space-2x) 0 var(--cpd-space-4x);
        margin: 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container + .mx_UserInfo_container {
            border-top: 1px solid var(--cpd-color-gray-400);
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetailsContainer {
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: var(--cpd-space-2x);
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_titleContainer {
        width: 154px;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_badge {
        display: none;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_title {
        width: 160px;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar {
        margin: var(--cpd-space-12x) var(--cpd-space-4x) 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
            max-width: 120px;
            aspect-ratio: 1 / 1;
            margin: 0 auto;
            -webkit-transition: 0.5s;
            transition: 0.5s;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 4rem;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar,
            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar img {
                width: 100%;
                height: 100%;
            }

    .mx_UserInfo.mx_BaseCard h2 {
        text-transform: uppercase;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        font: var(--cpd-font-body-md-semibold);
        font-weight: var(--cpd-font-weight-semibold);
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard p {
        margin: 5px 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_header {
        margin-bottom: var(--cpd-space-8x);
        padding-bottom: 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile h1 {
            margin: 0;
            font-size: 1.25rem;
            line-height: 1.5625rem;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_name {
            min-height: 30px;

            /* limit to 2 lines, show an ellipsis if it overflows */
            /* this looks webkit specific but is supported by Firefox 68+ */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;

            overflow: hidden;
            word-break: break-all;
            text-overflow: ellipsis;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_mxid {
            color: var(--cpd-color-text-secondary);
            height: 28px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profileStatus {
            height: 20px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_timezone {
            height: 20px;
            margin: 0;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        /** Overrides for the copy to clipboard button **/
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText_copyButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            position: static;
            position: initial;
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_timezone {
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_PresenceLabel {
        font: var(--cpd-font-body-sm-regular);
        opacity: 1;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification {
        margin-top: var(--cpd-space-4x);
        height: 36px;
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge {
            min-width: 68px;
            height: 20px;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_icon {
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_label {
                margin: 0;
            }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verification_unavailable {
            color: var(--cpd-color-text-secondary);
        }
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            margin: 6px 0;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_UserInfo_roleDescription {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                /* try to make it the same height as the dropdown */
                margin: 11px 0 12px 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_Field {
                margin: 0;
            }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_field {
        line-height: 1rem;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_statusMessage {

        font: var(--cpd-font-body-sm-regular);
        font-size: 0.6875rem;
        line-height: 1rem;
        opacity: 0.5;
        overflow: hidden;
        word-break: break-word;
        text-overflow: ellipsis;
        display: -webkit-box;
        max-height: calc(1rem * 3);
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }

    .mx_UserInfo.mx_BaseCard .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }
            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
                max-width: 72px;
                margin: 0 auto;
            }

            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 2rem;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* center the big shield icon */
    .mx_VerificationPanel_verified_section .mx_E2EIcon, .mx_VerificationPanel_reciprocate_section .mx_E2EIcon {
        /* Override general user info margin */
        margin: 20px auto !important;
    }
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) > div > p {
            margin-top: 0;
            margin-bottom: 0;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationPanel_verifyByEmojiButton,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_UserInfo_wideButton {
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_EncryptionInfo_spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_Spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode {
        padding: 4px 4px 0 4px;
        background: white;
        border-radius: 4px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
        max-width: 100%;
        /* Override general user info margin */
        margin: 0 auto !important;
    }

        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode canvas {
            /* override height and width which are set on the element directly */
            height: auto !important;
            width: 100% !important;
            max-width: 240px;
        }
        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: 10px;
            display: block;
            margin: 10px 0;
        }

/* Special case styling for EncryptionPanel in a Modal dialog */
    .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 10px;
        margin-bottom: 10px;
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText {
            width: 50px;
            vertical-align: middle;
            text-align: center;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption {
            background-color: var(--roomlist-background-color);
            border-radius: 10px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            padding: 20px;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            position: relative;
            max-width: 310px;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR {
                width: 220px !important;
                height: 220px !important;
                background-color: #fff;
                border-radius: 4px;
                vertical-align: middle;
                text-align: center;
                padding: 10px;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p {
                margin-top: 0;
                font-weight: 700;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText {
                font: var(--cpd-font-body-md-regular);
                margin: 30px 0;
                text-align: center;
            }

    /* EncryptionPanel when verification is done */
        /* right align the "Got it" button */
        .mx_Dialog .mx_VerificationPanel_verified_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_verified_section .mx_AccessibleButton {
            float: right;
        }
        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            margin-left: 10px;
            padding: 7px 40px;
        }

        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCard .mx_AppTileFullWidth {
        max-width: none;
        max-width: initial;
        width: auto !important;
        height: 100%;
        border: 0;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AliasSettings_localAddresses {
    cursor: pointer;
    color: var(--cpd-color-text-primary);
    font-weight: var(--cpd-font-weight-semibold);
    text-decoration: underline;
    list-style: none;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

    /* list-style doesn't do it for webkit */
    .mx_AliasSettings_localAddresses::-webkit-details-marker {
        display: none;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomListPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    height: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppsDrawer {
    --minWidth: 240px; /* TODO this should be 300px but that's too large */

    margin: 8px;

    margin: var(--container-gap-width);
    /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
    margin-bottom: 0; /* No bottom margin for the correct gap to the CallView below. */
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    overflow: hidden;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_AppsDrawer .mx_AppsDrawer_resizer {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer .mx_AppsDrawer_resizer_container {
        width: 100%;
        height: 10px;
        display: block;
        position: relative;
    }

        .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle {
            cursor: ns-resize;

            /* Override styles from library, making the whole area the target area */
            width: 100% !important;
            height: 100% !important;

            /* This is positioned directly below frame */
            position: absolute;
            bottom: 50% !important; /* override from library */

            /* We then render the pill handle in an ::after to keep it in the handle's */
        }
            /* area without being a massive line across the screen */
            .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle::after {
                content: "";
                position: absolute;
                border-radius: 3px;

                height: 4px;
                bottom: 0;

                /* Together, these make the bar 64px wide */
                /* These are also overridden from the library */
                left: calc(50% - 32px);
                right: calc(50% - 32px);
            }
        .mx_AppsDrawer:hover .mx_AppsDrawer_resizer_container_handle::after {
            opacity: 0.8;
            background: var(--timeline-text-color);
        }

        .mx_AppsDrawer:hover .mx_ResizeHandle--horizontal::before {
            position: absolute;
            left: 3px;
            top: 50%;
            -webkit-transform: translate(0, -50%);
                    transform: translate(0, -50%);

            height: 64px; /* to match width of the ones on roomlist */
            width: 4px;
            border-radius: 4px;

            content: "";

            background-color: var(--timeline-text-color);
            opacity: 0.8;
        }

    .mx_AppsDrawer .mx_AppTile {
        width: 50%;
        min-width: var(--minWidth);
    }

    .mx_AppsDrawer.mx_AppsDrawer--maximised {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer.mx_AppsDrawer--resizing .mx_AppTile_persistedWrapper {
        z-index: 1;
    }

    .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile {
        width: 50%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }
    .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile {
        width: 33%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }

.mx_AppsContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
    width: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-height: 0;
}

    .mx_AppsContainer .mx_AppTile:first-of-type {
        border-left-width: 8px;
        border-left-width: var(--container-border-width);
        border-radius: 10px 0 0 10px;
    }
    .mx_AppsContainer .mx_AppTile:last-of-type {
        border-right-width: 8px;
        border-right-width: var(--container-border-width);
        border-radius: 0 10px 10px 0;
    }

    .mx_AppsContainer .mx_ResizeHandle--horizontal {
        position: relative;
    }

        .mx_AppsContainer .mx_ResizeHandle--horizontal > div {
            width: 0;
        }

.mx_AppTile {
    border: 8px solid var(--roomlist-background-color);
    border: var(--container-border-width) solid var(--roomlist-background-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: var(--roomlist-background-color);
}

.mx_AppTileFullWidth {
    width: 100% !important; /* to override the inline style set by the resizer */
    margin: 0;
    padding: 0;
    border: 8px solid var(--roomlist-background-color);
    border: var(--container-border-width) solid var(--roomlist-background-color);
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: var(--roomlist-background-color);
}

.mx_AppTile_mini {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_AppTile .mx_AppTile_persistedWrapper,
.mx_AppTileFullWidth .mx_AppTile_persistedWrapper,
.mx_AppTile_mini .mx_AppTile_persistedWrapper {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_AppTile_persistedWrapper div {
    width: 100%;
    height: 100%;
}

.mx_AppTileMenuBar {
    margin: 0;
    font-size: 0.75rem;
    background-color: var(--roomlist-background-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    padding-top: 3px;
    padding-bottom: 6px;
}

    .mx_AppTileMenuBar .mx_AppTileMenuBar_title {
        line-height: 20px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title .mx_WidgetAvatar {
            margin-right: 12px;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title h1 {
            font-size: inherit;
            margin: 0;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title > :last-child {
            margin-left: 9px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button {
            --size: 24px; /* Size of the button. Its height and width values should be same */

            margin: 0 4px;
            position: relative;
            height: 24px;
            height: var(--size);
            width: 24px;
            width: var(--size);
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button:hover::after {
                content: "";
                position: absolute;
                height: var(--size);
                width: var(--size);
                background-color: var(--roomlist-highlights-color);
                border-radius: 50%;
                left: 0;
                top: 0;
            }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button .mx_Icon {
                color: #61708b;
            }

/* Rules added to this selector style appTileBody generally */
.mx_AppTileBody {
    /* Apply to every variant of appTileBody */
    border-radius: 8px;
}
    /* Note the loading spinner and the message next to it are not always included in mx_AppTileBody--loading */
    .mx_AppTileBody .mx_AppTileBody_fadeInSpinner {
        /* place spinner and the message at the center of mx_AppTileBody */
        height: 100%;
        width: 100%;

        font-weight: bold; /* message next to the spinner */
        -webkit-animation-fill-mode: backwards;
                animation-fill-mode: backwards;
        -webkit-animation-duration: 200ms;
                animation-duration: 200ms;
        -webkit-animation-delay: 500ms;
                animation-delay: 500ms;
        -webkit-animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
                animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
    }

    .mx_AppTileBody.mx_AppTileBody--large,
    .mx_AppTileBody.mx_AppTileBody--mini {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe, .mx_AppTileBody.mx_AppTileBody--mini iframe {
            border: none;
            width: 100%;
            height: 100%;
        }

    .mx_AppTileBody.mx_AppTileBody--large {
        --AppTileBody-height: 100%;

        background-color: #fff;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe {
            overflow: hidden;
            padding: 0;
            margin: 0;
            display: block;
        }

    .mx_AppTileBody.mx_AppTileBody--loading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        height: 100%;

        /* match bg of border so that the cut corners have the right fill */
        background-color: #fff !important;
    }

        .mx_AppTileBody.mx_AppTileBody--loading iframe {
            display: none;
        }

    .mx_AppTileBody.mx_AppTileBody--call {
        border-radius: 0px;
    }

    /* const loadingElement */
    .mx_AppTileBody.mx_AppTileBody--call.mx_AppTileBody--mini {
        border-radius: 8px;
    }

/* appTileBody is embedded to PersistedElement outside of mx_AppTile,
   so rules to style appTileBody generally should not be included here. */
.mx_AppTile .mx_AppTileBody--large,
.mx_AppTileFullWidth .mx_AppTileBody--large,
.mx_AppTile_mini .mx_AppTileBody--mini {
    height: inherit;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

@-webkit-keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
}
@layer app-web{

.mx_Autocomplete {
    position: absolute;
    bottom: 0;
    z-index: 1001;
    width: 100%;
    border: 1px solid var(--roomlist-separator-color);
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    overflow: clip;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-shadow: 0px -16px 32px tranparent;
            box-shadow: 0px -16px 32px tranparent;
}

.mx_Autocomplete_ProviderSection {
    border-bottom: 1px solid var(--roomlist-separator-color);
    width: 100%;
}

/* a "block" completion takes up a whole line */
.mx_Autocomplete_Completion_block {
    min-height: 34px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding: 0 12px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

.mx_Autocomplete_Completion_block * {
    margin: 0 3px;
}

.mx_Autocomplete_Completion_pill {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 2rem;
    height: 2.125rem;
    padding: 0.4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

.mx_Autocomplete_Completion_pill > * {
    margin-right: 0.3rem;
}

/* styling for common completion elements */
.mx_Autocomplete_Completion_subtitle {
    font-style: italic;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Autocomplete_Completion_description {
    color: gray;
    min-width: 150px;
}

.mx_Autocomplete_Completion_container_pill {
    margin: 12px;
    height: 100%;
    overflow-y: scroll;
}

@container roomview (height >= 0px) {
    .mx_Autocomplete_Completion_container_pill {
        max-height: 40cqh;
    }
}
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_title,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_subtitle,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_description {
        /* Ellipsis for long names/subtitles/descriptions */
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.mx_Autocomplete_Completion.selected,
.mx_Autocomplete_Completion:hover {
    background: var(--roomlist-background-color);
    outline: none;
}

.mx_Autocomplete_provider_name {
    margin: 12px;
    color: var(--timeline-text-color);
    font-weight: 400;
    opacity: 0.4;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuxPanel {
    min-width: 0px;
    width: 100%;
    margin: 0px auto;

    overflow: auto;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BasicMessageComposer {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --avatar-color: unset;
    --placeholder: "";

    position: relative;
}

    .mx_BasicMessageComposer .mx_BasicMessageComposer_inputEmpty > :first-child::before {
        content: var(--placeholder);
        color: var(--cpd-color-text-secondary);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
    }

    @-webkit-keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    .mx_BasicMessageComposer.mx_BasicMessageComposer_input_error {
        -webkit-animation: 0.2s visualbell;
                animation: 0.2s visualbell;
    }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_BasicMessageComposer .mx_BasicMessageComposer_input .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* Force caret nodes to be selected in full so that they can be */
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill {
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-user-select: all;
                   -moz-user-select: all;
                        user-select: all;
                position: relative;
                cursor: inherit; /* We don't want indicate clickability */
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill:hover {
                    /* We don't want indicate clickability | To override the overriding of .markdown-body */
                    background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest)) !important;
                }

                /* avatar psuedo element */
                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill::before {
                    display: inline-block;
                    content: var(--avatar-letter);
                    width: 1rem;
                    min-width: 1rem; /* ensure the avatar is not compressed */
                    height: 1rem;
                    -webkit-margin-end: 0.24rem;
                            margin-inline-end: 0.24rem;
                    background: var(--avatar-background), var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
                    color: #ffffff;
                    color: var(--avatar-color, #ffffff);
                    background-repeat: no-repeat;
                    background-size: 1rem;
                    border-radius: 1rem;
                    text-align: center;
                    font-weight: normal;
                    line-height: 1rem;
                    font-size: 0.6275rem;
                }

        .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_disabled {
            /* Ignore all user input to avoid accidentally triggering the composer */
            pointer-events: none;
        }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_AutoCompleteWrapper {
        position: relative;
        height: 0;
    }
}
@layer app-web{
    .mx_JoinRuleDialog .mx_JoinRuleDialogButtons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-column-gap: 5px;
           -moz-column-gap: 5px;
                column-gap: 5px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIcon {
    width: 16px;
    height: 16px;
    margin: 0 9px;
    display: block;
}

    .mx_E2EIcon svg {
        width: inherit;
        height: inherit;
        display: block;
    }

.mx_E2EIcon.mx_E2EIcon_inline {
    display: inline-block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIconView_warning {
    color: var(--cpd-color-icon-critical-primary);
}

.mx_E2EIconView_verified {
    color: var(--cpd-color-icon-success-primary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditMessageComposer {
    --EditMessageComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 5px;
    padding: 3px 3px;
    padding: 3px var(--EditMessageComposer-padding-inline);
}

    .mx_EditMessageComposer .mx_BasicMessageComposer_input {
        border-radius: 4px;
        border: solid 1px var(--roomlist-separator-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditMessageComposer .mx_BasicMessageComposer_input:focus {
            border-color: var(--cpd-color-border-interactive-primary);
        }

    .mx_EditMessageComposer .mx_EditMessageComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditMessageComposer .mx_EditMessageComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmojiButton {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_EmojiButton svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
    .mx_EmojiButton:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

        .mx_EmojiButton:hover svg {
            color: var(--cpd-color-icon-secondary);
        }

.mx_EmojiButton_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}
    .mx_MessageComposer_wysiwyg .mx_EmojiButton {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover {
        background-color: var(--panels, var(--cpd-color-gray-600));
    }

        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover svg {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_timeline,
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_statusArea,
    .mx_RoomView_body[data-layout="bubble"] .mx_MessageComposer {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
    }

.mx_EventTile[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"] {
    --avatarSize: 32px;
    --gutterSize: 11px;
    --cornerRadius: 12px;
    --maxWidth: 70%;

    /* For both event tile and event list summary */
    --EventTile_bubble-margin-inline-start: 49px;
    --EventTile_bubble-margin-inline-end: 60px;

    -webkit-margin-start: 49px;

            margin-inline-start: 49px;

    -webkit-margin-start: var(--EventTile_bubble-margin-inline-start);

            margin-inline-start: var(--EventTile_bubble-margin-inline-start);
    -webkit-margin-end: 60px;
            margin-inline-end: 60px;
    -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
            margin-inline-end: var(--EventTile_bubble-margin-inline-end);
}

.mx_EventTile[data-layout="bubble"] {
    --EventTile_bubble_line-margin-inline-start: -9px;
    --EventTile_bubble_line-margin-inline-end: -12px;
    --EventTile_bubble_gap-inline: 5px;
}

    .mx_EventTile[data-layout="bubble"] .mx_MessageTimestamp {
        width: auto;
        width: initial; /* Cancel the default width */
        max-width: 80px;
    }

    .mx_EventTile[data-layout="bubble"] .mx_ThreadSummary {
        clear: both;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_content {
        margin-right: 0;
    }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar {
        line-height: 0;
        border: 4px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 50%;
        position: absolute;
        top: 6px;
        z-index: 9;
    }
        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar img {
            -webkit-box-shadow: 0 0 0 3px var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
                    box-shadow: 0 0 0 3px var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            border-radius: 50%;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight .mx_EventTile_avatar {
            border-color: var(--timeline-highlights-color);
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight::before {
            background-color: var(--timeline-highlights-color);
        }
        .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar {
            border-color: #fafbfd;
            border-color: var(--eventbubble-bg-hover, #fafbfd);
        }

    /* For replies */
    .mx_EventTile[data-layout="bubble"] .mx_EventTile {
        padding-top: 0;
    }

    .mx_EventTile[data-layout="bubble"]::before {
        content: "";
        position: absolute;
        top: -1px;
        bottom: -1px;
        left: calc(-1 * var(--EventTile_bubble-margin-inline-start));
        right: calc(-1 * var(--EventTile_bubble-margin-inline-end));
        z-index: -1;
        border-radius: 4px;
    }
        .mx_EventTile[data-layout="bubble"]:hover::before, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected::before {
            background: #fafbfd;
            background: var(--eventbubble-bg-hover, #fafbfd);
        }
            .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar img, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_avatar img {
                -webkit-box-shadow: 0 0 0 3px #fafbfd;
                        box-shadow: 0 0 0 3px #fafbfd;
                -webkit-box-shadow: 0 0 0 3px var(--eventbubble-bg-hover, #fafbfd);
                        box-shadow: 0 0 0 3px var(--eventbubble-bg-hover, #fafbfd);
            }

    /* Position the main event sender; reply senders own their alignment. */
    .mx_EventTile[data-layout="bubble"] > .mx_DisambiguatedProfile,
    .mx_EventTile[data-layout="bubble"] .mx_EventTile_senderDetails > .mx_DisambiguatedProfile {
        position: relative;
        inset-block-start: -2px;
        inset-inline-start: 2px;
        font-size: 0.9375rem;
    }

    .mx_EventTile[data-layout="bubble"] .mx_MessageActionBar {
        top: -28px;
        z-index: 9; /* above the avatar */
    }

    .mx_EventTile[data-layout="bubble"] .mx_MediaBody {
        /* leave space for the timestamp */
        padding-right: 48px !important;
    }
        .mx_EventTile[data-layout="bubble"] .mx_ImageBody .mx_ImageBody_container {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            min-height: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
            min-width: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
        }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent {
        background-color: transparent;
        background-color: initial;

        border-style: solid;
        border-width: 1px;
        border-color: #6f7882;
        border-color: var(--quinary-content, #6f7882);
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_footer {
        margin: var(--cpd-space-1-5x) 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
    }
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line {
            border-bottom-right-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-right-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_avatar {
            left: -36px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar {
            inset-inline-start: calc(
                100% - var(--MessageActionBar-size-button) - 2 * var(--MessageActionBar-size-margin)
            );
            right: auto;
            right: initial; /* Reset the default value */
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ThreadSummary {
            -webkit-margin-start: calc(-1 * var(--gutterSize));
                    margin-inline-start: calc(-1 * var(--gutterSize));
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ReactionsRow,
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_footer {
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"]{

        --backgroundColor: var(--eventbubble-others-bg, #f4f6fa);
}
        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            border-bottom-left-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-left-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_sticker {
            /* align timestamp with those inside bubbles */
            margin-right: 32px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ThreadSummary {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: calc(-1 * var(--gutterSize));
                    margin-inline-end: calc(-1 * var(--gutterSize));
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_DisambiguatedProfile {
            display: none;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReplyTile .mx_DisambiguatedProfile {
            display: block;
            max-width: 100%;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_footer {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow > :last-child {
                -webkit-box-ordinal-group: 0;
                    -ms-flex-order: -1;
                        order: -1; /* Moving the "add reaction button" before the reactions */
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_avatar {
            top: -19px; /* height of the sender block */
            right: -38px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MediaBody {
            background: #f0fbf8;
            background: var(--eventbubble-self-bg, #f0fbf8);
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MessageActionBar {
            inset-inline-end: 0;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"]{

        --backgroundColor: var(--eventbubble-self-bg, #f0fbf8);
}

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_line {
        --EventBubbleTile_line-max-width: 70%;

        width: -webkit-fit-content;

        width: -moz-fit-content;

        width: fit-content;
        max-width: 70%;
        max-width: var(--EventBubbleTile_line-max-width); /* Align message bubble and displayName */
        line-height: 1.125rem; /* fixed line height to prevent emoji from being taller than text */
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: 5px var(--EventTile_bubble_gap-inline);
        margin-block: 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
        border-top-left-radius: var(--cornerRadius);
        border-top-right-radius: var(--cornerRadius);

        /* noinspection CssReplaceWithShorthandSafely */
    }
        /* in the DOM depending on the specific rendering context */
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            position: absolute;
            padding: 4px 8px;
            bottom: 0;
            right: 0;
            z-index: 3; /* above media and location share maps */
        }

        /* the selector here is quite weird because timestamps can appear linked & unlinked and in different places */
            /* TODO: Use a common class name instead */
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MFileBody,
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MAudioBody {
                max-width: 100%; /* avoid overflow */
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MVoiceMessageBody {
                /* allow the event to be collapsed, this causes the waveform to get cropped */
                min-width: 0;
            }

            /* we put the timestamps for media (other than stickers) atop the media */
                .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine.mx_EventTile_image .mx_MessageTimestamp {
                    border-radius: 8px;
                    border-radius: var(--MBody-border-radius);
                    /* Hardcoded colours because it's the same on all themes */
                    background-color: rgb(0, 0, 0, 0.6);
                    color: #ffffff;
                    padding: 0px 4px 0px 4px;
                }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker > a, 
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MessageActionBar + .mx_MessageTimestamp {
                /* position timestamps for stickers to the right of the un-bubbled sticker */
                right: auto;
                right: initial;
                left: 100%;
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MStickerBody_wrapper {
                padding: 0;
            }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody {
            width: 100%;
        }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MediaBody {
            border-radius: 0;
            border-radius: initial;
            border-top-left-radius: var(--cornerRadius);
            border-top-right-radius: var(--cornerRadius);
        }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_e2eIcon {
            -ms-flex-negative: 0;
                flex-shrink: 0; /* keep it at full size */

            /* Keep height equal to text for shield alignment, additional 2px because of 1px padding on text */
            height: calc(1.125rem + 2px);
        }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) {
        /* make the top and bottom padding 1px smaller so that we can pad
            .mx_EventTile_content by 1px */
        /* to avoid anti-zalgo cutting off our larger than text emojis. */
        padding: calc(var(--gutterSize) - 1px);
        padding-right: 60px; /* space for the timestamp */
        background: var(--backgroundColor);
    }

        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) .mx_EventTile_content {
            padding: 1px;
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line {
        border-top-left-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-left-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line {
        border-bottom-left-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-left-radius: var(--cornerRadius);
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line {
        border-top-right-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-right-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line {
        border-bottom-right-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-right-radius: var(--cornerRadius);
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_noSender .mx_EventTile_avatar {
            top: -19px;
        }
        .mx_EventTile[data-layout="bubble"][data-has-reply="true"] > .mx_EventTile_line {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }
            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply {
                max-width: 90%;
                padding: 0;
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply > a, 
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply .mx_MessageActionBar + .mx_MessageTimestamp {
                    display: none !important;
                }

            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                gap: var(--gutterSize);
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_EventTile_avatar {
                    position: static;
                }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_DisambiguatedProfile {
                    display: none;
                }

    .mx_EventTile[data-layout="bubble"] .mx_MPollBody {
        width: 550px; /* to prevent timestamp overlapping summary text */
        max-width: 100%; /* prevent overflowing a reply tile */
    }

        .mx_EventTile[data-layout="bubble"] .mx_MPollBody .mx_MPollBody_totalVotes {
            /* align summary text with corner timestamp */
            padding: 4px 0;
        }
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad:hover::before {
                background: transparent;
            }

        /* Special layout scenario for "Unable To Decrypt (UTD)" events */
        .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line {
            display: grid;
            grid-template:
                "reply reply" auto
                "shield body" auto
                / auto 1fr;
        }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ViewSourceEvent {
                min-width: 0; /* Prevent a grid blowout */
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_EventTile_e2eIcon {
                grid-area: shield;
                margin-top: auto;
                margin-bottom: auto;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_DecryptionFailureBody {
                grid-area: body;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper {
                grid-area: reply;
            }
            /* "Unable To Decrypt" layout for hidden events */
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line {
                gap: 0 9px; /* 9px: margin value of E2E icon */
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                grid-template:
                    "shield source" auto
                    / auto 1fr;
            }

                .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line .mx_ViewSourceEvent {
                    grid-area: source;
                }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent_wrapper,
    .mx_EventTile[data-layout="bubble"] .mx_CallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles {
        -webkit-margin-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
                margin-inline-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
        -webkit-margin-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
                margin-inline-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles .mx_EventTile_line {
            max-width: 100%;
            width: 100%;
            margin: 0;
        }

.mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] {
    --backgroundColor: transparent;
}

    .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote {
        padding-right: 60px; /* align with bubbles text */
        font-style: italic;
    }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote > a {
            /* linked timestamp element */
            -ms-flex-item-align: center;
                align-self: center;
            bottom: auto;
            bottom: initial;
            top: auto;
            top: initial;
            font-style: normal; /* undo italic above */
        }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote .mx_MEmoteBody {
            padding: 4px 0;
        }
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a {
        /* hide this timestamp as the tile will render its own */
        display: none;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"] {
    padding: 5px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_info {
        min-width: 100%;
        /* Preserve alignment with left edge of text in bubbles */
        margin: 0;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
    --backgroundColor: transparent;
    --gutterSize: 0;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_avatar {
        position: static;
        -webkit-box-ordinal-group: 0;
            -ms-flex-order: -1;
                order: -1;
        -webkit-margin-end: var(--EventTile_bubble_gap-inline);
                margin-inline-end: var(--EventTile_bubble_gap-inline); /* Same spacing between E2E icon and a hidden event */
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
    }

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_e2eIcon {
        -webkit-margin-start: 0;
                margin-inline-start: 0; /* mx_EventTile_avatar has margin-inline-end, so margin is not needed here */
        -ms-flex-item-align: center;
            align-self: center;
    }
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            right: auto;
            left: -77px;
            bottom: auto;
            bottom: initial;
            -ms-flex-item-align: center;
                align-self: center;
        }

            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp {
                vertical-align: middle;
            }
    .mx_GenericEventListSummary[data-layout="bubble"] .mx_EventTile.mx_EventTile_info .mx_EventTile_line {
        /* Avoid overflow of event info by cancelling width settings */
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    /* increase margin between ELS and the next Event to not have our user avatar overlap the expand/collapse button */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] + .mx_EventTile[data-layout="bubble"][data-self="true"] {
        margin-top: 20px;
    }

    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info {
        padding: 2px 0;
        margin-right: 0;
    }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .mx_MessageActionBar {
            /* Reset .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar */
            inset-inline-start: initial;
            inset-inline-end: 48px; /* align with that of right-column bubbles */
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .mx_ReadReceiptGroup {
            /* match alignment to RRs of chat bubbles */
            inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 60px);
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info::before {
            inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
        }

.mx_EventTile_tileError[data-layout="bubble"] .mx_EventTile_line {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; /* restore the centering */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTile {
    --EventTile_content-margin-inline-end: 34px;
    --EventTile_group_line-spacing-block-start: 1px;
    --EventTile_group_line-spacing-block-end: 3px;
    --EventTile_group_line-spacing-inline-start: 64px;
    --EventTile_group_line-line-height: 1.375rem;
    --EventTile_ThreadSummary-line-height: calc(2 * 0.75rem);

    -ms-flex-negative: 0;

        flex-shrink: 0;
    max-width: 100%;
    clear: both; /* TODO: check if this is necessary */
    padding-top: 18px;
    position: relative;
}

    .mx_EventTile.mx_EventTile_info {
        font-size: var(--cpd-font-size-body-sm);
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_EventTile .mx_EventTile_avatar {
        cursor: pointer;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_EventTile .mx_EventTile_body {
        overflow-y: hidden;
        text-align: start;
    }

    .mx_EventTile .mx_ReadReceiptGroup_container svg {
        display: inline-block;
        width: 16px;
        height: 16px;
        color: var(--cpd-color-icon-tertiary);
    }
        .mx_EventTile .mx_EventTile_content.mx_EditMessageComposer,
        .mx_EventTile .mx_EventTile_content.mx_EditWysiwygComposer {
            /* Make sure the formatting bar is visible */
            overflow: visible;
        }

    .mx_EventTile .mx_EventTile_searchHighlight {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border-radius: 5px;
        padding-inline: 2px;
        cursor: pointer;
    }

        .mx_EventTile .mx_EventTile_searchHighlight a {
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
            color: #ffffff;
        }

    .mx_EventTile .mx_MessageTimestamp_lateIcon {
        position: absolute;
        right: 100%;
        top: var(--cpd-space-1x);
        color: var(--cpd-color-text-secondary);
    }

    .mx_EventTile .mx_EventTileBubble {
        margin-block: 10px;
        margin-block: var(--EventTileBubble_margin-block);
        min-width: 100px;
    }
        .mx_EventTile .mx_ImageBody .mx_ImageBody_container {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center; /* on every layout */
        }

    .mx_EventTile .mx_ReactionsRow {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-1x);
    }
        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_body {
            /* !important needed to override .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body */
            display: block !important;
            overflow-y: scroll;
        }

        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_collapsedCodeBlock {
            /* !important needed due to .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre */
            display: block !important;
        }
        .mx_RoomView_searchResultsPanel .mx_EventTile.mx_EventTile_contextual {
            opacity: 0.4;
        }

    .mx_EventTile.mx_EventTile_bubbleContainer {
        display: grid;
        grid-template-columns: 1fr 100px;
    }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_line {
            margin-right: 0;
            grid-column: 1 / 3;
            padding: 0 !important; /* override default padding of mx_EventTile_line so that we can be centered */
        }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_msgOption {
            grid-column: 2;
        }
            .mx_EventTile.mx_EventTile_bubbleContainer:hover .mx_EventTile_line {
                /* To avoid bubble events being highlighted */
                background-color: inherit !important;
            }

    .mx_EventTile.mx_EventTile_isEditing .mx_MessageTimestamp {
        visibility: hidden;
    }

    .mx_EventTile[data-layout="irc"],
    .mx_EventTile[data-layout="group"] {
        --selected-message-border-width: 4px;

        /* TODO: adjust the values for IRC layout */
        --EventTile-box-shadow-offset-x: calc(50px + var(--selected-message-border-width));
        --EventTile-box-shadow-spread-radius: -50px;

        /* this is used for the tile for the event which is selected via the URL. */
    }
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            position: absolute;
        }
            .mx_EventTile[data-layout="irc"] .mx_ImageBody .mx_ImageBody_container, .mx_EventTile[data-layout="group"] .mx_ImageBody .mx_ImageBody_container {
                -webkit-box-pack: start;
                    -ms-flex-pack: start;
                        justify-content: flex-start;
                min-height: 2.75rem;
                min-width: 2.75rem;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply,
        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            position: relative;
            border-radius: 8px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply, .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            margin-right: 10px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            float: right;
            text-align: right;
            position: relative;
            width: 90px;

            /* Hack to stop the height of this pushing the messages apart.
               Replaces margin-top: -6px. This interacts better with a read
               marker being in between. Content overflows. */
            height: 1px;
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .markdown-body .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .markdown-body .mx_EventTile_line {
                background-color: var(--timeline-highlights-color);
            }
            .mx_EventTile[data-layout="irc"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line, .mx_EventTile[data-layout="group"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected .mx_EventTile_line {
                background-color: var(--timeline-highlights-color);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected > .mx_EventTile_line {
                /* TODO: ultimately we probably want some transition on here. */
                -webkit-box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
                        box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                top: 0;
            }

        .mx_EventTile[data-layout="irc"].mx_EventTile_continuation .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_continuation .mx_EventTile_line {
            clear: both;
        }
            .mx_EventTile[data-layout="irc"]:hover .mx_EventTile_line, .mx_EventTile[data-layout="group"]:hover .mx_EventTile_line {
                background-color: var(--timeline-highlights-color);
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble, .mx_EventTile[data-layout="group"] .mx_EventTileBubble {
            margin-inline: auto;
        }

        .mx_EventTile[data-layout="bubble"] .mx_ReplyChain, .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_EventTile[data-layout="irc"] {
        --EventTile_irc_line-padding-block: 1px;

        /* add --right-padding value of MessageTimestamp only */
        /* stylelint-disable-next-line declaration-colon-space-after */
        --EventTile_irc_line_info-margin-inline-start: calc(
            var(--name-width) + var(--icon-width) + 1 * var(--right-padding)
        );

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        padding-top: 0;
    }

        .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
            min-width: 46px;
            min-width: var(--MessageTimestamp-width); /* ensure space for EventTile without timestamp */
            text-align: right;
        }

        .mx_EventTile[data-layout="irc"] > *:not(.mx_DisambiguatedProfile) {
            -webkit-margin-end: var(--right-padding);
                    margin-inline-end: var(--right-padding);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            height: 1.125rem;
            height: var(--irc-line-height);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar {
            -webkit-box-ordinal-group: 2;
                -ms-flex-order: 1;
                    order: 1;
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            /* Need to use important to override the js calculated values. */
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar,
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar > * {
                font-size: 0.625rem !important;
                line-height: calc(0.9375rem - 2px) !important;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            padding: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            background-position: center;
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                /* add a 1px padding top and bottom because our larger
                emoji font otherwise gets cropped by anti-zalgo */
                padding: var(--EventTile_irc_line-padding-block) 0;
                display: inline-block;
            }
                .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_ReplyTile .mx_MTextBody {
                    display: -webkit-box; /* Enable -webkit-line-clamp */
                }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 4;
                -ms-flex-order: 3;
                    order: 3;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            min-width: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 5;
                -ms-flex-order: 4;
                    order: 4;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -webkit-box-ordinal-group: 6;
                -ms-flex-order: 5;
                    order: 5;
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                inset-block-start: -0.3rem; /* (var(--irc-line-height) - avatar height) / 2 */
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyChain {
            margin: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EditMessageComposer_buttons {
            position: relative;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTileBubble {
            position: relative;
            left: var(--EventTile_irc_line_info-margin-inline-start);
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTileBubble.mx_cryptoEvent {
                left: auto;
                left: initial;
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_EventTileBubble {
            left: auto;
            left: initial; /* Cancel the value specified above for the tile inside ReplyTile */
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line .mx_EditMessageComposer {
                /* add space for the stroke on box-shadow */
                -webkit-padding-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
                        padding-inline-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar {
                left: var(--EventTile_irc_line_info-margin-inline-start);
                top: 0;
                margin-right: var(--right-padding);
                padding-block: var(--EventTile_irc_line-padding-block);
            }

            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line {
                -webkit-margin-start: var(--EventTile_irc_line_info-margin-inline-start);
                        margin-inline-start: var(--EventTile_irc_line_info-margin-inline-start);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_emote .mx_EventTile_avatar {
                /* add --right-padding value of MessageTimestamp only */
                margin-left: calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding));
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_footer {
            margin: var(--cpd-space-1-5x) 0;
        }
        .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: 14px;
            left: var(--cpd-space-2x);
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            padding-top: var(--EventTile_group_line-spacing-block-start);
            padding-bottom: var(--EventTile_group_line-spacing-block-end);
            padding-left: var(--EventTile_group_line-spacing-inline-start);
            line-height: var(--EventTile_group_line-line-height);
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            inset: 0 0 0 44px;

            /* Keep height equal to text for alignment */
            height: var(--EventTile_group_line-line-height);
            margin: 1px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            -webkit-margin-end: 10px;
                    margin-inline-end: 10px;
        }

            .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up */
                /* See .mx_EventTile[data-layout=group] .mx_EventTile_line in _EventTile.scss */
                inset-block-start: calc(-1.375rem - 3px);
            }

        .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
        .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon {
            margin-left: 64px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
            margin: var(--cpd-space-1x) var(--EventTile_group_line-spacing-inline-start);
        }

        .mx_EventTile[data-layout="group"] > .mx_DisambiguatedProfile {
            line-height: 1.25rem;
            -webkit-margin-start: 64px;
                    margin-inline-start: 64px;
            max-width: calc(100% - 64px);
        }

        .mx_EventTile[data-layout="group"] > .mx_EventTile_avatar {
            position: absolute;
            z-index: 9;
        }

        .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] {

            /* on ELS we need the margin to allow interaction with the expand/collapse button */
            /* which is normally in the RR gutter */
        }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                margin-right: 80px;
                min-height: 0.875rem;
            }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                /* leave space on both left & right gutters */
                max-width: min(calc(100% - 64px - 80px), 600px);
            }

        .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: 0;
        }

        .mx_EventTile[data-layout="group"].mx_EventTile_info {

            padding-top: 0;
        }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar,
            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                line-height: 1;
                margin: 3px 0 2px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: auto;
                top: initial;
                inset-inline-start: 64px;
                height: 14px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line {
                padding-block: 3px 2px;
                /* 20px: avatar area */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

                .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_MessageTimestamp {
                    top: 0;
                }

            .mx_EventTile[data-layout="group"].mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line {
                /* TODO: check if this would be necessary; */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

    .mx_EventTile[data-layout="bubble"] {
        /* Other half of the gutter is provided by margin-bottom on the last tile
        of the section */
        margin-top: calc(var(--gutterSize) / 2);
        margin-left: var(--EventTile_bubble-margin-inline-start);

        /* Reset default values. TODO: remove */
        max-width: none;
        max-width: initial;
        padding-top: 0;
    }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                position: absolute;
                inset-block-start: auto;

                /* as close to right gutter without clipping as possible */
                inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end));

                /* (EventTileLine.line-height - ReadReceiptGroup.height) / 2 */
                /* this centers the ReadReceiptGroup if we’ve got a single line */
                inset-block-end: calc((1.125rem - 24px) / 2);
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble {
            /* Timestamps are inside the tile, so the width can be less constrained */
            max-width: 600px;
        }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation {
            margin-top: 2px;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection {
            /* Other half of the gutter is provided by margin-top on the first
            tile of the section */
            margin-bottom: calc(var(--gutterSize) / 2);
        }
        .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody, .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
            line-height: 1; /* remove spacing between lines */
        }
        /* Apply only collapsed events block */
        .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line {
            /* add --right-padding value of MessageTimestamp and avatar only */
            /* stylelint-disable-next-line declaration-colon-space-after */
            padding-left: calc(
                var(--name-width) + var(--icon-width) + 46px + 2 * var(--right-padding)
            );
            padding-left: calc(
                var(--name-width) + var(--icon-width) + var(--MessageTimestamp-width) + 2 * var(--right-padding)
            );
        }
        .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line {
            padding-left: 64px;
        }

        .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line {
            /* override padding-left $left-gutter */
            -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                    padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
        }

.mx_EventTile_content {
    /*
    all the overflow-y: hidden; are to trap Zalgos -
    but they introduce an implicit overflow-x: auto.
    so make that explicitly hidden too to avoid random
    horizontal scrollbars occasionally appearing, like in
    https://github.com/vector-im/vector-web/issues/1154
    */
    overflow-y: hidden;
    overflow-x: hidden;
    margin-right: var(--EventTile_content-margin-inline-end);
}

    .mx_EventTile_content .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit; /* inherit the colour from the dark or light theme by default (but not for code blocks) */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;

        /*
        // actually, removing the Italic TTF provides
        // better results seemingly

        // compensate for Nunito italics being terrible
        // https://github.com/google/fonts/issues/1726
        em {
            transform: skewX(-14deg);
            display: inline-block;
        }
        */
    }

        .mx_EventTile_content .markdown-body pre,
        .mx_EventTile_content .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f4f6fa;
            background-color: var(--system, #f4f6fa);
        }

        .mx_EventTile_content .markdown-body code:not(pre *) {
            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 4px;
            /* The horizontal padding is added by github-markdown-css .markdown-body */
            padding: var(--cpd-space-0-5x) 0;
            /* Avoid inline code blocks to be sticked when on multiple lines */
            line-height: 1.375rem;
            /* Avoid the border to be glued to the other words */
            margin-right: var(--cpd-space-0-5x);
        }

        .mx_EventTile_content .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_EventTile_content .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_EventTile_content .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_EventTile_content .markdown-body pre{

            border: 1px solid #6f7882;

            border: 1px solid var(--quinary-content, #6f7882);
}

            .mx_EventTile_content .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_EventTile_content .markdown-body pre code > * {
                    display: inline;
                }

        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2,
        .mx_EventTile_content .markdown-body h3,
        .mx_EventTile_content .markdown-body h4,
        .mx_EventTile_content .markdown-body h5,
        .mx_EventTile_content .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }

        /* Make h1 and h2 the same size as h3. */
        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_EventTile_content .markdown-body a {
            color: var(--primary-color);
        }

        .mx_EventTile_content .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            border-radius: 2px;
            padding: 0 10px;
        }

        /* Support arbitrarily large marker numbers */
        .mx_EventTile_content .markdown-body ol {
            list-style-position: inside;
            -webkit-padding-start: 0.5em;
                    padding-inline-start: 0.5em;
        }

        /* Override nested lists being lower-roman */
        .mx_EventTile_content .markdown-body ol ol,
        .mx_EventTile_content .markdown-body ul ol {
            list-style-type: revert;
        }

        /* Make list type disc to match rich text editor */
        .mx_EventTile_content .markdown-body ul {
            list-style-type: disc;
        }

        /* override styles from the base markdown CSS that put markdown content on its own line,
           as this isn't what we want for richtext emote content.
         */
        .mx_EventTile_content .markdown-body::before {
            display: none;
        }

        .mx_EventTile_content .markdown-body::after {
            display: none;
        }

/* Spoiler stuff */
.mx_EventTile_spoiler {
    cursor: pointer;

    /* clear button styles */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    text-align: inherit;
}

    .mx_EventTile_spoiler .mx_EventTile_spoiler_reason {
        color: #acacac;
        font-size: 0.6875rem;
    }

    .mx_EventTile_spoiler .mx_EventTile_spoiler_content {
        -webkit-filter: blur(5px) saturate(0.1) sepia(1);
                filter: blur(5px) saturate(0.1) sepia(1);
        -webkit-transition-duration: 0.5s;
                transition-duration: 0.5s;
        pointer-events: none;
    }

    .mx_EventTile_spoiler.visible > .mx_EventTile_spoiler_content {
        -webkit-filter: none;
                filter: none;
        -webkit-user-select: auto;
           -moz-user-select: auto;
            -ms-user-select: auto;
                user-select: auto;
        pointer-events: auto;
    }

.mx_EventTile_bigEmoji {
    font-size: 48px;
    line-height: 57px;
}

    .mx_EventTile_bigEmoji .mx_Emoji {
        font-size: inherit !important;
    }

.mx_EventTile_e2eIcon {
    position: relative;
    width: 14px;
    height: 14px;
    display: block;
}

    .mx_EventTile_e2eIcon svg {
        height: inherit;
        width: inherit;
        display: block;
    }
    .mx_EventTile_body a:hover {
        text-decoration: underline;
    }

    .mx_EventTile_body pre {
        border: 1px solid transparent;
    }

        .mx_EventTile:hover .mx_EventTile_body pre,
        .mx_EventTile:focus-visible:focus-within .mx_EventTile_body pre {
            border: 1px solid #2e2f32;
            border: 1px solid var(--tertiary-content, #2e2f32);
        }

    /* selector wrongly applies to pill avatars but those have explicit width/height passed at a higher specificity */
    .mx_EventTile_body.markdown-body img {
        -o-object-fit: contain;
           object-fit: contain;
        -o-object-position: left top;
           object-position: left top;

        /* Override the default colors of the 'github-markdown-css' library
        (#fff for light theme, #000 for dark theme) to match the inherited theme */
        background-color: inherit !important;
    }

    .mx_EventTile_clamp .mx_EventTile_body {
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
    }

    .mx_EventTile_body .mx_EventTile_pre_container {
        /* For correct positioning of _copyButton (See TextualBody) */
        position: relative;
    }

        /* Emoji are enlarged in prose, but a code block's line numbers are one fixed-height block
           per line and cannot follow a line that an enlarged emoji has made taller. */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_Emoji {
            font-size: inherit;
        }
            .mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_button, .mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_button {
                visibility: visible;
            }

        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_collapsedCodeBlock {
            max-height: 30vh;
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-3x);
        }

        /* Inserted adjacent to <pre> blocks, (See TextualBody) */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button {
            position: absolute;
            top: var(--cpd-space-2x);
            right: var(--cpd-space-2x);
            visibility: hidden;
        }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button.mx_EventTile_buttonBottom {
                top: 33px;
            }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button svg {
                width: inherit;
                height: inherit;
                display: block;
                color: var(--timeline-text-color);
            }

.mx_EventTile_lineNumbers {
    float: left;
    margin: 0 0.5em 0 -1.5em;
    color: gray;
}

    .mx_EventTile_lineNumbers span {
        text-align: right;
        display: block;
        padding-left: 1em;
    }

.mx_EventTile_button {
    display: inline-block;
    cursor: pointer;
}

.mx_EventTile_tileError {
    color: red;
    text-align: center;

    /* Remove some of the default tile padding so that the error is centered */
    margin-right: 0;
}

    .mx_EventTile_tileError .mx_EventTile_line {
        padding-left: 0;
        margin-right: 0;
    }

        .mx_EventTile_tileError .mx_EventTile_line span {
            padding: var(--cpd-space-1x) var(--cpd-space-2x);
        }

    .mx_EventTile_tileError a {
        margin-left: 1em;
    }

.mx_EventTile:hover .mx_ThreadActionBar,
.mx_EventTile.mx_EventTile_actionBarFocused .mx_ThreadActionBar,
[data-whatinput="keyboard"] .mx_EventTile:focus-within .mx_ThreadActionBar,
.mx_EventTile:focus-visible:focus-within .mx_ThreadActionBar {
    visibility: visible;
}

.mx_EventTile[data-shape="ThreadsList"],
.mx_EventTile[data-shape="Notification"] {
    --topOffset: var(--cpd-space-3x);
    --leftOffset: 48px; /* notification dot next to the timestamp */

    margin: calc(var(--topOffset) + 1px) 0 var(--topOffset); /* include the height of horizontal line */
    padding: var(--cpd-space-2x);
    border-radius: 8px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -ms-flex-flow: wrap;
        flex-flow: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_EventTile[data-shape="ThreadsList"]::after,
    .mx_EventTile[data-shape="ThreadsList"]::before,
    .mx_EventTile[data-shape="Notification"]::after,
    .mx_EventTile[data-shape="Notification"]::before {
        content: "";
        position: absolute;
    }

    .mx_EventTile[data-shape="ThreadsList"]::after, .mx_EventTile[data-shape="Notification"]::after { /* exclude the height of horizontal line */
        inset: auto calc(-1 * var(--cpd-space-2x)) calc(-1 * var(--topOffset) - 1px) calc(var(--leftOffset) + var(--cpd-space-2x));

        height: 1px;
        background-color: #6f7882;
        background-color: var(--quinary-content, #6f7882);
        pointer-events: none; /* disable the message action bar on hover */
    }

    .mx_EventTile[data-shape="ThreadsList"]::before, .mx_EventTile[data-shape="Notification"]::before {
        inset: 0;
        pointer-events: none; /* ensures the title for the sender name can be correctly displayed */
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="total"]::before, .mx_EventTile[data-shape="Notification"][data-notification="total"]::before {
        background-color: var(--cpd-color-icon-tertiary);
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="highlight"]::before, .mx_EventTile[data-shape="Notification"][data-notification="highlight"]::before {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }
        .mx_EventTile[data-shape="ThreadsList"]:last-child::after, .mx_EventTile[data-shape="Notification"]:last-child::after {
            content: normal;
            content: initial;
        }
        .mx_EventTile[data-shape="ThreadsList"]:last-child, .mx_EventTile[data-shape="Notification"]:last-child{

        margin-bottom: 0;
}

    .mx_EventTile[data-shape="ThreadsList"]:first-child, .mx_EventTile[data-shape="Notification"]:first-child {
        margin-top: 0;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_avatar, .mx_EventTile[data-shape="Notification"] .mx_EventTile_avatar {
        inset: var(--cpd-space-2x) auto auto var(--cpd-space-2x);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_details, .mx_EventTile[data-shape="Notification"] .mx_EventTile_details {
        overflow: hidden;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName {
            -webkit-box-flex: 0;
                -ms-flex: none;
                    flex: none;
            max-width: 100%;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_line, .mx_EventTile[data-shape="Notification"] .mx_EventTile_line {
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding-bottom: 0;
        -webkit-padding-start: var(--leftOffset);
                padding-inline-start: var(--leftOffset);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_MessageTimestamp, .mx_EventTile[data-shape="Notification"] .mx_MessageTimestamp {
        font-size: 0.75rem;
        width: auto;
        width: initial; /* Cancel the default width */
        overflow: hidden; /* ensure correct overflow behavior */
        text-overflow: ellipsis;
        position: static;
        position: initial;
        margin-left: auto; /* to ensure it's end-aligned even if it's the only element of its parent */
    }

    .mx_EventTile[data-shape="ThreadsList"]:hover, .mx_EventTile[data-shape="Notification"]:hover {
        background-color: var(--panels, var(--cpd-color-gray-600));
    }

    /* ThreadsList has always group layout */
        .mx_EventTile[data-shape="ThreadsList"][data-layout="group"]:hover .mx_EventTile_line, .mx_EventTile[data-shape="Notification"][data-layout="group"]:hover .mx_EventTile_line {
            background-color: inherit;
            -webkit-box-shadow: none;
                    box-shadow: none; /* don't show the verification left stroke in the thread list */
        }
    .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies {
        margin-top: var(--cpd-space-2x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        font: var(--cpd-font-body-sm-regular);
    }

        .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies > svg {
            display: inline-block;
            height: 18px;
            width: 18px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies .mx_ThreadPanel_replies_amount {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-weight: var(--cpd-font-weight-semibold);
            white-space: nowrap;
            position: relative;
            padding: 0 var(--cpd-space-3x) 0 var(--cpd-space-2x);
        }

.mx_ThreadSummary_icon {
    display: inline-block;
    margin-top: var(--cpd-space-2x);
    margin-bottom: var(--cpd-space-2x);
}

    .mx_ThreadSummary_icon > svg {
        display: inline-block;
        height: 18px;
        width: 18px;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
        vertical-align: middle;
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
        margin-top: -2px;
    }

    a.mx_ThreadSummary_icon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

/* For style rules of ThreadView, see _ThreadPanel.pcss */
.mx_ThreadView {
    --ThreadView_group_spacing-start: 56px; /* 56px: 64px - 8px (padding) */
    --ThreadView_group_spacing-end: 8px;
} /* same as padding */

    .mx_ThreadView .mx_EventTile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_ThreadView .mx_EventTile .mx_EventTile_roomName {
            display: none;
        }

        /* handling for hidden events (e.g reactions) in the thread view */
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
                position: absolute;
                /* Align with hidden event content */
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
                margin-top: -2px;
                margin-bottom: 0;
            }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line {

                -webkit-padding-start: 0;

                        padding-inline-start: 0;
                line-height: 0.75rem;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_RedactedBody {
                    width: auto;
                    font-size: 0.75rem;
                }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"],
            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] {
                padding-top: 0;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_avatar, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_avatar {
                    /* 14px: avatar width, 4px: align with text */
                    left: calc(46px + 14px - 4px);
                    left: calc(var(--MessageTimestamp-width) + 14px - 4px);
                    z-index: 9; /* position above the hover styling */
                }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_MessageTimestamp, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_MessageTimestamp {
                    top: 2px; /* Align with avatar */
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
                        /* 14px: avatar width, 6px: 20px - 14px */
                        -webkit-margin-start: calc(14px + 6px);
                                margin-inline-start: calc(14px + 6px);
                    }
                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar {
                    inset-inline-start: 0;
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_RedactedBody {
                        -webkit-margin-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                                margin-inline-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                    }

        .mx_ThreadView .mx_EventTile[data-layout="irc"],
        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            -webkit-padding-before: var(--cpd-space-4x);
                    padding-block-start: var(--cpd-space-4x);
        }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                -webkit-margin-end: var(--ThreadView_group_spacing-end);
                        margin-inline-end: var(--ThreadView_group_spacing-end);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding-block: var(--BaseCard_EventTile_line-padding-block);

                /* Add padding to align message text with summary text */
                /* See: .mx_EventTile[data-layout="group"] .mx_EventTile_line */
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start);
            }
                    .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer {
                        -webkit-padding-start: 0;
                                padding-inline-start: 0; /* align start of first letter with that of the event body */
                    }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                /* Align with message text and summary text */
                -webkit-margin-start: var(--ThreadView_group_spacing-start);
                        margin-inline-start: var(--ThreadView_group_spacing-start);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"].mx_EventTile_continuation, .mx_ThreadView .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
                -webkit-padding-before: 0;
                        padding-block-start: 0; /* Cancel padding-block-start */
            }

        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            width: 100%;
        }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: var(--cpd-space-4x); /* gap between the avatar and the sender ID */
                -webkit-padding-start: var(--cpd-space-2x);
                        padding-inline-start: var(--cpd-space-2x);
            }

                .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a {
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    min-width: 0;
                    min-width: initial;
                    max-width: 100%;
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                }

                    .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a .mx_DisambiguatedProfile {
                        -webkit-margin-start: 8px;
                                margin-inline-start: 8px;
                        -webkit-box-flex: 1;
                            -ms-flex: 1;
                                flex: 1;
                    }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                position: absolute; /* for IRC layout */
                top: 2px; /* Align with mx_EventTile_content */
            }

        .mx_ThreadView .mx_EventTile[data-layout="bubble"] {
            margin-inline: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"]::before {
                inset-inline: calc(-1 * var(--BaseCard_EventTile-spacing-inline));
                z-index: auto; /* enable background color on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine {
                padding-block: 0;
                -webkit-padding-start: 0;
                        padding-inline-start: 0;
                max-width: var(--EventBubbleTile_line-max-width);
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] {
                -webkit-box-align: end;
                    -ms-flex-align: end;
                        align-items: flex-end;
            }

                .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line.mx_EventTile_mediaLine {
                    margin: 0 var(--EventTile_bubble_line-margin-inline-end) 0 0; /* align with normal messages */
                }
            .mx_ThreadView .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line, .mx_ThreadView .mx_GenericEventListSummary[data-layout="group"] > .mx_EventTile_line {
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start); /* align summary text with message text */
                -webkit-padding-end: var(--ThreadView_group_spacing-end);
                        padding-inline-end: var(--ThreadView_group_spacing-end); /* align summary text with message text */
            }

/* Cascading - compact modern layout on the main timeline and the right panel */
    .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] {
        --MatrixChat_useCompactLayout_group-padding-top: var(--cpd-space-1x);
        --MatrixChat_useCompactLayout-top-avatar: 2px;
        --MatrixChat_useCompactLayout_line-spacing-block: 0px;

        padding-top: var(--MatrixChat_useCompactLayout_group-padding-top);
    }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            padding-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-1x);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info {
            padding-top: 0; /* same as the padding for non-compact .mx_EventTile.mx_EventTile_info */
            font-size: 0.8125rem;
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: 0;
                margin-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_reply {
                line-height: 1.25rem;
            }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote {
            padding-top: var(--cpd-space-2x); /* add a bit more space for emotes so that avatars don't collide */
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_avatar {
                top: var(--MatrixChat_useCompactLayout-top-avatar);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_reply {
                padding-bottom: 1px;
            }
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_line,
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_reply {
                    padding-bottom: var(--MatrixChat_useCompactLayout_line-spacing-block);
                }

        /* Cascading - apply zero padding to every element including mx_EventTile_emote */
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: var(--MatrixChat_useCompactLayout-top-avatar);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            margin: 0px;
        }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up - 2rem */
                inset-block-start: -2rem;
            }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body p,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ul,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ol,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body dl,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body blockquote,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body pre,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body table {
                margin-bottom: var(--cpd-space-1x); /* 1/4 of the non-compact margin-bottom */
            }

.mx_EventTile_details {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: -webkit-fill-available;
    width: -moz-available;
    width: stretch;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--cpd-space-2x);
    margin-left: var(--leftOffset);
}
    .mx_EventTile_details .mx_EventTile_truncated {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.mx_EventTile_footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* Media query for mobile UI */
@media only screen and (max-width: 480px) {
    .mx_EventTile_content {
        margin-right: 0;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_HistoryTile {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_HistoryTile svg {
        color: #91a1c0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --irc-line-height: 1.125rem;
}

.mx_IRCLayout {
    --name-width: 80px; /* cf. ircDisplayNameWidth on Settings.tsx */
    --event-tile-irc-name-width: var(--name-width);
    --icon-width: 14px;
    --line-height: var(--irc-line-height);
    --right-padding: 5px;

    line-height: 1.125rem !important;

    line-height: var(--line-height) !important;
}

    .mx_IRCLayout blockquote {
        margin: 0;
    }
        .mx_IRCLayout .mx_NewRoomIntro > h2 {
            line-height: normal;
            line-height: initial; /* Cancel var(--irc-line-height) */
        }
        .mx_IRCLayout .mx_ReplyChain .mx_DisambiguatedProfile {
            width: auto;
            width: initial;
            -webkit-box-ordinal-group: initial;
                -ms-flex-order: initial;
                    order: initial;
            -ms-flex-negative: initial;
                flex-shrink: initial; /* Unset flex-shrink to prevent long display name blowout */
        }
            .mx_IRCLayout .mx_ReplyChain .mx_EventTile_emote > .mx_EventTile_avatar {
                margin-left: 0;
                margin-left: initial;
            }

        .mx_IRCLayout .mx_ReplyChain .mx_MessageTimestamp {
            width: auto;
            width: initial;
        }

        /**
         * adding the icon back in the document flow
         * if it's not present, there's no unwanted wasted space
         */
        .mx_IRCLayout .mx_ReplyChain .mx_EventTile_e2eIcon {
            position: relative;
            -webkit-box-ordinal-group: 0;
                -ms-flex-order: -1;
                    order: -1;
        }

    .mx_IRCLayout .mx_ProfileResizer {
        --resizer-width: 15px;
        --resizer-a11y: 3px; /* Magic number, to be replaced with something more proper from the perspective of a11y */

        position: absolute;
        height: 100%;
        width: 15px;
        width: var(--resizer-width);
        cursor: col-resize;
        z-index: 100;

        /* Add width of every element rendered before the resizer (including padding for the avatar and the display
           name), subtracting the resizer width itself to prevent the resizer from overlapping the text and moving
           the resizer a bit to the left to make it easier to avoid selecting the resizer when highlighting text.
           Please note that MessageTimestamp does not have inline padding. */
        inset-inline-start: calc(
            18px + 46px + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - 15px -
                3px
        );
        inset-inline-start: calc(
            var(--RoomView_MessageList-padding) + var(--MessageTimestamp-width) + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - var(--resizer-width) -
                var(--resizer-a11y)
        );
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InvitedIconView {
    color: var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JumpToBottomButton {
    z-index: 1000;
    position: absolute;
    /* 12 because height is 50 but button is only 38 = 12+(50-38) = 24 */
    bottom: 12px;
    right: 24px;
    width: 38px;
    /* give it a fixed height so the badge doesn't make */
    /* it taller and pop upwards when visible */
    height: 50px;
    text-align: center;
}

.mx_JumpToBottomButton_badge {
    position: relative;
    top: -12px;
    border-radius: 16px;
    font-weight: bold;
    font-size: 0.75rem;
    line-height: 0.875rem;
    text-align: center;
    /* to be able to get it centered */
    /* with text-align in parent */
    display: inline-block;
    padding: 0 4px;
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-icon-secondary);
}

.mx_JumpToBottomButton_highlight .mx_JumpToBottomButton_badge {
    background-color: var(--cpd-color-icon-critical-primary);
}

.mx_JumpToBottomButton_scrollDown {
    position: relative;
    display: block;
    height: 38px;
    border-radius: 50%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_JumpToBottomButton_scrollDown svg {
        height: inherit;
        width: inherit;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 7px 8px 7px 6px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveContentSummary {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}
        .mx_LiveContentSummary .mx_LiveContentSummary_text svg {
            display: inline-block;
            vertical-align: text-bottom;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            width: 16px;
            height: 16px;
            margin-right: 4px;
        }

        .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

            .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

    .mx_LiveContentSummary .mx_LiveContentSummary_participants svg {
        display: inline-block;
        vertical-align: middle;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        width: 16px;
        height: 16px;
        margin-right: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListHeaderView {
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
    max-height: 112px;
}

    .mx_MemberListHeaderView .mx_MemberListHeaderView_container {
        margin-top: var(--cpd-space-6x);
        width: 100%;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_small {
        margin-left: var(--cpd-space-3x);
        margin-right: var(--cpd-space-4x);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_large {
        width: 288px;
        height: 36px;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_label {
        padding: var(--cpd-space-6x) 0 var(--cpd-space-2x) var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
        color: var(--cpd-color-text-secondary);
        font: var(--cpd-font-body-sm-semibold);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_search {
        width: 240px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        margin-left: var(--cpd-space-4x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListView {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 0;
}

    .mx_MemberListView .mx_MemberListView_container {
        height: 100%;
    }

    .mx_MemberListView .mx_MemberListView_separator {
        margin: 0;
        border: none;
        border-top: 2px solid var(--cpd-color-bg-subtle-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 56px;
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-300);
}

    .mx_MemberTileView .mx_MemberTileView_left,
    .mx_MemberTileView .mx_MemberTileView_right {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
    }

    .mx_MemberTileView .mx_MemberTileView_left {
        -ms-flex-preferred-size: 209px;
            flex-basis: 209px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        min-width: 0;
    }

    .mx_MemberTileView .mx_MemberTileView_name {
        font: var(--cpd-font-body-md-medium);
        min-width: 0;
    }

        .mx_MemberTileView .mx_MemberTileView_name .mx_DisambiguatedProfile {
            font: inherit;
        }

    .mx_MemberTileView .mx_MemberTileView_userLabel {
        font: var(--cpd-font-body-sm-regular);
        color: var(--cpd-color-text-secondary);
        margin-left: var(--cpd-space-4x);
    }

    .mx_MemberTileView .mx_MemberTileView_avatar {
        position: relative;
        height: 32px;
        width: 32px;
    }

    .mx_MemberTileView .mx_MemberTileView_presence {
        position: absolute;
        right: -2px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposer_wrapper {
    vertical-align: middle;
    margin: auto;
    border-top: 1px solid var(--roomlist-separator-color);
    position: relative;
    padding-left: 42px;
    padding-right: 16px;
}

.mx_MessageComposer_replaced_wrapper {
    margin-left: auto;
    margin-right: auto;
}

.mx_MessageComposer_replaced_valign {
    height: 60px;
    display: table-cell;
    vertical-align: middle;
}

.mx_MessageComposer_roomReplaced_icon {
    float: left;
    margin-right: 20px;
    margin-top: 5px;
    width: 31px;
    height: 31px;
}

.mx_MessageComposer_roomReplaced_header {
    font-weight: bold;
}

.mx_MessageComposer_row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_MessageComposer_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 6px;
}
    .mx_MessageComposer .mx_MessageComposer_avatar {
        position: absolute;
        left: 26px;
    }

        .mx_MessageComposer .mx_MessageComposer_avatar .mx_BaseAvatar {
            display: block;
        }

.mx_MessageComposer_e2eIconWrapper {
    height: 12px; /* Match the height of the E2E icon for alignment */
    width: 12px;
    position: absolute;
    left: 20px;
    top: 22px;
    margin-right: 0; /* Counteract the E2EIcon class */
    margin-left: 3px; /* Counteract the E2EIcon class */
}

    .mx_MessageComposer_e2eIconWrapper .mx_MessageComposer_e2eIcon {
        margin: 0;
        width: inherit;
        height: inherit;
    }

.mx_MessageComposer_noperm_error {
    width: 100%;
    height: 60px;
    font-style: italic;
    color: var(--timeline-text-secondary-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MessageComposer_input {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    vertical-align: middle;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 60px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    font: var(--cpd-font-body-md-regular);
    margin-right: 6px;
}

    .mx_MessageComposer_input pre {
        background-color: rgba(0, 0, 0, 0.04);
        border-radius: 3px;
        padding: 10px;
    }

    .mx_MessageComposer_input textarea {
        display: block;
        width: 100%;
        padding: 0px;
        margin-top: 6px;
        margin-bottom: 6px;
        border: 0px;
        resize: none;
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        color: var(--timeline-text-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        font: var(--cpd-font-body-md-regular);
        max-height: 120px;
        overflow: auto;
    }

        /* hack for FF as vertical alignment of custom placeholder text is broken */
        .mx_MessageComposer_input textarea::-moz-placeholder {
            line-height: 100%;
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            opacity: 1;
        }

        .mx_MessageComposer_input textarea::-webkit-input-placeholder {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

.mx_MessageComposer_button_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}

.mx_MessageComposer_button {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_MessageComposer_button svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
    .mx_MessageComposer_button:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

        .mx_MessageComposer_button:hover svg {
            color: var(--cpd-color-icon-primary);
        }
    .mx_MessageComposer_button{
    padding: 3px;
    height: 20px;
    width: 20px;
}

    .mx_MessageComposer_button:last-child {
        margin-right: auto;
    }
        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
            background: var(--cpd-color-bg-subtle-primary);
        }

        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
            background-color: var(--cpd-color-icon-primary);
            z-index: 2;
        }

    .mx_MessageComposer_button svg {
        width: inherit;
        height: inherit;
    }
    .mx_MessageComposer_wysiwyg .mx_MessageComposer_wrapper {
        padding-left: 16px;
        margin-top: 6px;
        margin-bottom: 12px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_row {
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_actions {
        /* Height of the composer editor */
        height: 40px;
    }

    .mx_MessageComposer_wysiwyg .mx_MediaBody {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_button {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover {
        background-color: var(--panels, var(--cpd-color-gray-600));
    }

        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover svg {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
                background: var(--accent-color-300);
            }

            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
                background-color: #0dbd8b;
                background-color: var(--accent-color, #0dbd8b);
                z-index: 2;
            }

.mx_MessageComposer_buttonMenu {
    width: 24px;
    height: 24px;
    padding: 1px;
}

    .mx_MessageComposer_buttonMenu svg {
        width: 24px;
        height: 24px;
    }

.mx_MessageComposer_sendMessage {
    cursor: pointer;
    position: relative;
    padding: var(--cpd-space-2x);
    border-radius: 100%;
    background-color: var(--cpd-color-icon-accent-tertiary);
    height: 16px;
    width: 16px;
}

    .mx_MessageComposer_sendMessage svg {
        height: inherit;
        width: inherit;

        color: var(--cpd-color-icon-on-solid-primary);
    }
    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_input {
        min-height: 50px;
    }

    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_noperm_error {
        height: 50px;
    }

/**
 * Unstable compact mode
 */

.mx_MessageComposer.mx_MessageComposer--compact {
    margin-right: 0;
}

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_wrapper {
        padding: 0 0 0 25px;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIconWrapper {
        left: 0;
    }
        .mx_MessageComposer.mx_MessageComposer--compact:not(.mx_MessageComposer_e2eStatus) .mx_MessageComposer_wrapper {
            padding: 0;
        }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_button:last-child {
        margin-right: 0;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIcon {
        left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposerFormatBar {
    display: none;
    width: calc(32px * 6);
    height: 32px;
    position: absolute;
    cursor: pointer;
    border-radius: 8px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-disabled);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* equal to z-index of mx_ReplyPreview and mx_RoomView_statusArea (1000) */
    /* but as it appears after them in the DOM, will appear on top. */
    z-index: 1000;
}

    .mx_MessageComposerFormatBar.mx_MessageComposerFormatBar_shown {
        display: block;
    }

    .mx_MessageComposerFormatBar > * {
        white-space: nowrap;
        display: inline-block;
        position: relative;
        margin: 2px;
    }

    .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button {
        width: 28px;
        height: 28px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        vertical-align: middle;
        background: none;
        border: none;
        padding: 0;
    }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button svg {
            width: inherit;
            height: inherit;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: var(--cpd-space-1x);
            color: var(--cpd-color-icon-secondary);
        }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover {
            background: var(--cpd-color-bg-subtle-secondary);
            border-radius: 6px;
            z-index: 1;
        }

            .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover svg {
                color: var(--cpd-color-icon-primary);
            }

.mx_MessageComposerFormatBar_buttonTooltip {
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 54px;
    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NewRoomIntro {
    margin: 40px 0 48px 64px;
}
        .mx_NewRoomIntro .mx_MiniAvatarUploader_hasAvatar:not(.mx_MiniAvatarUploader_busy):not(:hover) .mx_MiniAvatarUploader_indicator {
            display: none;
        }

    .mx_NewRoomIntro .mx_NewRoomIntro_buttons {
        margin-top: 28px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: 14px 12px;
    }

        .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton {
            line-height: 1.5rem;
            display: inline-block;
        }

            .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton svg {
                display: inline-block;
                color: white;
                width: 20px;
                height: 20px;
                margin-right: 5px;
                vertical-align: text-bottom;
            }

    .mx_NewRoomIntro > h2 {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-4x);
        font: var(--cpd-font-heading-md-semibold);
    }

    .mx_NewRoomIntro > p {
        margin: 0;
        font-size: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OverflowTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
    cursor: pointer;
}

.mx_OverflowTileView_text {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow: hidden;
    font: var(--cpd-font-body-md-regular);
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: italic;
}

.mx_OverflowTileView:hover {
    padding-right: 30px;
    position: relative; /* to keep the chevron aligned */
}

    .mx_OverflowTileView:hover .mx_OverflowTileView_chevron {
        display: inline;
    }

.mx_OverflowTileView_chevron {
    position: absolute;
    top: calc(50% - 12px); /* center */
    right: 0;
    width: 24px;
    height: 24px;
    color: #91a1c0;
    display: none;
}

.mx_OverflowTileView_icon {
    padding-left: 3px;
    padding-right: 12px;
    padding-top: 4px;
    padding-bottom: 4px;
    position: relative;
    line-height: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedEventTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

    .mx_PinnedEventTile .mx_PinnedEventTile_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
        /* Remove avatar width and space between the avatar and the wrapper */
        /* We need it to make the location fit */
        width: calc(100% - var(--cpd-space-4x) - 32px);
        /* Prevent a long sender name to overflow the tile */
        overflow: hidden;
    }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-1x);
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top .mx_PinnedEventTile_sender {
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
                font: var(--cpd-font-body-md-semibold);
            }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread svg {
                width: 20px;
                fill: var(--cpd-color-icon-tertiary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                color: var(--cpd-color-text-secondary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread button {
                background: transparent;
                border: none;
                cursor: pointer;
                text-decoration: underline;
            }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PinnedMessageBanner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--cpd-space-4x);
    /* 64px = 63px + 1px from the bottom border */
    height: 63px;
    padding: 0 var(--cpd-space-4x);

    background-color: var(--cpd-color-bg-canvas-default);
    border-bottom: 1px solid var(--cpd-color-gray-400);

    /* From figma */
    -webkit-box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
            box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
}

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main {
        color: inherit;
        background: transparent;
        border: none;
        text-align: start;
        cursor: pointer;

        height: 100%;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_content {
            display: grid;
            grid-template:
                "indicators pinIcon title" auto
                "indicators pinIcon message" auto;
            grid-column-gap: var(--cpd-space-2x);
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators {
            grid-area: indicators;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-0-5x);
            height: 100%;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator {
                width: var(--cpd-space-0-5x);
                background-color: var(--cpd-color-gray-600);
                height: 100%;
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--active {
                background-color: var(--cpd-color-icon-accent-primary);
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--hidden {
                background-color: transparent;
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_PinIcon {
            grid-area: pinIcon;
            align-self: center;
            fill: var(--cpd-color-icon-secondary-alpha);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title {
            grid-area: title;
            font: var(--cpd-font-body-sm-regular);
            color: var(--cpd-color-text-action-accent);
            line-height: 20px;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title .mx_PinnedMessageBanner_title_counter {
                font: var(--cpd-font-body-sm-semibold);
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_message {
            grid-area: message;
            line-height: 20px;
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_redactedMessage {
            grid-area: message;
            height: 20px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_actions {
        white-space: nowrap;
    }
    .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content {
        grid-template: "indicators pinIcon message" auto;
    }

        .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content .mx_PinnedMessageBanner_message {
            line-height: 40px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: var(--cpd-color-bg-canvas-default);
    border-radius: 100%;
}

    .mx_PresenceIconView .mx_PresenceIconView_online {
        color: var(--cpd-color-icon-accent-primary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_offline,
    .mx_PresenceIconView .mx_PresenceIconView_dnd {
        color: var(--cpd-color-icon-tertiary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_unavailable {
        color: var(--cpd-color-icon-quaternary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceLabel {
    font-size: 0.6875rem;
    opacity: 0.5;
}

.mx_PresenceLabel_online {
    color: var(--cpd-color-text-success-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReadReceiptGroup {
    --ReadReceiptGroup_EventBubbleTile-spacing-end: 78px;

    position: relative;
    display: inline-block;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    z-index: 1;
}

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        height: 16px;
        padding: 4px;
        border-radius: 6px;
    }
            .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button.mx_AccessibleButton:hover {
                background: var(--timeline-highlights-color);
            }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_remainder {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.6875rem;
        line-height: 1rem;
        margin-right: 4px;
    }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container {
        position: relative;
        display: block;
        height: 100%;
    }

        .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container .mx_BaseAvatar {
            /* Compound uses a border on default avatars but no border on actual images, we want a border in all cases */
            -webkit-box-sizing: content-box;
                    box-sizing: content-box;
            border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default)) !important;
            /* Reset the line height as we are no longer box-sizing border-box. 14px because avatar is set at 14px in component */
            line-height: 14px;
            position: absolute;
            will-change: left, top;
            -webkit-transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            -webkit-transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
            transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
        }

.mx_ReadReceiptGroup_popup {
    max-height: 300px;
    width: 220px;
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: left;
    font-size: 12px;
    line-height: 15px;

    right: 0;
}

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_top {
        top: 8px;
    }

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_bottom {
        bottom: 8px;
    }

    .mx_ReadReceiptGroup_popup .mx_ReadReceiptGroup_title {
        font-size: 12px;
        line-height: 15px;
        margin: 16px 16px 8px;
        font-weight: var(--cpd-font-weight-semibold);
        /* shouldn’t be actually focusable */
        outline: none;
    }
        .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            padding: 4px;
            margin: 0 12px;
            border-radius: 8px;
        }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:hover {
                background: #f5f8fa;
                background: var(--menu-selected-color, #f5f8fa);
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:last-child {
                margin-bottom: 8px;
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_BaseAvatar {
                margin: 6px 8px;
                -ms-flex-item-align: center;
                    align-self: center;
                justify-self: center;
                -ms-flex-negative: 0;
                    flex-shrink: 0; /* Long names should not shrink the picture */
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                -ms-flex-negative: 1;
                    flex-shrink: 1;
                overflow: hidden;
            }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name p {
                    margin: 2px 0;
                    text-overflow: ellipsis;
                    overflow: hidden;
                    white-space: nowrap;
                }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name .mx_ReadReceiptGroup_secondary {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

.mx_ReadReceiptGroup_person--tooltip {
    overflow-y: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyPreview {
    border: 1px solid var(--roomlist-separator-color);
    border-bottom: none;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    max-height: 50vh;
    overflow: auto;
}

    .mx_ReplyPreview .mx_ReplyPreview_section {
        border-bottom: 1px solid var(--roomlist-separator-color);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        row-gap: var(--cpd-space-2x);
        padding: var(--cpd-space-2x) var(--cpd-space-2x) 0 0;
    }

        .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 8px;
               -moz-column-gap: 8px;
                    column-gap: 8px;

            color: var(--timeline-text-color);
            font-weight: 400;
            opacity: 0.4;
        }

            .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header .mx_ReplyPreview_header_cancel svg {
                color: var(--timeline-text-color);
                width: 20px;
                height: 20px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }
    .mx_RoomView_body .mx_ReplyPreview {
        /* Add box-shadow to the reply preview on the main (left) panel only. */
        /* It is not added to the preview on the (right) panel for threads and a chat with a maximized widget. */
        -webkit-box-shadow: 0px -16px 32px tranparent;
                box-shadow: 0px -16px 32px tranparent;
        border-radius: 8px 8px 0 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 Tulir Asokan <tulir@maunium.net>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyTile {
    position: relative;
    padding: 2px 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ReplyTile > a {
        display: grid;
        grid-template:
            "sender" auto
            "message" auto
            / 100%;
        text-decoration: none;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        -webkit-transition: color ease 0.15s;
        transition: color ease 0.15s;
        grid-gap: 2px;
        gap: 2px;
        max-width: 100%; /* avoid overflow with wide content */
    }

        .mx_ReplyTile > a:hover {
            color: var(--timeline-text-color);
        }

    .mx_ReplyTile .mx_RedactedBody {
        line-height: 1.125rem;
    }

    .mx_ReplyTile .mx_RedactedBody,
    .mx_ReplyTile .mx_HiddenBody {
        padding: 4px 0 2px 20px;
    }

        .mx_ReplyTile .mx_RedactedBody::before, .mx_ReplyTile .mx_HiddenBody::before {
            height: 13px;
            width: 13px;
            top: 3px;
        }

    /* We do reply size limiting with CSS to avoid duplicating the TextualBody component. */
    .mx_ReplyTile .mx_EventTile_content {
        grid-area: message;

        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body.mx_EventTile_bigEmoji {
            line-height: 1.375rem !important; /* Same as var(--EventTile_group_line-line-height) */
            font-size: 0.875rem !important; /* Override the big emoji override */
        }

        /* in order to keep the message on two lines, we need to make the body inline */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body {
            display: inline;
        }

        /* The annotation wrapper is flex in normal timeline messages, but that stops
        -webkit-line-clamp from trimming long edited quotes down to two lines. */
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-annotation-wrapper] {
            display: contents;
        }

        /* Hide line numbers and edited indicator */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_lineNumbers,
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-edited-marker] {
            display: none;
        }

        /* Hack to cut content in <pre> tags too */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre {
            overflow-x: scroll;
            overflow-y: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            padding: 4px;
        }

        .mx_ReplyTile .mx_EventTile_content .markdown-body blockquote,
        .mx_ReplyTile .mx_EventTile_content .markdown-body dl,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ol,
        .mx_ReplyTile .mx_EventTile_content .markdown-body p,
        .mx_ReplyTile .mx_EventTile_content .markdown-body pre,
        .mx_ReplyTile .mx_EventTile_content .markdown-body table,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ul {
            margin-bottom: 4px;
        }

    .mx_ReplyTile.mx_ReplyTile_info {
        padding-top: 0;
    }

    .mx_ReplyTile.mx_ReplyTile_inline > a {
        /* Render replies to emotes inline with the sender avatar */
        grid-template:
            "sender        message" auto
            / -webkit-max-content auto;
        grid-template:
            "sender        message" auto
            / max-content auto;
        gap: 4px; /* increase spacing */
    }

    .mx_ReplyTile .mx_ReplyTile_sender {
        grid-area: sender;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 4px;
    }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_DisambiguatedProfile {
            margin: 0;
        }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_BaseAvatar {
            /* Prevent crushing by the flexbox */
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomHeader {
    height: 64px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-3x) 0 calc(var(--cpd-space-3x) + var(--cpd-space-1-5x));
    border-bottom: 1px solid var(--cpd-color-gray-400);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-transition: all 0.2s ease;
    transition: all 0.2s ease;
}

    .mx_RoomHeader button:has(svg.mx_RoomHeader_toggled) {
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader:hover {
    background-color: var(--cpd-color-bg-action-secondary-hovered);
}

.mx_RoomHeader_infoWrapper {
    /* unset button styles */
    color: inherit;
    background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
    background: initial;
    border: medium none currentcolor;
    border: initial;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    cursor: pointer;
    gap: var(--cpd-space-3x);
    text-align: left;
    height: 100%;
    padding: 0;
}

.mx_RoomHeader_info {
    /* We want the spacing to be 64px, 13x = 52px but we have a flex gap of
       12px set on the flex container, which sums up to 64 */
    padding-right: var(--cpd-space-13x);
}

.mx_RoomHeader_truncated {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;

    overflow: hidden;
    word-break: break-all;
    text-overflow: ellipsis;
}

.mx_RoomHeader_heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1-5x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_RoomHeader_icon {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader .mx_FacePile {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    border-radius: 9999px;
    padding: var(--cpd-space-1-5x);
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font: var(--cpd-font-body-sm-medium);
}

    /* RoomAvatar doesn't pass classes down to avatar
    So set style here
    using div because compound classes are not stable */
    .mx_RoomHeader .mx_FacePile > div {
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }

    .mx_RoomHeader .mx_FacePile:hover {
        color: var(--timeline-text-color);
        background: var(--cpd-color-bg-subtle-primary);
    }

    .mx_RoomHeader .mx_FacePile.mx_FacePile_toggled {
        background: var(--cpd-color-bg-success-subtle);
        color: var(--cpd-color-text-action-accent);
        font: var(--cpd-font-body-sm-semibold);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader .mx_BaseAvatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader_videoCallOption {
    /* Workaround for https://github.com/element-hq/compound/issues/331 */
    min-width: 240px;
}

.mx_RoomHeader .mx_RoomHeader_toggled {
    fill: var(--cpd-color-icon-accent-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomInfoLine {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: inline-block;
}

    .mx_RoomInfoLine svg {
        margin-right: 6px;
        vertical-align: -2px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_RoomInfoLine .mx_RoomInfoLine_members {
        color: inherit;
        text-decoration: inherit;
        font-weight: inherit;
    }

        .mx_RoomInfoLine .mx_RoomInfoLine_members::before {
            content: "·"; /* visual separator */
            margin: 0 6px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomKnocksBar {
    background-color: var(--cpd-color-bg-subtle-secondary);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-2x) var(--cpd-space-4x);
}

.mx_RoomKnocksBar_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-3x);
}

.mx_RoomKnocksBar_paragraph {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: var(--cpd-font-size-body-sm);
    margin: 0;
}

.mx_RoomKnocksBar_link {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_action,
.mx_RoomKnocksBar_avatar {
    -ms-flex-item-align: center;
        align-self: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomKnocksBar_action + .mx_RoomKnocksBar_action {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_avatar + .mx_RoomKnocksBar_avatar {
    margin-left: calc(var(--cpd-space-4x) * -1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewBar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
}

    .mx_RoomPreviewBar h3 {
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

        .mx_RoomPreviewBar h3.mx_RoomPreviewBar_spinnerTitle {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            margin: 0;
        }

    .mx_RoomPreviewBar h3,
    .mx_RoomPreviewBar .mx_RoomPreviewBar_message p {
        /* break-word, with fallback to break-all, which is wider supported */
        word-break: break-all;
        word-break: break-word;
    }

    .mx_RoomPreviewBar .mx_Spinner {
        width: auto;
        height: auto;
        margin: 10px 10px 10px 0;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomPreviewBar .mx_RoomPreviewBar_footer {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

        .mx_RoomPreviewBar .mx_RoomPreviewBar_footer .mx_Spinner {
            vertical-align: middle;
            display: inline-block;
        }

.mx_RoomPreviewBar_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_RoomPreviewBar_message {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

    .mx_RoomPreviewBar_message p {
        overflow-wrap: break-word;
    }

.mx_RoomPreviewBar_panel {
    padding: 8px 8px 8px 20px;

    -webkit-box-orient: horizontal;

    -webkit-box-direction: normal;

        -ms-flex-direction: row;

            flex-direction: row;
}

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding: 3px 8px;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions > * {
            margin-left: 12px;
        }

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message > * {
            margin: 4px;
        }

/* With maximised widgets, the panel fits in better when rounded */
.mx_MainSplit_maximisedWidget .mx_RoomPreviewBar_panel {
    margin: 8px;
    margin: var(--container-gap-width);
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2); /* Shared with right panel */
    margin-top: 0; /* Already covered by apps drawer */
    border-radius: 8px;
}

.mx_RoomPreviewBar_dialog {
    margin: auto;
    -webkit-box-sizing: content;
            box-sizing: content;
    width: 400px;
    /* Matches the room preview card this stands in place of, and the panel form of this same bar */
    border-radius: 8px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 20px;
    text-align: center;
}

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message > * {
            margin: 5px 0 20px 0;
        }

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton {
            padding: 7px 50px; /* extra wide */
        }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions > * {
            margin-top: 12px;
        }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
            /* to account for the padding of the primary button which causes inconsistent look between */
            /* subsequent secondary (text) buttons */
            margin-bottom: 7px;
        }
.mx_RoomPreviewBar_Invite {
    max-height: 100vh;
    overflow-y: auto;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
}

.mx_RoomPreviewBar_Invite h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: pre-wrap;
    overflow: hidden;
}

.mx_RoomPreviewBar_inviter {
    font-weight: var(--cpd-font-weight-semibold);
}

a.mx_RoomPreviewBar_inviter {
    text-decoration: underline;
    cursor: pointer;
}

.mx_RoomPreviewBar_inviter_mxid {
    color: var(--cpd-color-text-secondary);
}

.mx_RoomPreviewBar_icon {
    margin-right: 8px;
    vertical-align: text-top;
}

.mx_RoomPreviewBar_fullWidth {
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewCard {
    padding: var(--cpd-space-8x) var(--cpd-space-6x) !important; /* Override SpaceRoomView's default padding */
    margin: auto;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 480px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    border-radius: 8px;
    position: relative;
    font: var(--cpd-font-body-md-regular);
}

    .mx_RoomPreviewCard .mx_RoomPreviewCard_notice {
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        margin-top: var(--cpd-space-6x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_notice svg {
            height: 1em;
            width: 1em;
            margin-right: var(--cpd-space-2x);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            vertical-align: -2px;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-bottom: var(--cpd-space-5x);
        font-size: 0.9375rem;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div {
            margin-left: var(--cpd-space-2x);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_name {
                line-height: 1.125rem;
            }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_mxid {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video {
            width: 22px;
            height: 22px;
            padding: 14px;
            border-radius: calc((50px + 2 * 3px) / 2);
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
            border: 3px solid #f4f6fa;
            border: 3px solid var(--system, #f4f6fa);

            left: calc(-50px / 4 - 3px);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video svg {
                width: inherit;
                height: inherit;
                color: #ffffff;
            }

        /* XXX Remove this when video rooms leave beta */
        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_BetaCard_betaPill {
            position: absolute;
            inset-block-start: var(--cpd-space-8x);
            inset-inline-end: var(--cpd-space-6x);
        }

    .mx_RoomPreviewCard h1.mx_RoomPreviewCard_name {
        margin: var(--cpd-space-4x) 0 !important; /* Override SpaceRoomView's default margins */
    }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_topic {
        line-height: 1.375rem;
        margin-top: var(--cpd-space-4x);
        max-height: 160px;
        overflow-y: auto;
    }

    .mx_RoomPreviewCard .mx_FacePile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: var(--cpd-space-4x);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_RoomPreviewCard .mx_FacePile :first-child {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons {
        margin-top: var(--cpd-space-5x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-5x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons .mx_AccessibleButton {
            max-width: 200px;
            padding: 14px 0;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSearchAuxPanel {
    /* use `min-height` rather than height, to allow room for the text to wrap if the window is narrow */
    min-height: 84px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-color: var(--cpd-color-bg-canvas-default);
    border-style: solid;
    border-width: 1px 0;
    padding: var(--cpd-space-3x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-2x);
}

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: inherit; /* flex */
        gap: var(--cpd-space-2x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        overflow: hidden;
    }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary > svg {
            padding: var(--cpd-space-2x);
            border-radius: var(--cpd-space-2x);
            background-color: var(--cpd-color-bg-subtle-secondary);
            color: var(--cpd-color-icon-secondary);
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            font-size: 0.9375rem;
            line-height: 1.375rem;
            overflow: hidden;
        }

            .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text span {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_SearchWarning {
            display: contents;
            font-size: 0.8125rem;
            line-height: 1.25rem;
            color: var(--cpd-color-text-secondary);
        }

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_buttons {
        display: inherit; /* flex */
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningBar {
    max-height: 235px;
    background-color: #f7f7f7;
    padding-left: 20px;
    padding-right: 20px;
    overflow: scroll;
}

.mx_RoomUpgradeWarningBar_wrapped {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
}

.mx_RoomUpgradeWarningBar_header {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    font-weight: bold;
}

.mx_RoomUpgradeWarningBar_body {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_RoomUpgradeWarningBar_upgradelink {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    text-decoration: underline;
}

.mx_RoomUpgradeWarningBar_small {
    color: var(--timeline-text-secondary-color);
    font-size: 70%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendMessageComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 6px;
    /* don't grow wider than available space */
    min-width: 0;
}

    .mx_SendMessageComposer .mx_BasicMessageComposer {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        /* min-height at this level so the mx_BasicMessageComposer_input */
        /* still stays vertically centered when less than 55px. */
        /* We also set this to ensure the voice message recording widget */
        /* doesn't cause a jump. */
        min-height: 55px;
    }

        .mx_SendMessageComposer .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
            padding: 3px 0;
            /* this will center the contenteditable */
            /* in it's parent vertically */
            /* while keeping the autocomplete at the top */
            /* of the composer. The parent needs to be a flex container for this to work. */
            margin: auto 0;
            /* max-height at this level so autocomplete doesn't get scrolled too */
            max-height: 140px;
            overflow-y: auto;
        }
}
@layer app-web{

.mx_Stickers_content {
    overflow: hidden;
}

.mx_Stickers_content_container {
    overflow: hidden;
    height: 300px;
}
    #mx_persistedElement_stickerPicker .mx_AppTileFullWidth {
        height: auto;
        height: initial;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-left: none;
        border-right: none;
        border-bottom: none;
    }

    #mx_persistedElement_stickerPicker .mx_AppTileMenuBar {
        padding: 0;
    }

    #mx_persistedElement_stickerPicker iframe {
        /* Sticker picker depends on the fixed height previously used for all tiles */
        height: 283px; /* height of the popout minus the AppTile menu bar */
    }

.mx_Stickers_contentPlaceholder {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
}

.mx_Stickers_contentPlaceholder p {
    max-width: 200px;
}

.mx_Stickers_addLink {
    display: inline;
    cursor: pointer;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThirdPartyMemberInfo {
    padding: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TopUnreadMessagesBar {
    z-index: 1000;
    position: absolute;
    top: 24px;
    right: 24px;
    width: 38px;
}

.mx_TopUnreadMessagesBar::after {
    content: "";
    position: absolute;
    top: -8px;
    left: 11px;
    width: 4px;
    height: 4px;
    border-radius: 16px;
    background-color: var(--cpd-color-bg-canvas-default);
    border: 6px solid var(--cpd-color-icon-accent-tertiary);
    pointer-events: none;
}

.mx_TopUnreadMessagesBar_scrollUp {
    height: 38px;
    width: 38px;
    border-radius: 19px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_TopUnreadMessagesBar_scrollUp svg {
        width: 24px;
        height: 24px;
        padding: 6px;
        color: var(--cpd-color-icon-tertiary);
    }

.mx_TopUnreadMessagesBar_markAsRead {
    display: block;
    width: 18px;
    height: 18px;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    border-radius: 10px;
    margin: 5px auto;
}

    .mx_TopUnreadMessagesBar_markAsRead svg {
        width: 16px;
        height: 16px;
        padding: 1px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserIdentityWarning {
    /* 42px is the padding-left of .mx_MessageComposer_wrapper in res/css/views/rooms/_MessageComposer.pcss */
    margin-left: calc(-42px + 18px);
    margin-left: calc(-42px + var(--RoomView_MessageList-padding));
}

    .mx_UserIdentityWarning .mx_UserIdentityWarning_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_BaseAvatar {
            margin-left: var(--cpd-space-2x);
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main {
            margin-left: var(--cpd-space-6x);
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main.critical {
            color: var(--cpd-color-text-critical-primary);
        }
.mx_UserIdentityWarning.critical {
    background: linear-gradient(180deg, var(--cpd-color-red-100) 0%, var(--cpd-color-theme-bg) 100%);
}

.mx_MessageComposer.mx_MessageComposer--compact > .mx_UserIdentityWarning {
    margin-left: calc(-25px + 18px);
    margin-left: calc(-25px + var(--RoomView_MessageList-padding));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VoiceRecordComposerTile_stop {
    /* 20px + 4px padding + 2px border makes this a 32px square (as intended) */
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border: 2px solid #e3e8f0;
    border-radius: 32px;
    margin-right: 2px; /* between us and the waveform component */
}

    .mx_VoiceRecordComposerTile_stop svg {
        width: inherit;
        height: inherit;
        color: #ff4b55;
    }

.mx_VoiceRecordComposerTile_delete {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 2px; /* distance from left edge of waveform container (container has some margin too) */
}

    .mx_VoiceRecordComposerTile_delete svg {
        width: inherit;
        height: inherit;
        color: #2e2f32;
    }

.mx_VoiceRecordComposerTile_uploadingState {
    margin-right: 10px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_VoiceRecordComposerTile_failedState {
    margin-right: 21px;
}

    .mx_VoiceRecordComposerTile_failedState .mx_VoiceRecordComposerTile_uploadState_badge {
        display: inline-block;
        margin-right: 4px;
        vertical-align: middle;
    }

.mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer {
    /* Note: remaining class properties are in the PlayerContainer CSS. */

    /* fixed height to reduce layout jumps with the play button appearing */
    /* https://github.com/vector-im/element-web/issues/18431 */
    height: 32px;

    margin: 6px; /* force the composer area to put a gutter around us */
    margin-right: 6px; /* isolate from stop/send button */

    position: relative; /* important for the live circle */
}

    .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording {
        /* We are putting the circle in this padding, so we need +10px from the regular */
        /* padding on the left side. */
        padding-left: 22px;
    }

        .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            -webkit-animation: recording-pulse 2s infinite;
                    animation: recording-pulse 2s infinite;

            content: "";
            background-color: #ff4b55;
            width: 10px;
            height: 10px;
            position: absolute;
            left: 12px; /* 12px from the left edge for container padding */
            top: 17px; /* vertically center (middle align with clock) */
            border-radius: 10px;
        }
        .mx_MessageComposer_wysiwyg .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            top: 15px; /* vertically center (middle align with clock) */
        }

/* The keyframes are slightly weird here to help make a ramping/punch effect */
/* for the recording dot. We start and end at 100% opacity to help make the */
/* dot feel a bit like a real lamp that is blinking: the animation ends up */
/* spending a lot of its time showing a steady state without a fade effect. */
/* This lamp effect extends into why the 0% opacity keyframe is not in the */
/* midpoint: lamps take longer to turn off than they do to turn on, and the */
/* extra frames give it a bit of a realistic punch for when the animation is */
/* ramping back up to 100% opacity. */

/* Target animation timings: steady for 1.5s, fade out for 0.3s, fade in for 0.2s */
/* (intended to be used in a loop for 2s animation speed) */
@-webkit-keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}
@keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}

@media (forced-colors: active) {
    .mx_VoiceMessagePrimaryContainer {
        outline: 1px solid transparent;
    }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WhoIsTypingTile {
    margin-left: -18px; /* offset padding from mx_RoomView_MessageList to center avatars */
    padding-top: 18px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* position the indicator in the same place horizontally as .mx_EventTile_avatar. */
.mx_WhoIsTypingTile_avatars {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 82px;
            flex: 0 0 82px; /* 18 (padding on message list) + 64 (padding on event lines) */
    text-align: center;
}

.mx_WhoIsTypingTile_avatars > :not(:first-child) {
    margin-left: -12px;
}

.mx_WhoIsTypingTile_avatars .mx_BaseAvatar {
    border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 40px;
}

.mx_WhoIsTypingTile_remainingAvatarPlaceholder {
    position: relative;
    display: inline-block;
    color: var(--timeline-text-color);
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 40px;
    width: 24px;
    height: 24px;
    line-height: 1.5rem;
    font-size: 0.8em;
    vertical-align: top;
    text-align: center;
}

.mx_WhoIsTypingTile_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font: var(--cpd-font-body-md-semibold);
    color: var(--timeline-text-color-50pct);
}

.mx_WhoIsTypingTile_label > span {
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-size: 25px;
    background-position: left bottom;
    background-repeat: no-repeat;
    padding-bottom: 15px;
    display: block;
}
    .mx_MatrixChat_useCompactLayout .mx_WhoIsTypingTile {
        padding-top: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditWysiwygComposer {
    --EditWysiwygComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 8px;
    padding: 8px 3px;
    padding: 8px var(--EditWysiwygComposer-padding-inline);
}

    .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content {
        border-radius: 4px;
        border: solid 1px var(--roomlist-separator-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content:focus {
            border-color: var(--accent-color-400);
        }

    .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
        .mx_EditWysiwygComposer .mx_FormattingButtons_Button:first-child {
            margin-left: 0px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendWysiwygComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 13px;
    gap: 8px;
}

    .mx_SendWysiwygComposer .mx_FormattingButtons {
        margin-left: 12px;
    }

    .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor {
        border: 1px solid;
        border-color: #6f7882;
        border-color: var(--quinary-content, #6f7882);
        padding: 6px 11px 6px 12px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
        gap: 10px;
    }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_E2EIcon {
            margin: 0 0 7px 0;
            width: 12px;
            height: 12px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] {
            border-radius: 14px;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] .mx_WysiwygComposer_Editor_container {
                margin-top: 3px;
                margin-bottom: 3px;
            }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="false"] {
            border-radius: 40px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            min-height: 22px;
            margin-bottom: 2px;
            /* don't grow wider than available space */
            width: 0;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
                /* this will center the contenteditable */
                /* in it's parent vertically */
                /* while keeping the autocomplete at the top */
                /* of the composer. The parent needs to be a flex container for this to work. */
                margin: auto 0;
                /* the line height is $font-22px (set in _Editor.pcss) and we want to display 16 lines */
                max-height: calc(16 * 1.375rem);
                overflow-y: auto;
            }
    .mx_SendWysiwygComposer-focused .mx_WysiwygComposer_Editor {
        border-color: #6f7882;
        border-color: var(--quaternary-content, #6f7882);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WysiwygComposer_Editor_container {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --placeholder: "";
}

    @-webkit-keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
        line-height: 1.375rem;
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* we always have a <br/> tag at the end of the html, we need it to be present at first then hide it as soon as
        we have any other elements */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content br:not(:only-child) {
            display: none;
        }

        /* Force caret nodes to be selected in full so that they can be */

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content p {
            margin-top: 0;
            margin-bottom: 0;
            /* this may seem redundant, but we need to handle zero content formatting tags, which occur when we split a
               formatting tag into paragraphs */
            min-height: 1.375rem;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul,
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ol {
            margin-top: 0;
            margin-bottom: 0;
            -webkit-padding-start: var(--cpd-space-7x);
                    padding-inline-start: var(--cpd-space-7x);
        }

        /* Make list type disc to match rich text editor */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul {
            list-style-type: disc;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content blockquote {
            color: #777;
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            border-radius: 2px;
            padding: 0 10px;

            -webkit-margin-before: 0;

                    margin-block-start: 0;
            -webkit-margin-after: 0;
                    margin-block-end: 0;
            -webkit-margin-start: 0;
                    margin-inline-start: 0;
            -webkit-margin-end: 0;
                    margin-inline-end: 0;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content > pre {
            font-size: 0.9375rem;
            line-height: 1.5rem;

            margin-top: 0;
            margin-bottom: 0;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);

            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 2px;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *) {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 4px;
            padding: var(--cpd-space-0-5x);
        }

            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *):empty {
                border: medium none currentcolor;
                border: initial;
                padding: 0;
                padding: initial;
            }

        /* this selector represents what will become a pill
        nb despite there being mx_UserPill and mx_RoomPill classes appended to these pills
        in the current composer, there don't appear to be any styles associated with those classes
        in this repo */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type] {
            /* combine mx_Pill from _Pill.pcss */
            padding: 0.0625rem 0.4em;
            line-height: 1.0625rem;
            border-radius: 1rem;
            display: inline;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            max-width: 100%;
            overflow: hidden;

            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest));

            /* ...with the overrides from _BasicMessageComposer.pcss */
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
            position: relative;
            cursor: inherit; /* We don't want indicate clickability */
            text-overflow: ellipsis;
            white-space: nowrap;
        }

            /* avatar pseudo element */
            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type]::before {
                /* After consolidation, all of the styling from _Pill.scss was being overridden,
                so take what is in _BasicMessageComposer.pcss as the starting point */
                display: inline-block;
                content: var(--avatar-letter);
                background: var(--avatar-background), var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

                width: 1rem;
                min-width: 1rem; /* ensure the avatar is not compressed */
                height: 1rem;
                line-height: 1rem;
                text-align: center;

                /* Get the positioning of the avatar just right for consistency with timeline */
                -webkit-margin-start: -0.4rem;
                        margin-inline-start: -0.4rem;
                -webkit-margin-end: 0.24rem;
                        margin-inline-end: 0.24rem;
                vertical-align: 0.12rem;

                background-repeat: no-repeat;
                background-size: 1rem;
                border-radius: 1rem;

                color: #ffffff;

                color: var(--avatar-color, #ffffff);
                font-weight: bold;
                font-size: 0.6275rem;
            }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content_placeholder::before {
        content: var(--placeholder);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
        color: var(--cpd-color-text-secondary);
    }

.mx_WysiwygComposer_AutoCompleteWrapper {
    position: relative;
}

    /* Due to the fact that editing a message now has a larger amount of grey
    colour above it (due to the rich text buttons above the composer), we need
    to give the autocomplete a bit more visual separation by using a border.
    */
    .mx_WysiwygComposer_AutoCompleteWrapper > .mx_Autocomplete {
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FormattingButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 8px;
}

    .mx_FormattingButtons .mx_FormattingButtons_Button {
        --size: 28px;
        cursor: pointer;
        height: 28px;
        height: var(--size);
        width: 28px;
        width: var(--size);
        background-color: transparent;
        border: none;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        border-radius: 5px;
    }
        .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover {
            background: var(--panels, var(--cpd-color-gray-600));
        }

            .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover .mx_FormattingButtons_Icon {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_FormattingButtons .mx_FormattingButtons_active {
        background: var(--accent-color-300);
    }

        .mx_FormattingButtons .mx_FormattingButtons_active .mx_FormattingButtons_Icon {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }
        .mx_FormattingButtons .mx_FormattingButtons_disabled .mx_FormattingButtons_Icon {
            color: #6f7882;
            color: var(--quinary-content, #6f7882);
        }

    .mx_FormattingButtons .mx_FormattingButtons_Icon {
        --size: 16px;
        height: 16px;
        height: var(--size);
        width: 16px;
        width: var(--size);
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }
    .mx_FormattingButtons_Tooltip_KeyboardShortcut kbd {
        text-align: center;
        display: inline-block;
        text-transform: capitalize;
        font-family: Inter, sans-serif;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LinkModal {
    padding: var(--cpd-space-8x);
    max-width: 600px;
    height: 341px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_LinkModal .mx_LinkModal_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        gap: var(--cpd-space-2x);
        margin-top: 7px;
    }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_Field {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: 40px;
        }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: end;
                -ms-flex-align: end;
                    align-items: flex-end;
        }

            .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons .mx_Dialog_buttons {
                display: inline-block;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AvatarSetting_avatar {
    width: 120px;
    min-width: 120px; /* so it doesn't get crushed by the flexbox in languages with longer words */
    height: 120px;
    margin-top: 8px;
    position: relative;
}

    .mx_AvatarSetting_avatar.mx_AvatarSetting_avatarDisplay:hover .mx_AvatarSetting_hover {
        opacity: 1;
    }

    .mx_AvatarSetting_avatar > * {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        margin-top: 8px;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_link_sm {
        width: 100%;
    }

    .mx_AvatarSetting_avatar > img {
        display: block;
        height: 120px;
        width: inherit;
        border-radius: 120px;
        cursor: pointer;
        -o-object-fit: cover;
           object-fit: cover;
    }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton {
        width: 28px;
        height: 28px;
        border-radius: 32px;
        border: 1px solid var(--cpd-color-bg-canvas-default);
        background-color: var(--cpd-color-bg-canvas-default);

        position: absolute;
        bottom: 0;
        right: 0;
        text-align: center;
        cursor: pointer;
    }

        .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton svg {
            position: relative;
            top: 3px;
        }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton:hover,
    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton_active {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

.mx_AvatarSetting_removeMenuItem svg,
.mx_AvatarSetting_removeMenuItem span {
    color: var(--cpd-color-text-critical-primary) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FontScalingPanel_preview {
    --FontScalingPanel_preview-padding-block: 9px;

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 10px;
    padding: 0 var(--cpd-space-4x) 9px var(--cpd-space-4x);
    padding: 0 var(--cpd-space-4x) var(--FontScalingPanel_preview-padding-block) var(--cpd-space-4x);
    pointer-events: none;
    display: flow-root;
}

    .mx_FontScalingPanel_preview.mx_IRCLayout {
        padding-top: 9px;
    }

    .mx_FontScalingPanel_preview .mx_EventTile[data-layout="bubble"] {
        margin-top: 30px;
    }

    .mx_FontScalingPanel_preview .mx_EventTile_msgOption {
        display: none;
    }

.mx_FontScalingPanel_Dropdown {
    width: 120px;
    /* Override default mx_Field margin */
    margin-bottom: var(--cpd-space-2x) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ImageSizePanel_radios {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-4x);
}

    .mx_ImageSizePanel_radios > label {
        margin-right: 68px; /* keep the boxes separate */
        cursor: pointer;
    }

    .mx_ImageSizePanel_radios .mx_ImageSizePanel_size {
        display: block;
        color: #6f7882;
        color: var(--quinary-content, #6f7882);
        width: 221px;
        height: 148px;
        margin-bottom: 14px; /* move radio button away from bottom edge a bit */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_IntegrationManager .mx_Dialog_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 60%;
        height: 70%;
        max-width: none;
        max-width: initial;
        max-height: none;
        max-height: initial;
    }

    .mx_IntegrationManager .mx_Dialog {
        padding: 0;
        overflow: hidden;
    }

    .mx_IntegrationManager iframe {
        background-color: #fff;
        border: 0;
        width: 100%;
        height: 100%;
    }

    .mx_IntegrationManager h3 {
        margin-block: var(--cpd-space-5x);
    }

    .mx_IntegrationManager .mx_IntegrationManager_loading,
    .mx_IntegrationManager .mx_IntegrationManager_error {
        text-align: center;
    }

    .mx_IntegrationManager .mx_IntegrationManager_error h3 {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleSettings_upgradeRequired {
    margin-left: 16px;
    padding: 4px 16px;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
    border-radius: 8px;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
    font-size: 0.75rem;
    line-height: 0.9375rem;
}
    .mx_JoinRuleSettings_spacesWithAccess > h4 {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
    }

    .mx_JoinRuleSettings_spacesWithAccess > span {
        font: var(--cpd-font-body-md-medium);
        line-height: 32px; /* matches height of avatar for v-align */
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        display: inline-block;
    }

        .mx_JoinRuleSettings_spacesWithAccess > span .mx_BaseAvatar {
            margin-right: 8px;
        }

        .mx_JoinRuleSettings_spacesWithAccess > span + span {
            margin-left: 16px;
        }

.mx_JoinRuleSettings_radioButton {
    padding-top: 16px;
}

    .mx_JoinRuleSettings_radioButton .mx_StyledRadioButton_content {
        margin-left: 14px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        display: block;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled + span {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton + span {
        display: inline-block;
        margin-left: 34px;
        margin-bottom: 16px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_JoinRuleSettings_radioButton + span + .mx_StyledRadioButton {
            border-top: 1px solid #6f7882;
            border-top: 1px solid var(--quinary-content, #6f7882);
        }

.mx_JoinRuleSettings_labelledCheckbox {
    font: var(--cpd-font-body-md-regular);
    margin-top: var(--cpd-space-2x);
}

.mx_JoinRuleSettings_recommended {
    color: var(--accent-color-1000);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_KeyboardShortcut kbd {
        padding: 5px;
        border-radius: 4px;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        min-width: 20px;
        text-align: center;
        display: inline-block;
        border: 1px solid #c7c7c7;
        -webkit-box-shadow: 0 2px #c7c7c7;
                box-shadow: 0 2px #c7c7c7;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LayoutSwitcher_LayoutSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /**
     * The settings form has a default gap of 10px
     * We want to have a bigger gap between the layout options
     */
    gap: var(--cpd-space-4x) !important;
}

    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio {
        border: 1px solid var(--cpd-color-border-interactive-primary);
        border-radius: var(--cpd-space-2x);
    }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            /*
             * 10px
             */
            gap: calc(var(--cpd-space-2x) + var(--cpd-space-0-5x));
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline,
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            margin: var(--cpd-space-3x);
        }

        /**
         * Override the event tile style to make it fit in the selector
         * Tweak also hover style and remove action bar
         */
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            pointer-events: none;
        }

            .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile {
                margin: 0;
            }

                /**
                 * Hide the message options and message action bar in the preview
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_msgOption,
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_MessageActionBar {
                    display: none;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_content {
                    margin-right: 0;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="group"] {
                    margin-top: calc(var(--cpd-space-3x) * -1);
                }

                /**
                 * Add margin to center the bubble
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="bubble"] {
                    /**
                     * Add the layout margin and the margin to vertically center the bubble
                     */
                    margin-top: var(--cpd-space-6x);
                    margin-right: 34px;
                    -ms-flex-negative: 1;
                        flex-shrink: 1;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
                    display: none; /* hide the container used for spacing consistency */
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_line {
                    max-width: 100%;
                }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_separator {
            border-top: 0;
            border-bottom: 1px solid var(--cpd-color-border-interactive-secondary);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_description {
        color: var(--timeline-text-color);
    }

    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_detail {
        margin-top: -4px;
        margin-bottom: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* The labs notice banner renders directly below this, so keep them apart. When it is absent
       the margin collapses with the section's own, leaving the spacing below unchanged. */
    .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error {
        margin-bottom: var(--cpd-space-4x);
    }

        /* The alert lays its actions out at flex-basis 0, which would otherwise break the label
           across lines rather than wrapping it below the message. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error .mx_AccessibleButton {
            white-space: nowrap;
        }

        /* Compound drops the action onto its own row for any alert under 600px, which leaves this
           short message sitting beside a mostly empty second row. Wrap on demand instead, so the
           action only moves below the message once the two genuinely stop fitting side by side.
           The children are the alert's content row and the message within it. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div {
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div > div:first-child {
                -webkit-box-flex: 1;
                    -ms-flex: 1 1 auto;
                        flex: 1 1 auto;

                /* Compound tints only the icon on a critical alert and leaves the message in the
                   default text colour, so state it here to read like warnings elsewhere. The action
                   is a sibling of this element and so keeps its own colour. */
                color: var(--cpd-color-text-critical-primary);
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSection_subSections {
        color: var(--timeline-text-color);
        gap: 32px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description {
        margin-bottom: 20px;
    }
            .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description .mx_SettingsSubsection_text .mx_NotificationSettings2_notificationBadge {
                vertical-align: baseline;
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                margin: 0 2px;
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_content {
        margin-top: 12px;
        gap: 12px;
        justify-items: stretch;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_StyledRadioButton_content {
        margin-left: 10px;
        margin-right: 10px;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer {
        margin-top: 16px;
    }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer.mx_TagComposer_disabled {
            opacity: 0.7;
        }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags {
            margin-top: 16px;
            gap: 8px;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag {
                border-radius: 18px;
                padding: 6px 12px;
                background: var(--roomlist-highlights-color);
                margin: 0;
            }

                .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag .mx_Tag_delete {
                    background: #2e2f32;
                    background: var(--tertiary-content, #2e2f32);
                    color: #fff;
                    -ms-flex-item-align: initial;
                        align-self: initial;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserNotifSettings_grid {
    width: calc(100% + 12px); /* +12px to line up center of 'Noisy' column with toggle switches */
    display: grid;
    grid-template-columns: auto repeat(3, 62px);
    place-items: center center;
    grid-gap: 8px;
    gap: 8px;
}

    /* Override StyledRadioButton default styles */
    .mx_UserNotifSettings_grid .mx_StyledRadioButton {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_content {
            display: none;
        }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
            display: none;
        }

    /* left align section heading */
    .mx_UserNotifSettings_grid .mx_SettingsSubsectionHeading {
        justify-self: start;
    }

.mx_UserNotifSettings_gridRowContainer {
    display: contents;
}

.mx_UserNotifSettings_gridRow {
    display: contents;
}

.mx_UserNotifSettings_gridRowLabel {
    padding-inline: unset; /* Remove default legend padding */
    justify-self: start;
    /* <legend> does not accept */
    /* display: inline | inline-block */
    /* force it inline using float */
    float: left;
}

.mx_UserNotifSettings_gridColumnLabel {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font: var(--cpd-font-body-sm-semibold);
}
.mx_UserNotifSettings_gridRowError {
    /* occupy full row */
    grid-column: 1/-1;
    justify-self: start;
    padding-right: 30%;
    /* collapse half of the grid-gap */
    margin-top: calc(-1 * var(--cpd-space-1x));
}

.mx_UserNotifSettings_floatingSection {
    margin-top: 40px;
}

    .mx_UserNotifSettings_floatingSection > div:first-child {
        /* section header */
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_UserNotifSettings_floatingSection > table {
        border-collapse: collapse;
        border-spacing: 0;
        margin-top: 8px;
    }

        .mx_UserNotifSettings_floatingSection > table tr > td:first-child {
            /* Just for a bit of spacing */
            padding-right: 8px;
        }

.mx_UserNotifSettings_clearNotifsButton {
    margin-top: 8px;
}

.mx_TagComposer {
    margin-top: 35px; /* lots of distance from the last line of the table */
}

.mx_AccessibleButton.mx_NotificationSound_browse {
    margin-right: 10px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GeneralUserSettingsTab_section--discovery_existing_verification {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_GeneralUserSettingsTab_section--discovery_existing_verification .mx_Field {
        margin: 0 0 0 1em;
    }

.mx_PhoneNumbers_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_PhoneNumbers_input > .mx_Field {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

.mx_PhoneNumbers_country {
    width: 80px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PowerLevelSelector_Button {
    -ms-flex-item-align: start;
        align-self: flex-start;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomProfileSettings {
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);
}

    .mx_RoomProfileSettings .mx_RoomProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            -webkit-margin-end: 54px;
                    margin-inline-end: 54px;
        }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_Field {
                margin-top: var(--cpd-space-2x);
            }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic {
                margin-top: var(--cpd-space-2x);
            }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic > textarea {
                    font-family: inherit;
                    resize: vertical;
                }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic.mx_RoomProfileSettings_profile_controls_topic--room textarea {
                    min-height: 4em;
                }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_userId {
                -webkit-margin-end: var(--cpd-space-5x);
                        margin-inline-end: var(--cpd-space-5x);
            }

    .mx_RoomProfileSettings .mx_RoomProfileSettings_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
        margin-top: 10px; /* 18px is already accounted for by the <p> above the buttons */
        margin-bottom: var(--cpd-space-7x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SetIntegrationManager .mx_SetIntegrationManager_heading_manager {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-column-gap: var(--cpd-space-1x);
           -moz-column-gap: var(--cpd-space-1x);
                column-gap: var(--cpd-space-1x);
    }
    .mx_SetIntegrationManager form {
        margin-top: var(--cpd-space-3x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFieldset {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
}

.mx_SettingsFieldset_legend {
    /* Reset the browser default <legend> styling */
    padding-inline: unset;
    border: none;
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
    color: var(--timeline-text-color);
    margin-bottom: 10px;
    margin-top: 12px;
}

.mx_SettingsFieldset_description {
    display: block;
    margin-top: 0;
    margin-bottom: 10px;
}

    .mx_SettingsFieldset_description p {
        margin-top: 10px;
        margin-bottom: 0;
    }

        .mx_SettingsFieldset_description p:first-child {
            margin: 0;
        }

.mx_SettingsFieldset_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    /* Override margin from common.pcss */
    margin: 0;
}

    .mx_SettingsHeader > span {
        font: var(--cpd-font-body-sm-medium);
        color: var(--cpd-color-text-action-accent);
    }

    .mx_SettingsHeader.mx_SettingsHeader_recommended::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsSubheader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}

    .mx_SettingsSubheader > span {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
        font: var(--cpd-font-body-sm-medium);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_success {
        color: var(--cpd-color-text-success-primary);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_error {
        color: var(--cpd-color-text-critical-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExistingSpellCheckLanguage {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_ExistingSpellCheckLanguage_language {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_GeneralUserSettingsTab_spellCheckLanguageInput {
    margin-bottom: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThemeChoicePanel_ThemeSelectors {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    /* Override form default style */
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important;
    gap: var(--cpd-space-4x) !important;
}

    .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-1-5x);
        padding: var(--cpd-space-3x) var(--cpd-space-5x) var(--cpd-space-3x) var(--cpd-space-3x);
        gap: var(--cpd-space-2x);
        background-color: var(--cpd-color-bg-canvas-default);
    }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_enabled {
            border-color: var(--cpd-color-border-interactive-primary);
        }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled {
            border-color: var(--cpd-color-border-disabled);
        }

            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-disabled);
                cursor: not-allowed;
            }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector .mx_ThemeChoicePanel_themeSelector_Label {
            font: var(--cpd-font-body-md-semibold);
        }
            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:not(.mx_ThemeChoicePanel_themeSelector_disabled) .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-primary);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UpdateCheckButton_summary {
    margin-left: 16px;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_UserPersonalInfoSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserProfileSettings {
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);
}

    .mx_UserProfileSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: var(--cpd-space-6x);
        gap: 16px;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_displayName {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: 100%;
            gap: 0;
        }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_nameAndStatus {
            width: 100%;
            gap: 16px;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId {
        width: 100%;
        margin-top: var(--cpd-space-4x);
    }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId .mx_CopyableText {
            margin-top: var(--cpd-space-1x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId_label {
        font-size: 15px;
        font-weight: 500;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_buttons {
        margin-top: var(--cpd-space-8x);
        margin-bottom: var(--cpd-space-8x);
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_accountmanageIcon {
        margin-right: var(--cpd-space-2x);
    }

@media (max-width: 768px) {
    .mx_UserProfileSettings_profile {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 30px;
    }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionDetails,
.mx_OtherSettings {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /* !important override compound form */
    gap: var(--cpd-space-6x) !important;
    width: 100%;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
}

    .mx_EncryptionDetails .mx_EncryptionDetails_session_title,
    .mx_EncryptionDetails .mx_OtherSettings_title,
    .mx_OtherSettings .mx_EncryptionDetails_session_title,
    .mx_OtherSettings .mx_OtherSettings_title {
        font: var(--cpd-font-body-lg-semibold);
        padding-bottom: var(--cpd-space-2x);
        border-bottom: 1px solid var(--cpd-color-gray-400);
        width: 100%;
        margin: 0;
    }
    .mx_EncryptionDetails .mx_EncryptionDetails_session {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
    }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

            .mx_EncryptionDetails .mx_EncryptionDetails_session > div > span {
                width: 50%;
                word-wrap: break-word;
            }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div:nth-child(odd) {
            background-color: var(--cpd-color-gray-200);
        }

    .mx_EncryptionDetails .mx_EncryptionDetails_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_ChangeRecoveryKey .mx_InformationPanel_description {
        text-align: center;
    }

    .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-8x);
    }

        .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form .mx_ChangeRecoveryKey_footer {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

    .mx_ChangeRecoveryKey .mx_KeyPanel {
        display: grid;
        grid-template:
            "header button" auto
            "content button" auto / 1fr;

        grid-column-gap: var(--cpd-space-3x);

        -webkit-column-gap: var(--cpd-space-3x);

           -moz-column-gap: var(--cpd-space-3x);

                column-gap: var(--cpd-space-3x);
        grid-row-gap: var(--cpd-space-1x);
        row-gap: var(--cpd-space-1x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ChangeRecoveryKey .mx_KeyPanel > span {
            grid-area: header;
        }

        .mx_ChangeRecoveryKey .mx_KeyPanel > div {
            grid-area: content;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-2x);
            color: var(--cpd-color-text-secondary);
        }

            .mx_ChangeRecoveryKey .mx_KeyPanel > div .mx_KeyPanel_key {
                font-family: "Fira Code", monospace;
                /*
                 * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77471&t=t7lozYrSI1AVZZ3U-4
                 */
                height: 70px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border-radius: var(--cpd-space-2x);
                padding: var(--cpd-space-3x) var(--cpd-space-4x);
                background-color: var(--cpd-color-bg-subtle-secondary);
            }

        .mx_ChangeRecoveryKey .mx_KeyPanel > button {
            margin: 0 var(--cpd-space-1x);
            grid-area: button;
            color: var(--cpd-color-icon-secondary-alpha);
        }

    .mx_ChangeRecoveryKey .mx_KeyForm {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-8x);
    }
            .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"] {
                /*
                 * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
                 */
                height: 70px;
                padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
                border: var(--cpd-border-width-1) solid;
                border-radius: 8px;
                margin: 0px;
            }
                .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"]:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }

            .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > button {
                /*
                 * See figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
                 * Avoid stretching the hide/show symbol to the height of the input, and centre it vertically.
                 */
                height: 24.5px;
                padding: var(--cpd-space-1x);
                -ms-flex-item-align: center;
                    align-self: center;
            }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionCard {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-8x);
    padding: var(--cpd-space-10x);
    border-radius: var(--cpd-space-4x);
    /* From figma */
    -webkit-box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
            box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
    border: 1px solid var(--cpd-color-gray-400);
}

    .mx_EncryptionCard .mx_EncryptionCard_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_EncryptionCard .mx_EncryptionCard_header > h2 {
            margin: 0;
        }

        .mx_EncryptionCard .mx_EncryptionCard_header > span {
            color: var(--cpd-color-text-secondary);
            text-align: center;
        }

    /* extra class for specifying that we don't need a border */
    .mx_EncryptionCard.mx_EncryptionCard_noBorder {
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }

.mx_EncryptionCard_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-4x);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_EncryptionCard_emphasisedContent span {
        font: var(--cpd-font-body-md-medium);
        text-align: center;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RecoveryPanelOutOfSync {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

/* Red text for the "Do not close this window" warning */
.mx_ResetIdentityPanel_warning {
    color: var(--cpd-color-text-critical-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsBanner {
    background: #f4f6fa;
    background: var(--system, #f4f6fa);
    border-radius: 8px;
    padding: 12px 16px;
    gap: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_SettingsBanner .mx_SettingsBanner_content {
        margin: 0;
    }

    .mx_SettingsBanner .mx_AccessibleButton {
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsIndent {
    padding-left: 16px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
}
}
@layer app-web{

/*
Copyright 2023, 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSection {
    --SettingsTab_section-margin-bottom-preferences-labs: 30px;
    --SettingsTab_heading_nth_child-margin-top: 30px;
    --SettingsTab_tooltip-max-width: 20px; /* So it fits in the space provided by the page */

    color: var(--timeline-text-color);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsSection a:not([data-kind]) {
        color: #0086e6;
        color: var(--links, #0086e6);
    }

    .mx_SettingsSection.mx_SettingsSection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: start;
    }

    .mx_SettingsSection .mx_SettingsSection_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        color: var(--cpd-color-text-secondary);
    }

.mx_SettingsSection_subSections {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    margin: var(--cpd-space-4x) 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsTab {
    --SettingsTab_tooltip-max-width: 120px; /* So it fits in the space provided by the page */

    color: var(--timeline-text-color);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsTab a:not([data-kind]) {
        color: #0086e6;
        color: var(--links, #0086e6);
    }

    .mx_SettingsTab form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    /* never want full width buttons
    event when other content is 100% width */
    .mx_SettingsTab .mx_AccessibleButton {
        -ms-flex-item-align: start;
            align-self: flex-start;
        justify-self: flex-start;
    }

    .mx_SettingsTab .mx_Field {
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

.mx_SettingsTab_warningText {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_SettingsTab_subsectionText {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font: var(--cpd-font-body-md-regular);
    display: block;
    margin-top: 10px;
    -webkit-margin-end: 80px;
            margin-inline-end: 80px; /* Align with the rest of the view */
    margin-bottom: 10px;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}

.mx_SettingsTab_section {

    margin-bottom: var(--cpd-space-6x);
}

    .mx_SettingsTab_section .mx_SettingsFlag {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
        margin-bottom: 10px;
    }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_SettingsFlag_label {
            vertical-align: middle;
            display: inline-block;
            max-width: calc(100% - 3rem); /* Force word wrap instead of colliding with the switch */
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_ToggleSwitch {
            float: inline-end;
        }

    .mx_SettingsTab_section > p {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
    }

    .mx_SettingsTab_section.mx_SettingsTab_subsectionText .mx_SettingsFlag {
        -webkit-margin-end: 0 !important;
                margin-inline-end: 0 !important;
    }

.mx_SettingsTab_sections {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    padding-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NotificationSettingsTab_notificationsSection {
    width: 360px;
}

    .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;
        color: var(--timeline-text-color);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 16px;
        position: relative;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton input + div {
            margin-top: 8px;
        }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton .mx_NotificationSettingsTab_microCopy {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-right: 32px;
        }

input[type="file"].mx_NotificationSound_soundUpload {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PeopleRoomSettingsTab_knock {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: var(--cpd-space-2x);
}

.mx_PeopleRoomSettingsTab_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-4x);
}

.mx_PeopleRoomSettingsTab_avatar {
    -ms-flex-item-align: start;
        align-self: flex-start;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_PeopleRoomSettingsTab_name {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_PeopleRoomSettingsTab_timestamp {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-left: var(--cpd-space-1x);
}

.mx_PeopleRoomSettingsTab_userId {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: block;
    font-size: var(--cpd-font-size-body-sm);
}

.mx_PeopleRoomSettingsTab_seeMoreOrLess {
    margin: var(--cpd-space-3x) 0 0;
}

.mx_PeopleRoomSettingsTab_action {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_PeopleRoomSettingsTab_action + .mx_PeopleRoomSettingsTab_action {
        margin-left: var(--cpd-space-3x);
    }

.mx_PeopleRoomSettingsTab_paragraph {
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RolesRoomSettingsTab_bannedList {
    margin-bottom: 0;
}

.mx_RolesRoomSettingsTab_unbanBtn {
    margin-right: 10px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRoomSettingsTab_advancedSection {
    margin-top: var(--cpd-space-4x);
}

.mx_SecurityRoomSettingsTab_warning {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_SecurityRoomSettingsTab_warning svg {
        color: #ff0064; /* Match legacy icon colour until redesign */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Field.mx_AppearanceUserSettingsTab_checkboxControlledField {
    width: 256px;
    /* Line up with Settings field toggle button */
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HelpUserSettingsTab_accessTokenDetails {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyboardShortcut_shortcutList {
    margin: 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-1x);
    gap: var(--cpd-space-1x);
}

.mx_KeyboardShortcut_shortcutRow,
.mx_KeyboardShortcut {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_KeyboardShortcut_shortcutRow {
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_KeyboardShortcut {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaPreviewAccountSetting_Radio {
    margin: var(--cpd-space-1x) 0;
}

.mx_MediaPreviewAccountSetting {
    margin-top: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_RadioHelp {
    /* !important because it's overriding compound help message */
    margin-top: 0 !important;
    margin-bottom: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_Form {
    width: 100%;
}

.mx_MediaPreviewAccountSetting_ToggleSwitch {
    font: var(--cpd-font-body-md-medium);
    letter-spacing: var(--cpd-font-letter-spacing-body-md);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MjolnirUserSettingsTab_listItem {
    margin-bottom: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PreferencesUserSettingsTab_section_hint {
    font: var(--cpd-font-body-sm-regular);
    color: var(--cpd-color-text-secondary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityUserSettingsTab_bulkOptions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_ignoredUsers {
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.mx_SecurityUserSettingsTab_ignoredUser {
    margin-bottom: var(--cpd-space-1x);
}

.mx_SecurityUserSettingsTab_ignoredUser .mx_AccessibleButton {
    margin-right: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_warning {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

    .mx_SecurityUserSettingsTab_warning svg {
        width: 24px;
        height: 24px;
        margin-right: var(--cpd-space-4x);
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

form.mx_SecurityUserSettingsTab_posthogSection {
    /* Inhibit compound spacing here as it clashes with pre-compound UI */
    display: contents !important;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SidebarUserSettingsTab_homeAllRoomsCheckbox {
    margin-left: 24px;
}

    .mx_SidebarUserSettingsTab_homeAllRoomsCheckbox + div {
        margin-left: 48px;
    }

.mx_SidebarUserSettingsTab_icon {
    margin-right: var(--cpd-space-2x);
    margin-top: auto;
    margin-bottom: auto;
}

.mx_SidebarUserSettingsTab_checkbox label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceBasicSettings .mx_Field {
        margin: 24px 0;
    }

    .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 24px;
    }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar {
            height: 80px;
            width: 80px;
            background-color: #2e2f32;
            background-color: var(--tertiary-content, #2e2f32);
            border-radius: 16px;
            -o-object-fit: cover;
               object-fit: cover;
        }

            .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar svg {
                width: 20px;
                height: 20px;
                padding: 30px;
                color: #ffffff; /* white icon fill */
            }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > input[type="file"] {
            display: none;
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_AccessibleButton_kind_link {
            display: inline-block;
            margin: auto 18px;
            color: #0086e6;
            color: var(--links, #0086e6);
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_SpaceBasicSettings_avatar_remove {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }

    .mx_SpaceBasicSettings .mx_AccessibleButton_hasKind {
        margin-left: auto;
        display: block;
        width: -webkit-min-content;
        width: -moz-min-content;
        width: min-content;
    }

    .mx_SpaceBasicSettings .mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceChildrenPicker {
    margin: 16px 0;
}

    .mx_SpaceChildrenPicker .mx_StyledRadioButton + .mx_StyledRadioButton {
        margin-top: 16px;
    }

    .mx_SpaceChildrenPicker .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        border-radius: 8px;
    }

    .mx_SpaceChildrenPicker .mx_SpaceChildrenPicker_noResults {
        display: block;
        margin-top: 24px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* background blur everything except SpacePanel */
    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu_background {
        background-color: var(--sidebar-color-50pct);
        opacity: 0.6;
        left: 68px;
    }

    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu {
        padding: 24px;
        width: 480px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        position: relative;
    }
            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > h2 {
                font: var(--cpd-font-heading-sm-semibold);
                font-size: 1.125rem;
                margin-top: 4px;
            }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > p {
                font-size: 0.9375rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back {
            width: 24px;
            height: 24px;
            padding: var(--cpd-space-0-5x);
            background-color: var(--roomlist-highlights-color);
            border-radius: 14px;
            margin-bottom: 12px;
        }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back svg {
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_kind_primary {
            padding: 8px 22px;
            margin-left: auto;
            display: block;
            width: -webkit-min-content;
            width: -moz-min-content;
            width: min-content;
        }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineTermsAgreement_cbContainer {
    margin-top: var(--cpd-space-4x);
    margin-bottom: 10px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InlineTermsAgreement_cbContainer a {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox {
        margin-top: 10px;
    }

        .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox input {
            vertical-align: text-bottom;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AnalyticsToast .mx_AccessibleButton_kind_danger_outline {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border: 1px solid #0dbd8b;
        border: 1px solid var(--accent-color, #0dbd8b);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AnalyticsToast .mx_AccessibleButton_kind_primary {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border: 1px solid #0dbd8b;
        border: 1px solid var(--accent-color, #0dbd8b);
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingCallToast {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingCallToast .mx_IncomingCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
        overflow: hidden;
    }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title {
            display: grid;
            grid-template-columns: auto 1fr auto;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            grid-gap: var(--cpd-space-2x);
            gap: var(--cpd-space-2x);
        }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title h2 {
                margin: 0;
            }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton {
                padding: var(--cpd-space-1x);
                color: var(--cpd-color-icon-secondary);
                -webkit-transition: color 0.1s;
                transition: color 0.1s;
            }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton:hover {
                    color: var(--cpd-color-icon-primary);
                }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton > svg {
                    display: block;
                }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_avatars {
            display: inline-block;
            vertical-align: top;
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            -webkit-padding-before: var(--cpd-space-2x);
                    padding-block-start: var(--cpd-space-2x);
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_actionButton {
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 131px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingLegacyCallToast {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-left: 8px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_caller {
            font-weight: bold;
            font-size: 0.9375rem;
            line-height: 1.125rem;

            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;

            margin-top: 2px;
            margin-right: 6px;

            max-width: 200px;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_type {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);

            margin-top: 4px;
            margin-bottom: 6px;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons {
            margin-top: 8px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            gap: 12px;
        }

            .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button{
                padding: 8px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                font-size: 0.9375rem;
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        height: 20px;
        width: 20px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton svg {
            height: inherit;
            width: inherit;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NonUrgentEchoFailureToast svg {
        display: inline-block;
        width: 1.125rem;
        height: 1.125rem;
        color: #fff; /* we know that non-urgent toasts are always styled the same */
        margin-right: 8px;
    }

    .mx_NonUrgentEchoFailureToast span {
        /* includes the i18n block */
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2023 x The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Heading_h1,
.mx_Heading_h2,
.mx_Heading_h3,
.mx_Heading_h4 {
    margin-inline: unset;
    margin-block: unset;
    color: var(--timeline-text-color);
}

.mx_Heading_h1 {
    font: var(--cpd-font-heading-xl-semibold);
}

.mx_Heading_h2 {
    font: var(--cpd-font-heading-lg-semibold);
}

.mx_Heading_h3 {
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_Heading_h4 {
    font: var(--cpd-font-heading-sm-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerificationShowSas_decimalSas {
    text-align: center;
    font-weight: bold;
    padding-left: 3px;
    padding-right: 3px;
}

.mx_VerificationShowSas_decimalSas span {
    margin-left: 5px;
    margin-right: 5px;
}

.mx_VerificationShowSas_emojiSas {
    margin: 25px 0;
}

.mx_VerificationShowSas_buttonRow {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 9px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* data-whatintent makes more sense here semantically but then the tooltip would stay visible without the button */
/* which looks broken, so we match the behaviour of tooltips which is fine too. */
[data-whatinput="mouse"] .mx_LegacyCallViewButtons.mx_LegacyCallViewButtons_hidden {
    opacity: 0.001; /* opacity 0 can cause a re-layout */
    pointer-events: none;
}

.mx_LegacyCallViewButtons {
    --LegacyCallViewButtons_dropdownButton-size: 16px;

    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    bottom: 32px;
    opacity: 1;
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
    z-index: 200; /* To be above _all_ feeds */
    gap: 18px;
}

    .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
        cursor: pointer;

        background-color: #ffffff;

        border-radius: 100%;
        height: 40px;
        width: 40px;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        position: relative;

        -webkit-box-shadow: 0px 4px 4px 0px #00000026;

                box-shadow: 0px 4px 4px 0px #00000026;
        /* State buttons */
        /* Stateless buttons */
        /* Invisible state */
    } /* Same on both themes */

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button svg {
            display: inline-block;

            color: #2e2f32;

            height: 24px;
            width: 24px;
        }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
            width: var(--LegacyCallViewButtons_dropdownButton-size);
            height: var(--LegacyCallViewButtons_dropdownButton-size);

            position: absolute;
            right: 0;
            bottom: 0;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton svg {
                width: 16px;
                height: 16px;
            }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_mic svg {
            height: 20px;
            width: 20px;
        }

        /* State buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on {
            background-color: #ffffff;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on svg {
                color: #2e2f32;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing {
                background-color: #0dbd8b;
                background-color: var(--accent-color, #0dbd8b);
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing svg {
                    color: white; /* Same on both themes */
                }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off {
            background-color: #2e2f32;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off svg {
                color: #ffffff;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing,
            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar {
                background-color: #ffffff;
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing svg, .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar svg {
                    color: #2e2f32;
                }

        /* Stateless buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup {
            background-color: #ff5b55;
            background-color: var(--alert, #ff5b55);
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup svg {
                color: white; /* Same on both themes */
            }

        /* Invisible state */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_invisible {
            visibility: hidden;
            pointer-events: none;
            position: absolute;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallDuration {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallView {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 0;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    background-color: var(--roomlist-background-color);
}

    .mx_CallView .mx_AppTile {
        width: auto;
        height: 100%;
        border: none;
        border-radius: inherit;
        background-color: #15191e;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPad {
    display: grid;
    grid-row-gap: 16px;
    row-gap: 16px;
    grid-column-gap: 0px;
    -webkit-column-gap: 0px;
       -moz-column-gap: 0px;
            column-gap: 0px;
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;

    /* squeeze the dial pad buttons together horizontally */
    grid-template-columns: repeat(3, 1fr);
}

.mx_DialPad_button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    width: 40px;
    height: 40px;
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    border-radius: 40px;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    text-align: center;
    vertical-align: middle;
    margin-left: auto;
    margin-right: auto;
}

.mx_DialPad_button .mx_DialPad_buttonSubText {
    font-size: 8px;
}

.mx_DialPad_dialButton {
    /* Always show the dial button in the center grid column */
    grid-column: 2;
    background-color: #0dbd8b;
    background-color: var(--accent-color, #0dbd8b);
}

    .mx_DialPad_dialButton svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        padding: 10px;
        color: #fff; /* on all themes */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadContextMenu_dialPad .mx_DialPad {
    row-gap: 16px;
    -webkit-column-gap: 32px;
       -moz-column-gap: 32px;
            column-gap: 32px;
}

.mx_DialPadContextMenuWrapper {
    padding: 15px;
}

.mx_DialPadContextMenu_header {
    border: none;
    margin-top: 32px;
    margin-left: 20px;
    margin-right: 20px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quaternary-content, #6f7882);
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadContextMenu_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadContextMenu_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadContextMenu_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadContextMenu_cancel{
    float: right;
}

.mx_DialPadContextMenu_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
    border-bottom: 1px solid var(--accent-color, #0dbd8b);
}

.mx_DialPadContextMenu_title {
    color: #61708b;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadContextMenu_dialled {
    height: 1.5em;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    border: none;
    margin: 0px;
}
.mx_DialPadContextMenu_dialled input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    overflow: hidden;
    max-width: 185px;
    text-align: left;
    padding: 8px 0px;
    background-color: rgb(0, 0, 0, 0);
}

.mx_DialPadContextMenu_dialPad {
    margin: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dialog_dialPadWrapper .mx_Dialog {
    padding: 0px;
}

.mx_DialPadModal {
    width: 292px;
    height: 370px;
    padding: 16px 0px 0px 0px;
}

.mx_DialPadModal_header {
    margin-top: 32px;
    margin-left: 40px;
    margin-right: 40px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quaternary-content, #6f7882);
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadModal_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
    border-bottom: 1px solid var(--accent-color, #0dbd8b);
}

.mx_DialPadModal_title {
    color: #61708b;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadModal_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadModal_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadModal_cancel{
    float: right;
    margin-right: 16px;
}

.mx_DialPadModal_field {
    border: none;
    margin: 0px;
    height: 30px;
}

.mx_DialPadModal_field .mx_Field_postfix {
    /* Remove border separator between postfix and field content */
    border-left: none;
}

.mx_DialPadModal_field input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_dialPad {
    margin-left: 16px;
    margin-right: 16px;
    margin-top: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallView {
    border-radius: 8px;
    background-color: var(--roomlist-background-color);
    padding-left: 8px;
    padding-right: 8px;
    /* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */
    pointer-events: initial;
}

    .mx_LegacyCallView .mx_LegacyCallView_toast {
        position: absolute;
        top: 74px;

        padding: 4px 8px;

        border-radius: 4px;
        z-index: 50;

        /* Same on both themes */
        color: white;
        background-color: #17191c;
    }

    .mx_LegacyCallView .mx_LegacyCallView_content_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;

        width: 100%;
        height: 100%;

        overflow: hidden;
    }

        .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content {
            position: relative;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            -webkit-box-flex: 1;

                -ms-flex: 1;

                    flex: 1;
            overflow: hidden;

            border-radius: 10px;

            padding: 10px;
            padding-right: calc(20% + 20px); /* Space for the sidebar */

            background-color: #21262c;
        }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_status {
                z-index: 50;
                color: #ffffff;
            }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer div {
                    margin-left: 12px;
                    margin-right: 12px;
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground {
                position: absolute;
                left: 0;
                right: 0;

                width: 100%;
                height: 100%;

                background-repeat: no-repeat;
                background-size: cover;
                background-position: center;
                -webkit-filter: blur(20px);
                        filter: blur(20px);
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground::after {
                    content: "";
                    display: block;
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    left: 0;
                    right: 0;
                    background-color: rgb(0, 0, 0, 0.6);
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status {
                font-weight: bold;
                text-align: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    display: block;
                    margin-left: auto;
                    margin-right: auto;
                    content: "";
                    width: 40px;
                    height: 40px;
                    background-image: url(../../img/voip/paused.b00e0b4.svg);
                    background-position: center;
                    background-size: cover;
                }

                .mx_LegacyCallView_pip .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    width: 30px;
                    height: 30px;
                }

    .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content {
        padding: 0;
        width: 100%;
        height: 100%;
    }

        .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content .mx_VideoFeed_primary {
            aspect-ratio: unset;
            border: 0;

            width: 100%;
            height: 100%;
        }

    .mx_LegacyCallView.mx_LegacyCallView_pip {
        width: 320px;
        padding-bottom: 8px;

        border-radius: 8px;

        background-color: #f4f6fa;

        background-color: var(--system, #f4f6fa);
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
    }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons {
            bottom: 13px;
        }

            .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
                width: 34px;
                height: 34px;
            }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
                    width: var(--LegacyCallViewButtons_dropdownButton-size);
                    height: var(--LegacyCallViewButtons_dropdownButton-size);
                }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button::before {
                    width: 22px;
                    height: 22px;
                }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallView_content {
            min-height: 180px;
        }

    .mx_LegacyCallView.mx_LegacyCallView_large {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        -webkit-box-flex: 1;

            -ms-flex: 1;

                flex: 1;

        padding-bottom: 10px;

        margin: 8px;

        margin: var(--container-gap-width);
        /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
        margin-right: calc(8px / 2);
        margin-right: calc(var(--container-gap-width) / 2);
        margin-bottom: 10px;
    }

    .mx_LegacyCallView.mx_LegacyCallView_belowWidget {
        margin-top: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewForRoom {
    overflow: hidden;
}

    .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle {
            /* Need to use important to override element style attributes */
            /* set by re-resizable */
            width: 100% !important;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle::after {
                content: "";
                border-radius: 4px;

                height: 4px;
                width: 100%;
                max-width: 64px;

                background-color: var(--timeline-text-color);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewHeader {
    height: 44px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 100%;
}

    .mx_LegacyCallViewHeader.mx_LegacyCallViewHeader_pip {
        cursor: -webkit-grab;
        cursor: grab;
    }

.mx_LegacyCallViewHeader_text {
    font-size: 1.2rem;
    font-weight: bold;
    vertical-align: middle;
}
    .mx_LegacyCallViewHeader_secondaryCallInfo::before {
        content: "·";
        margin-left: 6px;
        margin-right: 6px;
    }

.mx_LegacyCallViewHeader_controls {
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px;
}

.mx_LegacyCallViewHeader_button {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
}

    .mx_LegacyCallViewHeader_button svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        vertical-align: middle;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_LegacyCallViewHeader_callInfo {
    margin-left: 12px;
    margin-right: 16px;
    overflow: hidden;
}

.mx_LegacyCallViewHeader_roomName {
    font-weight: bold;
    font-size: 12px;
    line-height: normal;
    line-height: initial;
    height: 15px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_LegacyCallView_secondaryCall_roomName {
    margin-left: 4px;
}

.mx_LegacyCallViewHeader_icon {
    display: inline-block;
    margin-right: 6px;
    height: 16px;
    width: 16px;
    vertical-align: middle;
}

    .mx_LegacyCallViewHeader_icon svg {
        display: inline-block;
        vertical-align: top;

        height: 16px;
        width: 16px;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewSidebar {
    position: absolute;
    right: 10px;

    width: 20%;
    height: 100%;
    overflow: auto;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 12px;
}

    .mx_LegacyCallViewSidebar > .mx_VideoFeed {
        width: 100%;
        border-radius: 4px;
    }

        .mx_LegacyCallViewSidebar > .mx_VideoFeed.mx_VideoFeed_voice {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            background-color: #394049;
        }

    .mx_LegacyCallViewSidebar.mx_LegacyCallViewSidebar_pipMode {
        top: 16px;
        bottom: auto;
        bottom: initial;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 , 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VideoFeed {
    overflow: hidden;
    position: relative;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border: transparent 2px solid;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-radius: 4px;
}

    .mx_VideoFeed.mx_VideoFeed_secondary {
        position: absolute;
        right: 24px;
        bottom: 72px;
        width: 20%;
    }

    .mx_VideoFeed.mx_VideoFeed_voice {
        background-color: #27303a;
        background-color: var(--strong-input-border-color, #27303a);

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_VideoFeed.mx_VideoFeed_voice:not(.mx_VideoFeed_primary) {
            aspect-ratio: 16 / 9;
        }

    .mx_VideoFeed .mx_VideoFeed_video {
        height: 100%;
        width: 100%;
        border-radius: 4px;
        background-color: #000000;
    }

        .mx_VideoFeed .mx_VideoFeed_video.mx_VideoFeed_video_mirror {
            -webkit-transform: scale(-1, 1);
                    transform: scale(-1, 1);
        }

    .mx_VideoFeed .mx_VideoFeed_mic {
        position: absolute;
        left: 6px;
        bottom: 6px;
        z-index: 1;

        width: 24px;
        height: 24px;

        background-color: rgb(0, 0, 0, 0.5); /* Same on both themes */
        border-radius: 100%;
    }

        .mx_VideoFeed .mx_VideoFeed_mic svg {
            width: 16px;
            height: 16px;
            padding: 4px;
            color: white; /* Same on both themes */
        }
}
@layer app-web{
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
}
@layer app-web{
/*light */
.markdown-body {
  color-scheme: light;
  /** CSS default easing. Use for hover state changes and micro-interactions. */
  /** Accelerating motion. Use for elements exiting the viewport (moving off-screen). */
  /** Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport. */
  /** Decelerating motion. Use for elements entering the viewport or appearing on screen. */
  /** Constant motion with no acceleration. Use for continuous animations like progress bars or loaders. */
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  font-weight: 400;
  color: #1f2328;
  background-color: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body a {
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.markdown-body .octicon {
  display: inline-block;
  fill: currentColor;
  vertical-align: text-bottom;
}

.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
  width: 16px;
  height: 16px;
  content: ' ';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body a {
  background-color: rgba(0,0,0,0);
  color: #0969da;
  text-decoration: none;
}

.markdown-body abbr[title] {
  border-bottom: none;
  text-decoration: underline dotted;
}

.markdown-body b,
.markdown-body strong {
  font-weight: 600;
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body h1 {
  margin: .67em 0;
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 2em;
  border-bottom: 1px solid #d1d9e0b3;
}

.markdown-body mark {
  background-color: #fff8c5;
  color: #1f2328;
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.markdown-body sub {
  bottom: -0.25em;
}

.markdown-body sup {
  top: -0.5em;
}

.markdown-body img {
  border-style: none;
  max-width: 100%;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body figure {
  margin: 1em 2.5rem;
}

.markdown-body hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  overflow: hidden;
  background: rgba(0,0,0,0);
  border-bottom: 1px solid #d1d9e0b3;
  height: .25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #d1d9e0;
  border: 0;
}

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type=button],
.markdown-body [type=reset],
.markdown-body [type=submit] {
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
}

.markdown-body [type=checkbox],
.markdown-body [type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

.markdown-body [type=number]::-webkit-inner-spin-button,
.markdown-body [type=number]::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type=search]::-webkit-search-cancel-button,
.markdown-body [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body ::-webkit-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::-moz-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body :-ms-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::-ms-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum";
  font-variant: tabular-nums;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body a:focus,
.markdown-body [role=button]:focus,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=checkbox]:focus {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:focus:not(:focus-visible),
.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body input[type=radio]:focus:not(:focus-visible),
.markdown-body input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px rgba(0,0,0,0);
}

.markdown-body a:focus-visible,
.markdown-body [role=button]:focus-visible,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus,
.markdown-body input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: 0.25rem;
  font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  line-height: 10px;
  color: #1f2328;
  vertical-align: middle;
  background-color: #f6f8fa;
  border: solid 1px var(--borderColor-muted);
  border-bottom-color: var(--borderColor-muted);
  border-radius: 6px;
  -webkit-box-shadow: inset 0 -1px 0 var(--borderColor-muted);
          box-shadow: inset 0 -1px 0 var(--borderColor-muted);
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h2 {
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 1.5em;
  border-bottom: 1px solid #d1d9e0b3;
}

.markdown-body h3 {
  font-weight: 600;
  font-size: 1.25em;
}

.markdown-body h4 {
  font-weight: 600;
  font-size: 1em;
}

.markdown-body h5 {
  font-weight: 600;
  font-size: .875em;
}

.markdown-body h6 {
  font-weight: 600;
  font-size: .85em;
  color: #59636e;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #59636e;
  border-left: .25em solid #d1d9e0;
}

.markdown-body ul,
.markdown-body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body tt,
.markdown-body code,
.markdown-body samp {
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body .octicon {
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
          appearance: none;
}

.markdown-body .mr-2 {
  margin-right: 0.5rem !important;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body>*:first-child {
  margin-top: 0 !important;
}

.markdown-body>*:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .absent {
  color: #d1242f;
}

.markdown-body .anchor {
  float: left;
  padding-right: 0.25rem;
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
  margin-top: 0;
  margin-bottom: 1rem;
}

.markdown-body blockquote>:first-child {
  margin-top: 0;
}

.markdown-body blockquote>:last-child {
  margin-bottom: 0;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #1f2328;
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
  padding: 0 .2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1 .anchor,
.markdown-body summary h2 .anchor,
.markdown-body summary h3 .anchor,
.markdown-body summary h4 .anchor,
.markdown-body summary h5 .anchor,
.markdown-body summary h6 .anchor {
  margin-left: -40px;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body ul.no-list,
.markdown-body ol.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type="a s"] {
  list-style-type: lower-alpha;
}

.markdown-body ol[type="A s"] {
  list-style-type: upper-alpha;
}

.markdown-body ol[type="i s"] {
  list-style-type: lower-roman;
}

.markdown-body ol[type="I s"] {
  list-style-type: upper-roman;
}

.markdown-body ol[type="1"] {
  list-style-type: decimal;
}

.markdown-body div>ol:not([type]) {
  list-style-type: decimal;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li>p {
  margin-top: 1rem;
}

.markdown-body li+li {
  margin-top: .25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #d1d9e0;
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #ffffff;
  border-top: 1px solid #d1d9e0b3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #f6f8fa;
}

.markdown-body table img {
  background-color: rgba(0,0,0,0);
}

.markdown-body img[align=right] {
  padding-left: 20px;
}

.markdown-body img[align=left] {
  padding-right: 20px;
}

.markdown-body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: rgba(0,0,0,0);
}

.markdown-body span.frame {
  display: block;
  overflow: hidden;
}

.markdown-body span.frame>span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid #d1d9e0;
}

.markdown-body span.frame span img {
  display: block;
  float: left;
}

.markdown-body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: #1f2328;
}

.markdown-body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-center>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

.markdown-body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

.markdown-body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-right>span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body span.align-right span img {
  margin: 0;
  text-align: right;
}

.markdown-body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

.markdown-body span.float-left span {
  margin: 13px 0 0;
}

.markdown-body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

.markdown-body span.float-right>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body code,
.markdown-body tt {
  padding: .2em .4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: #818b981f;
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre>code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 1rem;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: #1f2328;
  background-color: #f6f8fa;
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .csv-data td,
.markdown-body .csv-data th {
  padding: 5px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-align: left;
  white-space: nowrap;
}

.markdown-body .csv-data .blob-num {
  padding: 10px 0.5rem 9px;
  text-align: right;
  background: #ffffff;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #f6f8fa;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #59636e;
  border-top: 1px solid #d1d9e0;
}

.markdown-body .footnotes ol {
  padding-left: 1rem;
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: 1rem;
  margin-top: 1rem;
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: calc(0.5rem*-1);
  right: calc(0.5rem*-1);
  bottom: calc(0.5rem*-1);
  left: calc(1.5rem*-1);
  pointer-events: none;
  content: "";
  border: 2px solid #0969da;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #1f2328;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #59636e;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #0550ae;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #6639ba;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #1f2328;
}

.markdown-body .pl-ent {
  color: #0550ae;
}

.markdown-body .pl-k {
  color: #cf222e;
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #0a3069;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #953800;
}

.markdown-body .pl-bu {
  color: #82071e;
}

.markdown-body .pl-ii {
  color: var(--fgColor-danger);
  background-color: var(--bgColor-danger-muted);
}

.markdown-body .pl-c2 {
  color: #f6f8fa;
  background-color: #cf222e;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #116329;
}

.markdown-body .pl-ml {
  color: #3b2300;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #0550ae;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #1f2328;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #1f2328;
}

.markdown-body .pl-md {
  color: #82071e;
  background-color: #ffebe9;
}

.markdown-body .pl-mi1 {
  color: #116329;
  background-color: #dafbe1;
}

.markdown-body .pl-mc {
  color: #953800;
  background-color: #ffd8b5;
}

.markdown-body .pl-mi2 {
  color: #d1d9e0;
  background-color: #0550ae;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #8250df;
}

.markdown-body .pl-ba {
  color: #59636e;
}

.markdown-body .pl-sg {
  color: #818b98;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #0a3069;
}

.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
.markdown-body button:focus:not(:focus-visible),
.markdown-body summary:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible) {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body [tabindex="0"]:focus:not(:focus-visible),
.markdown-body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

.markdown-body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  font-size: 1em;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1;
  vertical-align: -0.075em;
}

.markdown-body g-emoji img {
  width: 1em;
  height: 1em;
}

.markdown-body a:has(>p,>div,>pre,>blockquote) {
  display: block;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)) {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: 2px;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: 400;
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item+.task-list-item {
  margin-top: 0.25rem;
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.4em;
  vertical-align: middle;
}

.markdown-body ul:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body ol:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body .contains-task-list:hover .task-list-item-convert-container,
.markdown-body .contains-task-list:focus-within .task-list-item-convert-container {
  display: block;
  width: auto;
  height: 24px;
  overflow: visible;
  clip-path: none;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  -webkit-filter: invert(50%);
          filter: invert(50%);
}

.markdown-body .markdown-alert {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  color: inherit;
  border-left: .25em solid #d1d9e0;
}

.markdown-body .markdown-alert>:first-child {
  margin-top: 0;
}

.markdown-body .markdown-alert>:last-child {
  margin-bottom: 0;
}

.markdown-body .markdown-alert .markdown-alert-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: 500;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: #0969da;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #0969da;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8250df;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #8250df;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #9a6700;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #9a6700;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #1a7f37;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #1a7f37;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #cf222e;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #d1242f;
}

.markdown-body>*:first-child>.heading-element:first-child {
  margin-top: 0 !important;
}

.markdown-body .highlight pre:has(+.zeroclipboard-container) {
  min-height: 52px;
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy82YWM2OGE2ZDI5ODQyYTAwZWUzYS90aGVtZS1saWdodC1jdXN0b20uY3NzIiwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFnRTtBQ0FoRTs7QUFBQTs7Ozs7O0NBTUM7O0FBRUQ7Ozs7OztFQU1FOztBQUVGOzs7Ozs7O0VBT0UsRUFLcUIsaURBQWlELEVBRWpELGlEQUFpRCxFQUVqRCxpREFBaUQsRUFFakQsaURBQWlELEVBRW5ELG9EQUFvRCxFQUVyRCxvREFBb0QsRUFHbkQsb0RBQW9ELEVBRXZELG9EQUFvRDtBQU10RTtBQ2pEQTs7QUFBQTs7Ozs7Ozs7Ozs7O0VBWUU7O0FBRUYsNkVBQTZFO0FBQzdFLCtCQUErQjtBQXdCL0I7QUN2Q0E7O0FBQUE7RUFDRTs7QUFFRixpQkFBaUI7QUFDakI7SUFDSSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBLDZIQUE2SDtBQUM3SDtJQUNJLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGO0FBQ0E7SUFDSSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBO0FEcEJBO0FBa0JBLGlFQUFpRTtBQUNqRTtFQUNFO0FBQ0Y7SUFDSSxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiwrREFBbUU7QUFDdkU7QUFDQTtJQUNJLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLCtEQUFvRTtBQUN4RTtBQUNBO0lBQ0kscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsK0RBQWdFO0FBQ3BFO0FBQ0E7QUV2Q0E7O0FBQUE7SUFDSSwwRUFBMEU7SUFDMUUsdUJBQXVCO0FBQzNCOztBQUVBOzs7b0VBR29FO0FBQ3BFOzs2RUFFNkU7O0FBUzdFLG9CQUFvQjtBQUNwQiwwQ0FBMEM7O0FBSTFDLCtDQUErQyxFQUtyQixvREFBb0Q7O0FBRTlFLDZCQUE2Qjs7QUFHN0Isb0NBQW9DOztB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QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC1jdXN0b20vY3NzL2xpZ2h0LWN1c3RvbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fZm9udC1zaXplcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC9jc3MvX2ZvbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xlZ2FjeS1saWdodC9jc3MvX2xlZ2FjeS1saWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC1jdXN0b20vY3NzL19jdXN0b20ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2NvbXBvbmVudHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2FuaW1hdGlvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2NvbW1vbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLzxubyBzb3VyY2U+Iiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fbWV0bWV0LWJyYW5kLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25MaXN0SXRlbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXNUb29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25WaWV3RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dPd25CZWFjb25TdGF0dXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ1NpZGViYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xpdmVUaW1lUmVtYWluaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19Pd25CZWFjb25TdGF0dXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1NoYXJlTGF0ZXN0TG9jYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1N0eWxlZExpdmVCZWFjb25JY29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvY29udGV4dF9tZW51cy9fS2ViYWJDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxEZXRhaWxIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW1FbmRlZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBQZXJtaXNzaW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyVGFiR3JvdXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fTGVhcm5Nb3JlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0VuYWJsZUxpdmVTaGFyZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19MaXZlRHVyYXRpb25Ecm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblNoYXJlTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBFcnJvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBGYWxsYmFjay5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXJrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVEaWFsb2dCdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlVHlwZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19ab29tQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL19NQmVhY29uQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL3NoYXJlZC9fTWVkaWFQcm9jZXNzaW5nRXJyb3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9wb2xscy9fUG9sbE9wdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL19BZGRSZW1vdmVUaHJlZXBpZHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19DdXJyZW50RGV2aWNlU2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbEhlYWRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVNlY3VyaXR5Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUeXBlSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlY3VyaXR5UmVjb21tZW5kYXRpb25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VsZWN0YWJsZURldmljZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19LZXlTdG9yYWdlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9fUXVpY2tUaGVtZVN3aXRjaGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvdHlwb2dyYXBoeS9fQ2FwdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb3VuZC9fSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb3VuZC9fU3VjY2Vzc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19BdXRvSGlkZVNjcm9sbGJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19BdXRvY29tcGxldGVJbnB1dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Db21wYXRpYmlsaXR5UGFnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Db250ZXh0dWFsTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19FcnJvck1lc3NhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRmlsZURyb3BUYXJnZXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRmlsZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0dlbmVyaWNEcm9wZG93bk1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fSG9tZVBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTGFyZ2VMb2FkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTGVmdFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX01haW5TcGxpdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19NYXRyaXhDaGF0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX05vblVyZ2VudFRvYXN0Q29udGFpbmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1F1aWNrU2V0dGluZ3NCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUmlnaHRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Sb29tVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TZWFyY2hCb3gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VIaWVyYXJjaHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVBpbGxCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VSb29tVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGxhc2hQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1RhYmJlZFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVGhyZWFkc0FjdGl2aXR5Q2VudHJlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1RvYXN0Q29udGFpbmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1VwbG9hZEJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19WaWV3U291cmNlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fQ29tcGxldGVTZWN1cml0eS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTG9naW5TcGxhc2hWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTW9iaWxlUmVnaXN0cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fUmVnaXN0cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fU2Vzc2lvbkxvY2tTdG9sZW5WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fU2V0dXBFbmNyeXB0aW9uQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2d1ZXN0L19HdWVzdE9uYm9hcmRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXVkaW9fbWVzc2FnZXMvX1BsYXliYWNrQ29udGFpbmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19TZWVrQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19XYXZlZm9ybS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoRm9vdGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEhlYWRlckxvZ28ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aFBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQ29tcGxldGVTZWN1cml0eUJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQ291bnRyeURyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0RlZmF1bHRXZWxjb21lLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19MYW5ndWFnZVNlbGVjdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0xvZ2luV2l0aFFSLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX1Bhc3NwaHJhc2VGaWVsZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19XZWxjb21lLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX0Jhc2VBdmF0YXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fRGVjb3JhdGVkUm9vbUF2YXRhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19Sb29tQXZhdGFyVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19XaWRnZXRBdmF0YXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fV2l0aFByZXNlbmNlSW5kaWNhdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2JldGEvX0JldGFDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0RldmljZUNvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0ljb25pemVkQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvY29udGV4dF9tZW51cy9fTGVnYWN5Q2FsbENvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19BbmFseXRpY3NMZWFybk1vcmVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQnVnUmVwb3J0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NoYW5nZWxvZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Db21wb3VuZERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVJvb21EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3JlYXRlU2VjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcmVhdGVTdWJzcGFjZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcnlwdG8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRGVhY3RpdmF0ZUFjY291bnREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRGV2dG9vbHNEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRXhpdFJvb21Db25maXJtRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0V4cG9ydERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19GZWVkYmFja0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Gb3J3YXJkRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSW5jb21pbmdTYXNEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSW52aXRlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZVByb2dyZXNzQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Kb2luUnVsZURyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0xlYXZlU3BhY2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTG9jYXRpb25WaWV3RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0xvZ291dERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX01vZGFsV2lkZ2V0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1BvbGxDcmVhdGVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUmVnaXN0cmF0aW9uRW1haWxQcm9tcHREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUmVtb3ZlU2VjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19SZXBvcnRSb29tRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2dCcmlkZ2VzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TZXJ2ZXJPZmZsaW5lRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlclBpY2tlckRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TZXRFbWFpbERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TZXR0aW5nc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TaGFyZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TbGFzaENvbW1hbmRIZWxwRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU3BhY2VTZXR0aW5nc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TcG90bGlnaHREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVGVybXNEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVW5waW5BbGxEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVXBsb2FkQ29uZmlybURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Vc2VyU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVmVyaWZ5RU1haWxEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvaW52aXRlL19Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19LZXlCYWNrdXBGYWlsZWREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fUmVzdG9yZUtleUJhY2t1cERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaXJlY3RvcnkvX05ldHdvcmtEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fQWNjZXNzaWJsZUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fQ29weWFibGVUZXh0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19EZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0Ryb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19FZGl0YWJsZUl0ZW1MaXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19FcnJvckJvdW5kYXJ5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19FeHRlcm5hbExpbmsucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ZhY2VQaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19GaWVsZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ltYWdlVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW5mb1Rvb2x0aXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0lubGluZVNwaW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ludGVyYWN0aXZlVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW52aXRlUmVhc29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19MYWJlbGxlZENoZWNrYm94LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19MYW5ndWFnZURyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19NaW5pQXZhdGFyVXBsb2FkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1BpbGwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Bvd2VyU2VsZWN0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Byb2dyZXNzQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19RUkNvZGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1JlcGx5Q2hhaW4ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Jlc2l6ZUhhbmRsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmljaFRleHQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Jvb21BbGlhc0ZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TU09CdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZWFyY2hXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZXJ2ZXJQaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRmxhZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3Bpbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3R5bGVkUmFkaW9CdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1N5bnRheEhpZ2hsaWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVGFnQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1RleHRXaXRoVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVG9nZ2xlU3dpdGNoLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19WYWxpZGF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fQ2FsbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19DcmVhdGVFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fRGlzYW1iaWd1YXRlZFByb2ZpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0xlZ2FjeUNhbGxFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTUltYWdlUmVwbHlCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NTG9jYXRpb25Cb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NUG9sbEJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01TdGlja2VyQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTWVzc2FnZUFjdGlvbkJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fVGV4dHVhbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19UaHJlYWRBY3Rpb25CYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX2NvbW1vbl9DcnlwdG9FdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5TGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fQmFzZUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0VtcHR5U3RhdGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0VuY3J5cHRpb25JbmZvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19FeHRlbnNpb25zQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fUGlubmVkTWVzc2FnZXNDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19Sb29tU3VtbWFyeUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1RocmVhZFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaW1lbGluZUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1VzZXJJbmZvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19WZXJpZmljYXRpb25QYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fV2lkZ2V0Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tX3NldHRpbmdzL19BbGlhc1NldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL1Jvb21MaXN0UGFuZWwvX1Jvb21MaXN0UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0FwcHNEcmF3ZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0F1dG9jb21wbGV0ZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQXV4UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19DYWxsR3Vlc3RMaW5rQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FMkVJY29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FMkVJY29uVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRWRpdE1lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRW1vamlCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0V2ZW50QnViYmxlVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRXZlbnRUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19IaXN0b3J5VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSVJDTGF5b3V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19JbnZpdGVkSWNvblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0p1bXBUb0JvdHRvbUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTGl2ZUNvbnRlbnRTdW1tYXJ5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0SGVhZGVyVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVtYmVyTGlzdFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lbWJlclRpbGVWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3NlckZvcm1hdEJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTmV3Um9vbUludHJvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19PdmVyZmxvd1RpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Bpbm5lZEV2ZW50VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUGlubmVkTWVzc2FnZUJhbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUHJlc2VuY2VJY29uVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUHJlc2VuY2VMYWJlbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUmVhZFJlY2VpcHRHcm91cC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUmVwbHlQcmV2aWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19SZXBseVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21IZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21JbmZvTGluZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUtub2Nrc0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVNlYXJjaEF1eFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tVXBncmFkZVdhcm5pbmdCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1NlbmRNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1N0aWNrZXJzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19UaGlyZFBhcnR5TWVtYmVySW5mby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVG9wVW5yZWFkTWVzc2FnZXNCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1VzZXJJZGVudGl0eVdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19XaG9Jc1R5cGluZ1RpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fRWRpdFd5c2l3eWdDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19TZW5kV3lzaXd5Z0NvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRWRpdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRm9ybWF0dGluZ0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19MaW5rTW9kYWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0F2YXRhclNldHRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ZvbnRTY2FsaW5nUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ltYWdlU2l6ZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19JbnRlZ3JhdGlvbk1hbmFnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0pvaW5SdWxlU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0tleWJvYXJkU2hvcnRjdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0xheW91dFN3aXRjaGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uU2V0dGluZ3MyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19QaG9uZU51bWJlcnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1Bvd2VyTGV2ZWxTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fUm9vbVByb2ZpbGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0SW50ZWdyYXRpb25NYW5hZ2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0ZpZWxkc2V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0hlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NTdWJoZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NwZWxsQ2hlY2tMYW5ndWFnZXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1RoZW1lQ2hvaWNlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VwZGF0ZUNoZWNrQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VzZXJQcm9maWxlU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQWR2YW5jZWRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19DaGFuZ2VSZWNvdmVyeUtleS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZEVtcGhhc2lzZWRDb250ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVzZXRJZGVudGl0eVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzQmFubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzSW5kZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzU2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX05vdGlmaWNhdGlvblNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUGVvcGxlUm9vbVNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUm9sZXNSb29tU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19TZWN1cml0eVJvb21TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19IZWxwVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fS2V5Ym9hcmRVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19Nam9sbmlyVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TZWN1cml0eVVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NpZGViYXJVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUJhc2ljU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUNoaWxkcmVuUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NwYWNlcy9fU3BhY2VDcmVhdGVNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Rlcm1zL19JbmxpbmVUZXJtc0FncmVlbWVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX0FuYWx5dGljc1RvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdDYWxsVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdHlwb2dyYXBoeS9fSGVhZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92ZXJpZmljYXRpb24vX1ZlcmlmaWNhdGlvblNob3dTYXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9MZWdhY3lDYWxsVmlldy9fTGVnYWN5Q2FsbFZpZXdCdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0NhbGxEdXJhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19DYWxsVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19EaWFsUGFkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWRDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19EaWFsUGFkTW9kYWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdGb3JSb29tLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3SGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3U2lkZWJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19WaWRlb0ZlZWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vaGlnaGxpZ2h0LmpzQDExLjEyLjAvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9zdHlsZXMvYXRvbS1vbmUtbGlnaHQubWluLmNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vZ2l0aHViLW1hcmtkb3duLWNzc0A1LjkuMC9ub2RlX21vZHVsZXMvZ2l0aHViLW1hcmtkb3duLWNzcy9naXRodWItbWFya2Rvd24tbGlnaHQuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBsYXllciBjb21wb3VuZC10b2tlbnMsIGNvbXBvdW5kLXdlYiwgc2hhcmVkLWNvbXBvbmVudHMsIGFwcC13ZWI7XG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19mb250LXNpemVzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IFwiLi4vLi4vbGVnYWN5LWxpZ2h0L2Nzcy9fbGVnYWN5LWxpZ2h0LnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCJfY3VzdG9tLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19jb21wb25lbnRzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgdXJsKFwiaGlnaGxpZ2h0LmpzL3N0eWxlcy9hdG9tLW9uZS1saWdodC5taW4uY3NzXCIpIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCB1cmwoXCJnaXRodWItbWFya2Rvd24tY3NzL2dpdGh1Yi1tYXJrZG93bi1saWdodC5jc3NcIikgbGF5ZXIoYXBwLXdlYik7XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogU0NTUyB2YXJpYWJsZXMgZGVmaW5pbmcgYSByYW5nZSBvZiBmb250IHNpemVzLlxuICpcbiAqIFRoZXNlIGFyZSBkZWZpbmVkIGluIGByZW1gIHNvIHRoYXQgdGhleSBzY2FsZSB3aXRoIHRoZSBgZm9udC1zaXplYCBvZiB0aGUgcm9vdCBlbGVtZW50ICh3aGljaCBpcyBhZGp1c3RhYmxlIHZpYSB0aGVcbiAqIFwiRm9udCBzaXplXCIgc2V0dGluZykuIFRoZXkgZXhpc3QgdG8gbWFrZSB0aGUgam9iIG9mIGNvbnZlcnRpbmcgZGVzaWducyAod2hpY2ggdGVuZCB0byBiZSBiYXNlZCBpbiBwaXhlbHMpIGludG8gQ1NTXG4gKiBlYXNpZXIuXG4gKi9cblxuLypcbiAqIFRoZXNlIHZhcmlhYmxlcyBhcmUgbm93ICpkZXByZWNhdGVkKiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIG5ldyBjb2RlOyBpbnN0ZWFkIENvbXBvdW5kIHR5cG9ncmFwaGljIHRva2Vuc1xuICogc2hvdWxkIGJlIHVzZWQuIERpcmVjdCBlcXVpdmFsZW50cyBmb3IgdGhlc2Ugb2xkIGZvbnQgc2l6ZSB0b2tlbnMgYXJlIGxpc3RlZCBiZWxvdzsgd2hlcmUgbm8gZXF1aXZhbGVudCBleGlzdHMsXG4gKiB0aGF0IHN1Z2dlc3RzIHRoYXQgdGhlIGRlc2lnbiBpcyB1c2luZyBhIG5vbi1zdGFuZGFyZCBmb250IHNpemUgYW5kIHNob3VsZCBiZSB1cGRhdGVkLlxuICpcbiAqIEluIGZhY3QsIG1vZGVybiBGaWdtYSBkZXNpZ25zIHNob3VsZCBhY3R1YWxseSB1c2UgYSBuYW1lZCBUeXBvZ3JhcGh5IHN0eWxlIHN1Y2ggYXMgXCJXZWIvZm9udC9oZWFkaW5nL3NtL3NlbWlib2xkXCIsXG4gKiB0cmFuc2xhdGVzIGRpcmVjdGx5IHRvIGBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKWAuXG4gKi9cbiRmb250LTFweDogMC4wNjI1cmVtO1xuJGZvbnQtOHB4OiAwLjVyZW07XG4kZm9udC0xMHB4OiAwLjYyNXJlbTtcbiRmb250LTEwLTRweDogMC42Mjc1cmVtO1xuJGZvbnQtMTFweDogMC42ODc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS14cyAqL1xuJGZvbnQtMTJweDogMC43NXJlbTtcbiRmb250LTEzcHg6IDAuODEyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktc20gKi9cbiRmb250LTE0cHg6IDAuODc1cmVtO1xuJGZvbnQtMTVweDogMC45Mzc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS1tZCAqL1xuJGZvbnQtMTZweDogMXJlbTtcbiRmb250LTE3cHg6IDEuMDYyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktbGcgKi9cbiRmb250LTE4cHg6IDEuMTI1cmVtO1xuJGZvbnQtMjBweDogMS4yNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmctc20gKi9cbiRmb250LTIycHg6IDEuMzc1cmVtO1xuJGZvbnQtMjRweDogMS41cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1tZCAqL1xuJGZvbnQtMjVweDogMS41NjI1cmVtO1xuJGZvbnQtMjZweDogMS42MjVyZW07XG4kZm9udC0yOHB4OiAxLjc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1sZyAqL1xuJGZvbnQtMzBweDogMS44NzVyZW07XG4kZm9udC0zMnB4OiAycmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy14bCAqL1xuJGZvbnQtMzRweDogMi4xMjVyZW07XG4kZm9udC0zNXB4OiAyLjE4NzVyZW07XG4kZm9udC00MnB4OiAyLjYyNXJlbTtcbiRmb250LTQ0cHg6IDIuNzVyZW07XG4kZm9udC00OHB4OiAzcmVtO1xuIiwiLypcbiAqIE51bml0by5cbiAqIEluY2x1ZGVzIGV4dGVuZGVkIExhdGluIGFuZCBWaWV0bmFtZXNlIGNoYXJhY3RlciBzZXRzXG4gKiBDdXJyZW50IFVSTHMgYXJlIHRha2VuIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZWl2YS9OdW5pdG9Gb250L3JlbGVhc2VzL3RhZy92My41MDBcbiAqIC4uLmluIG9yZGVyIHRvIGluY2x1ZGUgY3lyaWxsaWMuXG4gKlxuICogUHJldmlvdXNseSwgdGhleSB3ZXJlXG4gKiBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TnVuaXRvOjQwMCw0MDBpLDYwMCw2MDBpLDcwMCw3MDBpJnN1YnNldD1sYXRpbi1leHQsdmlldG5hbWVzZVxuICpcbiAqIFdlIGV4cGxpY2l0bHkgZG8gbm90IGluY2x1ZGUgTnVuaXRvJ3MgaXRhbGljIHZhcmlhbnRzLCBhcyB0aGV5IGFyZSBub3QgaXRhbGljIGVub3VnaFxuICogYW5kIGl0J3MgYmV0dGVyIHRvIHJlbHkgb24gdGhlIGJyb3dzZXIncyBidWlsdC1pbiBvYmxpcXVpbmcgYmVoYXZpb3VyLlxuICovXG5cbi8qIEdyYWIgdGhlIG90aGVyIGZvbnRzIGZyb20gdGhlIGN1cnJlbnQgdGhlbWUsIHNvIHdlIGNhbiBvdmVycmlkZSB0byBJbnRlciAqL1xuLyogaW4gY3VzdG9tIGZvbnRzIGlmIG5lZWRlZC4gKi9cbkBpbXBvcnQgXCIuLi8uLi9saWdodC9jc3MvX2ZvbnRzLnBjc3NcIjtcblxuLyogTnVuaXRvIGFzIHRoZSBkZWZhdWx0LCBmb3Igb2xkIHRpbWUncyBzYWtlIG9uIGxlZ2FjeSB0aGVtZXMuICovXG4vKiB0aGUgJ3NyYycgbGlua3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBidW5kbGUuY3NzLCB3aGljaCBpcyBpbiBhIHN1YmRpcmVjdG9yeS5cbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL051bml0by9OdW5pdG8tUmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1TZW1pQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbiIsIi8qIHRoZSAnc3JjJyBsaW5rcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJ1bmRsZS5jc3MsIHdoaWNoIGlzIGluIGEgc3ViZGlyZWN0b3J5LlxuICovXG5cbi8qIFR3ZW1vamkgQ09MUiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVHdlbW9qaVwiO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL1R3ZW1vamlfTW96aWxsYS9Ud2Vtb2ppTW96aWxsYS1jb2xyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuLyogRm9yIGF0IGxlYXN0IENocm9tZSBvbiBXaW5kb3dzIDEwLCB3ZSBoYXZlIHRvIGV4cGxpY3RseSBhZGQgZXh0cmEgd2VpZ2h0cyBmb3IgdGhlIGVtb2ppIHRvIGFwcGVhciBpbiBib2xkIG1lc3NhZ2VzLCBldGMuICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJUd2Vtb2ppXCI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJUd2Vtb2ppXCI7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4iLCI6cm9vdCB7XG4gICAgLyogVGhpcyBpcyBzZXQgdG8gVHdlbW9qaSB3aGVuIHRoZSB1c2VyIG9wdHMgaW50byB0aGUgYnVuZGxlZCBlbW9qaSBmb250ICovXG4gICAgLS1lbW9qaS1mb250LWZhbWlseTogXCJcIjtcbn1cblxuLyogTnVuaXRvIGxhY2tzIGNvbWJpbmluZyBkaWFjcml0aWNzLCBzbyB0aGVzZSB3aWxsIGZhbGwgdGhyb3VnaFxuICAgdG8gdGhlIG5leHQgZm9udC4gIEhlbGV2ZXRpY2EncyBkaWFjcml0aWNzIHNvbWV0aW1lcyBkbyBub3QgY29tYmluZVxuICAgbmljZWx5IChvbiBPU1gsIGF0IGxlYXN0KSBhbmQgcmVzdWx0IGluIGEgaHVnZSBob3Jpem9udGFsIG1lc3MuXG4gICBBcmlhbCBlbXBpcmljYWxseSBnZXRzIGl0IHJpZ2h0LCBoZW5jZSBwcmlvcml0aXNpbmcgQXJpYWwgaGVyZS4gKi9cbi8qIE5vdG8gQ29sb3IgRW1vamkgY29udGFpbnMgZGlnaXRzLCBpbiBmaXhlZC13aWR0aCwgdGhlcmVmb3JlIGNhdXNpbmdcbiAgIGRpZ2l0cyBpbiBmbG93ZWQgdGV4dCB0byBzdGFuZCBvdXQuXG4gICBUT0RPOiBDb25zaWRlciBwdXR0aW5nIGFsbCBlbW9qaSBmb250cyB0byB0aGUgZW5kIHJhdGhlciB0aGFuIHRoZSBmcm9udC4gKi9cbiRmb250LWZhbWlseTpcbiAgICBcIk51bml0b1wiLCB2YXIoLS1lbW9qaS1mb250LWZhbWlseSksIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWYsXG4gICAgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG5cbiRtb25vc3BhY2UtZm9udC1mYW1pbHk6XG4gICAgXCJGaXJhIENvZGVcIiwgdmFyKC0tZW1vamktZm9udC1mYW1pbHkpLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZSxcbiAgICBcIk5vdG8gQ29sb3IgRW1vamlcIjtcblxuLyogdW5pZmllZCBwYWxldHRlICovXG4vKiB0cnkgdG8gdXNlIHRoZXNlIGNvbG9ycyB3aGVuIHBvc3NpYmxlICovXG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiAjZjNmOGZkO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcblxuLyogdHlwaWNhbCB0ZXh0IChkYXJrLW9uLXdoaXRlIGluIGxpZ2h0IHNraW4pICovXG4kcHJpbWFyeS1mZy1jb2xvcjogIzJlMmYzMjtcbiRzZWNvbmRhcnktZmctY29sb3I6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRwcmltYXJ5LWJnLWNvbG9yOiAjZmZmZmZmO1xuJG11dGVkLWZnLWNvbG9yOiAjNjE3MDhiOyAvKiBDb21tb25seSB1c2VkIGluIGhlYWRpbmdzIGFuZCByZWxldmFudCBhbHQgdGV4dCAqL1xuXG4vKiB1c2VkIGZvciBkaWFsb2cgYm94IHRleHQgKi9cbiRsaWdodC1mZy1jb2xvcjogIzc0NzQ3NDtcblxuLyogdXNlZCBmb3IgZm9jdXNpbmcgZm9ybSBjb250cm9scyAqL1xuJGZvY3VzLWJnLWNvbG9yOiAjZGRkZGRkO1xuXG4vKiBidXR0b24gVUkgKHdoaXRlLW9uLWdyZWVuIGluIGxpZ2h0IHNraW4pICovXG4kYWNjZW50LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGFjY2VudC1hbHQ6ICMyMzhjZjU7XG5cbiRzZWxlY3Rpb24tZmctY29sb3I6ICRwcmltYXJ5LWJnLWNvbG9yO1xuXG4kZm9jdXMtYnJpZ2h0bmVzczogMTA1JTtcblxuLyogaW5mb3JtYXRpb25hbCBwbGludGggKi9cbiRpbmZvLXBsaW50aC1iZy1jb2xvcjogI2Y3ZjdmNztcbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuLyogbGVmdC1wYW5lbCBzdHlsZSBtdXRlZCBhY2NlbnQgY29sb3IgKi9cbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiAjZjJmNWY4O1xuXG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogIzI3MzAzYTtcbiRpbnZlcnRlZC1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgYnkgUm9vbURyb3BUYXJnZXQgKi9cbiRkcm9wdGFyZ2V0LWJnLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG5cbi8qIHVzZWQgYnkgQXV0b2NvbXBsZXRlICovXG4kc2VsZWN0ZWQtY29sb3I6ICRzZWNvbmRhcnktYWNjZW50LWNvbG9yO1xuXG4vKiBzZWxlY3RlZCBmb3IgaG92ZXJvdmVyICYgc2VsZWN0ZWQgZXZlbnQgdGlsZXMgKi9cbiRldmVudC1zZWxlY3RlZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuLyogdXNlZCBmb3IgdGhlIGhhaXJsaW5lIGRpdmlkZXJzIGluIFJvb21WaWV3ICovXG4kcHJpbWFyeS1oYWlybGluZS1jb2xvcjogI2U1ZTVlNTtcbiRzZWNvbmRhcnktaGFpcmxpbmUtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCk7XG5cbi8qIHVzZWQgZm9yIHRoZSBib3JkZXIgb2YgaW5wdXQgdGV4dCBmaWVsZHMgKi9cbiRpbnB1dC1ib3JkZXItY29sb3I6ICNlN2U3ZTc7XG4kaW5wdXQtZGFya2VyLWJnLWNvbG9yOiAjZTNlOGYwO1xuJGlucHV0LWRhcmtlci1mZy1jb2xvcjogIzlmYTliYTtcbiRpbnB1dC1saWdodGVyLWJnLWNvbG9yOiAjZjJmNWY4O1xuXG4kcmVzZW5kLWJ1dHRvbi1kaXZpZGVyLWNvbG9yOiAkaW5wdXQtZGFya2VyLWJnLWNvbG9yO1xuXG4kYnV0dG9uLWZnLWNvbG9yOiB3aGl0ZTtcblxuLyogYXBhcnQgZnJvbSBsb2dpbiBmb3Jtcywgd2hpY2ggaGF2ZSBzdHJvbmdlciBib3JkZXIgKi9cbiRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yOiAjYzdjN2M3O1xuXG4vKiB1c2VkIGZvciBVc2VyU2V0dGluZ3MgRWRpdGFibGVUZXh0ICovXG4kaW5wdXQtdW5kZXJsaW5lLWNvbG9yOiByZ2JhKDE1MSwgMTUxLCAxNTEsIDAuNSk7XG4kaW5wdXQtZmctY29sb3I6IHJnYmEoNzQsIDc0LCA3NCwgMC45KTtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbi8qIHNjcm9sbGJhcnMgKi9cbiRzY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbi8qIGNvbnRleHQgbWVudXMgKi9cbiRtZW51LWJvcmRlci1jb2xvcjogI2U3ZTdlNztcbiRtZW51LWJnLWNvbG9yOiAjZmZmO1xuJG1lbnUtYm94LXNoYWRvdy1jb2xvcjogcmdiYSgxMTgsIDEzMSwgMTU2LCAwLjYpO1xuJG1lbnUtc2VsZWN0ZWQtY29sb3I6ICNmNWY4ZmE7XG5cbiRhdmF0YXItaW5pdGlhbC1jb2xvcjogI2ZmZmZmZjtcblxuJGgzLWNvbG9yOiAjM2QzYjM5O1xuJGljb24tYnV0dG9uLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG5cbiRkaWFsb2ctdGl0bGUtZmctY29sb3I6ICM0NTQ3NGE7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiByZ2JhKDQ2LCA0OCwgNTEsIDAuMzgpO1xuJGRpYWxvZy1jbG9zZS1mZy1jb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG5cbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yOiAjMDAwO1xuJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTogMC45NTtcblxuJGltYWdlYm9keS1naWZsYWJlbDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuJGltYWdlYm9keS1naWZsYWJlbC1ib3JkZXI6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiRpbWFnZWJvZHktZ2lmbGFiZWwtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7XG5cbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuJG5ldXRyYWwtYmFkZ2UtY29sb3I6ICNkYmRiZGI7XG5cbiRwcmV2aWV3LXdpZGdldC1iYXItY29sb3I6ICNkZGQ7XG5cbiRibG9ja3F1b3RlLWJhci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcblxuJHNldHRpbmdzLWdyZXktZmctY29sb3I6ICNhMmEyYTI7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogIzYxNzA4YjtcblxuJHJ0ZS1iZy1jb2xvcjogI2U5ZTllOTtcbiRydGUtY29kZS1iZy1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcblxuJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I6ICM5MWExYzA7XG5cbiRwaWxsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4kcGlsbC1ob3Zlci1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWhvdmVyZWQpO1xuJHBpbGwtcHJlc3MtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1wcmVzc2VkKTtcblxuJHRvcGxlZnRtZW51LWNvbG9yOiAjMjEyMTIxO1xuJHJvb21oZWFkZXItYmctY29sb3I6ICRwcmltYXJ5LWJnLWNvbG9yO1xuJHJvb21oZWFkZXItYWRkcm9vbS1iZy1jb2xvcjogIzkxYTFjMDtcbiRyb29taGVhZGVyLWFkZHJvb20tZmctY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4kcm9vbXRvcGljLWNvbG9yOiAjOWU5ZTllO1xuJHJvb20taWNvbi11bnJlYWQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJHByZXNlbmNlLWF3YXk6ICNkOWIwNzI7XG4kcHJlc2VuY2Utb2ZmbGluZTogI2UzZThmMDtcbiRwcmVzZW5jZS1idXN5OiAjZmY1YjU1O1xuXG4vKiBMZWdhY3kgdGhlbWUgYmFja3BvcnRzICovXG4kYWNjZW50OiAjMGRiZDhiO1xuJGFsZXJ0OiAjZmY1YjU1O1xuJGxpbmtzOiAjMDA4NmU2O1xuJGxpbmstZXh0ZXJuYWw6ICMwNDY3ZGQ7XG4kcHJpbWFyeS1jb250ZW50OiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRzZWNvbmRhcnktY29udGVudDogJHNlY29uZGFyeS1mZy1jb2xvcjtcbiR0ZXJ0aWFyeS1jb250ZW50OiAkdGVydGlhcnktZmctY29sb3I7XG4kcXVhdGVybmFyeS1jb250ZW50OiAjNmY3ODgyO1xuJHF1aW5hcnktY29udGVudDogJHF1YXRlcm5hcnktY29udGVudDtcbiRzeXN0ZW06ICNmNGY2ZmE7XG4kc3lzdGVtLXRyYW5zcGFyZW50OiAjZTFlNmVjMDA7XG4kYmFja2dyb3VuZDogJHByaW1hcnktYmctY29sb3I7XG4kb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjg1KTtcblxuJHBhbmVsczogcmdiYSgkc3lzdGVtLCAwLjkpO1xuJHBhbmVsLWFjdGlvbnM6ICNmZmY7XG5cbiRzZXBhcmF0b3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR2b2lwY2FsbC1wbGludGgtY29sb3I6ICRzeXN0ZW07XG5cbiRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kOiAjMjEyNjJjO1xuXG4kdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDogIzM5NDA0OTsgLyogWFhYOiBDb2xvciBmcm9tIGRhcmsgdGhlbWUgKi9cblxuLyogQWxsIG9mIHRoZXNlIGFyZSBmcm9tIGRhcmsgdGhlbWUgKi9cbiRjYWxsLXN5c3RlbTogIzIxMjYyYztcbiRjYWxsLWJhY2tncm91bmQ6ICMxNTE5MWU7XG4kY2FsbC1wcmltYXJ5LWNvbnRlbnQ6ICNmZmZmZmY7XG4kY2FsbC1saWdodC1xdWF0ZXJuYXJ5LWNvbnRlbnQ6ICNjMWM2Y2Q7XG5cbiR1c2VybmFtZS12YXJpYW50MS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0xKTtcbiR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0yKTtcbiR1c2VybmFtZS12YXJpYW50My1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0zKTtcbiR1c2VybmFtZS12YXJpYW50NC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS00KTtcbiR1c2VybmFtZS12YXJpYW50NS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS01KTtcbiR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS02KTtcblxuLyoqXG4gKiBDcmVhdGluZyBhIGBzZW1hbnRpY2AgY29sb3Igc2NhbGUuIFRoaXMgd2lsbCBub3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ld1xuICogdmlzdWFsIGxhbmd1YWdlLCBidXQgbmVjZXNzYXJ5IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2RcbiAqIFRoaXMgYWJzdHJhY3QgdGhlIGBncmVlbmAgYXdheSBmcm9tIHdoZXJlIGFjY2VudCBzaGFkZXMgYXJlIHVzZWRcbiAqIFRha2U6IGBiYWNrZ3JvdW5kOiByZ2JhKCRhY2NlbnQsIDAuMSk7YFxuICogd291bGQgYmUgdHJhbnNmb3JtZWQgdG86IGBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtgXG4gKlxuICogVG8gdXNlIHVuZGVyIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLCBhbHdheXMgcHJlZmVyIHRoZSBzZW1hbnRpY3MgZGVmaW5lZFxuICogaW4gaHR0cHM6Ly9jb21wb3VuZC5lbGVtZW50LmlvLz9wYXRoPS9kb2NzL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG4kd2lkZ2V0LWJvZHktYmctY29sb3I6ICNmZmY7XG5cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qICRldmVudC1oaWdobGlnaHQtYmctY29sb3Igc2hhcmVzIHRoaXMgdmFsdWUsICovXG4vKiBzbyB0byBub3QgbWFrZSB0aGVpciBvcmRlciBkZXBlbmRlbnQgb24gd2hvIGRlcGVuZHMgb24gd2hvLCBoYXZlIGEgc2hhcmVkIHZhbHVlICovXG4vKiBkZWZpbmVkIGJlZm9yZSBib3RoICovXG4keWVsbG93LWJhY2tncm91bmQ6ICNmZmY4ZTM7XG5cbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6ICR5ZWxsb3ctYmFja2dyb3VuZDtcblxuLyogZXZlbnQgdGltZXN0YW1wICovXG4kZXZlbnQtdGltZXN0YW1wLWNvbG9yOiAjYWNhY2FjO1xuXG4vKiBlMmUgKi9cbiRlMmUtdmVyaWZpZWQtY29sb3I6ICMwZGJkOGI7XG4kZTJlLXdhcm5pbmctY29sb3I6ICNmZjViNTU7XG4kZTJlLXZlcmlmaWVkLWNvbG9yLWxpZ2h0OiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRlMmUtd2FybmluZy1jb2xvci1saWdodDogdmFyKC0tY3BkLWNvbG9yLXJlZC0zMDApO1xuXG4vKioqIEltYWdlVmlldyAqKiovXG4kbGlnaHRib3gtYmctY29sb3I6ICM0NTQ1NDU7XG4kbGlnaHRib3gtZmctY29sb3I6ICNmZmZmZmY7XG4kbGlnaHRib3gtYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xuXG4vKiBUYWJiZWQgdmlld3MgKi9cbiR0YWItbGFiZWwtZmctY29sb3I6ICM0NTQ3NGE7XG4kdGFiLWxhYmVsLWFjdGl2ZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuLyogQnV0dG9ucyAqL1xuJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1zZWNvbmRhcnktYmctY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4kYnV0dG9uLWRhbmdlci1mZy1jb2xvcjogI2ZmZmZmZjtcbiRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3I6ICNmNWI2YmI7IC8qIFRPRE86IFZlcmlmeSBjb2xvciAqL1xuXG4kdmlzdWFsLWJlbGwtYmctY29sb3I6ICNmYWE7XG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICNjMWM5ZDY7XG4kdG9nZ2xlc3ctYmFsbC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4kcHJvZ3Jlc3NiYXItYmctY29sb3I6IHJnYmEoMTQxLCAxNTEsIDE2NSwgMC4yKTtcblxuJGF1dGhwYWdlLWJnLWNvbG9yOiAjMmUzNjQ5O1xuJGF1dGhwYWdlLW1vZGFsLWJnLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTkpO1xuJGF1dGhwYWdlLW1vZGFsLWNvbnRlbnQtd2l0aC1ibHVyLWJnLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC41OSk7XG4kYXV0aHBhZ2UtZm9jdXMtYmctY29sb3I6ICNkZGRkZGQ7XG4kYXV0aHBhZ2UtbGFuZy1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuJGF1dGhwYWdlLXByaW1hcnktY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kYXV0aHBhZ2Utc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiRkYXJrLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4kcGFuZWwtZ3JhZGllbnQ6IHJnYmEoMjQyLCAyNDUsIDI0OCwgMCksIHJnYmEoMjQyLCAyNDUsIDI0OCwgMSk7XG5cbiRtZXNzYWdlLWFjdGlvbi1iYXItYmctY29sb3I6ICRwcmltYXJ5LWJnLWNvbG9yO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjogJHByaW1hcnktZmctY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWJvcmRlci1jb2xvcjogI2U5ZWRmMTtcbiRtZXNzYWdlLWFjdGlvbi1iYXItaG92ZXItYm9yZGVyLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG5cbiRyZWFjdGlvbi1yb3ctYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjogJGZvY3VzLWJnLWNvbG9yO1xuJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3I6ICNlOWZmZjk7XG5cbiRrYmQtYm9yZGVyLWNvbG9yOiAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcblxuJHRvb2x0aXAtdGltZWxpbmUtYmctY29sb3I6ICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuJHRvb2x0aXAtdGltZWxpbmUtZmctY29sb3I6ICNmZmZmZmY7XG5cbiRicmVhZGNydW1iLXBsYWNlaG9sZGVyLWJnLWNvbG9yOiAjZThlZWY1O1xuXG4vKiBTZWUgbm9uLWxlZ2FjeSBfbGlnaHQgZm9yIHZhcmlhYmxlIGluZm9ybWF0aW9uICovXG4kdm9pY2UtcmVjb3JkLXN0b3Atc3ltYm9sLWNvbG9yOiAjZmY0YjU1O1xuJHZvaWNlLXJlY29yZC1saXZlLWNpcmNsZS1jb2xvcjogI2ZmNGI1NTtcbiR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I6ICNlM2U4ZjA7XG4kdm9pY2UtcmVjb3JkLWljb24tY29sb3I6ICR0ZXJ0aWFyeS1mZy1jb2xvcjtcblxuJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjogdHJhbnBhcmVudDtcblxuJGNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuLyogQnViYmxlIHRpbGVzICovXG4kZXZlbnRidWJibGUtc2VsZi1iZzogI2YwZmJmODtcbiRldmVudGJ1YmJsZS1vdGhlcnMtYmc6ICRzeXN0ZW07XG4kZXZlbnRidWJibGUtYmctaG92ZXI6ICNmYWZiZmQ7XG5cbi8qIHBpbm5lZCBldmVudHMgaW5kaWNhdG9yICovXG4kcGlubmVkLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuJHNwYWNlUGFuZWwtZGl2aWRlci1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG5cbi8qIExvY2F0aW9uIHNoYXJpbmcgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kbG9jYXRpb24tbWFya2VyLWNvbG9yOiAjZmZmZmZmO1xuJGxvY2F0aW9uLWxpdmUtY29sb3I6ICM1YzU2ZjU7XG4kbG9jYXRpb24tbGl2ZS1zZWNvbmRhcnktY29sb3I6ICNkZWRkZmQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG5ib2R5IHtcbiAgICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xufVxuXG4vKiBkaWZmIGhpZ2hsaWdodCBjb2xvcnMgKi9cbi5obGpzLWFkZGl0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGZkO1xufVxuXG4uaGxqcy1kZWxldGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2ZkZDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHksICRmb250LWZhbWlseSk7XG4kbW9ub3NwYWNlLWZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1tb25vc3BhY2UsICRtb25vc3BhY2UtZm9udC1mYW1pbHkpO1xuXG4vKiBDb2xvcnMgZnJvbSBGaWdtYSBDb21wb3VuZCBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkL0NvbXBvdW5kP25vZGUtaWQ9NTU5JTNBNzQxICovXG4kYWNjZW50OiB2YXIoLS1hY2NlbnQtY29sb3IsICRhY2NlbnQpO1xuJGFsZXJ0OiB2YXIoLS1hbGVydCwgJGFsZXJ0KTtcbiRsaW5rczogdmFyKC0tbGlua3MsICRsaW5rcyk7XG4kcHJpbWFyeS1jb250ZW50OiB2YXIoLS1wcmltYXJ5LWNvbnRlbnQsICRwcmltYXJ5LWNvbnRlbnQpO1xuJHNlY29uZGFyeS1jb250ZW50OiB2YXIoLS1zZWNvbmRhcnktY29udGVudCwgJHNlY29uZGFyeS1jb250ZW50KTtcbiR0ZXJ0aWFyeS1jb250ZW50OiB2YXIoLS10ZXJ0aWFyeS1jb250ZW50LCAkdGVydGlhcnktY29udGVudCk7XG4kcXVhdGVybmFyeS1jb250ZW50OiB2YXIoLS1xdWF0ZXJuYXJ5LWNvbnRlbnQsICRxdWF0ZXJuYXJ5LWNvbnRlbnQpO1xuJHF1aW5hcnktY29udGVudDogdmFyKC0tcXVpbmFyeS1jb250ZW50LCAkcXVpbmFyeS1jb250ZW50KTtcbiRzeXN0ZW06IHZhcigtLXN5c3RlbSwgJHN5c3RlbSk7XG4kc3lzdGVtLXRyYW5zcGFyZW50OiB2YXIoLS1zeXN0ZW0tdHJhbnNwYXJlbnQsICNlMWU2ZWMwMCk7XG4kYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCwgJGJhY2tncm91bmQpO1xuJHBhbmVsczogdmFyKC0tcGFuZWxzLCB2YXIoLS1jcGQtY29sb3ItZ3JheS02MDApKTtcbiRwYW5lbC1hY3Rpb25zOiB2YXIoLS1wYW5lbHMtYWN0aW9ucywgdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKSk7XG5cbi8qIC0tdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvciAqL1xuJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kOiB2YXIoLS10aW1lbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpKTtcbiRidXR0b24tc2Vjb25kYXJ5LWJnLWNvbG9yOiAkY3VzdG9tLXRoZW1lLWJhY2tncm91bmQ7XG4kbGlnaHRib3gtYm9yZGVyLWNvbG9yOiAkY3VzdG9tLXRoZW1lLWJhY2tncm91bmQ7XG4kbWVudS1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJGJhY2tncm91bmQ6ICRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDtcbiR0b2dnbGVzdy1iYWxsLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4kdG9nZ2xlc3ctb2ZmLWNvbG9yOiB2YXIoLS10b2dnbGVzdy1vZmYtY29sb3IpO1xuJGRyb3B0YXJnZXQtYmctY29sb3I6IHZhcigtLXRpbWVsaW5lLWJhY2tncm91bmQtY29sb3ItNTBwY3QpOyAvKiBzdGlsbCBuZWVkcyBhbHBoYSBhdCAuNSAqL1xuJGF1dGhwYWdlLW1vZGFsLWJnLWNvbG9yOiB2YXIoLS10aW1lbGluZS1iYWNrZ3JvdW5kLWNvbG9yLTUwcGN0KTsgLyogc3RpbGwgbmVlZHMgYWxwaGEgYXQgLjU5ICovXG4kcm9vbWhlYWRlci1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuXG4vKiAtLXJvb21saXN0LWhpZ2hsaWdodHMtY29sb3IgKi9cbiRwYW5lbC1hY3Rpb25zOiB2YXIoLS1yb29tbGlzdC1oaWdobGlnaHRzLWNvbG9yKTtcblxuLyogLS1zaWRlYmFyLWNvbG9yICovXG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvcik7XG4kdG9vbHRpcC10aW1lbGluZS1iZy1jb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvcik7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWNvbG9yLTUwcGN0KTtcblxuLyogLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yICovXG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRoZWFkZXItcGFuZWwtYmctaG92ZXI6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuJHBhbmVsLWdyYWRpZW50OiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yLTBwY3QpLCB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbi8qIHRoZXNlIHdlcmUgI2YyZjVmOCBpbnN0ZWFkIG9mICNmM2Y4ZmQsIGJ1dCBjbG9zZSBlbm91Z2ggKi9cbiRkYXJrLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRpbnB1dC1saWdodGVyLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRzZWxlY3RlZC1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRyb29tbGlzdC1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG5cbi8qIC0tdGltZWxpbmUtdGV4dC1jb2xvciAqL1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4kcHJpbWFyeS1jb250ZW50OiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yKTtcbiRyb29tdG9waWMtY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3ItNTBwY3QpO1xuLyogd2FzICMyMTIxMjEgKi9cbiR0b3BsZWZ0bWVudS1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4vKiB3YXMgIzQ1NDc0YSAqL1xuJGRpYWxvZy10aXRsZS1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4vKiB3YXMgIzRlNTA1NCAqL1xuJGF1dGhwYWdlLWxhbmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3IpO1xuLyogd2FzICMyMzJmMzIgKi9cbiRhdXRocGFnZS1wcmltYXJ5LWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yKTtcblxuLyogLS1yb29tbGlzdC1zZXBhcmF0b3ItY29sb3IgKi9cbiRpbnB1dC1kYXJrZXItYmctY29sb3I6IHZhcigtLXJvb21saXN0LXNlcGFyYXRvci1jb2xvcik7XG4kcHJpbWFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tcm9vbWxpc3Qtc2VwYXJhdG9yLWNvbG9yKTsgLyogb3JpZ2luYWxseSAjZTVlNWU1LCBidXQgY2xvc2UgZW5vdWdoICovXG4kc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaGFpcmxpbmUtY29sb3IpO1xuXG4vKiAtLXRpbWVsaW5lLXRleHQtc2Vjb25kYXJ5LWNvbG9yICovXG4kYXV0aHBhZ2Utc2Vjb25kYXJ5LWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4kcGlubmVkLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJHJvb21oZWFkZXItYWRkcm9vbS1iZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuLyogd2FzICM3NDc0NzQgKi9cbiRsaWdodC1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJGZvY3VzLWJnLWNvbG9yOiB2YXIoLS1mb2N1cy1iZy1jb2xvciwgJGZvY3VzLWJnLWNvbG9yKTtcbiRyb29tLWhpZ2hsaWdodC1jb2xvcjogdmFyKC0tcm9vbS1oaWdobGlnaHQtY29sb3IpO1xuXG4kcnRlLXJvb20tcGlsbC1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuXG4vKiB3YXMgIzg4ODg4OCAqL1xuJGluZm8tcGxpbnRoLWZnLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG5cbi8qIC0tcHJpbWFyeS1jb2xvciAqL1xuJGFjY2VudC1hbHQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXG4vKiAtLXdhcm5pbmctY29sb3IgKi9cbiRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yLTUwcGN0KTsgLyogc3RpbGwgbmVlZHMgYWxwaGEgYXQgMC41ICovXG5cbi8qIC0tdGltZWxpbmUtaGlnaGxpZ2h0cy1jb2xvciAqL1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiB2YXIoLS10aW1lbGluZS1oaWdobGlnaHRzLWNvbG9yKTtcbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6IHZhcigtLXRpbWVsaW5lLWhpZ2hsaWdodHMtY29sb3IpO1xuXG4vKiByZWRpcmVjdCBzb21lIHZhcmlhYmxlcyBhd2F5IGZyb20gdGhlaXIgaGFyZGNvZGVkIHZhbHVlcyBpbiB0aGUgbGlnaHQgdGhlbWUgKi9cbiRzZXR0aW5ncy1ncmV5LWZnLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4vKiAtLWV2ZW50YnViYmxlIGNvbG9ycyAqL1xuJGV2ZW50YnViYmxlLXNlbGYtYmc6IHZhcigtLWV2ZW50YnViYmxlLXNlbGYtYmcsICRldmVudGJ1YmJsZS1zZWxmLWJnKTtcbiRldmVudGJ1YmJsZS1vdGhlcnMtYmc6IHZhcigtLWV2ZW50YnViYmxlLW90aGVycy1iZywgJGV2ZW50YnViYmxlLW90aGVycy1iZyk7XG4kZXZlbnRidWJibGUtYmctaG92ZXI6IHZhcigtLWV2ZW50YnViYmxlLWJnLWhvdmVyLCAkZXZlbnRidWJibGUtYmctaG92ZXIpO1xuXG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcjogdmFyKFxuICAgIC0tcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcixcbiAgICAkcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvclxuKTtcblxuJG1lbnUtc2VsZWN0ZWQtY29sb3I6IHZhcigtLW1lbnUtc2VsZWN0ZWQtY29sb3IsICRtZW51LXNlbGVjdGVkLWNvbG9yKTtcbiRwaWxsLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLWJnLWNvbG9yKTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLWhvdmVyLWJnLWNvbG9yKTtcbiRwaWxsLXByZXNzLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLXByZXNzLWJnLWNvbG9yKTtcbiRpY29uLWJ1dHRvbi1jb2xvcjogdmFyKC0taWNvbi1idXR0b24tY29sb3IsICRpY29uLWJ1dHRvbi1jb2xvcik7XG5cbiRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yLCAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcik7XG4kaW52ZXJ0ZWQtYmctY29sb3I6IHZhcigtLXN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3IsICRpbnZlcnRlZC1iZy1jb2xvcik7XG5cbi8qKlxuICogVmFyaWF0aW9uIG9mIHRoZSBhY2NlbnQgY29sb3IuXG4gKiBHZW5lcmF0ZSB0aGlzIGNvbG91ciBzY2FsZSB1c2luZyBMZW9uYXJkb0NvbG9yXG4gKiBUT0RPOiBBZGQgbGlua1xuICovXG4kYWNjZW50LTEwMDogdmFyKC0tYWNjZW50LWNvbG9yLTEwMCk7XG4kYWNjZW50LTIwMDogdmFyKC0tYWNjZW50LWNvbG9yLTIwMCk7XG4kYWNjZW50LTMwMDogdmFyKC0tYWNjZW50LWNvbG9yLTMwMCk7XG4kYWNjZW50LTQwMDogdmFyKC0tYWNjZW50LWNvbG9yLTQwMCk7XG4kYWNjZW50LTUwMDogdmFyKC0tYWNjZW50LWNvbG9yLTUwMCk7XG4kYWNjZW50LTYwMDogdmFyKC0tYWNjZW50LWNvbG9yLTYwMCk7XG4kYWNjZW50LTcwMDogdmFyKC0tYWNjZW50LWNvbG9yLTcwMCk7XG4kYWNjZW50LTgwMDogdmFyKC0tYWNjZW50LWNvbG9yLTgwMCk7XG4kYWNjZW50LTkwMDogdmFyKC0tYWNjZW50LWNvbG9yLTkwMCk7XG4kYWNjZW50LTEwMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMDAwKTtcbiRhY2NlbnQtMTEwMDogdmFyKC0tYWNjZW50LWNvbG9yLTExMDApO1xuJGFjY2VudC0xMjAwOiB2YXIoLS1hY2NlbnQtY29sb3ItMTIwMCk7XG4kYWNjZW50LTEzMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMzAwKTtcbiRhY2NlbnQtMTQwMDogdmFyKC0tYWNjZW50LWNvbG9yLTE0MDApO1xuIiwiLyogYXV0b2dlbmVyYXRlZCBieSByZXRoZW1lbmRleC5zaCAqL1xuQGltcG9ydCBcIi4vX2FuaW1hdGlvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vX2NvbW1vbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fbWV0bWV0LWJyYW5kLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25MaXN0SXRlbS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXNUb29sdGlwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25WaWV3RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dPd25CZWFjb25TdGF0dXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ1NpZGViYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xpdmVUaW1lUmVtYWluaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19Pd25CZWFjb25TdGF0dXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1NoYXJlTGF0ZXN0TG9jYXRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1N0eWxlZExpdmVCZWFjb25JY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvY29udGV4dF9tZW51cy9fS2ViYWJDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxEZXRhaWxIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW0ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW1FbmRlZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBQZXJtaXNzaW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyVGFiR3JvdXAucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fTGVhcm5Nb3JlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0VuYWJsZUxpdmVTaGFyZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19MaXZlRHVyYXRpb25Ecm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblNoYXJlTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBFcnJvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBGYWxsYmFjay5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXJrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVEaWFsb2dCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlVHlwZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19ab29tQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL19NQmVhY29uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL3NoYXJlZC9fTWVkaWFQcm9jZXNzaW5nRXJyb3IucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9wb2xscy9fUG9sbE9wdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL19BZGRSZW1vdmVUaHJlZXBpZHMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19DdXJyZW50RGV2aWNlU2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbEhlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVNlY3VyaXR5Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUeXBlSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlY3VyaXR5UmVjb21tZW5kYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VsZWN0YWJsZURldmljZVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19LZXlTdG9yYWdlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9fUXVpY2tUaGVtZVN3aXRjaGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvdHlwb2dyYXBoeS9fQ2FwdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb3VuZC9fSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb3VuZC9fU3VjY2Vzc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19BdXRvSGlkZVNjcm9sbGJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19BdXRvY29tcGxldGVJbnB1dC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Db21wYXRpYmlsaXR5UGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Db250ZXh0dWFsTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19FcnJvck1lc3NhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRmlsZURyb3BUYXJnZXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRmlsZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0dlbmVyaWNEcm9wZG93bk1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fSG9tZVBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTGFyZ2VMb2FkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTGVmdFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX01haW5TcGxpdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19NYXRyaXhDaGF0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX05vblVyZ2VudFRvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1F1aWNrU2V0dGluZ3NCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fUmlnaHRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Sb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TZWFyY2hCb3gucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VIaWVyYXJjaHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGFjZVBpbGxCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VSb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGxhc2hQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RhYmJlZFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fVGhyZWFkc0FjdGl2aXR5Q2VudHJlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1VwbG9hZEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19WaWV3U291cmNlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fQ29tcGxldGVTZWN1cml0eS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTG9naW5TcGxhc2hWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTW9iaWxlUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2Vzc2lvbkxvY2tTdG9sZW5WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2V0dXBFbmNyeXB0aW9uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2d1ZXN0L19HdWVzdE9uYm9hcmRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXVkaW9fbWVzc2FnZXMvX1BsYXliYWNrQ29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19TZWVrQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19XYXZlZm9ybS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoRm9vdGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEhlYWRlckxvZ28ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aFBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ29tcGxldGVTZWN1cml0eUJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ291bnRyeURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0RlZmF1bHRXZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19MYW5ndWFnZVNlbGVjdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0xvZ2luV2l0aFFSLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX1Bhc3NwaHJhc2VGaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19XZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX0Jhc2VBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fRGVjb3JhdGVkUm9vbUF2YXRhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19Sb29tQXZhdGFyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19XaWRnZXRBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fV2l0aFByZXNlbmNlSW5kaWNhdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2JldGEvX0JldGFDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0RldmljZUNvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0ljb25pemVkQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvY29udGV4dF9tZW51cy9fTGVnYWN5Q2FsbENvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19BbmFseXRpY3NMZWFybk1vcmVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQnVnUmVwb3J0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NoYW5nZWxvZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db21wb3VuZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVJvb21EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3JlYXRlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcmVhdGVTdWJzcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcnlwdG8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGVhY3RpdmF0ZUFjY291bnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGV2dG9vbHNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRXhpdFJvb21Db25maXJtRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0V4cG9ydERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19GZWVkYmFja0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Gb3J3YXJkRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSW5jb21pbmdTYXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSW52aXRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZVByb2dyZXNzQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Kb2luUnVsZURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xlYXZlU3BhY2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTG9jYXRpb25WaWV3RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xvZ291dERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX01vZGFsV2lkZ2V0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1BvbGxDcmVhdGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVnaXN0cmF0aW9uRW1haWxQcm9tcHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVtb3ZlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19SZXBvcnRSb29tRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2dCcmlkZ2VzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXJ2ZXJPZmZsaW5lRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlclBpY2tlckRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXRFbWFpbERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TaGFyZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TbGFzaENvbW1hbmRIZWxwRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU3BhY2VTZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TcG90bGlnaHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVGVybXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVW5waW5BbGxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVXBsb2FkQ29uZmlybURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Vc2VyU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVmVyaWZ5RU1haWxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvaW52aXRlL19Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19LZXlCYWNrdXBGYWlsZWREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fUmVzdG9yZUtleUJhY2t1cERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaXJlY3RvcnkvX05ldHdvcmtEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQWNjZXNzaWJsZUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQ29weWFibGVUZXh0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19EZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FZGl0YWJsZUl0ZW1MaXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FcnJvckJvdW5kYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FeHRlcm5hbExpbmsucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ZhY2VQaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19GaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ltYWdlVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW5mb1Rvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0lubGluZVNwaW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ludGVyYWN0aXZlVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW52aXRlUmVhc29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYWJlbGxlZENoZWNrYm94LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYW5ndWFnZURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19NaW5pQXZhdGFyVXBsb2FkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1BpbGwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Bvd2VyU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Byb2dyZXNzQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19RUkNvZGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1JlcGx5Q2hhaW4ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jlc2l6ZUhhbmRsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fUmljaFRleHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jvb21BbGlhc0ZpZWxkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TU09CdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZWFyY2hXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXJ2ZXJQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRmxhZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3Bpbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3R5bGVkUmFkaW9CdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1N5bnRheEhpZ2hsaWdodC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVGFnQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RleHRXaXRoVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVG9nZ2xlU3dpdGNoLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19WYWxpZGF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fQ2FsbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19DcmVhdGVFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fRGlzYW1iaWd1YXRlZFByb2ZpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0xlZ2FjeUNhbGxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTUltYWdlUmVwbHlCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NTG9jYXRpb25Cb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NUG9sbEJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01TdGlja2VyQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTWVzc2FnZUFjdGlvbkJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fVGV4dHVhbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19UaHJlYWRBY3Rpb25CYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX2NvbW1vbl9DcnlwdG9FdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5TGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fQmFzZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VtcHR5U3RhdGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VuY3J5cHRpb25JbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FeHRlbnNpb25zQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fUGlubmVkTWVzc2FnZXNDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19Sb29tU3VtbWFyeUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1RocmVhZFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaW1lbGluZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1VzZXJJbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19WZXJpZmljYXRpb25QYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fV2lkZ2V0Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tX3NldHRpbmdzL19BbGlhc1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL1Jvb21MaXN0UGFuZWwvX1Jvb21MaXN0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0FwcHNEcmF3ZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0F1dG9jb21wbGV0ZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQXV4UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19DYWxsR3Vlc3RMaW5rQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRWRpdE1lc3NhZ2VDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRW1vamlCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0V2ZW50QnViYmxlVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRXZlbnRUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19IaXN0b3J5VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSVJDTGF5b3V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19JbnZpdGVkSWNvblZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0p1bXBUb0JvdHRvbUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTGl2ZUNvbnRlbnRTdW1tYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0SGVhZGVyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVtYmVyTGlzdFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lbWJlclRpbGVWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3NlckZvcm1hdEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTmV3Um9vbUludHJvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19PdmVyZmxvd1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Bpbm5lZEV2ZW50VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUGlubmVkTWVzc2FnZUJhbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VMYWJlbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVhZFJlY2VpcHRHcm91cC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVwbHlQcmV2aWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19SZXBseVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21IZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21JbmZvTGluZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbUtub2Nrc0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVNlYXJjaEF1eFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tVXBncmFkZVdhcm5pbmdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1NlbmRNZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1N0aWNrZXJzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19UaGlyZFBhcnR5TWVtYmVySW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fVG9wVW5yZWFkTWVzc2FnZXNCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1VzZXJJZGVudGl0eVdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19XaG9Jc1R5cGluZ1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fRWRpdFd5c2l3eWdDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19TZW5kV3lzaXd5Z0NvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRWRpdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRm9ybWF0dGluZ0J1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19MaW5rTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0F2YXRhclNldHRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ZvbnRTY2FsaW5nUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ltYWdlU2l6ZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19JbnRlZ3JhdGlvbk1hbmFnZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0pvaW5SdWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0tleWJvYXJkU2hvcnRjdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0xheW91dFN3aXRjaGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uU2V0dGluZ3MyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19QaG9uZU51bWJlcnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1Bvd2VyTGV2ZWxTZWxlY3Rvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fUm9vbVByb2ZpbGVTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0SW50ZWdyYXRpb25NYW5hZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0ZpZWxkc2V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0hlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NTdWJoZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NwZWxsQ2hlY2tMYW5ndWFnZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1RoZW1lQ2hvaWNlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VwZGF0ZUNoZWNrQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VzZXJQcm9maWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQWR2YW5jZWRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19DaGFuZ2VSZWNvdmVyeUtleS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZEVtcGhhc2lzZWRDb250ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVzZXRJZGVudGl0eVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzQmFubmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzSW5kZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzU2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX05vdGlmaWNhdGlvblNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUGVvcGxlUm9vbVNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUm9sZXNSb29tU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19TZWN1cml0eVJvb21TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19IZWxwVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fS2V5Ym9hcmRVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19Nam9sbmlyVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TZWN1cml0eVVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NpZGViYXJVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUJhc2ljU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUNoaWxkcmVuUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VDcmVhdGVNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Rlcm1zL19JbmxpbmVUZXJtc0FncmVlbWVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX0FuYWx5dGljc1RvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdDYWxsVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdHlwb2dyYXBoeS9fSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92ZXJpZmljYXRpb24vX1ZlcmlmaWNhdGlvblNob3dTYXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9MZWdhY3lDYWxsVmlldy9fTGVnYWN5Q2FsbFZpZXdCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0NhbGxEdXJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19DYWxsVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0RpYWxQYWRDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdGb3JSb29tLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3SGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3U2lkZWJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19WaWRlb0ZlZWQucGNzc1wiO1xuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4gKiBSZWFjdCBUcmFuc2l0aW9uIEdyb3VwIGFuaW1hdGlvbnMgYXJlIHByZWZpeGVkIHdpdGggJ214X3J0Zy0tJyBzbyB0aGF0IHdlXG4gKiBrbm93IHRoZXkgc2hvdWxkIG5vdCBiZSB1c2VkIGFueXdoZXJlIG91dHNpZGUgb2YgUmVhY3QgVHJhbnNpdGlvbiBHcm91cHMuXG4qL1xuXG4ubXhfcnRnLS1mYWRlLWVudGVyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0IHtcbiAgICBvcGFjaXR5OiAxO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0LWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7XG59XG5cbjpyb290IHtcbiAgICAtLWhvdmVyLXRyYW5zaXRpb246IDAuMDhzIGN1YmljLWJlemllcigwLjQ2LCAwLjAzLCAwLjUyLCAwLjk2KTsgLyogcXVhZHJhdGljICovXG59XG5cbkBrZXlmcmFtZXMgbXgtLWFuaW0tcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbXhfRGlhbG9nX2xpZ2h0Ym94X2JhY2tncm91bmRfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgQGtleWZyYW1lcyBteC0tYW5pbS1wdWxzZSB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcyB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0ltYWdlVmlld19wYW5lbF9rZXlmcmFtZXMge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgICAubXhfcnRnLS1mYWRlLWV4aXQtYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcbkNvcHlyaWdodCAyMDE3LTIwMTkgTmV3IFZlY3RvciBMdGRcbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fYW5pbWF0aW9ucy5wY3NzXCI7XG5cbjpyb290IHtcbiAgICAtLWNvbnRhaW5lci1ib3JkZXItd2lkdGg6IDhweDtcbiAgICAtLWNvbnRhaW5lci1nYXAtd2lkdGg6IDhweDsgLyogb25seSBldmVuIG51bWJlcnMgc2hvdWxkIGJlIHVzZWQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgZ2V0IDAuNXB4IG1hcmdpbiB2YWx1ZXMuICovXG4gICAgLS10cmFuc2l0aW9uLXNob3J0OiAwLjFzO1xuICAgIC0tdHJhbnNpdGlvbi1zdGFuZGFyZDogMC4zcztcbiAgICAtLWJ1dHRvbnMtZGlhbG9nLWdhcC1yb3c6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLS1idXR0b25zLWRpYWxvZy1nYXAtY29sdW1uOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC0tTUJvZHktYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jazogMTBweDtcbiAgICAtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGg6IDQ2cHg7IC8qIDggKyAzMCAoYXZhdGFyKSArIDggKi9cblxuICAgIC8qIEV4cGVjdGVkIHotaW5kZXhlcyBmb3IgZGlhbG9nczpcbiAgICAgICAgNDAwMCAtIERlZmF1bHQgd3JhcHBlciBpbmRleFxuICAgICAgICA0MDA5IC0gU3RhdGljIGRpYWxvZyBiYWNrZ3JvdW5kXG4gICAgICAgIDQwMTAgLSBTdGF0aWMgZGlhbG9nIGl0c2VsZlxuICAgICAgICA0MDExIC0gU3RhbmRhcmQgZGlhbG9nIGJhY2tncm91bmRcbiAgICAgICAgNDAxMiAtIFN0YW5kYXJkIGRpYWxvZyBpdHNlbGZcblxuICAgICAgIFRoZXNlIGFyZSBzZXQgdXAgc3VjaCB0aGF0IHRoZSBzdGF0aWMgZGlhbG9nIGFsd2F5cyBhcHBlYXJzXG4gICAgICAgdW5kZXJuZWF0aCB0aGUgc3RhbmRhcmQgZGlhbG9ncy5cbiAgICAgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtd3JhcHBlci1kZWZhdWx0OiA0MDAwO1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGF0aWMtYmFja2dyb3VuZDogNDAwOTtcbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhdGljOiBjYWxjKHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljLWJhY2tncm91bmQpICsgMSk7IC8qIDQwMTAgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQtYmFja2dyb3VuZDogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYykgKyAxKTsgLyogNDAxMSAqL1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZDogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkLWJhY2tncm91bmQpICsgMSk7IC8qIDQwMTIgKi9cbn1cblxuI21hdHJpeGNoYXQge1xuICAgIC8qIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5zdXJlIENvbXBvdW5kIHRvb2x0aXBzIGNvcnJlY3RseSBkcmF3IHdoZXJlIHRoZXkgc2hvdWxkIHdpdGggei1pbmRleDogYXV0byAqL1xuICAgIGNvbnRhaW46IHN0cmljdDtcbn1cbiNteF9Db250ZXh0dWFsTWVudV9Db250YWluZXIsXG4jbXhfUGVyc2lzdGVkRWxlbWVudF9jb250YWluZXIsXG4jbXhfRGlhbG9nX0NvbnRhaW5lcixcbiNteF9EaWFsb2dfU3RhdGljQ29udGFpbmVyIHtcbiAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBDb21wb3VuZCB0b29sdGlwcyBjb3JyZWN0bHkgZHJhdyB3aGVyZSB0aGV5IHNob3VsZCB3aXRoIHotaW5kZXg6IGF1dG8gKi9cbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG59XG5cbi8qKlxuICogRGlzYWJsZSBwb2ludGVyIGV2ZW50cyBpbnNpZGUgdGhlIHBlcnNpc3RlbnRFbGVtZW50IGNvbnRhaW5lciB3aGVuIHRoZSByb29tLWxpc3QgaXMgYmVpbmcgcmVzaXplZC5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIHRoZSBwb2ludGVyIGV2ZW50cyBmcm9tIGJlaW5nIGhpamFja2VkIGJ5IHRoZSBjb250ZW50IHJlbmRlcmVkIGluc2lkZVxuICogdGhhdCBkaXYuXG4gKi9cbjpyb290OmhhcygubXhfU2VwYXJhdG9yW2RhdGEtc2VwYXJhdG9yPVwiYWN0aXZlXCJdKSAjbXhfUGVyc2lzdGVkRWxlbWVudF9jb250YWluZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKipcbiAqIFdlIG5lZWQgdG8gaW5jcmVhc2UgdGhlIHNwZWNpZmljaXR5IG9mIHRoZSBzZWxlY3RvciB0byBvdmVycmlkZSB0aGVcbiAqIGN1c3RvbSBwcm9wZXJ0eSBzZXQgYnkgdGhlIGRlc2lnbiB0b2tlbnMgcGFja2FnZVxuICovXG5bY2xhc3NePVwiY3BkLXRoZW1lXCJdW2NsYXNzXj1cImNwZC10aGVtZVwiXSB7XG4gICAgLyoqXG4gICAgICogVGhlIGRlc2lnbiB0b2tlbnMgcGFja2FnZSBjdXJyZW50bHkgZG9lcyBub3QgZXhwb3NlIHRoZSBmYWxsYmFjayBmb250c1xuICAgICAqIFdlIHdhbnQgdG8ga2VlcCBvbiByZS11c2luZyBgJGZvbnQtZmFtaWx5YCB0byBub3QgYnJlYWsgY3VzdG9tIHRoZW1lc1xuICAgICAqIGFuZCBiZWNhdXNlIHdlIGNhbiB0byB1c2UgYFR3ZW1vamlgIHRvIGRpc3BsYXkgZW1vamkgcmF0aGVyIHRoYW4gdXNpbmdcbiAgICAgKiBzeXN0ZW0gb25lc1xuICAgICAqL1xuICAgIC0tY3BkLWZvbnQtZmFtaWx5LXNhbnM6ICRmb250LWZhbWlseTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgOnJvb3Qge1xuICAgICAgICAtLXRyYW5zaXRpb24tc2hvcnQ6IDA7XG4gICAgICAgIC0tdHJhbnNpdGlvbi1zdGFuZGFyZDogMDtcbiAgICB9XG59XG5cbmh0bWwge1xuICAgIC8qIGhhY2sgdG8gc3RvcCBvdmVyc2Nyb2xsIGJvdW5jZSBvbiBPU1ggYW5kIGlPUy5cbiAgICAgICBOLkIuIEJyZWFrcyB0aGluZ3Mgd2hlbiB3ZSBoYXZlIGxlZ2l0aW1hdGUgaG9yaXpvbnRhbCBvdmVyc2Nyb2xsICovXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogU3RvcCBzaW1pbGFyIG92ZXJzY3JvbGwgYm91bmNlIGluIEZpcmVmb3ggTmlnaHRseSBmb3IgbWFjT1MgKi9cbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xufVxuXG5ib2R5IHtcbiAgICAvKiAhaW1wb3J0YW50IGJlY2F1c2UgY29tcG91bmQgb3ZlcnJpZGVzIHRoZXNlIGZvbnQgc2V0dGluZ3MgZm9yIGJvZHkgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpICFpbXBvcnRhbnQ7XG4gICAgLyoqXG4gICAgICogV2Ugd2FudCB0byBhcHBseSBJbnRlciBEeW5hbWljIG1ldHJpY3MgKGh0dHBzOi8vcnNtcy5tZS9pbnRlci9keW5tZXRyaWNzLylcbiAgICAgKiBXZSBuZWVkIHRvIHR3ZWFrIHRoZSBgbGV0dGVyLXNwYWNpbmdgIHByb3BlcnR5IGFuZCBkb2luZyBzbywgZGlzYWJsZXMgYnlcbiAgICAgKiBkZWZhdWx0IHRoZSBvcHRpb25hbCBsaWdhdHVyZXNcbiAgICAgKiBgZm9udC1mZWF0dXJlLXNldHRpbmdzYCBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvdXIgYW5kIGhhdmUgdGhlXG4gICAgICogY29ycmVjdCBsaWdhdHVyZXMgYW5kIHRoZSBwcm9wZXIgZHluYW1pYyBtZXRyaWMgc3BhY2luZy5cbiAgICAgKi9cbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6XG4gICAgICAgIFwia2VyblwiIDEsXG4gICAgICAgIFwibGlnYVwiIDEsXG4gICAgICAgIFwiY2FsdFwiIDEgIWltcG9ydGFudDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJvcmRlcjogMHB4O1xuICAgIG1hcmdpbjogMHB4O1xuXG4gICAgLyogbmVlZGVkIHRvIG1hdGNoIHRoZSBkZXNpZ25zIGNvcnJlY3RseSBvbiBtYWNPUyAqL1xuICAgIC8qIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy8xMTQyNSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbnByZSxcbmNvZGUge1xuICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3IsXG4ud2FybmluZyxcbi50ZXh0LWVycm9yLFxuLnRleHQtd2FybmluZyB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLnRleHQtc3VjY2VzcyB7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG59XG5cbi50ZXh0LW11dGVkIHtcbiAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLnRleHQtc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfVmVyaWZpZWQge1xuICAgIGNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xufVxuXG4ubXhfVW50cnVzdGVkIHtcbiAgICBjb2xvcjogJGUyZS13YXJuaW5nLWNvbG9yO1xufVxuXG5iIHtcbiAgICAvKiBPbiBGaXJlZm94LCB0aGUgZGVmYXVsdCB3ZWlnaHQgZm9yIGA8Yj5gIGlzIGBib2xkZXJgIHdoaWNoIHJlc3VsdHMgaW4gbm8gYm9sZCAqL1xuICAgIC8qIGVmZmVjdCBzaW5jZSB3ZSBvbmx5IGhhdmUgc3BlY2lmaWMgd2VpZ2h0cyBvZiBvdXIgZm9udHMgYXZhaWxhYmxlLiAqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBLZWVwIHRoZSBsZWdhY3kgbGluayBjb2xvdXIgd2l0aG91dCBvdmVycmlkaW5nIENvbXBvdW5kIGFuY2hvcnMgb3Igc2hhcmVkIHRpbWVzdGFtcCBzdHlsaW5nLiAqL1xuYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKTpub3QoLm14X01lc3NhZ2VUaW1lc3RhbXApKTpob3ZlcixcbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6bGluayxcbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG46bm90KC5teF9ub190ZXh0aW5wdXQpOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKSA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuOm5vdCgubXhfbm9fdGV4dGlucHV0KTpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXS5teF90ZXh0aW5wdXRfaWNvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ubXhfdGV4dGlucHV0X2ljb24ge1xuICAgIHBhZGRpbmctbGVmdDogMzZweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggY2VudGVyO1xufVxuXG4vKiBGSVhNRSBUSEVNRSAtIFRpbnQgYnkgQ1NTIHJhdGhlciB0aGFuIHJlZmVyZW5jaW5nIGEgZHVwbGljYXRlIGFzc2V0ICovXG5pbnB1dFt0eXBlPVwidGV4dFwiXS5teF90ZXh0aW5wdXRfaWNvbi5teF90ZXh0aW5wdXRfc2VhcmNoLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5teF90ZXh0aW5wdXRfaWNvbi5teF90ZXh0aW5wdXRfc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvaWNvbnMvc2VhcmNoLnN2Z1wiKTtcbn1cblxuLyogZG9udCBzZWFyY2ggVUkgYXMgbm90IGFsbCBicm93c2VycyBzdXBwb3J0IGl0LCAqL1xuLyogd2UgaW1wbGVtZW50IGl0IG91cnNlbHZlcyB3aGVyZSBuZWVkZWQgaW5zdGVhZCAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogT3ZlcnJpZGUgRmlyZWZveCdzIFVBIHN0eWxlIHNvIHdlIGdldCBhIGNvbnNpc3RlbnQgbG9vayBhY3Jvc3MgYnJvd3NlcnMgKi9cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgb3BhY2l0eTogaW5pdGlhbDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG50ZXh0YXJlYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi8qIFJlcXVpcmVkIGJ5IEZpcmVmb3ggKi9cbnRleHRhcmVhIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBUaGlzIGlzIHVzZWQgdG8gaGlkZSB0aGUgc3RhbmRhcmQgb3V0bGluZSBhZGRlZCBieSBicm93c2VycyBmb3IgKi9cbi8qIGFjY2Vzc2libGUgKGZvY3VzYWJsZSkgY29tcG9uZW50cy4gTm90IGludGVuZGVkIGZvciBidXR0b25zLCBidXQgKi9cbi8qIHNob3VsZCBiZSB1c2VkIG9uIHRoaW5ncyBsaWtlIGZvY3VzYWJsZSBjb250YWluZXJzIHdoZXJlIHRoZSBvdXRsaW5lICovXG4vKiBpcyB1c3VhbGx5IG5vdCBoZWxwaW5nIGFueW9uZS4gKi9cbio6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiAubXhfdGV4dGlucHV0IGlzIGEgY29udGFpbmVyIGZvciBhIHRleHQgaW5wdXQgKi9cbi8qICsgc29tZSBvdGhlciBjb250cm9scyBsaWtlIGJ1dHRvbnMsIC4uLiAqL1xuLyogaXQgaGFzIHRoZSBhcHBlYXJhbmNlIG9mIGEgdGV4dCBib3ggc28gdGhlIGNvbnRyb2xzICovXG4vKiBhcHBlYXIgdG8gYmUgcGFydCBvZiB0aGUgaW5wdXQgKi9cblxuLm14X0RpYWxvZyxcbi5teF9NYXRyaXhDaGF0X3dyYXBwZXIge1xuICAgIC5teF90ZXh0aW5wdXQgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAubXhfdGV4dGlucHV0ID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICAgLm14X3RleHRpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1kYXJrZXItZmctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgLyogdGhlc2UgdGhpbmdzIHNob3VsZCBwcm9iYWJseSBub3QgYmUgZGVmaW5lZCBnbG9iYWxseSAqL1xuICAgICAgICBtYXJnaW46IDlweDtcbiAgICB9XG5cbiAgICAubXhfdGV4dGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdOjpwbGFjZWhvbGRlcixcbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl06OnBsYWNlaG9sZGVyLFxuICAgIC5teF90ZXh0aW5wdXQgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICB9XG59XG5cbi8qIFByZXZlbnQgdWdseSBkb3R0ZWQgaGlnaGxpZ2h0IGFyb3VuZCBzZWxlY3RlZCBlbGVtZW50cyBpbiBGaXJlZm94ICovXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLyogVGhlc2UgYXJlIG1hZ2ljIGNvbnN0YW50cyB3aGljaCBhcmUgZXhjbHVkZWQgZnJvbSB0aW50aW5nLCB0byBsZXQgdGhlbWVzICovXG4vKiAod2hpY2ggb25seSBoYXZlIENTUykgdGVsbCB0aGUgYXBwIHdoYXQgdGhlaXIgbm9uLXRpbnRlZCAqL1xuLyogY29sb3Vyc2NoZW1lIGlzIGJ5IGluc3BlY3RpbmcgdGhlIHN0eWxlc2hlZXQgRE9NLiAqL1xuLyogVGhleSBhcmUgbm90IHVzZWQgZm9yIGxheW91dCEhICovXG4jbXhfdGhlbWVfYWNjZW50Q29sb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4jbXhfdGhlbWVfc2Vjb25kYXJ5QWNjZW50Q29sb3Ige1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWFjY2VudC1jb2xvcjtcbn1cblxuLm14X0RpYWxvZ193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC13cmFwcGVyLWRlZmF1bHQpO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X0RpYWxvZ19ib3JkZXIge1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tY3BkLXNwYWNlLTZ4KSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgLyogVGhlIGxpZ2h0Ym94IGlzbid0IHNvIG11Y2ggb2YgYSBkaWFsb2cgYXMgYSBmdWxsc2NyZWVuIG92ZXJsYXkuIFdlXG4gICAgICAgIGRvbid0IHdhbnQgdGhlIGdsYXNzIGJvcmRlci4gKi9cbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxpZ2h0LWZnLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAubXhfRGlhbG9nX3N0YXRpY1dyYXBwZXIgJiB7XG4gICAgICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljKTtcbiAgICAgICAgY29udGFpbjogY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2xpZ2h0Ym94ICYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8qIFN0eWxlcyBjb3BpZWQvaW5zcGlyZWQgYnkgR3JvdXBMYXlvdXQsIFJlcGx5VGlsZSwgYW5kIEV2ZW50VGlsZSB2YXJpYW50cy4gKi9cbiAgICAubWFya2Rvd24tYm9keSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcikgIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBpbmhlcml0IHRoZSBjb2xvdXIgZnJvbSB0aGUgZGFyayBvciBsaWdodCB0aGVtZSBieSBkZWZhdWx0IChidXQgbm90IGZvciBjb2RlIGJsb2NrcykgKi9cblxuICAgICAgICBwcmUsXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoaXMgc2VsZWN0b3Igd3JvbmdseSBhcHBsaWVzIHRvIGNvZGUgYmxvY2tzIHRvbyBidXQgd2Ugd2lsbCB1bnNldCBpdCBpbiB0aGUgbmV4dCBvbmUgKi9cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8qIGRvbid0IGNvbGxhcHNlIHNwYWNlcyBpbiBpbmxpbmUgY29kZSBibG9ja3MgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgICAvKiBoYXZlIHRvIHVzZSBvdmVybGF5IHJhdGhlciB0aGFuIGF1dG8gb3RoZXJ3aXNlIExpbnV4IGFuZCBXaW5kb3dzICovXG4gICAgICAgICAgICAvKiBDaHJvbWUgZ2V0cyB2ZXJ5IGNvbmZ1c2VkIGFib3V0IHZlcnRpY2FsIHNwYWNpbmc6ICovXG4gICAgICAgICAgICAvKiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzc1NCAqL1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogb3ZlcmxheTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvZGUge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7IC8qIHdlIHdhbnQgY29kZSBibG9ja3MgdG8gYmUgc2Nyb2xsYWJsZSBhbmQgbm90IHdyYXAgKi9cblxuICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgaDEgYW5kIGgyIHRoZSBzYW1lIHNpemUgYXMgaDMuICovXG4gICAgICAgIGgxLFxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBHRk0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRibG9ja3F1b3RlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgd2lkdGg6IDYwdnc7XG4gICAgbWF4LXdpZHRoOiA3MDRweDtcbn1cblxuLm14X0RpYWxvZ19iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctYmFja2Ryb3AtY29sb3I7XG4gICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZC1iYWNrZ3JvdW5kKTtcblxuICAgICYubXhfRGlhbG9nX3N0YXRpY0JhY2tncm91bmQge1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX3dyYXBwZXJXaXRoU3RhdGljVW5kZXIgJiB7XG4gICAgICAgIC8qIFJvdWdobHkgaGFsZiBvZiB3aGF0IGl0IHdvdWxkIG5vcm1hbGx5IGJlIC0gd2UgZG9uJ3Qgd2FudCB0byBibGFjayBvdXQgKi9cbiAgICAgICAgLyogdGhlIGFwcCwganVzdCBtYWtlIGl0IGNsZWFyIHRoYXQgdGhlIGRpYWxvZ3MgYXJlIHN0YWNrZWQuICovXG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2xpZ2h0Ym94ICYge1xuICAgICAgICBvcGFjaXR5OiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1jb2xvcjtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcztcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgICB9XG59XG5cbi5teF9EaWFsb2dfdGl0bGVJbWFnZSB7XG4gICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4ubXhfRGlhbG9nX3RpdGxlIHtcbiAgICBjb2xvcjogJGRpYWxvZy10aXRsZS1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctaGVhZGluZy1sZyk7XG5cbiAgICAmLmRhbmdlciB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4OyAvKiBSZXNlcnZlIHJvb20gZm9yIHRoZSBjbG9zZSBidXR0b24gKi9cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgJi5teF9EaWFsb2dfaGVhZGVyV2l0aEJ1dHRvbiA+IC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2NhbmNlbEJ1dHRvbiB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXJnaW46IDI0cHggMCA2OHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgIC5teF9EaWFsb2dfYnV0dG9uc19hZGRpdGl2ZSB7XG4gICAgICAgIC8qIFRoZSBjb25zdW1lciBpcyByZXNwb25zaWJsZSBmb3IgcG9zaXRpb25pbmcgdGhlaXIgZWxlbWVudHMuICovXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfYnV0dG9uc19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgLyogZGVmYXVsdCBnYXAgYW1vbmcgZWxlbWVudHMgKi9cbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbik7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1yb3cpO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgdGhlIG1hcmdpbiBzZXR0aW5ncyAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIG14X0RpYWxvZ0J1dHRvbiB7XG4gICAgLyogYWxpZ24gaW1hZ2VzIGluIGJ1dHRvbnMgKGVnIHNwaW5uZXJzKSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm9yZGVyOiAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkYnV0dG9uLWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiA3cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgJjpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbi8qIFhYWDogT3VyIGJ1dHRvbiBzdHlsZSBhcmUgYSBtZXNzOiBidXR0b25zIHRoYXQgaGFwcGVuIHRvIGFwcGVhciBpbiBkaWFsb2dzIGdldCBzcGVjaWFsIHN0eWxlcyBhcHBsaWVkXG4gKiB0byB0aGVtIHRoYXQgbm8gYnV0dG9uIGFueXdoZXJlIGVsc2UgaW4gdGhlIGFwcCBnZXRzIGJ5IGRlZmF1bHQuIEluIHByYWN0aWNlLCBidXR0b25zIGluIG90aGVyIHBsYWNlc1xuICogaW4gdGhlIGFwcCBsb29rIHRoZSBzYW1lIGJ5IGJlaW5nIEFjY2Vzc2libGVCdXR0b25zLCBvciBwb3NzaWJseSBieSBoYXZpbmcgZXhwbGljdCBidXR0b24gY2xhc3Nlcy5cbiAqIFdlIHNob3VsZCBnbyB0aHJvdWdoIGFuZCBoYXZlIG9uZSBjb25zaXN0ZW50IHNldCBvZiBzdHlsZXMgZm9yIGJ1dHRvbnMgdGhyb3VnaG91dCB0aGUgYXBwLlxuICogRm9yIG5vdywgSSBhbSBkdXBsaWNhdGluZyB0aGUgc2VsZWN0b3JzIGhlcmUgZm9yIG14X0RpYWxvZyBhbmQgbXhfRGlhbG9nQnV0dG9ucy5cbiAqL1xuLm14X0RpYWxvZ1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25DYXJkIGJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X0lkZW50aXR5U2VydmVyUGlja2VyIGJ1dHRvbixcbiAgICAgICAgLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24gYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX2VkaXRvciBidXR0b24sXG4gICAgICAgIC5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVGhyZWFkQWN0aW9uQmFyIGJ1dHRvbixcbiAgICAgICAgLm14X0hpc3RvcnlBY3Rpb25CYXIgYnV0dG9uLFxuICAgICAgICBbZGF0YS1raW5kXSxcbiAgICAgICAgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl1cbiAgICApLFxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIC5teF9BY2Nlc3NpYmxlQnV0dG9uLCBbZGF0YS1raW5kXSksXG4ubXhfRGlhbG9nIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbik7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgLyogZmxpcCBjb2xvdXJzIGZvciB0aGUgc2Vjb25kYXJ5IG9uZXMgKi9cbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4ubXhfRGlhbG9nXG4gICAgYnV0dG9uOm5vdChcbiAgICAgICAgLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sXG4gICAgICAgIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cblxuLm14X0RpYWxvZ1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICBbY2xhc3N8PVwibWFwbGlicmVnbFwiXSxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24sXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIGJ1dHRvbixcbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfQ3VzdG9tVGhlbWUgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfRW5jcnlwdGlvblVzZXJTZXR0aW5nc1RhYiBidXR0b24sXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbiBidXR0b24sXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfZWRpdG9yIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKTpmb2N1cyxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b246bm90KC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLCAubXhfQWNjZXNzaWJsZUJ1dHRvbiwgW2RhdGEta2luZF0pOmZvY3VzLFxuLm14X0RpYWxvZ19idXR0b25zIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygkZm9jdXMtYnJpZ2h0bmVzcyk7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0RpYWxvZ19wcmltYXJ5Om5vdCgubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbiwgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0sIFtkYXRhLWtpbmRdKSxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5teF9EaWFsb2dfcHJpbWFyeSxcbi5teF9EaWFsb2dfYnV0dG9uc1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLmNhbmNlbCxcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKSxcbi5teF9EaWFsb2dfYnV0dG9ucyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIG1pbi13aWR0aDogMTU2cHg7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLmRhbmdlcjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdKSxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5kYW5nZXIsXG4ubXhfRGlhbG9nX2J1dHRvbnNcbiAgICBidXR0b24uZGFuZ2VyOm5vdChcbiAgICAgICAgLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLFxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5ncyBidXR0b24sXG4gICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX0N1c3RvbVRoZW1lIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25Vc2VyU2V0dGluZ3NUYWIgYnV0dG9uLFxuICAgICAgICAubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIGJ1dHRvblxuICAgICksXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi53YXJuaW5nOm5vdCgubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbiwgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0pLFxuLm14X0RpYWxvZyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLndhcm5pbmcge1xuICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWNwZC1jb2xvci1ib3JkZXItY3JpdGljYWwtc3VidGxlKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9EaWFsb2dcbiAgICBidXR0b246bm90KFxuICAgICAgICAubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbixcbiAgICAgICAgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0sXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLFxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5ncyBidXR0b24sXG4gICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX0N1c3RvbVRoZW1lIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25Vc2VyU2V0dGluZ3NUYWIgYnV0dG9uLFxuICAgICAgICAubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgW2RhdGEta2luZF1cbiAgICApOmRpc2FibGVkLFxuLm14X0RpYWxvZyBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmRpc2FibGVkLFxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIC5teF9BY2Nlc3NpYmxlQnV0dG9uKTpkaXNhYmxlZCxcbi5teF9EaWFsb2dfYnV0dG9ucyBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGxpZ2h0LWZnLWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbi5jYW5jZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1yZXN0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBtaW4td2lkdGg6IDE1NnB4O1xufVxuXG4vKiBTcGlubmVyIERpYWxvZyBvdmVyaWRlICovXG4ubXhfRGlhbG9nX3dyYXBwZXIubXhfRGlhbG9nX3NwaW5uZXIge1xuICAgIC8qIFRoaXMgaXMgbm90IGEgcmVhbCBkaWFsb2csIHNvIHdlIHNob3VsZG4ndCBzaG93IGEgZ2xhc3MgYm9yZGVyICovXG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgaW5saW5lLXNpemU6IGF1dG87XG4gICAgICAgIGJsb2NrLXNpemU6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgIC8qIERvbid0IHNob3cgc2Nyb2xsLWJhcnMgb24gc3Bpbm5lciBkaWFsb2dzICovXG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbn1cblxuLyogVE9ETzogUmV2aWV3IG14X0dlbmVyYWxCdXR0b24gdXNhZ2UgdG8gc2VlIGlmIGl0IGNhbiB1c2UgYSBkaWZmZXJlbnQgY2xhc3MgKi9cbi8qIFRoZXNlIGNsYXNzZXMgd2VyZSBicm91Z2h0IGluIGZyb20gdGhlIG9sZCBVc2VyU2V0dGluZ3MgYW5kIGFyZSBpbmNsdWRlZCBoZXJlIHRvIGF2b2lkICovXG4vKiBicmVha2luZyB0aGUgYXBwLiAqL1xuLyogUmVmOiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy84NDIwICovXG4ubXhfR2VuZXJhbEJ1dHRvbiB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2xhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2lucHV0IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xufVxuXG4ubXhfYnV0dG9uX3JvdyB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbn1cblxuLyogdXNlcm5hbWUgY29sb3JzICovXG4vKiB1c2VkIGJ5IFNlbmRlclByb2ZpbGUgJiBSb29tUHJldmlld0JhciAqL1xuLm14X1VzZXJuYW1lX2NvbG9yMSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMyB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNCB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NC1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbn1cblxuLm14X0FwcFdhcm5pbmcsXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckNvbG91ciAkY29sb3VyIHtcbiAgICBjb2xvcjogJGNvbG91cjtcbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJnQ29sb3VyICRjb2xvdXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICB9XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIsXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIHVucmVhbC1mb2N1cyB7XG4gICAgb3V0bGluZS13aWR0aDogMnB4O1xuICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcblxuICAgIC8qIFdlYktpdCBnZXRzIGl0cyBuYXRpdmUgZm9jdXMgc3R5bGVzLiAqL1xuICAgIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICAgICAgb3V0bGluZS1zdHlsZTogYXV0bztcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gTGVnYWN5Q2FsbEJ1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBoZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIFRocmVhZFJlcGxpZXNBbW91bnQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuQGRlZmluZS1taXhpbiBUaHJlYWRTdW1tYXJ5SWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uICRib3JkZXItcmFkaXVzLCAkaG92ZXItY29sb3IsICRob3Zlci1iZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZztcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X2xpbmVDbGFtcCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IHZhcigtLW14LWxpbmUtY2xhbXAsIDEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExheW91dCBjb21wYXRpYmlsaXR5IGhvb2sgZm9yIHRpbWVzdGFtcCBwbGFjZW1lbnQgaW4gZXhpc3RpbmcgYXBwL3dlYiB0aW1lbGluZSBzdXJmYWNlcy4gKi9cbi5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICBkaXNwbGF5OiBibG9jazsgLyogZW5hYmxlIHRoZSB3aWR0aCBzZXR0aW5nIGJlbG93ICovXG4gICAgd2lkdGg6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpO1xufVxuIixudWxsLCIvKiBBdXRvLWdlbmVyYXRlZCBieSBzY3JpcHRzL2V4dHJhY3QtYnJhbmQtY29sb3JzLnB5IGZyb20gL3Jvb3QvbWV0bWV0L2h5ZHJvZ2VuLWh0bWwvbG9nby5wbmcg4oCUIGRvIG5vdCBlZGl0IGJ5IGhhbmQuICovXG46cm9vdCB7XG4gICAgLS1tZXRtZXQtYnJhbmQtcHJpbWFyeTogIzAyOGU5MTtcbiAgICAtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnk6ICMzYWM2Y2I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uTGlzdEl0ZW0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgMDtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2F2YXRhciB7XG4gICAgZmxleDogMCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1faW5mbyB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgd2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fc3RhdHVzIHtcbiAgICAvKiBvdmVycmlkZSBiZWFjb24gc3RhdHVzIHBhZGRpbmcgKi9cbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9CZWFjb25TdGF0dXNfbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9sYXN0VXBkYXRlZCB7XG4gICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2ludGVyYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JlYWNvblN0YXR1cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgY29sb3I6IHZhcigtLWNvbG9yKTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfTG9hZGluZyxcbi5teF9CZWFjb25TdGF0dXNfU3RvcHBlZCB7XG4gICAgLS1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfQWN0aXZlLFxuLm14X0JlYWNvblN0YXR1c19FcnJvciB7XG4gICAgLS1jb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0JlYWNvblN0YXR1c19pY29uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG5cbiAgICBmbGV4OiAwIDAgMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfZGVzY3JpcHRpb24ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcblxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfQmVhY29uU3RhdHVzX2Rlc2NyaXB0aW9uX3N0YXR1cyB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cblxuLm14X0JlYWNvblN0YXR1c19leHBpcnlUaW1lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX2xhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25TdGF0dXNUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MnB4O1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQmVhY29uU3RhdHVzVG9vbHRpcF9pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJG1lbnUtYmctY29sb3I7XG4gICAgYm94LXNoYWRvdzogNHB4IDRweCAxMnB4IDAgJG1lbnUtYm94LXNoYWRvdy1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xuXG4gICAgLyogVW5zZXQgY29udGFpbiBhbmQgcG9zaXRpb24gdG8gYWxsb3cgdGhlIGNsb3NlIGJ1dHRvblxuICAgIHRvIGFwcGVhciBvdXRzaWRlIHRoZSBkaWFsb2cgKi9cbiAgICBjb250YWluOiB1bnNldDtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLyogc2lkZWJhciBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgaW5zaWRlICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICAgICAgei1pbmRleDogNDAxMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHJpZ2h0OiA1dnc7XG4gICAgICAgICAgICB0b3A6IDV2aDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfQmVhY29uVmlld0RpYWxvZ19tYXBGYWxsYmFja01lc3NhZ2Uge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfdmlld0xpc3RCdXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XG4gICAgbGVmdDogNTAlO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDRweCA0cHggMTJweCAwICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFyIHtcbiAgICBmbGV4OiAwIDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfc3RhdHVzIHtcbiAgICBmbGV4OiAxIDE7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dTaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAyNjVweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggNHB4ICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgZmxleDogMCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIC5teF9EaWFsb2dTaWRlYmFyX2Nsb3NlQnV0dG9uSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ1NpZGViYXJfbm9SZXN1bHRzIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG5cbiAgICAvKiBwYW5lbCBiYWNrZHJvcHMgb3ZlcmxheSB0aGUgd2hvbGUgc2lkZXBhbmVsICovXG4gICAgLyogZ28gYWJvdmUgdG8gZ2V0IGhvdmVyIGZvciB0aXRsZSAqL1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5teF9MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nX19lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpdmVUaW1lUmVtYWluaW5nIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Pd25CZWFjb25TdGF0dXNfYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfT3duQmVhY29uU3RhdHVzX2J1dHRvbiB7XG4gICAgLyogYWxpZ24gdG8gdG9wIHRvIG1ha2Ugcm9vbSBmb3IgdGltZXN0YW1wICovXG4gICAgLyogaW4gYnViYmxlIHZpZXcgKi9cbiAgICBhbGlnbi1zZWxmOiBzdGFydDtcbn1cblxuLm14X093bkJlYWNvblN0YXR1c19kZXN0cnVjdGl2ZUJ1dHRvbiB7XG4gICAgLyogb3ZlcnJpZGUgYnV0dG9uIGxpbmtfaW5saW5lIHN0eWxlcyAqL1xuICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlTGF0ZXN0TG9jYXRpb25faWNvbiB7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi8qIGRvdWJsZSBjbGFzcyB0byBiZSBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIGdlbmVyYWwgbXhfQ29weWFibGVUZXh0IENTUyBydWxlICovXG4ubXhfQ29weWFibGVUZXh0Lm14X1NoYXJlTGF0ZXN0TG9jYXRpb25fY29weSB7XG4gICAgLyogb3ZlcnJpZGUgY29weWFibGUgdGV4dCBzdHlsZSB0byBtYWtlIGNvbXBhY3QgKi9cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICB3aWR0aDogMTNweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkbG9jYXRpb24tbGl2ZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgLyogY29sb3JzIGljb24gKi9cbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbl9lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0O1xufVxuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb25faWRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2ViYWJDb250ZXh0TWVudV9pY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyIHtcbiAgICAvKiBvdmVycmlkZSBhY2Nlc3NpYmxlYnV0dG9uIHN0eWxlICovXG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyX2ljb24ge1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1fcXVlc3Rpb24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdGl0bGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9kYXRlIHtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3F1ZXN0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9hbnN3ZXJzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdm90ZUNvdW50IHtcbiAgICAvKiA2cHggdG8gbWF0Y2ggUG9sbE9wdGlvbiBwYWRkaW5nICovXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgMCA2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlOyAvKiBtYWtlIG14X0FwcFBlcm1pc3Npb24gZmlsbCB3aWR0aCBvZiBteF9BcHBUaWxlQm9keSBzbyB0aGF0IHNjcm9sbCBiYXIgYXBwZWFycyBvbiB0aGUgZWRnZSAqL1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAubXhfQXBwUGVybWlzc2lvbl9ib2xkZXIsXG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudF9ib2xkZXIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogYXV0bzsgLyogcGxhY2UgYXQgdGhlIGNlbnRlciAqL1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UZXh0V2l0aFRvb2x0aXBfdGFyZ2V0LS1oZWxwSWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE0cHg7IC8qIGFsaWduIHdpdGggY2hhcmFjdGVycyBvbiB0aGUgc2FtZSBsaW5lICovXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAubXhfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBTdWd1cnUgSGlyYWhhcmFcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcFdhcm5pbmcge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWx0ZXJEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtM3gpKTtcbiAgICAgICAgd2lkdGg6IDIzMnB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiKDIzLCAyNSwgMjgsIDAuMDUpO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG5cbiAgICAgICAgLm14X0Ryb3Bkb3duX29wdGlvbl9oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25faW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25TZWxlY3RlZEljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25MYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25EZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlclRhYkdyb3VwIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxmaWVsZHNldD4gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkICsgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgLyogdW5kZXJsaW5lICovXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEuNXB4IDAgMCBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVhcm5Nb3JlX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2ljb24ge1xuICAgIGhlaWdodDogNThweDtcbiAgICB3aWR0aDogNThweDtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG59XG5cbi5teF9FbmFibGVMaXZlU2hhcmVfYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGhlaWdodDogNDhweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlRHVyYXRpb25Ecm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblNoYXJlTWVudSB7XG4gICAgd2lkdGg6IDM3NXB4O1xuICAgIGhlaWdodDogNDYwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcEVycm9yIHtcbiAgICBwYWRkaW5nOiAxMDBweCB2YXIoLS1jcGQtc3BhY2UtOHgpIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZTogNThweDtcbn1cblxuLm14X01hcEVycm9yLm14X01hcEVycm9yX2lzTWluaW1pc2VkIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG5cbiAgICAtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yOiAkYWxlcnQ7XG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplOiAyNnB4O1xuXG4gICAgLm14X01hcEVycm9yX21lc3NhZ2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC13aWR0aDogMjc1cHg7XG4gICAgfVxuXG4gICAgLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgLyogb3ZlcnJpZGUgaDMgaGVhZGluZyBzaXplICovXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfTWFwRXJyb3JfbWVzc2FnZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfTWFwRXJyb3JfaWNvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplKTtcbiAgICB3aWR0aDogdmFyKC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZSk7XG4gICAgY29sb3I6IHZhcigtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXBGYWxsYmFjayB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG59XG5cbi5teF9NYXBGYWxsYmFja19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9NYXBGYWxsYmFja19pY29uIHtcbiAgICB3aWR0aDogNjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcmtlcl9kZWZhdWx0Q29sb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfTWFya2VyX2JvcmRlciB7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAzcHggNXB4IHJnYigwLCAwLCAwLCAwLjIpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvKiBjYXJldCBkb3duICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtNHB4O1xuICAgIH1cbn1cblxuLm14X01hcmtlcl9pY29uIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQ1xuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMDtcbn1cblxuYnV0dG9uLm14X1NoYXJlRGlhbG9nQnV0dG9uc19idXR0b24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5sZWZ0IHtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zX2J1dHRvbi1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVUeXBlIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IDYwcHggdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfU2hhcmVUeXBlX3dyYXBwZXJfb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIC5teF9TaGFyZVR5cGVfb3B0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2hhcmVUeXBlX2JhZGdlIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDE0cHggc29saWQgJGFjY2VudDtcbiAgICAvKiBjb2xvcnMgaWNvbiAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfU2hhcmVUeXBlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1NoYXJlVHlwZV9vcHRpb24taWNvbiB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgLyogTGl2ZSBpcyBzdHlsZWQgYnkgU3R5bGVkTGl2ZUJlYWNvbkljb24gKi9cblxuICAgICYuT3duIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYuUGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBwYWRkaW5nOiA3cHg7XG4gICAgICAgIC8qIGNvbG9ycyBpY29uICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfWm9vbUJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfWm9vbUJ1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgJFpvb21CdXR0b25zX2J1dHRvbi1zaXplOiAyNHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IHJnYigwLCAwLCAwLCAwLjI1KTtcblxuICAgICAgICAubXhfWm9vbUJ1dHRvbnNfaWNvbiB7XG4gICAgICAgICAgICAkWm9vbUJ1dHRvbnNfaWNvbi1zaXplOiAxMnB4O1xuXG4gICAgICAgICAgICBoZWlnaHQ6ICRab29tQnV0dG9uc19pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2ljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01CZWFjb25Cb2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyMjBweDtcbiAgICBtYXgtd2lkdGg6IDMyNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X01CZWFjb25Cb2R5Lm14X01CZWFjb25Cb2R5X3dpdGhvdXRNYXAge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIC5teF9NQmVhY29uQm9keV9jaGluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwQ29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwSW5mb0xhc3RVcGRhdGVkIHtcbiAgICAvKiA0OHB4IGxpbmVzIHVwIHdpdGggaWNvbiBpbiBCZWFjb25TdGF0dXMgKi9cbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTJ4KSk7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgNDhweDtcblxuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG59XG5cbi5teF9NQmVhY29uQm9keV9tYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwOyAvKiBrZWVwcyB0aGUgZW50aXJlIG1hcCB1bmRlciB0aGUgbWVzc2FnZSBhY3Rpb24gYmFycyAqL1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2ssXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3Ige1xuICAgIC8qIHB1c2hlcyBzcGlubmVyL2ljb24gdXAgKi9cbiAgICAvKiB0byBhcHBlYXIgbW9yZSBjZW50ZXJlZCB3aXRoIHRoZSBmb290ZXIgKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3JJbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2sge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm14X01CZWFjb25Cb2R5X2NoaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIC5teF9FdmVudFRpbGVfbGluZSAubXhfTUJlYWNvbkJvZHkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogNDUwcHg7XG59XG5cbi5teF9SZXBseVRpbGUgLm14X01CZWFjb25Cb2R5IHtcbiAgICAvKiBQcmV2ZW50IGNsaWNraW5nIGEgYmVhY29uIHdpdGhpbiBhIHJlcGx5ICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVkaWFQcm9jZXNzaW5nRXJyb3JfSWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsT3B0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50LFxuICAgIC5teF9Qb2xsT3B0aW9uX2VuZGVkT3B0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUG9sbE9wdGlvbixcbi8qIGxhYmVsIGhhcyBjdXJzb3I6IGRlZmF1bHQgaW4gdXNlci1hZ2VudCBzdHlsZXNoZWV0ICovXG4vKiBvdmVycmlkZSAqL1xuLm14X1BvbGxPcHRpb25fbGl2ZS1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1BvbGxPcHRpb25fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5teF9Qb2xsT3B0aW9uX29wdGlvblZvdGVDb3VudCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X1BvbGxPcHRpb25fd2lubmVySWNvbiB7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdmVycmlkZSBjaGVja2VkIHJhZGlvIGJ1dHRvbiBzdHlsaW5nIHRvIHNob3cgY2hlY2ttYXJrIGluc3RlYWQgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IC0ycHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1BvbGxPcHRpb25fZW5kZWQubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG92ZXJyaWRlIGNoZWNrZWQgcmFkaW8gYnV0dG9uIHN0eWxpbmcgdG8gc2hvdyBjaGVja21hcmsgaW5zdGVhZCAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogb3B0aW9ucyBub3QgYWN0aW9uYWJsZSBpbiB0aGVzZSBzdGF0ZXMgKi9cbi5teF9Qb2xsT3B0aW9uX2NoZWNrZWQsXG4ubXhfUG9sbE9wdGlvbl9lbmRlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlCYWNrZ3JvdW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICB3aWR0aDogMCU7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVGhlc2UgdXNlZCB0byBsaXZlIGluIEdlbmVyYWwgVXNlciBTZXR0aW5ncy4gVGhlc2UgY29tcG9uZW50cyBhcmUgaG9ycmlibHkgZHVwbGljYXRpdmVcbiAqIGJ1dCBzaGFyZSB0aGUgc2FtZSBzdHlsZXMuIEZvciBub3cgSSdtIHB1dHRpbmcgdGhlbSBoZXJlIHNvIEkgY2FuIHJlbmFtZWQgdGhlIGdlbmVyYWxcbiAqIHRhYiBzZW5zaWJseSBhbmQgYmVmb3JlIEkgY2FuIHJlZmFjdG9yIHRoZXNlIGNvbXBvbmVudHMuXG4gKi9cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2FkZHJlc3MsXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX3Byb21wdFRleHQge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAganVzdGlmeS1jb250ZW50OiByaWdodDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeV9pbnN0cnVjdGlvbnMge1xuICAgIGZsZXg6IDE7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3VycmVudERldmljZVNlY3Rpb25fZGV2aWNlRGV0YWlscyB7XG4gICAgLyogYWxpZ24gd2l0aCB0ZXh0IG9mIHNlc3Npb24gdGlsZSAqL1xuICAgIG1hcmdpbi1sZWZ0OiA1NnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZURldGFpbEhlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lQ3RhIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSW5wdXQge1xuICAgIC8qIG92ZXJyaWRlIGZpZWxkIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xeCkgMCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtRXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VEZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbn1cblxuLm14X0RldmljZURldGFpbHNfc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NlY3Rpb25IZWFkaW5nIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAubXhfRGV2aWNlRGV0YWlsc19zZWN0aW9uU3ViaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbn1cblxuLm14X0RldmljZURldGFpbHNfbWV0YWRhdGFUYWJsZSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBib3JkZXItc3BhY2luZzogMDtcblxuICAgIHRoIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teERldmljZURldGFpbHNfbWV0YWRhdGFMYWJlbCB7XG4gICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAubXhEZXZpY2VEZXRhaWxzX21ldGFkYXRhVmFsdWUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NpZ25PdXRCdXR0b25Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3B1c2hOb3RpZmljYXRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcblxuICAgIC0taWNvbi10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uX2V4cGFuZGVkIHtcbiAgICAtLWljb24tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cbiAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbl9pY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB0cmFuc2Zvcm06IHZhcigtLWljb24tdHJhbnNmb3JtKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9pY29uIHtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcblxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICYuVmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogJGUyZS12ZXJpZmllZC1jb2xvci1saWdodDtcbiAgICB9XG5cbiAgICAmLlVudmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3ItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5JbmFjdGl2ZSB7XG4gICAgICAgIC0taWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkX2NvbnRlbnQge1xuICAgIGZsZXg6IDEgMTtcbn1cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfaGVhZGluZyB7XG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZVRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmZvIHtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X0RldmljZVRpbGVfbWV0YWRhdGEge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmFjdGl2ZUljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0RldmljZVRpbGVfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VUeXBlSWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAvKiBjcmVhdGVzIHNwYWNlIGZvciB2ZXJpZmljYXRpb24gaWNvbiB0byBvdmVybGFwICovXG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgLS1pY29uLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogdmFyKC0tY3BkLXNwYWNlLTJ4KSBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6IHZhcigtLWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4ubXhfRGV2aWNlVHlwZUljb25fc2VsZWN0ZWQgLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgLS1pY29uLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX3ZlcmlmaWNhdGlvbkljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6IHZhcigtLXYtaWNvbi1jb2xvcik7XG5cbiAgICAmLnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi51bnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0IHtcbiAgICAubXhfRHJvcGRvd24ge1xuICAgICAgICBmbGV4OiAxIDAgODBweDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdEl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9zZWN1cml0eUNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3Rfbm9SZXN1bHRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9oZWFkZXJCdXR0b24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8qIG92ZXJyaWRlIGlubGluZSBidXR0b24gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9kZXZpY2VEZXRhaWxzIHtcbiAgICAvKiBhbGlnbiB3aXRoIHRleHQgb2Ygc2Vzc2lvbiB0aWxlICovXG4gICAgbWFyZ2luLWxlZnQ6IDg4cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBIaWdoZXIgc3BlY2lmaWNpdHkgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdGhlIGZsZXgtc3RhcnQgdmFsdWUgKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyX2xhYmVsIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVJlY29tbWVuZGF0aW9uc19zcGFjaW5nIHtcbiAgICBoZWlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZV9jaGVja2JveCB7XG4gICAgZmxleDogMSAwO1xuXG4gICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfS2V5U3RvcmFnZVBhbmVsX3RvZ2dsZVJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9uZXdVaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAqW3JvbGU9XCJzZXBhcmF0b3JcIl0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdhcCBiZXR3ZWVuIHN1YnNlY3Rpb25zIGlzIDMycHggYW5kIGluc2lkZSB0aGUgc3Vic2VjdGlvbiBpcyAyNHB4LlxuICAgICAgICAgKiBUaGUgc2VwYXJhdG9yIHNlcGFyYXRlcyB0aGUgc3Vic2VjdGlvbnMsIHNvIGl0IHNob3VsZCBoYXZlIHRoZSBzYW1lIGdhcCBhcyB0aGUgc3Vic2VjdGlvbnMuXG4gICAgICAgICAqIFdlIGFkZCAxMnB4IGFuZCB0aGUgc2VwYXJhdG9yIHNwYWNpbmcgKDhweCkgdG8gdGhlIHRvcCBtYXJnaW4gdG8gbWFrZSB0aGUgc2VwYXJhdG9yIHZpc3VhbGx5IGNlbnRlcmVkIGJldHdlZW4gdGhlIHN1YnNlY3Rpb25zLlxuICAgICAgICAgKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kIG1hcmdpbi5cbiAgICAgICAgICovXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIHNldHRpbmcgbWlud2lkdGggMCBtYWtlcyBjb2x1bW5zIGRlZmluaXRlbHkgc2l6ZWQgZml4aW5nIGhvcml6b250YWwgb3ZlcmZsb3cgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIGp1c3RpZnktaXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgIHN1bW1hcnkge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG4gICAgZGV0YWlsc1tvcGVuXSB7XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnRTdHJldGNoIHtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9ub0hlYWRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50X25ld1VpIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZHJvcGRvd24ge1xuICAgICAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nX2hlYWRpbmcge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1F1aWNrVGhlbWVTd2l0Y2hlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICAvKiBRdWljayBzZXR0aW5ncyBsaXZlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3csIHNvIGEgbWVudSBkcm9wcGluZyBkb3dud2FyZHMgd291bGQgcnVuXG4gICAgICAgICAgIG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC4gT3BlbiBpdCB1cHdhcmRzLCB3aGVyZSB0aGVyZSBpcyByb29tIGZvciBldmVyeSB0aGVtZS4gKi9cbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfUXVpY2tUaGVtZVN3aXRjaGVyX2hlYWRpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYXB0aW9uIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAmLm14X0NhcHRpb25fZXJyb3Ige1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBDb21wb3VuZCBpY29uXG5cbiAqIHtAbGluayBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkfVxuICovXG5cbi5teF9JY29uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfSWNvbl9hY2NlbnQge1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfSWNvbl9iZy1hY2NlbnQtbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtMzAwO1xufVxuXG4ubXhfSWNvbl9hbGVydCB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X0ljb25fY2lyY2xlLTQwIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgd2lkdGg6IDQwcHg7XG59XG5cbi5teF9JY29uXzgge1xuICAgIGZsZXg6IDAgMCA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbn1cblxuLm14X0ljb25fMTAge1xuICAgIGZsZXg6IDAgMCAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICB3aWR0aDogMTBweDtcbn1cblxuLm14X0ljb25fMTIge1xuICAgIGZsZXg6IDAgMCAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTJweDtcbn1cblxuLm14X0ljb25fMTYge1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbn1cblxuLm14X0ljb25fMjQge1xuICAgIGZsZXg6IDAgMCAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0ljb25fMzIge1xuICAgIGZsZXg6IDAgMCAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TdWNjZXNzRGlhbG9nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfSWNvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zX3JvdyB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYnV0dG9uLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBtYWtlIGFueSBzY3JvbGxiYXIgZ3JleSBhbmQgdGhpbiAqL1xuaHRtbCB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xufVxuLyogc2Nyb2xsYmFyLXdpZHRoIGlzIG5vdCBpbmhlcml0ZWQgKGJ1dCAtY29sb3IgaXMsIHdoeT8hKSwgKi9cbi8qIHNvIGRlY2xhcmUgaXQgb24gZXZlcnkgZWxlbWVudCAqL1xuKiB7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvcjtcbn1cblxuLyogbWFrZSBhdXRvLWhpZGUgc2Nyb2xsYmFycyBub3QgdHJhbnNwYXJlbnQgYWdhaW4gb24gaG92ZXIgKi9cbi5teF9BdXRvSGlkZVNjcm9sbGJhcjpob3ZlciB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yO1xuICAgIH1cbn1cblxuLyogbWFrZSBzY3JvbGxiYXJzIHRyYW5zcGFyZW50IGZvciBhdXRvaGlkZSBzY3JvbGxiYXJzICovXG4ubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IG92ZXJsYXk7IC8qIHdoZXJlIHN1cHBvcnRlZCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3NlYXJjaF9pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Ige1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXM7XG5cbiAgICA+IGlucHV0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiA0MCU7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgLyogYCFpbXBvcnRhbnRgIGlzIHJlcXVpcmVkIHRvIGJ5cGFzcyBnbG9iYWwgaW5wdXQgc3R5bGVzLiAqL1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSA5cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvci0tZm9jdXNlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGlua3M7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3ItLWhhcy1zdWdnZXN0aW9ucyB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvcl9zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3BpbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3JlbW92ZV9idXR0b24gc3ZnIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfbWF0Y2hlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpbmtzO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gKiB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbi0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl90aXRsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG4iLCIubXhfQ29tcGF0aWJpbGl0eVBhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1O1xufVxuXG4ubXhfQ29tcGF0aWJpbGl0eVBhZ2VfYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDUwMDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1MDAxO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3JpZ2h0IHtcbiAgICByaWdodDogMTZweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX3JpZ2h0IHtcbiAgICByaWdodDogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fbGVmdCB7XG4gICAgbGVmdDogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLThweDtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3RvcCB7XG4gICAgdG9wOiAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fdG9wIHtcbiAgICB0b3A6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9ib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX2JvdHRvbSB7XG4gICAgYm90dG9tOiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX2JvdHRvbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBib3R0b206IC04cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfcmlnaHRBbGlnbmVkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYm90dG9tQWxpZ25lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FcnJvck1lc3NhZ2Uge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIG1pbi1oZWlnaHQ6IDIuNGVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuQGtleWZyYW1lcyBteF9GaWxlRHJvcFRhcmdldF9hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTU7XG4gICAgfVxufVxuXG4ubXhfRmlsZURyb3BUYXJnZXQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjk1O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDMwMDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGFuaW1hdGlvbjogbXhfRmlsZURyb3BUYXJnZXRfYW5pbWF0aW9uO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbn1cblxuQGtleWZyYW1lcyBteF9GaWxlRHJvcFRhcmdldF9pbWFnZV9hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG59XG5cbi5teF9GaWxlRHJvcFRhcmdldF9pbWFnZSB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYW5pbWF0aW9uOiBteF9GaWxlRHJvcFRhcmdldF9pbWFnZV9hbmltYXRpb247XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsZVBhbmVsIHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAvKiBGSVhNRTogcmF0aGVyIHRoYW4gaGF2aW5nIEV2ZW50VGlsZSdzIGRlZmF1bHQgQ1NTIGJlIGZvciBNZXNzYWdlUGFuZWwsXG4gICB3ZSBzaG91bGQgbWFrZSBFdmVudFRpbGUgYSBiYXNlIENTUyBjbGFzcyBhbmQgY3VzdG9taXNlIGl0IHNwZWNpZmljYWxseVxuICAgZm9yIHVzYWdlIGluIHtNZXNzYWdlLEZpbGUsTm90aWZpY2F0aW9ufVBhbmVsLiAqL1xuXG4gICAgLyogT3ZlcnJpZGVzIGZvciB0aGUgYXR0YWNobWVudCBib2R5IHRpbGVzICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICYgKyAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTUZpbGVCb2R5IFtkYXRhLXR5cGU9XCJkb3dubG9hZFwiXSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBhbmNob3IgbGluayBhcyB3cmFwcGVyICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfc2VuZGVyRGV0YWlsc0xpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX3NlbmRlckRldGFpbHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZXZlbnQtdGltZXN0YW1wLWNvbG9yOyAvKiBmb3IgZWxsaXBzaXMuIENvbG9yIG9mIGRpc3BsYXlOYW1lIGFuZCBteGlkIGlzIGluaGVyaXRlZCAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRHJvcGRvd25NZW51X2J1dHRvbiB7XG4gICAgcGFkZGluZzogM3B4IDRweCAzcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uOmhvdmVyLFxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlci5teF9HZW5lcmljRHJvcGRvd25NZW51X3dyYXBwZXIge1xuICAgIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2IoMjMsIDI1LCAyOCwgMC4wNSk7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDIycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJvcmRlcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRtZW51LWJnLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfZGl2aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTlweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0taGVhZGVyID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tY2hlY2tJY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hvbWVQYWdlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IG1pbigxMDAlIC0gNTBweCwgOTYwcHgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IGhvbWVwYWdlO1xufVxuXG4ubXhfSG9tZVBhZ2VfZGVmYXVsdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfSG9tZVBhZ2VfZGVmYXVsdF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgZ2FwOiA1cHggNDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEzcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRhaW5lciBob21lcGFnZSAobWF4LXdpZHRoOiA1NTlweCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFyZ2VMb2FkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMzN2aDtcbiAgICB9XG5cbiAgICAubXhfTGFyZ2VMb2FkZXJfdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hdHJpeENoYXQtLXdpdGgtYXZhdGFyIHtcbiAgICAubXhfTGVmdFBhbmVsLFxuICAgIC5teF9MZWZ0UGFuZWwgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9MZWZ0UGFuZWxfd3JhcHBlcixcbi5teF9MZWZ0UGFuZWwge1xuICAgIC0tY29sbGFwc2VkV2lkdGg6IDY4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9MZWZ0UGFuZWxfb3V0ZXJXcmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0xlZnRQYW5lbF93cmFwcGVyLS11c2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogMTAwJTsgLyogZW5zdXJlIHNwYWNlIHBhbmVsIGlzIHN0aWxsIHNjcm9sbGFibGUgd2l0aCBhbiBvdXRlciB3cmFwcGVyICovXG5cbiAgICAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICZbZGF0YS1jb2xsYXBzZWRdIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIC8qIFRoZSByb29tIGxpc3QgaXMgbm90IGRlc2lnbmVkIHRvIGJlIGNvbGxhcHNlZCB0byBqdXN0IGljb25zLiAqL1xuICAgIC8qIDIyNCArIDY4KHNwYWNlcyBiYXIpIHdhcyBkZWVtZWQgYnkgZGVzaWduIHRvIGJlIGEgZ29vZCBtaW5pbXVtIGZvciB0aGUgbGVmdCBwYW5lbC4gKi9cbiAgICAtLWNvbGxhcHNlZFdpZHRoOiAyMjRweDtcblxuICAgIC8qIENyZWF0ZSBhIHJvdy1iYXNlZCBmbGV4Ym94IGZvciB0aGUgc3BhY2UgcGFuZWwgYW5kIHRoZSByb29tIGxpc3QgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggKHRoaXMgdGltZSBhIGNvbHVtbikgZm9yIHRoZSByb29tIGxpc3QgY29tcG9uZW50cyAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC8qIFRoZXNlIHN0eWxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdHMgZm9yIHRoZSBtaW5pbWl6ZWQgKDY2cHgpIGxheW91dCAqL1xuICAgICYubXhfTGVmdFBhbmVsX21pbmltaXplZCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jbGVmdC1wYW5lbCAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgIC8qXG4gICAgICogRGlzYWJsZSBiYWNrZ3JvdW5kIHdoZW4gdXNpbmcgdGhlIG5ldyByb29tIGxpc3QuXG4gICAgICogVGhpcyBiYWNrZ3JvdW5kIHNvbWV0aW1lcyBzaG93cyB3aGVuIHRoZSBwYW5lbCBpcyByZXNpemVkIGFuZCBpdCBsb29rcyBsaWtlIGEgdGhpY2tlciBib3JkZXIuXG4gICAgICovXG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFpblNwbGl0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWFpblNwbGl0ID4gLm14X1JpZ2h0UGFuZWxfUmVzaXplV3JhcHBlciB7XG4gICAgJjpob3ZlciAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAtNTAlKTtcblxuICAgICAgICBoZWlnaHQ6IDY0cHg7IC8qIHRvIG1hdGNoIHdpZHRoIG9mIHRoZSBvbmVzIG9uIHJvb21saXN0ICovXG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWF0cml4Q2hhdF9zcGxhc2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhDaGF0X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhUb29sYmFyIHtcbiAgICBvcmRlcjogMTtcblxuICAgIGhlaWdodDogNDBweDtcbn1cblxuLm14X01hdHJpeENoYXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vKiBub3QgdGhlIGxlZnQgcGFuZWwsIGFuZCBub3QgdGhlIHJlc2l6ZSBoYW5kbGUsIHNvIHRoZSByb29tdmlldyBhbmQgZnJpZW5kcyAqL1xuLm14X01hdHJpeENoYXQgPiA6bm90KC5teF9MZWZ0UGFuZWwpOm5vdCgubXhfU3BhY2VQYW5lbCk6bm90KC5teF9SZXNpemVIYW5kbGUpOm5vdCgubXhfTGVmdFBhbmVsX291dGVyV3JhcHBlcikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLyogVG8gZml4IGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzMyOTggd2hlcmUgU2FmYXJpXG4gICAgICAgbmVlZGVkIGhlaWdodCAxMDAlIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIEhvbWVQYWdlLiBIZWlnaHQgZG9lcyBub3RcbiAgICAgICBoYXZlIHRvIGJlIGF1dG8sIGVtcGlyaWNhbGx5LlxuICAgICovXG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWF0cml4Q2hhdCA+IC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWw6aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgY29udGVudDogXCIgXCI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzBweDtcbiAgICBsZWZ0OiAyOHB4O1xuICAgIHotaW5kZXg6IDEwMTsgLyogc2FtZSBsZXZlbCBhcyBvdGhlciB0b2FzdHMgKi9cblxuICAgIC5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lcl90b2FzdCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgIC8qIFdlIGRvbid0IHVzZSB2YXJpYWJsZXMgb24gdGhlIGNvbG91cnMgYmVjYXVzZSB3ZSB3YW50IGl0IHRvIGJlIHRoZSBzYW1lICovXG4gICAgICAgIC8qIGluIGFsbCB0aGVtZXMuICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzE5MWM7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlciB7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICAvKiBEaXNwbGF5IGFib3ZlIGFueSB3aWRnZXQgZWxlbWVudHMgKi9cbiAgICB6LWluZGV4OiAxMDI7XG59XG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlcjphY3RpdmUge1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uIHtcbiAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxMnB4IGF1dG8gMTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpOmhvdmVyIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG92ZXJyaWRlIGNvbXBvdW5kIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB3aGVuIGhvdmVyZWRcbiAgICAgICAgICogc2hvdWxkIGRpc2FwcGVhciB3aGVuIHRoZSBzcGFjZSBwYW5lbCB3aWxsIGJlIG1pZ3JhdGVkIHRvIGNvbXBvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkZSBjb21wb3VuZCBkZWZhdWx0IGJhY2tncm91bmQgY29sb3Igd2hlbiBob3ZlcmVkXG4gICAgICAgICAqIHNob3VsZCBkaXNhcHBlYXIgd2hlbiB0aGUgc3BhY2UgcGFuZWwgd2lsbCBiZSBtaWdyYXRlZCB0byBjb21wb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGljb24gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIxcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogbW9kaWZ5IGludGVybmFsIGNzcyBvZiB0aGUgY29tcG91bmQgY29tcG9uZW50XG4gICAgICAgICAqIGRpcnR5IGJ1dCB3ZSBuZWVkIHRvIGFkZCB0aGUgbGFiZWwgaW50byB0aGUgaW5kaWNhdG9yIGljb24gYnV0dG9uXG4gICAgICAgICAqKi9cbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX2xhYmVsIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uX0NvbnRleHRNZW51V3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgY29udGFpbjogdW5zZXQ7IC8qIGxldCB0aGUgZHJvcGRvd24gcGFpbnQgYmV5b25kIHRoZSBjb250ZXh0IG1lbnUgKi9cblxuICAgID4gZGl2ID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgPiBkaXYgPiBoNCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgMTJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX21vcmVPcHRpb25zQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX29wdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIC8qIENvcnJlY3RseSBsaW5lIHVwIGljb25zIGFuZCB0ZXh0LiAqL1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9RdWlja1RoZW1lU3dpdGNoZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X1F1aWNrU2V0dGluZ3NCdXR0b25faWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmlnaHRQYW5lbCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkc2VwYXJhdG9yO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbnRhaW46IHN0cmljdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OyAvKiB0b3AgYW5kIGJvdHRvbSBpcyA0cHggc21hbGxlciB0byBiYWxhbmNlIHdpdGggdGhlIHBhZGRpbmcgc2V0IGFib3ZlICovXG4gICAgfVxufVxuXG4ubXhfUmlnaHRQYW5lbCAubXhfTWVtYmVyTGlzdCxcbi5teF9SaWdodFBhbmVsIC5teF9NZW1iZXJJbmZvIHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X1JpZ2h0UGFuZWwgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIge1xuICAgIG9yZGVyOiAyO1xuICAgIG1hcmdpbjogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbjpyb290IHtcbiAgICAtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmc6IDE4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9Sb29tVmlld193cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvKiBDb250YWluIHRoZSBhbW91bnQgb2YgbGF5ZXJzIHJlbmRlcmVkIGJ5IGNvbnN0cmFpbmluZyB3aGF0IGFjdHVhbGx5IG5lZWRzIHJlLWxheWVyaW5nIHZpYSBjc3MgKi9cbiAgICBjb250YWluOiBzdHJpY3Q7XG59XG5cbi5teF9Sb29tVmlldyB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9NYWluU3BsaXQge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19hdXhQYW5lbF9oaWRkZW5IaWdobGlnaHRzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgcGFkZGluZzogMTBweCAyNnB4O1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNlYXJjaFNwaW5uZXIge1xuICAgIGZsZXg6IDE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIDM2N3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyODZweDtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgY29udGFpbmVyLXR5cGU6IHNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IHJvb212aWV3O1xuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCxcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU2VhcmNoU3Bpbm5lciB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgICAgIC8qIG9mZnNldCBwYXJlbnQgZm9yIG14X1Jvb21WaWV3X3RvcFVucmVhZE1lc3NhZ2VzQmFyICAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4vKiBSZXN0b3JlIHRoZSBnYXAgYmV0d2VlbiB0aGUgdGltZWxpbmUgYW5kIHRoZSByaWdodCBwYW5lbCBvbmx5IHdoZW4gdGhlIHBhbmVsIGlzIG9wZW4uXG4gICBXaXRob3V0IHRoaXMsIHRoZSBzY3JvbGxiYXIgb24gbXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHdvdWxkIHNpdCA0IHB4IGF3YXkgZnJvbSB0aGVcbiAgIHZpZXdwb3J0IGVkZ2UgaW4gRmlyZWZveCAod2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBvdmVyZmxvdzpvdmVybGF5KS4gKi9cbi5teF9NYWluU3BsaXQ6aGFzKC5teF9SaWdodFBhbmVsX1Jlc2l6ZVdyYXBwZXIpIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIG1heC1oZWlnaHQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFfZXhwYW5kZWQge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94X2xpbmUge1xuICAgIG1hcmdpbi1sZWZ0OiA2NXB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBoZWlnaHQ6IDFweDtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubXhfUm9vbVZpZXdfc2VhcmNoUmVzdWx0c1BhbmVsIHtcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgID4gLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0ID4gbGkgPiBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19lbXB0eSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7IC8qIHZpc3VhbGx5IGNlbnRlciB0aGUgY29udGVudCAoaW50ZW50aW9uYWwgb2Zmc2V0KSAqL1xufVxuXG4ubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKTsgLyogbXhfUHJvZmlsZVJlc2l6ZXIgZGVwZW5kcyBvbiB0aGlzIHZhbHVlICovXG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIG5lZWRlZCBhcyBtaW4taGVpZ2h0IGlzIHNldCB0byBjbGllbnRIZWlnaHQgaW4gU2Nyb2xsUGFuZWxcbiAgICB0byBwcmV2ZW50IHNocmlua2luZyB3aGVuIFdob0lzVHlwaW5nVGlsZSBpcyBoaWRkZW4gKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbGkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IGF1dG87XG4gICAgICAgIGNvbnRhaW4taW50cmluc2ljLXNpemU6IDUwcHg7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3LS1sb2NhbCAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2luQ2FsbCB7XG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3hfbGluZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBib3JkZXItdG9wOiAycHggaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbn1cblxuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94IHtcbiAgICAgICAgbWluLWhlaWdodDogNDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VhcmNoQm94IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMzZweDsgLyogdG8gYXZvaWQganVtcGluZyB3aGVuIHRoZSBYIHRvIGNsZWFyIHNob3dzL2hpZGVzICovXG5cbiAgICAmLm14X1NlYXJjaEJveF9ibHVycmVkOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveF9jbG9zZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlld19sYW5kaW5nIHtcbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X25vUmVzdWx0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0SGVhZGVyX2hlYWRlciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3RIZWFkZXJfYnV0dG9ucyB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUsXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxMnB4OyAvKiB0byBhY2NvdW50IGZvciB0aGUgMXB4IGJvcmRlciAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2Vycm9yIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMTJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvaWNvbnMvZXJyb3Itc29saWQuc3ZnXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbUNvdW50IHtcbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGVfc2hvd24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX2NoaWxkcmVuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgbGkubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVXcmFwcGVyIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZ2FwOiA2cHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7IC8qIHdyYXAgYWN0aW9uIGJ1dHRvbnMgKi9cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfam9pbmVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2pvaW5lZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2luZm8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lLFxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMTZweDsgLyogdG8gYWNjb3VudCBmb3IgdGhlIDFweCBib3JkZXIgKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9qb2luaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlLFxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV9jaGlsZHJlbiB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2FjdGlvbnMge1xuICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9uc1RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaHIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2NyZWF0ZVJvb20ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAxNnB4IGF1dG8gMDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBhbmVsIHtcbiAgICAtLWFjdGl2ZUJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgIC0tYWN0aXZlQm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcDogMXB4O1xuICAgIC0tZ3V0dGVyU2l6ZTogMTRweDtcbiAgICAtLWhlaWdodC1uZXN0ZWQ6IDI0cHg7XG4gICAgLS1oZWlnaHQtdG9wTGV2ZWw6IDMycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIEZpeCBmb3IgdGhlIGJsdXJyZWQgYXZhdGFyLWJhY2tncm91bmQgKi9cbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggc28gdGhlIFBhbmVsIGZpbGxzIHRoZSBjb250YWluZXIgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgIHdpZHRoOiA2OHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB0b3A6IDE5cHg7IC8qIHYtYWxpZ24gd2l0aCBhdmF0YXIgKi9cbiAgICAgICAgcmlnaHQ6IC04cHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLyogU2xpZ2h0IGFsaWdubWVudCB0d2VhayB0byBjZW50ZXIgdGhlIGFzc2V0ICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5leHBhbmRlZCBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIC8qIFNsaWdodCBhbGlnbm1lbnQgdHdlYWsgdG8gY2VudGVyIHRoZSBhc3NldCAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlLFxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9kcmFnZ2luZyB7XG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcblxuICAgICAgICAmLm14X1NwYWNlSXRlbV9uYXJyb3cge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtLmNvbGxhcHNlZCB7XG4gICAgICAgICYgPiAubXhfU3BhY2VCdXR0b24gPiAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9uZXcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbTpub3QoLmhhc1N1YlNwYWNlcykgPiAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyU2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggNHB4IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSB0aGUgdW5sYXllcmVkIGN1cnNvcjogZ3JhYjsgcnVsZSBmcm9tIHJlYWN0LWJlYXV0aWZ1bC1kbmQgKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9hY3RpdmUge1xuICAgICAgICAgICAgJjpub3QoLm14X1NwYWNlQnV0dG9uX25hcnJvdykgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjdGl2ZUJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggdmFyKC0tYWN0aXZlQm9yZGVyLWNvbG9yKSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fbmFtZSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWd1dHRlclNpemUpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgLyogUmUtYWxpZ24gd2l0aCBwYXJlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9pY29uIHtcbiAgICAgICAgICAgIC8qIENhbGN1bGF0ZSBoZWlnaHQgZXhjbHVkaW5nIHBhZGRpbmcgdG8gYWxsb3cgc3ZnIHRvIGluaGVyaXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWhlaWdodC10b3BMZXZlbCkgLSAxNHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1oZWlnaHQtdG9wTGV2ZWwpIC0gMTRweCk7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXcgLm14X1NwYWNlQnV0dG9uX2ljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IC8qIFRPRE8gdHJhbnNpdGlvbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXdDYW5jZWwgLm14X1NwYWNlQnV0dG9uX2ljb24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9tZW51QnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNHB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICAvKiBJbmRlbnQgc3Vic3BhY2VzICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fYXZhdGFyV3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUGFuZWxfYmFkZ2VDb250YWluZXIge1xuICAgICAgICAvKiBDcmVhdGUgYSBmbGV4Ym94IHRvIG1ha2UgYWxpZ25pbmcgZG90IGJhZGdlcyBlYXNpZXIgKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNweDtcbiAgICAgICAgdG9wOiAtM3B4O1xuXG4gICAgICAgIC5teF9TcGFjZVBhbmVsX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAycHg7IC8qIGNlbnRlcmluZyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWJhZGdlLXR5cGU9XCJkb3RcIl0ge1xuICAgICAgICAgICAgLyogbWFrZSB0aGUgc21hbGxlciBkb3Qgb2NjdXB5IHRoZSBzYW1lIHdpZHRoIGZvciBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCAtMXB4IDAgMDtcbiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtYmFkZ2UtdHlwZT1cImJhZGdlXzJjaGFyXCJdLFxuICAgICAgICBbZGF0YS1iYWRnZS10eXBlPVwiYmFkZ2VfM2NoYXJcIl0ge1xuICAgICAgICAgICAgbWFyZ2luOiAtNXB4IC01cHggMCAwO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgLm14X1NwYWNlQnV0dG9uOmZvY3VzLXdpdGhpbixcbiAgICAubXhfU3BhY2VCdXR0b25faGFzTWVudU9wZW4ge1xuICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX21lbnVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtOm5vdCgubXhfU3BhY2VJdGVtX25ldykge1xuICAgICAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbjpmb2N1cy13aXRoaW4sXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9oYXNNZW51T3BlbiB7XG4gICAgICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX25hbWUge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiByb290IHNwYWNlIGJ1dHRvbnMgYXJlIGJpZ2dlciBhbmQgbm90IGluZGVudGVkICovXG4gICAgJiA+IC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxNnB4IDA7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl90b3BPdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgYmxhY2sgMTZweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl9ib3R0b21PdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCAzMCUpIDRweCxcbiAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDc1JSkgMTJweCxcbiAgICAgICAgICAgICAgICBibGFjayAxNnB4XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9JbmRpY2F0b3JTY3JvbGxiYXJfdG9wT3ZlcmZsb3cubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX2JvdHRvbU92ZXJmbG93IHtcbiAgICAgICAgICAgIC8qIFRoaXMgc3RhY2tzIHR3byBncmFkaWVudHMgb24gdG9wIG9mIG9uZSBhbm90aGVyLCB3aGljaCBsZXRzIHVzXG4gICAgICAgICAgICAgICBoYXZlIGEgZml4ZWQgcGl4ZWwgb2Zmc2V0IGZyb20gYm90aCB0b3AgYW5kIGJvdHRvbSBmb3IgdGhlIGNvbG91ciBzdG9wcy5cbiAgICAgICAgICAgICAgIE5vdGUgdGhlIHRvcCBmYWRlIGlzIG11Y2ggc21hbGxlciBiZWNhdXNlIHRoZSBzcGFjZXMgc3RhcnQgY2xvc2UgdG8gdGhlIHRvcCxcbiAgICAgICAgICAgICAgIHNvIG90aGVyd2lzZSBhIGxhcmdlIGdyYWRpZW50IHN1ZGRlbmx5IGFwcGVhcnMgd2hlbiB5b3Ugc2Nyb2xsIGRvd24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG1hc2staW1hZ2U6XG4gICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIGJsYWNrIDE2cHgpLFxuICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDMwJSkgNHB4LFxuICAgICAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA3NSUpIDEycHgsXG4gICAgICAgICAgICAgICAgICAgIGJsYWNrIDE2cHhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFzay1wb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAwJSAwJSxcbiAgICAgICAgICAgICAgICAwJSAxMDAlO1xuICAgICAgICAgICAgbWFzay1zaXplOlxuICAgICAgICAgICAgICAgIGNhbGMoMTAwJSAtIDEwcHgpIDUwJSxcbiAgICAgICAgICAgICAgICBjYWxjKDEwMCUgLSAxMHB4KSA1MCU7XG4gICAgICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcblxuICAgIC5teF9TcGFjZVBhbmVsX2NvbnRleHRNZW51X2hlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudV9zZXBhcmF0b3JMYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9zaGFyZVB1YmxpY1NwYWNlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9TcGFjZVBhbmVsX1Rvb2x0aXBfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBpbGxCdXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNnB4IDMycHggMTZweCA3MnB4O1xuICAgIHdpZHRoOiA0MzJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBsZWZ0OiAyMnB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlldyB7XG4gICAgLS1pbm5lcldpZHRoOiA0MjhweDtcblxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZmxleDogMTtcblxuICAgIC5teF9NYWluU3BsaXQgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nOiA4MHB4IDYwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzNjBweCk7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDRweDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyAvKiBidXR0b24gYWxpZ25tZW50IHJpZ2h0ICovXG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc3R5bGVzICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgJiArIC5teF9GaWVsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2Vycm9yVGV4dCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2hlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX25hbWUge1xuICAgICAgICAgICAgbWFyZ2luOiAyNHB4IDAgMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMDtcblxuICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZXIge1xuICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbmZvQmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW5mb0Jhcl9pbnRlcmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbixcbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3NldHRpbmdzQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4IDRweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfc2V0dGluZ3NCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3RvcGljIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlcyB7XG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlc19idXR0b25zIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHRvIGNlbnRlciBpY29ucyAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwbGFzaFBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIDUzLjg1JSA2Ni43NSUgYXQgODcuNTUlIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgyNTBkZWcsIDc2JSwgNzElLCAwLjI2MSkgMCUsXG4gICAgICAgICAgICAgICAgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDQxLjkzJSA0MS45MyUgYXQgMCUgMCUsIGhzbCgyMjJkZWcsIDI5JSwgMjAlLCAwLjI4KSAwJSwgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDAlIDEwMCUgYXQgMCUgMCUsIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMC4xNzQpIDAlLCBoc2woMGRlZywgMTAwJSwgODYlLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDYuMzUlIDk2LjI2JSBhdCAxMDAlIDAlLCBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDAuNCkgMCUsIGhzbCgxNjdkZWcsIDc2JSwgODIlLCAwKSAxMDAlKTtcbiAgICAgICAgLyogYmx1ciB0byByZWR1Y2UgY29sb3IgYmFuZGluZyBpc3N1ZXMgZHVlIHRvIGFscGhhLWJsZW5kaW5nIG11bHRpcGxlIGdyYWRpZW50cyAqL1xuICAgICAgICBmaWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAgICAgaW5zZXQ6IC05cHg7XG4gICAgICAgIG1hc2s6XG4gICAgICAgICAgICAvKiBtYXNrIHRvIGRpdGhlciByZXN1bHRpbmcgY29tYmluZWQgZ3JhZGllbnQgKi9cbiAgICAgICAgICAgIHVybChcIi9yZXMvaW1nL25vaXNlLnBuZ1wiKSxcbiAgICAgICAgICAgIC8qIGdyYWRpZW50IHRvIGFwcGx5IGRpZmZlcmVudCBhbW91bnRzIG9mIGRpdGhlcmluZyB0byBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGdyYWRpZW50ICovXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gYm90dG9tLFxuICAgICAgICAgICAgICAgIC8qIDEwJSBkaXRoZXJpbmcgYXQgdGhlIHRvcCAqLyByZ2IoMCwgMCwgMCwgMC45KSAyMCUsXG4gICAgICAgICAgICAgICAgLyogODAlIGRpdGhlcmluZyBhdCB0aGUgYm90dG9tICovIHJnYigwLCAwLCAwLCAwLjIpIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGFiYmVkVmlldyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGluc2V0OiAwO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLm14X1RhYmJlZFZpZXdfdGFic09uTGVmdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbWFyZ2luOiAwOyAvKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUgKi9cbiAgICAgICAgcGFkZGluZzogMDsgLyogUmVtb3ZlIHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjgwcHg7IC8qIDIyMHB4IHNpZGViYXIgKyA2MHB4IHBhZGRpbmcgKi9cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbDpob3ZlcixcbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF9hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYnNPblRvcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4O1xuXG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX2FjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgIGNvbG9yOiAkdGFiLWxhYmVsLWZnLWNvbG9yO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWJsb2NrLXNpemU6IDQwcHg7XG4gICAgbWluLWlubGluZS1zaXplOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBjb2xvciAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMDsgLyogZmlyZWZveCAqL1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbENvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwOyAvKiBmaXJlZm94ICovXG59XG5cbi8qIEhpZGUgdGhlIGxhYmVscyBvbiB0YWJzLCBzaG93aW5nIG9ubHkgdGhlIGljb25zLCBvbiBuYXJyb3cgdmlld3BvcnRzLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5teF9UYWJiZWRWaWV3X3RhYnNPbkxlZnQubXhfVGFiYmVkVmlld19yZXNwb25zaXZlIHtcbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3MnB4OyAvKiA0MHB4IHNpZGViYXIgKyAzMnB4IHBhZGRpbmcgKi9cbiAgICAgICAgfVxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAgMDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbiB7XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMThweCBhdXRvIGF1dG8gYXV0bztcblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogb3ZlcnJpZGUgY29tcG91bmQgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJlZFxuICAgICAgICAgKiBzaG91bGQgZGlzYXBwZWFyIHdoZW4gdGhlIHNwYWNlIHBhbmVsIHdpbGwgYmUgbWlncmF0ZWQgdG8gY29tcG91bmRcbiAgICAgICAgICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBpY29uICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1vZGlmeSBpbnRlcm5hbCBjc3Mgb2YgdGhlIGNvbXBvdW5kIGNvbXBvbmVudFxuICAgICAgICAgKiBkaXJ0eSBidXQgd2UgbmVlZCB0byBhZGQgdGhlIGBUaHJlYWRzYCBsYWJlbCBpbnRvIHRoZSBpbmRpY2F0b3IgaWNvbiBidXR0b25cbiAgICAgICAgICoqL1xuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGlubGluZS1zaXplOiA4cHg7XG4gICAgICAgICAgICAgICAgYmxvY2stc2l6ZTogOHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fVGV4dCB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICAqL1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6aG92ZXIgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9JY29uIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfcm93cyB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIC8qIExldCBzb21lIHNwYWNlIGF0IHRoZSB0b3AgYW5kIHRoZSBib3R0b20gb2YgdGhlIHBvcC11cCAqL1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XG5cbiAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlUm93IHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgICAgIC8qIE1ha2UgdGhlIGxhYmVsIG9mIHRoZSBNZW51SXRlbSBzdGF5IG9uIG9uZSBsaW5lIGFuZCB0cnVuY2F0ZSB3aXRoIGVsbGlwc2lzIGlmIG5lZWRlZCAqL1xuICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgLyogQXJiaXRyYXJ5IHNpemUsIGtlZXAgdGhlIFRBQyBhcyB0aGUgd2FudGVkIHdpZHRoICovXG4gICAgICAgICAgICB3aWR0aDogMjAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIaWRlIHRoZSBub3RpZmljYXRpb24gYmFkZ2Ugb24gaG92ZXIg4oCUIGNvbXBvdW5kJ3MgYG5hdi1oaW50IH4gKmAgcnVsZSB3b3VsZCBub3JtYWxseVxuICAgICAgICAgKiBkbyB0aGlzLCBidXQgdGhlIGFwcC13ZWIgQ1NTIGxheWVyIG92ZXJyaWRlcyBjb21wb3VuZC13ZWIgcmVnYXJkbGVzcyBvZiBzcGVjaWZpY2l0eS4gKi9cbiAgICAgICAgJjpob3ZlciAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfZW1wdHlDYXB0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICBsZWZ0OiA2MnB4O1xuICAgIHotaW5kZXg6IDEwMTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDI4cHggOHB4O1xuXG4gICAgJi5teF9Ub2FzdENvbnRhaW5lcl9zdGFja2VkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBncmlkLXJvdzogMiAvIC0xO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyMHB4IHJnYigwLCAwLCAwLCAwLjUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Ub2FzdF90b2FzdCB7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCAxZnIgYXV0bztcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcm93LWdhcDogNHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWNwZC1zcGFjZS01eCkgLSB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpKTtcblxuICAgICAgICAmLm14X1RvYXN0X2hhc0ljb24ge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF9jbG9zZWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLm14X1RvYXN0X2hhc0ljb24pIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfYm9keSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDk2cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF9kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI3MnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDAgMTFweCAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF9kZXZpY2VJRCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwbG9hZEJhciB7XG4gICAgLyogbGluZSB1cCB3aXRoIHRoZSBzaGllbGQgYXJlYSBpbiB0aGUgY29tcG9zZXIgKi9cbiAgICBwYWRkaW5nOiA1cHggMjFweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgXCJpY29uICAgICBmaWxlbmFtZSBjYW5jZWxcIiBhdXRvXG4gICAgICAgIFwicHJvZ3Jlc3MgcHJvZ3Jlc3MgcHJvZ3Jlc3NcIiBhdXRvXG4gICAgICAgIC8gbWluLWNvbnRlbnQgYXV0byBtaW4tY29udGVudDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBncmlkLWFyZWE6IGljb247XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfVXBsb2FkQmFyX2ZpbGVuYW1lIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlbmFtZTtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLm14X1VwbG9hZEJhcl9jYW5jZWwge1xuICAgICAgICBncmlkLWFyZWE6IGNhbmNlbDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgIGdyaWQtYXJlYTogcHJvZ3Jlc3M7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1RocmVhZFZpZXcge1xuICAgIC5teF9VcGxvYWRCYXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZpZXdTb3VyY2Uge1xuICAgIHByZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG4gICAgICAgIC5teF9Db3B5YWJsZVRleHQge1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfZGV0YWlscyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0UyRUljb24ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXJJY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXhfRTJFSWNvbi5teF9Db21wbGV0ZVNlY3VyaXR5X2hlcm9JY29uIHtcbiAgICB3aWR0aDogMTI4cHg7XG4gICAgaGVpZ2h0OiAxMjhweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfc2tpcCB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyNHB4O1xufVxuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9ib2R5IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X3dhaXRpbmcge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYWN0aW9uUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgbWFyZ2luLXRvcDogJGZvbnQtMjhweDtcblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMThweDtcblxuICAgICAgICAmLndhcm5pbmcge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0VmlldyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5fc3VibWl0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogOHB4O1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIC5teF9TcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIgLm14X1NwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5teF9Mb2dpbl9lcnJvciB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfTG9naW5fZXJyb3IubXhfTG9naW5fc2VydmVyRXJyb3Ige1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm14X0xvZ2luX2Vycm9yLm14X0xvZ2luX3NlcnZlckVycm9yLm14X0xvZ2luX3NlcnZlckVycm9yTm9uRmF0YWwge1xuICAgIGNvbG9yOiAjZmY4ZDEzOyAvKiBPbmx5IHVzZWQgaGVyZSAqL1xufVxuXG4ubXhfTG9naW5fdHlwZV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXhfTG9naW5fdHlwZV9sYWJlbCB7XG4gICAgZmxleDogMTtcbn1cblxuLm14X0xvZ2luX3VuZGVybGluZWRTZXJ2ZXJOYW1lIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkYWNjZW50O1xufVxuXG5kaXYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsubXhfTG9naW5fZm9yZ290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbl9zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDE0cHg7XG59XG5cbi5teF9Mb2dpbl9mdWxsV2lkdGhCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfbWlncmF0aW9uUHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLm14X1Byb2dyZXNzQmFyIHtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcblxuICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgIH1cbn1cblxuLm14X0xvZ2luU3BsYXNoVmlld19zcGxhc2hCdXR0b25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzBweDtcbn1cblxuLm14X0xvZ2luU3BsYXNoVmlld19zeW5jRXJyb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZjJhOGI7IC8qIE9ubHkgdXNlZCBoZXJlICovXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01vYmlsZVJlZ2lzdGVyX2JvZHkge1xuICAgIHBhZGRpbmc6IDMycHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVnaXN0ZXJfbWFpbkNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLWhlaWdodDogMjcwcHg7XG5cbiAgICBwIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuXG4gICAgICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0aHBhZ2Utc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBpbWc6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKiBNZWRpdW0gcmF0aGVyIHRoYW4gdGhlIGJvbGQgZXZlcnkgb3RoZXIgYXV0aCBlcnJvciB1c2VzOiB0aGlzIG9uZSBzaXRzIGRpcmVjdGx5IGFib3ZlIHRoZSBidXR0b24gaXRcbiAgIGlzIGRpc2FibGluZywgYW5kIGRvZXMgbm90IG5lZWQgdG8gc2hvdXQgb3ZlciBpdC4gU2NvcGVkIHNvIHRoZSBsb2dpbiBlcnJvcnMga2VlcCB0aGVpciB3ZWlnaHQuICovXG4ubXhfTG9naW5fZXJyb3IubXhfUmVnaXN0cmF0aW9uX3JhdGVMaW1pdEVycm9yIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG59XG5cbi5teF9SZWdpc3Rlcl9mb290ZXJBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuXG4gICAgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2Vzc2lvbkxvY2tTdG9sZW5WaWV3IHtcbiAgICBoMSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTMycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHVwRW5jcnlwdGlvbkJvZHkge1xuICAgIHdpZHRoOiA2MDBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgKEMpIDIwMjYgTWV0TWV0XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HdWVzdE9uYm9hcmRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfbG9nbyB7XG4gICAgd2lkdGg6IDg4cHg7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIG1hcmdpbjogMCAwIDhweCAwO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICM2ZjZmNmY7XG4gICAgbWFyZ2luOiAwIDAgMjhweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfYWN0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19wcmltYXJ5QnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXRtZXQtYnJhbmQtcHJpbWFyeSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX3ByaW1hcnlCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX3NraXAge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICM5YTlhOWE7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19mYWxsYmFjayB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gNTUlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXZoO1xuICAgIHotaW5kZXg6IDUwMDA7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdPdmVybGF5X3RleHQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9hcnJvdyB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGFuaW1hdGlvbjogbXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9ib3VuY2UgMXMgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgbXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9ib3VuY2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIH1cbn1cblxuLm14X0d1ZXN0Q29ubmVjdGluZ19zcGlubmVyIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tbWV0bWV0LWJyYW5kLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IG14X0d1ZXN0Q29ubmVjdGluZ19zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbkBrZXlmcmFtZXMgbXhfR3Vlc3RDb25uZWN0aW5nX3NwaW4ge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBEZXYgbm90ZTogdGhlcmUncyBubyBhY3R1YWwgY29tcG9uZW50IGNhbGxlZCA8UGxheWJhY2tDb250YWluZXIgLz4uIFRoZXNlIGNsYXNzZXMgKi9cbi8qIGFyZSBzaGFyZWQgYW1vbmdzdCBtdWx0aXBsZSB2b2ljZSBtZXNzYWdlIGNvbXBvbmVudHMuICovXG5cbi8qIENvbnRhaW5lciBmb3IgbGl2ZSByZWNvcmRpbmcgYW5kIHBsYXliYWNrIGNvbnRyb2xzICovXG4ubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTWF0Y2ggbXhfTWVkaWFCb2R5IHNwYWNpbmcsIG9mZnNldHRpbmcgdGhlIHdhdmVmb3JtJ3MgMXB4IGludGVybmFsIHJpZ2h0IHBhZGRpbmcuICovXG4gICAgcGFkZGluZzogNnB4IDExcHggNnB4IDEycHg7XG5cbiAgICAvKiBDaGVhdCBhdCBhbGlnbm1lbnQgYSBiaXQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBjb250YWluOiBjb250ZW50O1xuXG4gICAgLm14X1dhdmVmb3JtLFxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogUHJldmVudCBhIGJsb3dvdXQgKi9cbiAgICB9XG5cbiAgICAvKiBXYXZlZm9ybXMgYXJlIHByZXNlbnQgaW4gbGl2ZSByZWNvcmRpbmcgb25seSAqL1xuICAgIC5teF9XYXZlZm9ybSB7XG4gICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gaW4gSlMgKi9cbiAgICAgICAgLS1iYXJIZWlnaHQ6IDE7XG4gICAgICAgIC5teF9XYXZlZm9ybV9iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKG1heCgwLjA1LCB2YXIoLS1iYXJIZWlnaHQpKSk7XG5cbiAgICAgICAgICAgICYubXhfV2F2ZWZvcm1fYmFyXzEwMHBjdCB7XG4gICAgICAgICAgICAgICAgLyogU21hbGwgYW5pbWF0aW9uIHRvIHJlbW92ZSB0aGUgbWVjaGFuaWNhbCBmZWVsIG9mIHByb2dyZXNzICovXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9DbG9jayB7XG4gICAgICAgIHdpZHRoOiAkZm9udC00MnB4OyAvKiB3ZSdyZSBub3QgdXNpbmcgYSBtb25vc3BhY2UgZm9udCwgc28gZmFrZSBpdCAqL1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTQycHg7IC8qIGZvcmNlIHNlbnNpYmxlIGxheW91dHMgaW4gYXdrd2FyZCBmbGV4Ym94ZXMgKGZpbGUgcGFuZWwsIGZvciBleGFtcGxlKSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IC8qIHdpdGggdGhlIGZpeGVkIHdpZHRoIHRoaXMgZW5kcyB1cCBhcyBhIHZpc3VhbCA4cHggbW9zdCBvZiB0aGUgdGltZSwgYXMgaW50ZW5kZWQuICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4OyAvKiBpc29sYXRlIGZyb20gcmVjb3JkaW5nIGNpcmNsZSAvIHBsYXkgY29udHJvbCAqL1xuICAgIH1cblxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyAvKiBzYW1lIGhlaWdodCBhcyBteF9XYXZlZm9ybSwgbmVlZGVkIGZvciBhdXRvbWF0aWMgdmVydGljYWwgY2VudGVyaW5nICovXG5cbiAgICAgICAgLm14X1dhdmVmb3JtIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2Vla0JhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgdG9wOiAtMnB4OyAvKiB2aXN1YWxseSB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGhhaXJsaW5lIHByb2dyZXNzIGJhciBzaW5jZSB3ZSdyZSBhdCAxMDAlIGhlaWdodC4gTmVlZCB0byBoYXZlIGRpc3RpbmN0IHJ1bGVzICovXG4gICAgICAgICAgICAvKiBiZWNhdXNlIENTUyBpcyB3ZWlyZC4gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotbW96LXJhbmdlLXByb2dyZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBNYWtlIHRoZSB0aHVtYiBlYXNpZXIgdG8gc2VlLiBMaWtlIHRoZSBTZWVrQmFyIG9yaWdpbmFsIHN0eWxlcywgdGhlc2UgbmVlZCB0byBiZSAqL1xuICAgICAgICAgICAgLyogZGlzdGluY3QuIFdlIG1ha2UgaXQgdHJhbnNwYXJlbnQgc28gaXQgZG9lc24ndCBzaG93IHVwIG9uIHRoZSBVSSwgYnV0IGFsc28gbGFyZ2VyICovXG4gICAgICAgICAgICAvKiBzbyBpdCdzIGVhc2llciB0byBncmFiIGJ5IG1vdXNlIHVzZXJzIGluIHNvbWUgYnJvd3NlcnMuIE1vc3QgYnJvd3NlcnMgbGV0IHRoZSB1c2VyICovXG4gICAgICAgICAgICAvKiBtb3ZlIGFuZCBkcmFnIHRoZSB0aHVtYiByZWdhcmRsZXNzIG9mIGhpdHRpbmcgdGhlIHRodW1iLCBob3dldmVyLiAqL1xuICAgICAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEZvciB0aW1lbGluZS1yZW5kZXJlZCBwbGF5YmFjaywgdGhlIGNsb2NrIGlzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSB3YXZlZm9ybS4gKi9cbiAgICAgICAgJiArIC5teF9DbG9jayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgLyogVGFrZSB0aGUgcGFkZGluZyBvZmYgdGhlIGNsb2NrIGJlY2F1c2UgaXQncyBhY2NvdW50ZWQgZm9yIGJ5IHRoZSBgdGltZWxpbmVMYXlvdXRNaWRkbGVgICovXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogQ1NTIGluc3BpcmF0aW9uIGZyb206ICovXG4vKiAqIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vaG93dG9fanNfcmFuZ2VzbGlkZXIuYXNwICovXG4vKiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yODI4MzgwNiAqL1xuLyogKiBodHRwczovL2Nzcy10cmlja3MuY29tL3N0eWxpbmctY3Jvc3MtYnJvd3Nlci1jb21wYXRpYmxlLXJhbmdlLWlucHV0cy1jc3MvICovXG5cbi5teF9TZWVrQmFyIHtcbiAgICAvKiBkZWZhdWx0LCBvdmVycmlkZGVuIGluIEpTICovXG4gICAgLS1maWxsVG86IDE7XG5cbiAgICAvKiBEZXYgbm90ZTogd2UgZGVsaWJlcmF0ZWx5IGRvIG5vdCBoYXZlIHRoZSAtbXMtdHJhY2sgKGFuZCBmcmllbmRzKSBzZWxlY3RvcnMgYmVjYXVzZSB3ZSBkb24ndCAqL1xuICAgIC8qIG5lZWQgdG8gc3VwcG9ydCBJRS4gKi9cblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIGRlZmF1bHQgc3R5bGUgb3ZlcnJpZGUgKi9cblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgb3V0bGluZTogbm9uZTsgLyogcmVtb3ZlIGJsdWUgc2VsZWN0aW9uIGJvcmRlciAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogZm9yIGJlZm9yZSthZnRlciBwc2V1ZG8gZWxlbWVudHMgbGF0ZXIgb24gKi9cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsgLyogZGVmYXVsdCBzdHlsZSBvdmVycmlkZSAqL1xuXG4gICAgICAgIC8qIERldiBub3RlOiBUaGlzIG5lZWRzIHRvIGJlIGR1cGxpY2F0ZWQgd2l0aCB0aGUgLW1vei1yYW5nZS10aHVtYiBzZWxlY3RvciAqL1xuICAgICAgICAvKiBiZWNhdXNlIG90aGVyd2lzZSBFZGdlICh3ZWJraXQpIHdpbGwgZmFpbCB0byBzZWUgdGhlIHN0eWxlcyBhbmQganVzdCByZWZ1c2UgKi9cbiAgICAgICAgLyogdG8gYXBwbHkgdGhlbS4gKi9cbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAvKiBGaXJlZm94IGFkZHMgYSBib3JkZXIgb24gdGhlIHRodW1iICovXG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZvciB3ZWJraXQgc3VwcG9ydCwgYnV0IHdlIGNhbid0IGxpbWl0IHRoZSBmdW5jdGlvbmFsaXR5IG9mIGl0IHRvIGp1c3Qgd2Via2l0ICovXG4gICAgLyogYnJvd3NlcnMuIEZpcmVmb3ggcmVzcG9uZHMgdG8gd2Via2l0LXByZWZpeGVkIHZhbHVlcyBub3csIHdoaWNoIG1lYW5zIHdlIGNhbid0IHVzZSBtZWRpYSAqL1xuICAgIC8qIG9yIHN1cHBvcnQgcXVlcmllcyB0byBzZWxlY3RpdmVseSBhcHBseSB0aGUgcnVsZS4gQW4gdXBzaWRlIGlzIHRoYXQgdGhpcyBDU1MgZG9lc24ndCB3b3JrICovXG4gICAgLyogaW4gZmlyZWZveCwgc28gaXQncyBqdXN0IHdhc3RlZCBDUFUvR1BVIHRpbWUuICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLyogOjpiZWZvcmUgdG8gZW5zdXJlIGl0IGVuZHMgdXAgdW5kZXIgdGhlIHRodW1iICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4gICAgICAgIC8qIEFic29sdXRlIHBvc2l0aW9uaW5nIHRvIGVuc3VyZSBpdCBvdmVybGFwcyB3aXRoIHRoZSBleGlzdGluZyBiYXIgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyogU2l6aW5nIHRvIG1hdGNoIHRoZSBiYXIgKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuXG4gICAgICAgIC8qIEFuZCBmaW5hbGx5IGR5bmFtaWMgd2lkdGggd2l0aG91dCBvdmVybHkgaHVydGluZyB0aGUgcmVuZGVyaW5nIGVuZ2luZS4gKi9cbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCh2YXIoLS1maWxsVG8pKTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZpcmVmb3gncyBidWlsdC1pbiBzdXBwb3J0IGZvciB0aGUgYWJvdmUsIHdpdGggMTAwJSBsZXNzIGhhY2tzLiAqL1xuICAgICY6Oi1tb3otcmFuZ2UtcHJvZ3Jlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAvKiBJbmNyZWFzZSBjbGlja2FibGUgYXJlYSBmb3IgdGhlIHNsaWRlciAoYXBwcm94aW1hdGVseSBzYW1lIHNpemUgYXMgYnJvd3NlciBkZWZhdWx0KSAqL1xuICAgIC8qIFdlIGRvIGl0IHRoaXMgd2F5IHRvIGtlZXAgdGhlIHNhbWUgcGFkZGluZyBhbmQgbWFyZ2lucyBvZiB0aGUgZWxlbWVudCwgYXZvaWRpbmcgbWFyZ2luIG1hdGguICovXG4gICAgLyogU291cmNlOiBodHRwczovL2Zyb250LWJhY2suY29tL2V4cGFuZC1jbGlja2FibGUtYXJlYXMtZm9yLWEtYmV0dGVyLXRvdWNoLWV4cGVyaWVuY2UvICovXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2F2ZWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDMwcHg7IC8qIHRhbGxlc3QgYmFyIGNhbiBvbmx5IGJlIDMwcHggKi9cbiAgICB0b3A6IDFweDsgLyogYmVjYXVzZSBvZiBvdXIgYm9yZGVyIHRyaWNrIChzZWUgYmVsb3cpLCB3ZSdyZSBvZmYgYnkgMXB4IG9mIGFsaWdudG1lbnQgKi9cblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogc28gdGhlIGJhcnMgZ3JvdyBmcm9tIHRoZSBtaWRkbGUgKi9cblxuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRoaXMgaXMgY2hlYXBlciB0aGFuIGEgYG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDRweClgIGluIHRoZSBiYXIncyBDU1MuICovXG5cbiAgICAvKiBBIGJhciBpcyBtZWFudCB0byBiZSBhIDJ4MiBjaXJjbGUgd2hlbiBhdCB6ZXJvIGhlaWdodCwgYW5kIG90aGVyd2lzZSBhIDJweCB3aWRlIGxpbmUgKi9cbiAgICAvKiB3aXRoIHJvdW5kZWQgY2Fwcy4gKi9cbiAgICAubXhfV2F2ZWZvcm1fYmFyIHtcbiAgICAgICAgd2lkdGg6IDA7IC8qIDBweCB3aWR0aCBtZWFucyB3ZSdsbCBlbmQgdXAgdXNpbmcgdGhlIGJvcmRlciBhcyBvdXIgd2lkdGggKi9cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IC8qIHRyYW5zcGFyZW50IG1lYW5zIHdlJ2xsIHVzZSB0aGUgYmFja2dyb3VuZCBjb2xvdXIgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyAvKiByb3VuZGVkIGVuZCBjYXBzLCBiYXNlZCBvbiB0aGUgYm9yZGVyICovXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7IC8qIGxpa2UgdGhlIHdpZHRoLCB3ZSdsbCByZWx5IG9uIHRoZSBib3JkZXIgdG8gZ2l2ZSB1cyBoZWlnaHQgKi9cbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsgLyogdGhpcyBtYWtlcyB0aGUgYGhlaWdodDogNDIlYCB3b3JrIG9uIHRoZSBlbGVtZW50ICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7IC8qIHdlIHdhbnQgMnB4IGJldHdlZW4gZWFjaCBiYXIsIHNvIDFweCBvbiBlaXRoZXIgc2lkZSBmb3IgYmFsYW5jZSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcblxuICAgICAgICAvKiBiYWNrZ3JvdW5kIGNvbG9yIGlzIGhhbmRsZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnRzICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoQm9keSB7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWNwZC1zcGFjZS02eCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSAwO1xuICAgIHBhZGRpbmc6IDI1cHggNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgJi5teF9BdXRoQm9keV9mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMi5teF9BdXRoQm9keV9jZW50ZXJlZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhOmxpbmssXG4gICAgYTpob3ZlcixcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2ljb24ge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9sb2NrSWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmllbGQgbGFiZWwge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRmllbGQgaW5wdXQsXG4gICAgLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX2xhYmVsQWx3YXlzVG9wTGVmdCBsYWJlbCxcbiAgICAubXhfRmllbGQgc2VsZWN0ICsgbGFiZWwgLyogQWx3YXlzIHNob3cgYSBzZWxlY3QncyBsYWJlbCBvbiB0b3AgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGUgdmFsdWUgKi8sXG4gICAgLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvciB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfRXJyb3JNZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCBpbnB1dCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3NlbGVjdDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25fbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1mb2N1cy1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3BlY2lhbGlzYXRpb24gZm9yIHBhc3N3b3JkIHJlc2V0IHZpZXdzICovXG4ubXhfQXV0aEJvZHkubXhfQXV0aEJvZHlfZm9yZ290LXBhc3N3b3JkIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDUwcHggMzJweDtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDA7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfTG9naW5fc3VibWl0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfdGV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3NpZ24taW4taW5zdGVhZC1idXR0b24ge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfZmllbGRSb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9kaWQtbm90LXJlY2VpdmUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0F1dGhCb2R5X3Jlc2VuZC1idXR0b24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9lbWFpbFByb21wdEljb24ge1xuICAgIHdpZHRoOiA1N3B4O1xufVxuXG4ubXhfQXV0aEJvZHlfZW1haWxQcm9tcHRJY29uLS1zaGlmdGVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTdweDsgLyogUHJldmVudCBsYXlvdXQganVtcCBieSByZWxhdGl2ZSBwb3NpdGlvbmluZy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTdweDsgLyogVGhpcyBpY29uIGlzIGhpZ2hlciB0aGFuIHRoZSBvdGhlciBpY29ucy4gU2hpZnQgdXAgdG8gcHJldmVudCBpY29uIGp1bXBpbmcuICovXG4gICAgd2lkdGg6IDU3cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQge1xuICAgIG1hcmdpbjogMCA1cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9wYWRkZWRGb290ZXIge1xuICAgIGhlaWdodDogODBweDsgLyogaGVpZ2h0IG9mIHRoZSBzdWJtaXQgYnV0dG9uICsgcmVnaXN0ZXIgbGluayAqL1xuICAgIHBhZGRpbmctdG9wOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9BdXRoQm9keV9wYWRkZWRGb290ZXJfdGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgIC5teF9JbmxpbmVTcGlubmVyIHN2ZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9jaGFuZ2VGbG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IGEge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9TU09CdXR0b25zICsgLm14X0F1dGhCb2R5X2NoYW5nZUZsb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9BdXRoQm9keV9zcGlubmVyIHtcbiAgICBtYXJnaW46IDFlbSAwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhCb2R5IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhGb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2IoMCwgMCwgMCwgMCksIHJnYigwLCAwLCAwLCAwLjgpKTtcbn1cblxuLm14X0F1dGhGb290ZXIgYTpsaW5rLFxuLm14X0F1dGhGb290ZXIgYTpob3Zlcixcbi5teF9BdXRoRm9vdGVyIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgbWFyZ2luOiAwIDIycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgcGFkZGluZzogMjVweCAyNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoSGVhZGVyTG9nbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDAgMjVweDtcbn1cblxuLm14X0F1dGhIZWFkZXJMb2dvIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlckxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aFBhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1iZy1jb2xvcjtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubXhfQXV0aFBhZ2VfbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAxMDBweCBhdXRvIGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I7XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm14X0F1dGhQYWdlX21vZGFsX3dpdGhCbHVyIHtcbiAgICAgICAgLyogQXBwbHkgYSBibHVycmVkIHNoYWRvdyBhcm91bmQgdGhlIG1vZGFsICovXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYigwLCAwLCAwLCAwLjMzKTtcblxuICAgICAgICAubXhfQXV0aFBhZ2VfbW9kYWxDb250ZW50IHtcbiAgICAgICAgICAgIC8qIE1ha2UgdGhlIG1vZGFsJ3MgYmFja2dyb3VuZCBzZW1pdHJhbnNwYXJlbnQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eUJvZHkge1xuICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA2MHB4IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIGE6bGluayxcbiAgICBhOmhvdmVyLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3VudHJ5RHJvcGRvd24gLm14X0Ryb3Bkb3duX2lucHV0IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIHBhZGRpbmc6IDAgM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duX3Nob3J0T3B0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93bl9vcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWZhdWx0V2VsY29tZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm14X0RlZmF1bHRXZWxjb21lX2xvZ28gaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9EZWZhdWx0V2VsY29tZV9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3Itc2VwYXJhdG9yLXByaW1hcnkpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDM4MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAubXhfRGVmYXVsdFdlbGNvbWVfYnV0dG9uc19yZWdpc3RlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMge1xuICAgIC5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfdGVybXNTdWJtaXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBwcmV2ZW50IG92ZXJmbG93aW5nICovXG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbldyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5FbnRyeSB7XG4gICAgZm9udC1zaXplOiAyMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNmVtO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbkVudHJ5OmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkblN1Ym1pdCB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLyogWFhYOiBUaGlzIHNob3VsZCBiZSBhIGNvbW1vbiBidXR0b24gY2xhc3MgKi9cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfbXNpc2RuU3VibWl0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Rlcm1zUG9saWN5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfcGFzc3dvcmRTZWN0aW9uIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfc3NvX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX2VtYWlsV3JhcHBlciB7XG4gICAgLyogXCJSZXNlbmRcIiBidXR0b24vbGluayAqL1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAvKiBXZSBuZWVkIHRoaXMgdG8gYmUgYW4gaW5saW5lLWJsb2NrIHNvIHBvc2l0aW9uaW5nIHdvcmtzIGNvcnJlY3RseSAqL1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBTcGlubmVyIGFzIGVuZCBhZG9ybm1lbnQgb2YgdGhlIFwicmVzZW5kXCIgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYXJlIHVzdWFsbHkgYmxvY2sgZWxlbWVudHMsIGJ1dCB3ZSBuZWVkIGl0IGFzIGlubGluZSBlbGVtZW50ICovXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYnkgZGVmYXVsdCBmaWxsIGFsbCBhdmFpbGFibGUgd2lkdGgsIGJ1dCB3ZSBkb24ndCB3YW50IHRoYXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBXZSBuZWVkIHRvIGNlbnRlciB0aGUgc3Bpbm5lciByZWxhdGl2ZSB0byB0aGUgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgY29sb3I6ICRhdXRocGFnZS1sYW5nLWNvbG9yO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICBjb2xvcjogJGF1dGhwYWdlLWxhbmctY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5XaXRoUVJTZWN0aW9uIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiB7XG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5ICsgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiAubXhfQWNjZXNzaWJsZUJ1dHRvbiBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSX2RpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcblxuICAgIC5teF9Mb2dpbldpdGhRUiB7XG4gICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbldpdGhRUiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3FyV3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS03eCkgMDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICAvKiBNYXRjaCB0aGUgc2l6ZSBvZiB0aGUgUVIgY29kZSB0byBwcmV2ZW50IGp1bXBzICovXG4gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NvbmZpcm1hdGlvbkRpZ2l0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSBhdXRvO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfY29uZmlybWF0aW9uQWxlcnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgIH1cblxuICAgIG9sIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIGxpc3QgbWFya2VycyBkbyBub3Qgc3VwcG9ydCB0aGUgb3V0bGluZWQgbnVtYmVyIHN0eWxpbmcgd2UgbmVlZCAqL1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgICAgIGNvbG9yOiAxcHggc29saWQgJGlucHV0LXBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENpcmNsZWQgbnVtYmVyIGxpc3QgaXRlbSBtYXJrZXIgKi9cbiAgICAgICAgbGk6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpc3QtaXRlbSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3I9XCJteF9Mb2dpbldpdGhRUl9jaGVja0NvZGVcIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NoZWNrQ29kZV9pbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgLyogV29ya2Fyb3VuZCBmb3Igb25lIG9mIHRoZSBpbnB1dCBydWxlcyBpbiBfY29tbW9uLnBjc3MgYmVpbmcgbm90IHNwZWNpZmljIGVub3VnaCAqL1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDQwcHggLyAyIC0gKDFjaCAvIDIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9oZWFkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9CYWNrQnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfYnJlYWRjcnVtYnMge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUVJDb2RlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3NwaW5uZXIge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJFBhc3NwaHJhc2VTdHJlbmd0aEhpZ2g6ICRhY2NlbnQ7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTWVkaXVtOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTG93OiAkYWxlcnQ7XG5cbnByb2dyZXNzLm14X1Bhc3NwaHJhc2VGaWVsZF9wcm9ncmVzcyB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEwcHg7XG4gICAgbGVmdDogMDtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyBcIjJweFwiO1xuICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoTG93O1xuICAgICZbdmFsdWU9XCIyXCJdLFxuICAgICZbdmFsdWU9XCIzXCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhNZWRpdW07XG4gICAgfVxuICAgICZbdmFsdWU9XCI0XCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhIaWdoO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2VsY29tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMXgpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAmLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAgICAgLm14X0J1dHRvbkNyZWF0ZUFjY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWUgLm14X0F1dGhCb2R5X2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi8qIEludmVydCBpbWFnZSBjb2xvdXJzIGluIGRhcmsgbW9kZS4gKi9cbi5jcGQtdGhlbWUtZGFyayAubXhfV2VsY29tZVBhZ2VfbG9nbyB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5idXR0b24ubXhfQmFzZUF2YXRhciB7XG4gICAgLyogPGJ1dHRvbj4gaXMgYSBmb3JtIGVsZW1lbnQgYW5kIGJ5IGRlZmF1bHQgaXQgdXNlcyB0aGUgdXNlciBhZ2VudCAoYnJvd3Nlcikgc3R5bGluZy5cbiAgICAgICBXZSB3YW50IGl0IHRvIGluaGVyaXQgdGhlIGZvbnQtZmFtaWx5IGFuZCBsaW5lLWhlaWdodCBmcm9tIGl0cyBwYXJlbnQuXG4gICAgICovXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVjb3JhdGVkUm9vbUF2YXRhcixcbi5teF9FeHRyYVRpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb250YWluOiBjb250ZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgJi5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2N1dG91dCAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hc2staW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbWxpc3QvZGVjb3JhdGVkLWF2YXRhci1tYXNrLnN2Z1wiKTtcbiAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdGhlIGZvbGxvd2luZyBwZXJjZW50YWdlIGJhc2VkIHNpemluZ3MgYXJlIHRvIG1hdGNoIHRoZSBzY2FsYWJsZSBzdmcgbWFzayBmb3IgdGhlIGN1dG91dCAqL1xuICAgICAgICBib3R0b206IDYuMjUlOyAvKiAycHggZm9yIGEgMzJ4MzIgYXZhdGFyICovXG4gICAgICAgIHJpZ2h0OiA2LjI1JTtcbiAgICAgICAgd2lkdGg6IDI1JTsgLyogOHB4IGZvciBhIDMyeDMyIGF2YXRhciAqL1xuICAgICAgICBoZWlnaHQ6IDI1JTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2dsb2JlIHN2ZyB7XG4gICAgICAgIC8qIE92ZXJzaXplIHRoZSBpY29uIHRvIGFjY291bnQgZm9yIHRoZSBkZWFkIHNwYWNlIGFyb3VuZCB0aGUgaWNvbiB3aXRoaW4gdGhlIGNhbnZhcyAqL1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgaGVpZ2h0OiAxMjAlO1xuICAgICAgICBtYXJnaW46IC0xMCU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9vZmZsaW5lOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlc2VuY2Utb2ZmbGluZTtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX29ubGluZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2F3YXk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmVzZW5jZS1hd2F5O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb25fYnVzeTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByZXNlbmNlLWJ1c3k7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfbm90aWZpY2F0aW9uQmFkZ2UsXG4gICAgLm14X1Jvb21UaWxlX2JhZGdlQ29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Jvb21BdmF0YXJWaWV3IHtcbiAgICAtLXJvb20tYXZhdGFyLXNpemU6IDMycHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBLZWVwIHRoZSBjb250YWluZXIgdG8gdGhlIHNhbWUgc2l6ZSB0aGFuIHRoZSBhdmF0YXIgKi9cbiAgICBpbmxpbmUtc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG4gICAgYmxvY2stc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhciB7XG4gICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhcl9pY29uIHtcbiAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9yb29tLWF2YXRhci12aWV3LWljb24tbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1Jvb21BdmF0YXJfcHJlc2VuY2Uge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L3Jvb20tYXZhdGFyLXZpZXctcHJlc2VuY2UtbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgLyogUGxhY2UgaGFsZiB0aGUgaWNvbiBpbnNpZGUgdGhlIGF2YXRhciAqL1xuICAgICAgICAvKiBBdmF0YXIgc2l6ZSAtIChpY29uIHNpemUgKDE2cHgpIC8gMikgKi9cbiAgICAgICAgbGVmdDogY2FsYygodmFyKC0tcm9vbS1hdmF0YXItc2l6ZSkgLSA4cHgpKTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1ByZXNlbmNlRGVjb3JhdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAvKiBQbGFjZSBoYWxmIHRoZSBpY29uIGluc2lkZSB0aGUgYXZhdGFyICovXG4gICAgICAgIC8qIEF2YXRhciBzaXplIC0gKGljb24gc2l6ZSAoOHB4KSAvIDIpICovXG4gICAgICAgIGxlZnQ6IGNhbGMoKHZhcigtLXJvb20tYXZhdGFyLXNpemUpIC0gNHB4KSk7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaWRnZXRBdmF0YXIge1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgYXZhdGFyICovXG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2l0aFByZXNlbmNlSW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgIC5teF9XaXRoUHJlc2VuY2VJbmRpY2F0b3JfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JldGFDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwIDE0cHg7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2NhcHRpb24ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSBhdXRvIDA7XG5cbiAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogdGV4dCBtaWdodCBvdmVyZmxvdyAqL1xuXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyOyAvKiBQbGFjZSBmZWVkYmFjayBidXR0b24gdG9wIGFuZCByaWdodCAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfcmVmcmVzaFdhcm5pbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2ZhcSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXhzLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICAgICAgPiBoNCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9CZXRhQ2FyZF9yZWxhdGVkU2V0dGluZ3Mge1xuICAgICAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfU2V0dGluZ3NGbGFnX21pY3JvY29weSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsOyAvKiBhdm9pZCBtdWx0aXBsZSBsaW5lcyBvbiBDSksgbGFuZ3VhZ2UgKi9cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VDb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAyNTJweDtcblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2xhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAtMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBBIGNvbnRleHQgbWVudSB0aGF0IGxhcmdlbHkgZml0cyB0aGUgfCBbaWNvbl0gICAgW2xhYmVsXSB8IGZvcm1hdC4gKi9cbi5teF9JY29uaXplZENvbnRleHRNZW51IHtcbiAgICBtaW4td2lkdGg6IDE0NnB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAvKiBvdmVycmlkZSBkZWZhdWx0IHVsIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCB7XG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X2xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIG5vdEZpcnN0IGNsYXNzIGlzIGZvciBjYXNlcyB3aGVyZSB0aGUgb3B0aW9uTGlzdCBtaWdodCBiZSB1bmRlciBhIGhlYWRlciBvZiBzb3J0cy4gKi9cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpLFxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X25vdEZpcnN0IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIHRoZSB0b3AgY29ybmVycyBvZiB0aGUgdG9wIGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgLyogcmFkaXVzIG1hdGNoZXMgLm14X0NvbnRleHR1YWxNZW51ICovXG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3VuZCB0aGUgYm90dG9tIGNvcm5lcnMgb2YgdGhlIGJvdHRvbSBidXR0b24gZm9yIHRoZSBob3ZlciBlZmZlY3QgdG8gYmUgYm91bmRlZCAqL1xuICAgICAgICAmOmxhc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIGFsbCBjb3JuZXJzIG9mIHRoZSBvbmx5IGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgLyogcGFkIHRoZSBpbnNpZGUgb2YgdGhlIGJ1dHRvbiBzbyB0aGF0IHRoZSBob3ZlciBiYWNrZ3JvdW5kIGlzIHBhZGRlZCB0b28gKi9cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICAgICAgICAgIC8qIENyZWF0ZSBhIGZsZXhib3ggdG8gbW9yZSBlYXNpbHkgZGVmaW5lIHRoZSBsaXN0IGl0ZW1zICovXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1zZWNvbmRhcnktaG92ZXJlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9sYWJlbCB7XG4gICAgICAgICAgICAgICAgLyogbGFiZWxzICovXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgICAgIC8qIEVsbGlwc2l6ZSBhbnkgdGV4dCBvdmVyZmxvdyAqL1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X0ljb25pemVkQ29udGV4dE1lbnVfbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdF9yZWQge1xuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25fcmVkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfYWN0aXZlIHtcbiAgICAgICAgJi5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0sXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jb21wYWN0IHtcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCA+ICoge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jaGVja2VkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9zdWJsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbURlc3RydWN0aXZlIHtcbiAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjAtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxDb250ZXh0TWVudV9pdGVtIHtcbiAgICB3aWR0aDogMjA1cHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZSB7XG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Vfc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcHJvdmlkZXMgc3BhY2UgZm9yIHNjcm9sbGJhciBzbyB0aGF0IGNoZWNrYm94IGFuZCBzY3JvbGxiYXIgZG8gbm90IGNvbGxpZGUgKi9cbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3Ige1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuXG4gICAgICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Vycm9ySGVhZGluZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3JDYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19yZXRyeUJ1dHRvbiBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG59XG5cbi5teF9TdWJzcGFjZVNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXJnaW46IGF1dG8gMTZweCBhdXRvIDVweDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICAgID4gaDEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdWJzcGFjZVNlbGVjdG9yX2Ryb3Bkb3duT3B0aW9uQWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1N1YnNwYWNlU2VsZWN0b3Jfb25seVNwYWNlIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICB9XG59XG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZW50cnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcblxuICAgIGZvcm0ge1xuICAgICAgICAvKiBBbGlnbiBjaGVja2JveGVzLiAqL1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgIC8qIHdlIGNhbid0IHRhcmdldCAubXhfQmFzZUF2YXRhciBoZXJlIGFzIGl0J2xsIGJyZWFrIHRoZSBkZWNvcmF0ZWQgYXZhdGFyIHN0eWxpbmcgKi9cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2VudHJ5X25hbWUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2ltYWdlX2hvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtc2hpbnkuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgICAgICBoZWlnaHQ6IDExMnB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDBweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9jb3B5IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycHggMCAwIDMycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgY29sb3I6ICMwZGJkOGI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQnVnUmVwb3J0RGlhbG9nIHtcbiAgICAubXhfQnVnUmVwb3J0RGlhbG9nX2Rvd25sb2FkIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgLyogU3BhY2UgYmV0d2VlbiBcIkRvd25sb2FkaW5nIGxvZ3MuLi5cIiAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgQXZpcmFsIERhc2d1cHRhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfbGkge1xuICAgIHBhZGRpbmc6IDAuMmVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERFViBOT1RFOiBUaGlzIHN0eWxlc2hlZXQgY292ZXJzIGRpYWxvZ3MgbGlzdGVkIGJ5IHRoZSBjb21wb3VuZCwgaW5jbHVkaW5nICovXG4vKiBvdmVyIG11bHRpcGxlIFJlYWN0IGNvbXBvbmVudHMuIFRoZSBhY3R1YWwgaW5uZXIgY29udGVudHMgb2YgdGhlIGRpYWxvZyBzaG91bGQgKi9cbi8qIGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgc3R5bGVzaGVldHMuICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBPdmVycmlkZSBsZWdhY3kvZGVmYXVsdCBzdHlsZXMgZm9yIGRpYWxvZ3MgKi9cbi5teF9EaWFsb2dfd3JhcHBlci5teF9Db21wb3VuZERpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiAwOyAvKiB3ZSdsbCBtYW5hZ2UgaXQgb3Vyc2VsdmVzICovXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db21wb3VuZERpYWxvZyB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMzJweCAxNnB4IDMycHg7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7IC8qIG1hbmFnZWQgYnkgaGVhZGVyIGNsYXNzICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgICAgIC8qIEFsaWduIHdpdGggY29ybmVyIHJhZGl1cyBvZiBkaWFsb2cgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA4cHggMzJweDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMjBweCAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Njcm9sbGFibGVCYXNlRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICB3aWR0aDogNTQ0cHg7IC8qIGZpeGVkICovXG4gICAgaGVpZ2h0OiA1MTZweDsgLyogZml4ZWQgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiA4MCU7XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IC00cHggNHB4IHJnYigwLCAwLCAwLCAwLjA1KTsgLyogaGFyZGNvZGVkIGNvbG91ciBmb3IgYm90aCB0aGVtZXMgKi9cbiAgICAgICAgei1pbmRleDogMTsgLyogbmVlZGVkIHRvIG1ha2UgZm9vdGVyICYgc2hhZG93IGFwcGVhciBhYm92ZSBkaWFsb2cgY29udGVudCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICB9XG59XG5cbi5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nIHtcbiAgICB3aWR0aDogNDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd2FybmluZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ191c2VyIHtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19hdmF0YXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nX25hbWUge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfdXNlcklkIHtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19kZXRhaWxzIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLm14X0NyZWF0ZVJvb21EaWFsb2dfZGV0YWlsc19zdW1tYXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIC8qIGxpc3Qtc3R5bGUgZG9lc24ndCBkbyBpdCBmb3Igd2Via2l0ICovXG4gICAgICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcblxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfaW5wdXRfY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfYWxpYXNDb250YWluZXIge1xuICAgIC8qIG5lZWRlZCB0byBtYWtlIHRoZSBhbGlhcyBmaWVsZCBvbmx5IGdyb3cgYXMgd2lkZSBhcyBuZWVkZWQgYXMgb3Bwb3NlZCB0byBmdWxsIHdpZHRoICovXG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2cge1xuICAgICYubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG5cbiAgICBwLFxuICAgIC5teF9GaWVsZF9pbnB1dCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50ID4gLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMCA4NXB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfbGFiZWxsZWRDaGVja2JveCB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0NyZWF0ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcblxuICAgIC5teF9DcmVhdGVTZWN0aW9uRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIC8qIDU3NnB4IGNvbWluZyBmcm9tIEZpZ21hIGFuZCByZW1vdmUgZXh0ZXJuYWwgcGFkZGluZyAqL1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTc2cHggLSB2YXIoLS1jcGQtc3BhY2UtMjB4KSk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2JldGFOb3RpY2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2JldGFQaWxsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0pvaW5SdWxlRHJvcGRvd24gKyBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyX3Byb21wdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfQ3J5cHRvIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2dfaW5wdXRfc2VjdGlvbiAubXhfRmllbGQge1xuICAgIHdpZHRoOiAzMDBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2dG9vbHNEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfdG9nZ2xlRm9ybSB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc190b29sSGVhZGluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG59XG5cbi5teF9EZXZUb29sc19jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC8qIEdpdmUgcm9vbSBmb3IgZm9jdXMgb3V0bGluZXMgKi9cbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG59XG5cbi5teF9EZXZUb29sc19Sb29tU3RhdGVFeHBsb3Jlcl9xdWVyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2J1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2hhc1NwYWNlcyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9EZXZUb29sc19idXR0b24ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2VtcHR5U3RyaW5nIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X0RldlRvb2xzX2xhYmVsX3JpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9ib3R0b20ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuXG4ubXhfRGV2VG9vbHNfaW5wdXRSb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxuLm14X0RldlRvb2xzX2lucHV0TGFiZWxDZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG59XG5cbi5teF9EZXZUb29sc190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIG1heC13aWR0aDogNjg0cHg7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2V2ZW50VHlwZVN0YXRlS2V5R3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubXhfRGV2VG9vbHNfY29udGVudCAubXhfRmllbGRfaW5wdXQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MnB4O1xufVxuXG4ubXhfRGV2VG9vbHNfVmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHk7XG5cbiAgICBkbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgfVxuXG4gICAgZGQ6ZW1wdHkge1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIoZW1wdHkpXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICB9XG5cbiAgICBkdDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIjpcIjtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIC8qIENvbG91ciBjaG9pY2U6IGZpcnN0IG9uZSBhdXRvY29tcGxldGUgZ2F2ZSBtZS4gKi9cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICB3aWR0aDogMzYwcHg7IC8qIFwiZmVlbHMgcmlnaHRcIiBudW1iZXIgKi9cblxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkICsgdGQsXG4gICAgICAgIHRoICsgdGgge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICAvKiBDb2xvdXIgY2hvaWNlOiBmaXJzdCBvbmUgYXV0b2NvbXBsZXRlIGdhdmUgbWUuICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfbXV0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfaW1tdXRhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX2VkaXQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3Jlcl93YXJuaW5nIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGFsZXJ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbn1cblxuLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfc2V0dGluZyB7XG4gICAgLyogb3ZlcnJpZGUgZGVmYXVsdCBsaW5rIGJ1dHRvbiBjb2xvciAqL1xuICAgIC8qIGFzIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBiYWNrZ3JvdW5kIGhpZ2hsaWdodCAqL1xuICAgIC8qIHVzZWQgb24gZm9jdXMgKi9cbiAgICBjb2xvcjogJGxpbmtzICFpbXBvcnRhbnQ7XG59XG5cbi5teF9EZXZUb29sc19zdGlja3lfZXhwbG9yZXIge1xuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoI3VzZXJfaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgIH1cbiAgICAgICAgdGgjc3RpY2t5X2tleV9oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgICAgICB0aCNleHBpcmVzX2luX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTIpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItZm9jdXNlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQucmVtYWluaW5nX3RpbWVfY29sdW1uIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAoQykgMjAyNiBNZXRNZXRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogXCJIQVBBTkFcIiAoc3RheSkgaXMgdGhlIHByb21pbmVudCwgZGVmYXVsdCBvcHRpb247IFwiTkRJWU9cIiAobGVhdmUpIHN0YXlzIHNtYWxsIGFuZCBvdXRsaW5lZCDigJRcbiAgIGEgZGVsaWJlcmF0ZSByZXRlbnRpb24gbnVkZ2UsIG1hdGNoaW5nIHRoZSBndWVzdC1vbmJvYXJkaW5nIGJyYW5kIGNvbG9ycy4gKi9cbi5teF9FeGl0Um9vbUNvbmZpcm1EaWFsb2dfc3RheUJ1dHRvbi5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG59XG5cbi5teF9FeGl0Um9vbUNvbmZpcm1EaWFsb2dfZXhpdEJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWV0bWV0LWJyYW5kLXNlY29uZGFyeSk7XG4gICAgY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICBwYWRkaW5nOiA0cHggMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4cG9ydERpYWxvZyB7XG4gICAgLm14X0V4cG9ydERpYWxvZ19zdWJoZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgICYubXhfRXhwb3J0RGlhbG9nX0V4cG9ydGluZyB7XG4gICAgICAgIC5teF9FeHBvcnREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF9zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2ID4gZGl2IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkIGxhYmVsLFxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQ6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXhwb3J0RGlhbG9nX3Byb2dyZXNzIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDI1NnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgfVxufVxuXG4ubXhfRXhwb3J0RGlhbG9nX2F0dGFjaG1lbnRzLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZlZWRiYWNrRGlhbG9nIHtcbiAgICBociB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTJweCA1MnB4IDEycHggNjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICYgKyAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbl9taWNyb2NvcHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGF2YXRhci1pbml0aWFsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZlZWRiYWNrRGlhbG9nX3JhdGVBcHAge1xuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxcyxcbiAgICAgICAgICAgICAgICBib3JkZXIgMC41cztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgUm9iaW4gVG93bnNlbmQgPHJvYmluQHJvYmluLnRvd24+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb3J3YXJkRGlhbG9nIHtcbiAgICB3aWR0aDogNTIwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA4MHZoO1xuXG4gICAgPiBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgPiAubXhfRm9yd2FyZERpYWxvZ19wcmV2aWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMzAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBXaGVuIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBlbmNyeXB0ZWQgcm9vbXMsIEV2ZW50VGlsZSB3aWxsIGNvbXBsYWluICovXG4gICAgICAgIC8qIHRoYXQgb3VyIHByZXZpZXcgaXMgdW5lbmNyeXB0ZWQsIHdoaWNoIGRvZXNuJ3QgYWN0dWFsbHkgbWF0dGVyICovXG4gICAgICAgIC8qIFdlIGFsc28gaGlkZSBkb3dubG9hZCBsaW5rcyB0byBub3QgZW5jb3VyYWdlIHVzZXJzIHRvIHRyeSBpbnRlcmFjdGluZyAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbixcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uLFxuICAgICAgICAubXhfTUZpbGVCb2R5IFtkYXRhLXR5cGU9XCJkb3dubG9hZFwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBociB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICB9XG5cbiAgICA+IC5teF9Gb3J3YXJkTGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcblxuICAgICAgICAgICAgJjpub3QoOmZvY3VzLXdpdGhpbikgKyAubXhfRm9yd2FyZExpc3RfY29udGVudCB7XG4gICAgICAgICAgICAgICAgLyogSW5oaWJpdCB0aGUgc3R5bGluZyBpZiBmb2N1cyBpcyBub3Qgd2l0aGluIHRoZSBpbnB1dCB3aGljaCBoYW5kbGVzIGtleWJvYXJkIGFjY2Vzc2liaWxpdHkgKi9cbiAgICAgICAgICAgICAgICAtLW14X0ZvcndhcmRMaXN0X2VudHJ5X3NlbGVjdGVkQmdDb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3RfY29udGVudCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3Rfbm9SZXN1bHRzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yZXN1bHRzIHtcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yZXN1bHRzTGlzdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmLm14X0ZvcndhcmRMaXN0X2VudHJ5X2FjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW14X0ZvcndhcmRMaXN0X2VudHJ5X3NlbGVjdGVkQmdDb2xvciwgJHNwYWNlUGFuZWwtYmctY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yb29tQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X25hbWUsXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9kZXRhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X25hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X2RldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X3NlbmRCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6bm90KC5teF9Gb3J3YXJkTGlzdF9jYW5TZW5kKSAubXhfRm9yd2FyZExpc3Rfc2VuZExhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhpZGUgdGhlIFwiU2VuZFwiIGxhYmVsIHdoaWxlIHByZXNlcnZpbmcgYnV0dG9uIHNpemUgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYgPiBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkRGlhbG9nX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1hdGNoIHRoZSBmYWlsZWQgdG8gc2VuZCBpbmRpY2F0b3IncyBjb2xvciB3aXRoIHRoZSBkaXNhYmxlZCBidXR0b24gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cge1xuICAgIC5teF9HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nX3N1YmhlYWRpbmcge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmNvbWluZ1Nhc0RpYWxvZ19vcHBvbmVudFByb2ZpbGVfaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0luY29taW5nU2FzRGlhbG9nX29wcG9uZW50UHJvZmlsZSBoMiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZURpYWxvZ19mbGV4V3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX2FkZHJlc3NCYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAvKiBSaWdodCBtYXJnaW4gZm9yIHRoZSBkZXNpZ24uIFdlIGNvdWxkIGFwcGx5IHRoaXMgdG8gdGhlIHdob2xlIGRpYWxvZywgYnV0IHRoZW4gdGhlIHNjcm9sbGJhciAqL1xuICAgIC8qIGZvciB0aGUgdXNlciBzZWN0aW9uIGdldHMgd2VpcmQuICovXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDQ1cHggMCAwO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19lZGl0b3Ige1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfZ29CdXR0b24ge1xuICAgICAgICBtaW4td2lkdGg6IDg2cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gICAgICAgIGhlaWdodDogNDFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19zZWN0aW9uX3Nob3dNb3JlIHtcbiAgICAgICAgbWFyZ2luOiA3cHggMThweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3NlY3Rpb25faGlkZGVuX3N1Z2dlc3Rpb25zX2Rpc2NsYWltZXIge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICA+IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX2Zvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG5cbiAgICA+IGgzIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dC5teF9Db3B5YWJsZVRleHRfYm9yZGVyIHtcbiAgICAgICAgd2lkdGg6IHVuc2V0OyAvKiBmdWxsIHdpZHRoICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX290aGVyIHtcbiAgICAvKiBQcmV2ZW50IHRoZSBkaWFsb2cgZnJvbSBqdW1waW5nIGFyb3VuZCByYW5kb21seSB3aGVuIGVsZW1lbnRzIGNoYW5nZS4gKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaDIge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ191c2VyU2VjdGlvbnMge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfSW52aXRlUHJvZ3Jlc3NCb2R5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyIHtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA0OTZweDtcbiAgICAgICAgaGVpZ2h0OiA0MzBweDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgLm14X1RhYmJlZFZpZXcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWxDb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2FkZHJlc3NCYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ191c2VyU2VjdGlvbnMge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMCA0NXB4IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cblxuLm14X0ludml0ZURpYWxvZ19oZWxwVGV4dCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX2RpYWxQYWQge1xuICAgIHdpZHRoOiAyMjRweDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2RpYWxQYWRGaWVsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIGJvcmRlci1pbmxpbmU6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICAgICAgLyogUmVtb3ZlIGJvcmRlciBzZXBhcmF0b3IgYmV0d2VlbiBwb3N0Zml4IGFuZCBmaWVsZCBjb250ZW50ICovXG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EaWFsUGFkIHtcbiAgICAgICAgcm93LWdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgY29sdW1uLWdhcDogNDhweDtcbiAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJDb25zdWx0Q29ubmVjdCB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogVGhpcyB3YW50cyBhIGRyb3Agc2hhZG93IHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBkaWFsb2csIHNvIHVzZSBuZWdhdGl2ZSBtYXJnaW4gdG8gbWFrZSBpdCBmdWxsIHdpZHRoLFxuICAgICAqIHRoZW4gY29tcGVuc2F0ZSB3aXRoIHBhZGRpbmdcbiAgICAgKi9cbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBtYXJnaW4taW5saW5lOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTZ4KSk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlckNvbnN1bHRDb25uZWN0X3B1c2hSaWdodCB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cblxuLm14X0ludml0ZURpYWxvZ190aWxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi5teF9JbnZpdGVEaWFsb2dfdGlsZS0taW52aXRlckVycm9yIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBhdXRvOyAvKiBtYXgtY29udGVudCA9IGF2YXRhciB3aWR0aCAqL1xuICAgIH1cblxuICAgICoge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9hdmF0YXJTdGFjayB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2sge1xuICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBnYXA6IDJweCAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfbmFtZSxcbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja191c2VySWQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja191c2VySWQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvcldyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIC5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvciB7XG4gICAgPiBoNCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3JfZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yX3JlYXNvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktbWQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX2lkZW50aXR5U2VydmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfb25lVGhyZWVwaWQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZVByb2dyZXNzQm9keSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbGctcmVndWxhcik7XG5cbiAgICBoMSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0pvaW5SdWxlRHJvcGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfSm9pblJ1bGVEcm9wZG93bl9rbm9jazo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSm9pblJ1bGVEcm9wZG93bl9pY29uIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgIHRvcDogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWF2ZVNwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG5cbiAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2cge1xuICAgICAgICAgICAgd2lkdGg6IDQ0MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAgICAgICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2dfc2VjdGlvbl93YXJuaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEycHggMCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICB6LWluZGV4OiA0MDEwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTWFuYW4gU2FkYW5hIDxtYW5hbmNvZGVzLmRldkBnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dvdXREaWFsb2cge1xuICAgIHdpZHRoOiAyNnJlbTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZCB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9lbXBoYXNpc2VkQ29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nIHtcbiAgICB3aWR0aDogNDgwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA2MHZoO1xuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5X25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZW50cnlfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19zZWN0aW9uX3NwYWNlcyB7XG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbl9pbmZvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZm9vdGVyX2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG59XG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2dfc2Nyb2xsUGFuZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nX2Vycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZ19lZGl0cyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZW1vdGVTZW5kZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZGVsZXRpb24sXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfaW5zZXJ0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMHB4IDJweDtcbiAgICB9XG5cbiAgICAubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2RlbGV0aW9uIHtcbiAgICAgICAgY29sb3I6IHJnYigyNTUsIDc2LCA4NSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDc2LCA4NSwgMC4xKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuXG4gICAgLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9pbnNlcnRpb24ge1xuICAgICAgICBjb2xvcjogcmdiKDI2LCAxNjksIDEyMyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMTY5LCAxMjMsIDAuMSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC8qIEVtdWxhdGUgbXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0gKi9cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1zdGFydCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1lbmQpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgbGVmdDogLTEwcHg7XG4gICAgICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciBbZGF0YS1wcmVzZW50YXRpb249XCJsYWJlbFwiXSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01vZGFsV2lkZ2V0RGlhbG9nIHtcbiAgICAubXhfTW9kYWxXaWRnZXREaWFsb2dfd2FybmluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01vZGFsV2lkZ2V0RGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24gKyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNDUwcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsQ3JlYXRlRGlhbG9nIHtcbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19idXN5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG92ZXJsYXktYmFja2dyb3VuZDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyAvKiAxMXB4IGZyb20gdGhlIHRvcCB3aWxsIGNvbGxhcHNlLCBzbyB0aGlzIGNyZWF0ZXMgYSAxNnB4IGdhcCBiZXR3ZWVuIG9wdGlvbnMgKi9cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX3JlbW92ZU9wdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX2FkZE9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IC8qIGFyYml0cmFyeSB0byBjcmVhdGUgc2Nyb2xsYWJsZSBhcmVhIHVuZGVyIHRoZSBwb2xsICovXG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nIHtcbiAgICB3aWR0aDogNDE3cHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1JlbW92ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcG9ydFJvb21EaWFsb2csXG4ubXhfRGVjbGluZUFuZEJsb2NrSW52aXRlRGlhbG9nIHtcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICBXb3JrYXJvdW5kIHRvIGZpeCBsYWJlbHMgYXBwZWFyaW5nIHdpdGggdGhlIHdyb25nIGNvbG9yLlxuXG4gICAgICAubXhfRGlhbG9nIChpbiByZXMvY3NzL19jb21tb24ucGNzcykgcmVkZWZpbmVzIHRoZSBib2R5IGNvbG9yXG4gICAgICBhcyAkbGlnaHQtZmctY29sb3IgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIHByaW1hcnkgY29sb3IuXG5cbiAgICAgIFRoaXMgZm9yY2VzIHRoZSBjb2xvdXIgdG8gbWF0Y2ggdGhlIENvbXBvdW5kIHN0eWxlLCBidXRcbiAgICAgIGluIHRoZSBmdXR1cmUgdGhlIERpYWxvZ3Mgc2hvdWxkIG5vdCBmb3JjZSBhIGNvbG9yLlxuICAgICovXG4gICAgZm9ybSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9EZWNsaW5lQW5kQmxvY2tJbnZpdGVEaWFsb2cge1xuICAgIGRpdlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSA+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2V0dGluZ3NEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLW1zLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19CcmlkZ2VMaXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAgICAgJi5teF9Sb29tU2V0dGluZ3NEaWFsb2dfQnJpZGdlTGlzdF9saXN0SXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLyogYm9yZGVyLXN0eWxlIGFyb3VuZCBlYWNoIGJyaWRnZSBsaXN0IGl0ZW0gKi9cbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9pY29uIHtcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBzcGFuLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbm9Qcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBpbWcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29ycmVjdCBsZXR0ZXIgcGxhY2VtZW50ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDg1JTtcblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEgbGksXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9wcm90b2NvbE5hbWUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX3Byb3RvY29sTmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ193b3Jrc3BhY2VfY2hhbm5lbF9kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY2hhbm5lbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVXBncmFkZURpYWxvZyB7XG4gICAgcGFkZGluZy1yaWdodDogNzBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiAzOHZ3O1xuICAgIHdpZHRoOiAzOHZ3O1xuXG4gICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzcyB7XG4gICAgICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlcnZlck9mZmxpbmVEaWFsb2cge1xuICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4NXB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICBociB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMTZweDtcblxuICAgICAgICAgICAgbGk6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dCB7XG4gICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDExNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHNhbWUgYXMgYXZhdGFyICovXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1NXB4KTsgLyogMTE1cHggdGltZXN0YW1wIHdpZHRoICsgNDBweCByaWdodCBtYXJnaW4gKi9cblxuICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90aW1lbGluZV9oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3R4biB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90eG5fZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpOyAvKiAxMDBweCBpcyBhbiBhcmJpdHJhcnkgbWFyZ2luIGZvciB0aGUgYnV0dG9uICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VydmVyUGlja2VyRGlhbG9nIHtcbiAgICB3aWR0aDogNDY4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgPiBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBtYXJnaW46IDE2cHggMDtcblxuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDI0cHggMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDAgMTZweCA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlckRpYWxvZ19vdGhlckhvbWVzZXJ2ZXJSYWRpbyB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJEaWFsb2dfb3RoZXJIb21lc2VydmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG5cbiAgICAgICAgPiBpbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xuICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDE4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldEVtYWlsRGlhbG9nX2VtYWlsX2lucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgY29sb3I6ICRpbnB1dC1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfU2V0RW1haWxEaWFsb2dfZW1haWxfaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIE5vdCBhY3R1YWxseSBhIGNvbXBvbmVudCBidXQgdGhpbmdzIHNoYXJlZCBieSBzZXR0aW5ncyBjb21wb25lbnRzICovXG4ubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZyxcbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nLFxuLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgIHdpZHRoOiA5MHZ3O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgLyogc2V0IHRoZSBoZWlnaHQgdG9vIHNpbmNlIHRhYmJlZCB2aWV3IHNjcm9sbHMgaXRzZWxmLiAqL1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgdG9wOiA5MHB4O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3IC5teF9TZXR0aW5nc1RhYiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi13aWR0aDogNTgwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC8qIFB1dCBzb21lIHBhZGRpbmcgb24gdGhlIGJvdHRvbSB0byBhdm9pZCB0aGUgc2V0dGluZ3MgdGFiIGZyb20gKi9cbiAgICAgICAgLyogY29sbGlkaW5nIGhhcnNobHkgd2l0aCB0aGUgZGlhbG9nIHdoZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0RpYWxvZ190YWJMYWJlbHNBbGVydDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNHB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi8qIE9uIG5hcnJvdyB2aWV3cG9ydHMsIHRoZSB0YWIgbGFiZWxzIGFyZSBoaWRkZW4sIHNvIHdlIG5lZWQgdG8gc2hpZnQgdGhlIGluZGljYXRvciBzbyBpdCBpc24ndCBvdmVyIHRoZSB0YWIgaWNvbi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgICAgICAubXhfU2V0dGluZ3NEaWFsb2dfdGFiTGFiZWxzQWxlcnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaGFyZURpYWxvZyB7XG4gICAgLyogVmFsdWUgZnJvbSBmaWdtYSBkZXNpZ24gKi9cbiAgICB3aWR0aDogNDE2cHg7XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgLyogT3ZlcnJpZGUgZGlhbG9nIGhlYWRlciBwYWRkaW5nIHRvIGFibGUgdG8gY2VudGVyIGl0ICovXG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICB9XG5cbiAgICAubXhfU2hhcmVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfc29jaWFsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nIC5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nX2hlYWRlclJvdyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4ubXhfU2xhc2hDb21tYW5kSGVscERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzRweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgaGVpZ2h0OiA0MDBweDtcblxuICAgID4gaDQge1xuICAgICAgICBtYXJnaW46IC0xMnB4IDAgMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlldyB7XG4gICAgICAgIHRvcDogODBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NUYWIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9TcGFjZVNldHRpbmdzX2Vycm9yVGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1RhYl9zZWN0aW9uIHtcbiAgICAgICAgLm14X1NldHRpbmdzVGFiX3NlY3Rpb25fY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDY0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBtYXJnaW46IDdweCAxOHB4O1xuXG4gICAgICAgICAgICAmLm14X1NldHRpbmdzVGFiX3Nob3dBZHZhbmNlZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxOHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BvdGxpZ2h0RGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgLyogRGlzYWJsZSB0aGUgZ2xhc3MgYm9yZGVyIGFzIHRoaXMgZGlhbG9nIHdhc24ndCBkZXNpZ25lZCB3aXRoIGl0IGluIG1pbmQgKi9cbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIC8qICFpbXBvcnRhbnQgYmVjYXVzZSBpdCdzIG92ZXJyaWRpbmcgY29tcG91bmQgICovXG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA2MCUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogaW5pdGlhbDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb250YWluOiB1bnNldDsgLyogbmVlZGVkIGZvciAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHRvIG5vdCBiZSBjdWxsZWQgKi9cblxuICAgICAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRvcDogLTYwcHg7IC8qIHJlbGF0aXZlIHRvIHRoZSB0b3Agb2YgdGhlIG1vZGFsICovXG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGtiZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TcG90bGlnaHREaWFsb2cge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X1Nwb3RsaWdodERpYWxvZ19zZWFyY2hCb3gge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzeXN0ZW07XG5cbiAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTF4KSAzN3B4O1xuXG4gICAgICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlci0tY2xvc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zm9jdXMtd2l0aGluKSArICNteF9TcG90bGlnaHREaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAvKiBJbmhpYml0IHRoZSBzdHlsaW5nIGlmIGZvY3VzIGlzIG5vdCB3aXRoaW4gdGhlIGlucHV0IHdoaWNoIGhhbmRsZXMga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSAqL1xuICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGVudGVyIHByb21wdCBhcyBpbiB0aGlzIHN0YXRlIHByZXNzaW5nIGVudGVyIHdvdWxkIG5vdCBhY3R1YXRlIHRoYXQgb3B0aW9uICovXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2VudGVyUHJvbXB0IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICA+IGg0LFxuICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIgPiBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvciwgJHF1aW5hcnktY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudGx5Vmlld2VkIHtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXB4OyAvKiBvY2NsdWRlIHRoZSAxcHggdmlzaWJsZSBvZiB0aGUgdmVyeSBuZXh0IHRpbGUgdG8gcHJldmVudCBpdCBsb29raW5nIGJyb2tlbiAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1OHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNThweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDU4cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA5cHggdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogbWFpbnRhaW4gY2VudGVyaW5nICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX290aGVyU2VhcmNoZXMsXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfaGlkZGVuUmVzdWx0cyB7XG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogJHN5c3RlbTtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tZW5kQWRvcm5tZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbXVsdGlsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX21ldGFzcGFjZVJlc3VsdCxcbiAgICAgICAgICAgICAgICA+IC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyLFxuICAgICAgICAgICAgICAgID4gLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21OYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbm90aWZpY2F0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW5vdGlmaWNhdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKiAkc2Vjb25kYXJ5LWNvbnRlbnQvJHRlcnRpYXJ5LWNvbnRlbnQgZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRyYXN0IGFnYWluc3RcbiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGhvdmVyIGJhY2tncm91bmQgKCRxdWluYXJ5LWNvbnRlbnQpIHRvIG1lZXQgV0NBRyBBQSAoNC41OjEpLiAqL1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19pbnZpdGVMaW5rLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2NyZWF0ZVJvb20ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IHZhcigtLWNwZC1zcGFjZS0yeCkgM3B4IHZhcigtLWNwZC1zcGFjZS03eCk7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzIHtcbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzX21lc3NhZ2VTZWFyY2hUZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9kZXRhaWxzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzID4gaDQgPiAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19tZXRhc3BhY2VSZXN1bHQgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBUbyBhdm9pZCB2aXN1YWwgZ2xpdGNoaW5nIG9mIHR3byBtb2RhbHMgc3RhY2tpbmcgYnJpZWZseSwgd2UgY3VzdG9taXNlIHRoZVxuICogdGVybXMgZGlhbG9nIHNpemluZyB3aGVuIGl0IHdpbGwgYXBwZWFyIGZvciB0aGUgaW50ZWdyYXRpb24gbWFuYWdlciBzbyB0aGF0XG4gKiBpdCBnZXRzIHRoZSBzYW1lIGJhc2ljIHNpemUgYXMgdGhlIElNJ3Mgb3duIG1vZGFsLlxuICovXG4ubXhfVGVybXNEaWFsb2dfZm9ySW50ZWdyYXRpb25NYW5hZ2VyIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNzAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5teF9UZXJtc0RpYWxvZ190ZXJtc1RhYmxlSGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubXhfVGVybXNEaWFsb2dfdGVybXNUYWJsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfVGVybXNEaWFsb2dfc2VydmljZSxcbi5teF9UZXJtc0RpYWxvZ19zdW1tYXJ5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1VucGluQWxsRGlhbG9nIHtcbiAgICAvKiAzOTYgaXMgY29taW5nIGZyb20gZmlnbWEgYW5kIHdlIHJlbW92ZSB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZ3Mgb2YgdGhlIGRpYWxvZyAqL1xuICAgIHdpZHRoOiBjYWxjKDM5NnB4IC0gKHZhcigtLWNwZC1zcGFjZS0xMHgpICogMikpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1VucGluQWxsRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgaGVhZGluZyBzdHlsZSAqL1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9VbnBpbkFsbERpYWxvZ19idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ZpbGVJY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X1VwbG9hZENvbmZpcm1EaWFsb2dfcHJldmlld091dGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX3ByZXZpZXdJbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ltYWdlUHJldmlldyB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZGlhbG9nLWNsb3NlLWZnLWNvbG9yO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0RpYWxvZ190b2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X1VzZXJTZXR0aW5nc0RpYWxvZ190aXRsZSB7XG4gICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBkaWFsb2cgZm9udCBzdHlsZSAqL1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtcmVndWxhcikgIWltcG9ydGFudDtcblxuICAgIC5teF9Vc2VyU2V0dGluZ3NEaWFsb2dfdGl0bGVfc3Ryb25nIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmeUVNYWlsRGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdG9wOiAzMDBweDtcblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KSB2YXIoLS1jcGQtc3BhY2UtNngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAgKi9cbiAgICAgICAgd2lkdGg6IDQ4NXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZ5RU1haWxEaWFsb2dfdGV4dC1saWdodCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQXV0aEJvZHlfZGlkLW5vdC1yZWNlaXZlIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nIHtcbiAgICAudGV4dC1tdXRlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2dfY2FwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OyAvKiBkb3VibGUgbm9ybWFsICovXG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCRmb250LTE0cHggKyA3cHggKyA3cHgpOyAvKiA3cHggdG9wICYgYm90dG9tIHBhZGRpbmcgKi9cbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuXG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgLyogZG93bnNpemUgdGhlIHN3aXRjaCArIGJhbGwgKi9cbiAgICAgICAgICAgIHdpZHRoOiAkZm9udC0zMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuXG4gICAgICAgICAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gJGZvbnQtMTVweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiA2MDBweDsgLyogQ29uc2lzdGVuY3kgd2l0aCBJbnZpdGVEaWFsb2cgKi9cbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19oZWFkZXJDb250YWluZXIge1xuICAgIC8qIENlbnRyZSB0aGUgUGFnZUhlYWRlciBjb21wb25lbnQgaG9yaXpvbnRhbGx5ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC8qIFN0eWxpbmcgZm9yIHRoZSByZWd1bGFyIHRleHQgaW5zaWRlIHRoZSBoZWFkZXIgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXJlZ3VsYXIpO1xuXG4gICAgLyogU3BhY2UgYmVmb3JlIHRoZSBsaXN0ICovXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfdXNlckxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLyogRmlsbCBhdmFpbGFibGUgdmVydGljYWwgc3BhY2UsIGJ1dCBkb24ndCBhbGxvdyBpdCB0byBzaHJpbmsgdG8gbGVzcyB0aGFuIDYwcHggKGFib3V0IHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgdGlsZSkgKi9cbiAgICBmbGV4OiAxIDAgNjBweDtcblxuICAgIC8qIFJlbW92ZSBicm93c2VyIGRlZmF1bHQgdWwgcGFkZGluZy9tYXJnaW4gKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgID4gYnV0dG9uIHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOCwgMjAxOSAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cge1xuICAgICYubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICAvKiBvdmVycmlkZSBzb21lIHN0eWxlcyB0aGF0IHdlIGRvbid0IG5lZWQgKi9cbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgICAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUVudHJ5IHtcbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICogRnJvbSBmaWdtYTogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9ab2RCTHRHbkttUlRHSm81U0dMbkgzL0VSLTEzNy0tRXhjbHVkaW5nLUluc2VjdXJlLURldmljZXM/bm9kZS1pZD0xMDItNDM3MjkmdD1RbWV3RU5VZDdmNlRtdzlVLTFcbiAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0NDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5RmVlZGJhY2sge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFzay1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUZlZWRiYWNrLS1pbnZhbGlkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmRfYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yMHgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cge1xuICAgIC8qIFdoeSB5b3UgYXNrPyBCZWNhdXNlIENvbXBsZXRlU2VjdXJpdHlCb2R5IGlzIDYwMHB4IHNvIHRoaXMgaXMgdGhlIHdpZHRoICovXG4gICAgLyogd2UgZW5kIHVwIHdoZW4gaW4gdGhlcmUsIGJ1dCB3aGVuIGluIG91ciBvd24gZGlhbG9nIHdlIHNldCBvdXIgb3duIHdpZHRoICovXG4gICAgLyogc28gbmVlZCB0byBmaXggaXQgdG8gc29tZXRoaW5nIHNlbnNpYmxlIGFzIG90aGVyd2lzZSB3ZSdkIGVuZCB1cCBlaXRoZXIgKi9cbiAgICAvKiByZWFsbHkgd2lkZSBvciByZWFsbHkgbmFycm93IGRlcGVuZGluZyBvbiB0aGUgcGhhc2UuIEkgYmV0IHlvdSB3aXNoIHlvdSAqL1xuICAgIC8qIG5ldmVyIGFza2VkLiAqL1xuICAgIHdpZHRoOiA1NjBweDtcblxuICAgIGRldGFpbHMgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW46IDFlbSAwOyAvKiBlbXVsYXRlIHBhcmFncmFwaCBzcGFjaW5nIGJlY2F1c2Ugd2UgY2FuJ3QgcHV0IHRoaXMgYnV0dG9uIGluIGEgcGFyYWdyYXBoIGR1ZSB0byBIVE1MIHJ1bGVzICovXG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC8qIFRPRE86IENvbnNpZGVyIHNldHRpbmcgdGhpcyBmb3IgYWxsIGRpYWxvZyB0aXRsZXMuICovXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nIHtcbiAgICAvKiBXaHkgeW91IGFzaz8gQmVjYXVzZSBDb21wbGV0ZVNlY3VyaXR5Qm9keSBpcyA2MDBweCBzbyB0aGlzIGlzIHRoZSB3aWR0aCAqL1xuICAgIC8qIHdlIGVuZCB1cCB3aGVuIGluIHRoZXJlLCBidXQgd2hlbiBpbiBvdXIgb3duIGRpYWxvZyB3ZSBzZXQgb3VyIG93biB3aWR0aCAqL1xuICAgIC8qIHNvIG5lZWQgdG8gZml4IGl0IHRvIHNvbWV0aGluZyBzZW5zaWJsZSBhcyBvdGhlcndpc2Ugd2UnZCBlbmQgdXAgZWl0aGVyICovXG4gICAgLyogcmVhbGx5IHdpZGUgb3IgcmVhbGx5IG5hcnJvdyBkZXBlbmRpbmcgb24gdGhlIHBoYXNlLiBJIGJldCB5b3Ugd2lzaCB5b3UgKi9cbiAgICAvKiBuZXZlciBhc2tlZC4gKi9cbiAgICB3aWR0aDogNTYwcHg7XG5cbiAgICAmLm14X1N1Y2Nlc3NEaWFsb2cge1xuICAgICAgICBwYWRkaW5nOiA1NnB4OyAvKiA4MHB4IGZyb20gZGVzaWduIC0gMjRweCB3cmFwcGVyIHBhZGRpbmcgKi9cblxuICAgICAgICAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICBkZXRhaWxzIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDsgLyogZW11bGF0ZSBwYXJhZ3JhcGggc3BhY2luZyBiZWNhdXNlIHdlIGNhbid0IHB1dCB0aGlzIGJ1dHRvbiBpbiBhIHBhcmFncmFwaCBkdWUgdG8gSFRNTCBydWxlcyAqL1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLyogVE9ETzogQ29uc2lkZXIgc2V0dGluZyB0aGlzIGZvciBhbGwgZGlhbG9nIHRpdGxlcy4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX2NlbnRlcmVkVGl0bGUsXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jZW50ZXJlZEJvZHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogRklYTUU6IHBsaW50aCBjb2xvdXIgaW4gbmV3IHRoZW1lKHMpLiBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50OyAqL1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgJi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5UHJpbWFyeWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDExcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX29wdGlvblRpdGxlIHtcbiAgICBjb2xvcjogJGRpYWxvZy10aXRsZS1mZy1jb2xvcjtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9GaWVsZC5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VGaWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlTWF0Y2gge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXkge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGluZm8tcGxpbnRoLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICB3b3JkLXNwYWNpbmc6IDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgY29kZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcmVtO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUJ1dHRvbnNfY29weUJ0biB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY29udGludWVTcGlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzM3B4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jb250aW51ZVNwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4ubXhfS2V5QmFja3VwRmFpbGVkRGlhbG9nX3RpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDM2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTggTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfa2V5U3RhdHVzIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgIC8qIEZJWE1FOiBwbGludGggY29sb3VyIGluIG5ldyB0aGVtZShzKS4gYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDsgKi9cbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQsXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19yZWNvdmVyeUtleUlucHV0IHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfY29udGVudCA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtaW4taGVpZ2h0OiAxMTBweDsgLyogRW1waXJpY2FsbHkgbWVhc3VyZWQgKi9cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9OZXR3b3JrRHJvcGRvd25fd3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiB7XG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIHNwYW46bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAmICsgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX3JlbW92ZVNlcnZlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcGFkZGluZzogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9OZXR3b3JrRHJvcGRvd25fZGlhbG9nIC5teF9EaWFsb2cge1xuICAgIHdpZHRoOiA0NXZ3O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6d2hlcmUoYnV0dG9uKSB7XG4gICAgICAgIC8qIENsZWFyIGRlZmF1bHQgYnV0dG9uIHN0eWxpbmcgKi9cbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19hY2NlbnQsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgLyogb3ZlcnJpZGUgZGVmYXVsdCA8YnV0dG9uIC8+IHN0eWxlcyAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDsgLyogcHJldmVudCBidXR0b24gdGV4dCBpbiBDaGluZXNlL0phcGFuZXNlL0tvcmVhbiAoQ0pLKSBmcm9tIGJlaW5nIGNvbGxhcHNlZCAqL1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb24sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5LFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2RhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1jcml0aWNhbC1zdWJ0bGUpO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmssXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9pbmxpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2NvbnRlbnRfaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3B5YWJsZVRleHQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICYubXhfQ29weWFibGVUZXh0X2JvcmRlciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICRsaWdodC1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8qIElmIHRoZSBjb3B5IGJ1dHRvbiBpcyB1c2VkIHdpdGhpbiBhIHNjcm9sbGFibGUgZGl2LCBtYWtlIGl0IHN0aWNrIHRvIHRoZSByaWdodCB3aGlsZSBzY3JvbGxpbmcgKi9cbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3RhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICBvdmVyZmxvdzogb3ZlcmxheTtcblxuICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAmLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl9zb3VyY2VfdGh1bWJuYWlsX3NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICM4ZDk3YTU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX2Rpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi8qIERpc2FibGUgZHJvcGRvd24gaGlnaGxpZ2h0IG9uIGZvY3VzICovXG4ubXhfRHJvcGRvd25faW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbjpmb2N1cyB7XG4gICAgZmlsdGVyOiBub25lO1xufVxuXG5zdmcubXhfRHJvcGRvd25fYXJyb3cge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zNXB4O1xuICAgIC8qIE92ZXJ3cml0ZXMgdGhlIGRlZmF1bHQgcGFkZGluZyBmb3IgYW55IGxpIGVsZW1lbnRzICovXG4gICAgcGFkZGluZzogMCA4cHg7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gZGl2IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gaW1nLFxuLm14X0Ryb3Bkb3duX29wdGlvbiAubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG59XG5cbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbixcbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbjpmb2N1cyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLyogWFhYOiBoYWNrIHRvIHByZXZlbnQgdGV4dCBib3ggYmVpbmcgdG9vIGJpZyBhbmQgcHVzaGluZyAqL1xuICAgIC8qIGl0cyBwYXJlbnQgb3V0IC8gb3ZlcmxhcHBpbmcgdGhlIGRyb3Bkb3duIGFycm93LiBPbmx5IHJlYWxseSAqL1xuICAgIC8qIHdvcmtzIGluIHRoZSBDb3VudHJ5IGRyb3Bkb3duLiAqL1xuICAgIHdpZHRoOiA2MCU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFweDtcbiAgICByaWdodDogLTFweDtcbiAgICB0b3A6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWFsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMzVweDtcbn1cblxudWwubXhfRHJvcGRvd25fbWVudSBsaS5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG59XG5cbi5teF9Ecm9wZG93bl9zZWFyY2hQcm9tcHQge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTctMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VkaXRhYmxlSXRlbUxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0VkaXRhYmxlSXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZGVsZXRlIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBvcmRlcjogMztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXNrLXNpemU6IDEwMCU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZW1haWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fcHJvbXB0VGV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG9yZGVyOiAyO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2NvbmZpcm1CdG4ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2l0ZW0ge1xuICAgIGZsZXg6IGF1dG8gMSAwO1xuICAgIG9yZGVyOiAxO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyOHB4KTsgLyogbGVhdmUgc3BhY2UgZm9yIHRoZSByZW1vdmUgYnV0dG9uICovXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtTGlzdF9sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Vycm9yQm91bmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9FcnJvckJvdW5kYXJ5X2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXh0ZXJuYWxMaW5rIHtcbiAgICBjb2xvcjogJGxpbmtzO1xufVxuXG4ubXhfRXh0ZXJuYWxMaW5rX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJGZvbnQtMTFweDtcbiAgICBoZWlnaHQ6ICRmb250LTExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZhY2VQaWxlX21vcmUge1xuICAgIC8qIE5lZWRlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBvbiB0aGUgZmFjZSBwaWxlICovXG4gICAgLS1jcGQtYXZhdGFyLXNpemU6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgei1pbmRleDogMTtcbiAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfRmFjZVBpbGVfc3VtbWFyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogVE9ETzogQ29uc2lkZXIgdW5pZnlpbmcgd2l0aCBnZW5lcmFsIGlucHV0IHN0eWxlcyBpbiBfbGlnaHQucGNzcyAqL1xuXG4ubXhfRmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG59XG5cbi5teF9GaWVsZF9wcmVmaXgge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRmllbGQgaW5wdXQsXG4ubXhfRmllbGQgc2VsZWN0LFxuLm14X0ZpZWxkIHRleHRhcmVhIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiBFdmVuIHdpdGhvdXQgYSBib3JkZXIgaGVyZSwgd2Ugc3RpbGwgbmVlZCB0aGlzIGF2b2lkIG92ZXJsYXBwaW5nIHRoZSByb3VuZGVkICovXG4gICAgLyogY29ybmVycyBvbiB0aGUgZmllbGQgYWJvdmUuICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDhweCA5cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X0ZpZWxkX3NlbGVjdF9jaGV2cm9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9GaWVsZDpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpmb2N1cyxcbi5teF9GaWVsZCBzZWxlY3Q6Zm9jdXMsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDBzO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OnBsYWNlaG9sZGVyLXNob3duOmZvY3VzOjpwbGFjZWhvbGRlcixcbi5teF9GaWVsZCB0ZXh0YXJlYTpwbGFjZWhvbGRlci1zaG93bjpmb2N1czo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQubXhfRmllbGRfcGxhY2Vob2xkZXJJc0hpbnQgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDAuMXM7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkIGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBmb250LXNpemUgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIG1hcmdpbjogN3B4IDhweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIEFsbG93IGNsaWNrcyB0byBmYWxsIHRocm91Z2ggdG8gdGhlIGlucHV0ICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjBweCk7IC8qIDEwMCUgb2YgcGFyZW50IG1pbnVzIG1hcmdpbiBhbmQgcGFkZGluZyAqL1xufVxuXG4ubXhfRmllbGRfbGFiZWxBbHdheXNUb3BMZWZ0IGxhYmVsLFxuLm14X0ZpZWxkIHNlbGVjdCArIGxhYmVsIC8qIEFsd2F5cyBzaG93IGEgc2VsZWN0J3MgbGFiZWwgb24gdG9wIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlIHZhbHVlICovLFxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgKyBsYWJlbCxcbi5teF9GaWVsZCB0ZXh0YXJlYTpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGZvbnQtc2l6ZSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCAwcztcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xM3B4KTtcbiAgICBwYWRkaW5nOiAwIDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgc2VsZWN0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCB7XG4gICAgY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4ubXhfRmllbGQgc2VsZWN0OmRpc2FibGVkLFxuLm14X0ZpZWxkIHNlbGVjdDpkaXNhYmxlZCArIGxhYmVsLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQgKyBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkX3ZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfRmllbGQgbGFiZWwsXG4gICAgJi5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG59XG5cbi5teF9GaWVsZF9pbnZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgJi5teF9GaWVsZCBsYWJlbCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG4vKiBDdXN0b21pc2Ugb3RoZXIgY29tcG9uZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgYSBGaWVsZCAqL1xuXG4ubXhfRmllbGQgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIC5teF9Db3VudHJ5RHJvcGRvd24ge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zMHB4OyAvKiBUT0RPOiBVc2UgYSB2YXJpYWJsZSAqL1xuXG4gICAgICAgIC5teF9JUkNMYXlvdXQgJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB7XG4gICAgICAgIC8qIFdlIHJldXNlIGEgdGl0bGUgY2FzZWQgdHJhbnNsYXRpb24gKi9cbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZTogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgLS1tYXhXaWR0aDogNzAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1hdmF0YXJTaXplKSArIHZhcigtLWd1dHRlclNpemUpKTtcblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMDtcblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA5OyAvKiBUT0RPOiBSZW1vdmUgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bzsgLyogcmVkdWNlIGNsaWNrYWJsZSBhcmVhICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpOyAvKiBhcyB0aGUgcGFyZW50IGhhcyB6ZXJvIG1hcmdpbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlkZWFsbHkgd2UnZCB1c2UgZGlzcGxheT1jb250ZW50cyBoZXJlIGZvciB0aGUgbGF5b3V0IHRvIGFsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlICpFTFMgYnV0ICovXG4gICAgICAgIC8qIHRoYXQgYnJlYWtzIFNjcm9sbFBhbmVsJ3MgcmVsaWFuY2UgdXBvbiBvZmZzZXRUb3Agc28gd2UgaGF2ZSB0byBoYXZlIGEgYml0IG1vcmUgZmluZXNzZS4gKi9cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCAmIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RleHR1YWxFdmVudC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zdW1tYXJ5IHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBNYWtlIGFsbCBzdGF0ZSBldmVudHMgb25lIG9yZGVyIHNtYWxsZXIgdGhhbiB0aGUgb3RoZXIgZXZlbnRzICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5teF9UZXh0dWFsRXZlbnQubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcblxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJGJ1dHRvbi1zaXplOiAzMnB4O1xuJGJ1dHRvbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbjpyb290IHtcbiAgICAtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0OiA2OHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2ltYWdlX3dyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X0ltYWdlVmlld19pbWFnZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwcztcbiAgICB9XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UgMHM7XG4gICAgfVxufVxuXG4ubXhfSW1hZ2VWaWV3X3BhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHZhcigtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzAwbXM7XG59XG5cbi5teF9JbWFnZVZpZXdfaW5mb193cmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1iYXNpczogMDtcbn1cblxuLm14X0ltYWdlVmlld19pbmZvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2luZm9fc2VuZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X0ltYWdlVmlld190aXRsZSB7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfSW1hZ2VWaWV3X3Rvb2xiYXIge1xuICAgIC0taWNvbi1zaXplOiAyNHB4O1xuXG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6ICRidXR0b24tZ2FwO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbiB7XG4gICAgcGFkZGluZzogY2FsYygoJGJ1dHRvbi1zaXplIC0gdmFyKC0taWNvbi1zaXplKSkgLyAyKTtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbWFnZVZpZXdfYnV0dG9uX21vcmUge1xuICAgIC0taWNvbi1zaXplOiAyOHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbl9jbG9zZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMjEyNjJjOyAvKiBzYW1lIG9uIGFsbCB0aGVtZXMgKi9cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmZvVG9vbHRpcF9pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbmZvVG9vbHRpcF9pY29uOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE3LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmxpbmVTcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW46IDBweCA2cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAzOTk5O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDUwMDE7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAyNHB4IDhweCByZ2IoMTcgMTcgMjYgLyA0JSksXG4gICAgICAgIDAgOHB4IDMycHggcmdiKDE3IDE3IDI2IC8gNCUpO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl90b3Age1xuICAgIHRvcDogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl9sZWZ0IHtcbiAgICBsZWZ0OiAxMHB4OyAvKiA4cHggY2hldnJvbiArIDJweCBzcGFjaW5nICovXG59XG5cbi5teF9JbnRlcmFjdGl2ZVRvb2x0aXAubXhfSW50ZXJhY3RpdmVUb29sdGlwX3dpdGhDaGV2cm9uX3JpZ2h0IHtcbiAgICByaWdodDogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl9ib3R0b20ge1xuICAgIGJvdHRvbTogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwX2NoZXZyb25fdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA4cHgpO1xuICAgIHRvcDogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEFkYXB0ZWQgZnJvbSBodHRwczovL2NvZHlob3VzZS5jby9ibG9nL3Bvc3QvY3NzLXJvdW5kZWQtdHJpYW5nbGVzLXdpdGgtY2xpcC1wYXRoICovXG4vKiBieSBTZWJhc3RpYW5vIEd1ZXJyaWVybyAoQGd1ZXJyaWVyb19zZSkgKi9cbkBzdXBwb3J0cyAoY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpKSB7XG4gICAgLm14X0ludGVyYWN0aXZlVG9vbHRpcF9jaGV2cm9uX3RvcCB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAzcHg7XG4gICAgICAgIHRvcDogY2FsYygtOHB4IC8gMS40MTQpOyAvKiBzcXJ0KDIpIGJlY2F1c2Ugb2Ygcm90YXRpb24gKi9cbiAgICB9XG59XG5cbi5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfY2hldnJvbl9ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDhweCk7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLyogQWRhcHRlZCBmcm9tIGh0dHBzOi8vY29keWhvdXNlLmNvL2Jsb2cvcG9zdC9jc3Mtcm91bmRlZC10cmlhbmdsZXMtd2l0aC1jbGlwLXBhdGggKi9cbi8qIGJ5IFNlYmFzdGlhbm8gR3VlcnJpZXJvIChAZ3VlcnJpZXJvX3NlKSAqL1xuQHN1cHBvcnRzIChjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSkpIHtcbiAgICAubXhfSW50ZXJhY3RpdmVUb29sdGlwX2NoZXZyb25fYm90dG9tIHtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDNweDtcbiAgICAgICAgYm90dG9tOiBjYWxjKC04cHggLyAxLjQxNCk7IC8qIHNxcnQoMikgYmVjYXVzZSBvZiByb3RhdGlvbiAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVSZWFzb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZVJlYXNvbl92aWV3IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVSZWFzb25faGlkZGVuIHtcbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3ZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xhYmVsbGVkQ2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFuZ3VhZ2VEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX29wdGlvbiA+IGRpdiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2luZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICAgICAgcmlnaHQ6IC02cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfY2FtZXJhSWNvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWxsIHtcbiAgICBwYWRkaW5nOiAkZm9udC0xcHggMC40ZW0gJGZvbnQtMXB4IDAuNGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgID4gKiB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYubXhfVXNlclBpbGxfbWUsXG4gICAgJi5teF9BdFJvb21QaWxsLFxuICAgICYubXhfS2V5d29yZFBpbGwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtaG92ZXItYmctY29sb3IgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLXByZXNzLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgJi5teF9Vc2VyUGlsbF9tZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAgICAgICAgIC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLWhvdmVyZWRcbiAgICAgICAgKSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSB8IHNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICB9XG5cbiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICYubXhfQXRSb29tUGlsbDpob3ZlcixcbiAgICAmLm14X0tleXdvcmRQaWxsOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgIGN1cnNvcjogdW5zZXQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLFxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuM2VtOyAvKiBPdGhlcndpc2UgdGhlIGdhcCBpcyB0b28gbGFyZ2UgKi9cbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuMmVtO1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3RleHQge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAvKiBQaWxscyB3aXRoIHVzZXIgc3RhdHVzIGFyZSBmbGV4IHNvIHRoZSBzdGF0dXMgZW1vamkgc3RheXMgdmlzaWJsZSBpZiB0aGVcbiAgICAgICBkaXNwbGF5IG5hbWUgZ2V0cyB0cnVuY2F0ZWQuICovXG4gICAgJi5teF9QaWxsX3dpdGhTdGF0dXMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhJiB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAubXhfUGlsbF9MaW5rSWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWV4dGVybmFsO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgIC5teF9QaWxsX1VzZXJJY29uIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICB9XG5cbiAgICAmLm14X1NwYWNlUGlsbCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bvd2VyU2VsZWN0b3Ige1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG93ZXJTZWxlY3RvciAubXhfRmllbGQgc2VsZWN0LFxuLm14X1Bvd2VyU2VsZWN0b3IgLm14X0ZpZWxkIGlucHV0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxucHJvZ3Jlc3MubXhfUHJvZ3Jlc3NCYXIge1xuICAgIGhlaWdodDogNnB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyA2cHg7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyIHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQmdDb2xvdXIgJHByb2dyZXNzYmFyLWJnLWNvbG9yO1xuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAxcztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUVJDb2RlIHtcbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTggVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcGx5Q2hhaW4ge1xuICAgIG1hcmdpbjogMDsgLyogUmVzZXQgZGVmYXVsdCBibG9ja3F1b3RlIG1hcmdpbiAqL1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXVzZXJuYW1lLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAubXhfUmVwbHlDaGFpbl9zaG93IHtcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogRW5mb3JjZSAnSW4gcmVwbHkgdG8nIHRvIGJlIGEgc2luZ2xlIGxpbmUgKi9cbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlIDAuMTVzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1yZWd1bGFyKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3IxIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQxLWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjIge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDItY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yMyB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3I0IHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQ0LWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjUge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yNiB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc2l6ZUhhbmRsZSB7XG4gICAgY3Vyc29yOiByb3ctcmVzaXplO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgICYubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsIHtcbiAgICAgICAgbWFyZ2luOiAwIC01cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfUmVzaXplSGFuZGxlLS12ZXJ0aWNhbCB7XG4gICAgICAgIG1hcmdpbjogLTVweCAwO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIFhYWDogYmxldXJnaCwgd2hhdCBpcyB0aGlzPyBUaGVzZSBjbGFzc2VzIHRvdGFsbHkgYnJlYWsgdGhlIGNvbXBvbmVudCAqL1xuLyogbmFtaW5nIHNjaGVtZTsgaXQncyBjb21wbGV0ZWx5IHVuY2xlYXIgd2hlcmUgb3IgaG93IHRoZXkncmUgYmVpbmcgdXNlZCAqL1xuLyogLS1NYXR0aGV3ICovXG5cbi5teF9NYXJrZG93bl9CT0xEIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X01hcmtkb3duX0lUQUxJQyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIC8qXG4gICAgLy8gaW50ZXJlc3RpbmdseSwgKm5vdCogdXNpbmcgdGhlIGV4cGxpY2l0IGl0YWxpYyBmb250XG4gICAgLy8gdmFyaWFudCBzZWVtcyB5aWVsZCBiZXR0ZXIgcmVzdWx0cy5cblxuICAgIC8vIGNvbXBlbnNhdGUgZm9yIE51bml0byBpdGFsaWNzIGJlaW5nIHRlcnJpYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9mb250cy9pc3N1ZXMvMTcyXG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTRkZWcpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAqL1xufVxuXG4ubXhfTWFya2Rvd25fQ09ERSB7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJ0ZS1jb2RlLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLm14X01hcmtkb3duX0hSIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkcnRlLWJnLWNvbG9yO1xufVxuXG4ubXhfTWFya2Rvd25fU1RSSUtFVEhST1VHSCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi5teF9FbW9qaSB7XG4gICAgLyogU2hvdWxkIGJlIDEuOHJlbSBmb3Igb3VyIGRlZmF1bHQgbWVzc2FnZSBib2RpZXMsIGFuZCBzY2FsZSB3aXRoIHRoZSAqL1xuICAgIC8qIHN1cnJvdW5kaW5nIHRleHQgKi9cbiAgICBmb250LXNpemU6IG1heCgkZm9udC0xOHB4LCAxZW0pO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUFsaWFzRmllbGQge1xuICAgIC8qIGlmIHBhcmVudCBpcyBhIGZsZXggY29udGFpbmVyLCB0aGlzIGFsbG93cyB0aGUgKi9cbiAgICAvKiB3aWR0aCB0byBiZSBhcyB3aWRlIGFzIG5lZWRlZCwgYW5kIG5vdCAxMDAlICovXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wcmVmaXgsXG4gICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC8qIHRoaXMgYWxsb3dzIHRoZSBkb21haW4gbmFtZSB0byBzaG93ICovXG4gICAgICAgIC8qIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBtYWtlIHRoZSBpbnB1dCBzaHJpbmsgKi9cbiAgICAgICAgLyogaWYgaXQncyB0b28gYmlnLCBpdCBzaG93cyBhbiBlbGxpcHNpcyAqL1xuICAgICAgICAvKiAxODA6IDI4IGZvciBwcmVmaXgsIDE1MiBmb3IgaW5wdXQgKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NTT0J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLm14X1NTT0J1dHRvbnNfcm93ICsgLm14X1NTT0J1dHRvbnNfcm93IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU1NPQnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIHN2ZyxcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICAgIHRvcDogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NTT0J1dHRvbl9taW5pIHtcbiAgICAgICAgc3ZnLFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgLyogMzBweCBwYXJlbnQsIDI0cHggc2VsZiAqL1xuICAgICAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC5teF9TU09CdXR0b25fbWluaSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWFyY2hXYXJuaW5nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuXG4gICAgPiAqIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICA+IGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXJ2ZXJQaWNrZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfaGVscCB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9zZXJ2ZXIge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfY2hhbmdlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfZGVzYyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgIH1cbn1cblxuLm14X1NlcnZlclBpY2tlcl9oZWxwRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogNDU2cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NEcm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9TZXR0aW5nc0Ryb3Bkb3duX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAzNjBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzRmxhZ190b2dnbGVJbkZyb250IHtcbiAgICAgICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbn1cblxuLm14X1NldHRpbmdzRmxhZ19taWNyb2NvcHkge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBTdXBwb3J0IGNvZGUvcHJlIGVsZW1lbnRzIGluIHNldHRpbmdzIGZsYWcgZGVzY3JpcHRpb25zICovXG4gICAgcHJlLFxuICAgIGNvZGUge1xuICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnRlLWNvZGUtYmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzVGFiX21pY3JvY29weV93YXJuaW5nOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIuKaoO+4jyBcIjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3Bpbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4OiAxO1xufVxuXG4ubXhfTWF0cml4Q2hhdF9taWRkbGVQYW5lbCAubXhfU3Bpbm5lciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4qIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgdGhlIHBhcmVudCB0byBzcGVjaWZ5IGEgcG9zaXRpdmUgcGFkZGluZyBhbmRcbiogd2lkdGhcbiovXG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgJHJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAvKiBSZW1vdmUgdGhlIE9TJ3MgcmVwcmVzZW50YXRpb24gKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICsgZGl2IHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4OyAvKiBGb3IgdGhlIGhpZ2hsaWdodCBvbiBmb2N1cyAqL1xuXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcblxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmb250LThweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtOHB4O1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIEBtaXhpbiB1bnJlYWwtZm9jdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcblxuICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAmICsgZGl2LFxuICAgICAgICAgICAgJiArIGRpdiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQ6ZGlzYWJsZWQge1xuICAgICAgICAgICAgJiArIGRpdiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9pbm5lckxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDRweDtcbiAgICB9XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9vdXRsaW5lZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWRhcmtlci1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1N5bnRheEhpZ2hsaWdodCB7XG4gICAgLyogaW5oaWJpdCBobGpzIHN0eWxpbmcgKi9cbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRsaWdodC1mZy1jb2xvciAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RhZ0NvbXBvc2VyIHtcbiAgICAubXhfVGFnQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4OyAvKiBvdmVycmlkZSBmcm9tIGJ1dHRvbiBzdHlsZXMgKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ3N0YWIgc3R5bGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkIGlucHV0LFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAvKiBTbyB0aGV5IGxvb2sgcmVsYXRlZCB0byBlYWNoIG90aGVyIGJ5IGZlZWxpbmcgdGhlIHNhbWUgKi9cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9UYWdDb21wb3Nlcl90YWdzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OyAvKiB0aGlzIHBsdXMgMTJweCBmcm9tIHRoZSB0YWdzIG1ha2VzIDI0cHggZnJvbSB0aGUgaW5wdXQgKi9cbiAgICB9XG5cbiAgICAubXhfVGFnIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIH1cbn1cblxuLm14X1RhZyB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgPiBzdmc6Zmlyc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1RhZ19kZWxldGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEuMDY2NjY2ZW07IC8qIDE2cHg7ICovXG4gICAgICAgIGhlaWdodDogMS4wNjY2NjZlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZDogJHN5c3RlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuLm14X1RleHRXaXRoVG9vbHRpcF90YXJnZXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLm14X1RleHRXaXRoVG9vbHRpcF90b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2dnbGVTd2l0Y2gge1xuICAgIC0tVG9nZ2xlU3dpdGNoLW1pbi13aWR0aDogJGZvbnQtNDRweDtcblxuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBib3JkZXItY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzO1xuXG4gICAgd2lkdGg6ICRmb250LTQ0cHg7XG4gICAgaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRpc2FibGVkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJi5teF9Ub2dnbGVTd2l0Y2hfZW5hYmxlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X1RvZ2dsZVN3aXRjaF9iYWxsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWRpc2FibGVkKTtcblxuICAgICAgICA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLSAkZm9udC0yMHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogJGZvbnQtMjBweDtcbiAgICBoZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktZGlzYWJsZWQpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGxlZnQgMC4xNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLW91dCAwLjFzO1xuICAgIGxlZnQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZhbGlkYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXRhaWxzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXNjcmlwdGlvbiArIC5teF9WYWxpZGF0aW9uX2RldGFpbHMge1xuICAgIG1hcmdpbjogMWVtIDAgMDtcbn1cblxuLm14X1ZhbGlkYXRpb25fZGV0YWlsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl92YWxpZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl9pbnZhbGlkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblBpY2tlciB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvKiB3aGVuIHRoZXJlIGFyZSBlcnJvcnMgbG9hZGluZyB0aGUgbWFwICovXG4gICAgLyogdGhlIGNhbnZhcyBpcyBzdGlsbCBpbnNlcnRlZCAqL1xuICAgIC8qIGFuZCBjYW4gb3ZlcmxhcCBlcnJvciBtZXNzYWdlL2Nsb3NlIGJ1dHRvbnMgKi9cbiAgICAvKiBoaWRlIGl0ICovXG4gICAgJi5teF9Mb2NhdGlvblBpY2tlcl9oYXNFcnJvciB7XG4gICAgICAgIC5tYXBsaWJyZWdsLWNhbnZhcy1jb250YWluZXIsXG4gICAgICAgIC5tYXBsaWJyZWdsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfTG9jYXRpb25QaWNrZXJfbWFwIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtY3RybC5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAsXG4gICAgICAgIC5tYXBsaWJyZWdsLWN0cmwubWFwbGlicmVnbC1jdHJsLWF0dHJpYiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAubWFwbGlicmVnbC1jdHJsLm1hcGxpYnJlZ2wtY3RybC1ncm91cCB7XG4gICAgICAgICAgICAvKiBwbGFjZSBiZWxvdyB0aGUgY2xvc2UgYnV0dG9uICovXG4gICAgICAgICAgICAvKiBwYWRkaW5nLTE2ICsgMjRweCBjbG9zZSBidXR0b24gKyBwYWRkaW5nLTEwICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtdXNlci1sb2NhdGlvbi1hY2N1cmFjeS1jaXJjbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXBsaWJyZWdsLXVzZXItbG9jYXRpb24tZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9jYXRpb25QaWNrZXJfZm9vdGVyIHtcbiAgICAgICAgZmxleDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X0xvY2F0aW9uUGlja2VyX3BpblRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTVweCByZ2IoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblBpY2tlcl9zdWJtaXRCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NhbGxFdmVudCB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiAubXhfQmFzZUF2YXRhcixcbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAtLWZhY2VwaWxlLWJhY2tncm91bmQ6ICRzeXN0ZW07XG59XG5cbi5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDsgLyogaW4gcHggdG8gbWF0Y2ggdGhlIGF2YXRhciAqL1xufVxuXG4ubXhfQ2FsbEV2ZW50X2luYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9DYWxsRXZlbnRfYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm14X1RpbWVsaW5lQ2FyZCAubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2RldGFpbHMge1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLm14X0NhbGxFdmVudF9idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiAxMjBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4LTIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9DcmVhdGVFdmVudCB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKiBEaXNhbWJpZ3VhdGVkIHByb2ZpbGUgbmVlZHMgdG8gaGF2ZSBhIGRpZmZlcmVudCBsYXlvdXQgaW4gdGhlIG1lbWJlciB0aWxlICovXG4ubXhfTWVtYmVyVGlsZVZpZXcgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAvKiBOYW1lIGFuZCB0aGUgdXNlciBzdGF0dXMgZW1vamkgc2hhcmUgdGhlIGZpcnN0IHJvdyAod2l0aCB0aGUgbmFtZSB0cnVuY2F0aW5nIGFuZCB0aGUgZW1vamkgYWx3YXlzIHZpc2libGUpXG4gICAgICAgRGlzYW1iaWd1YXRlZCBNWElEIGdldHMgYSBmdWxsIHJvdyBiZWxvdy4gKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBzcGFuOm5vdCgubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfbXhpZCkge1xuICAgICAgICAvKipcbiAgICAgICAgSW4gYSBtZW1iZXIgdGlsZSwgdGhpcyBzcGFuIGVsZW1lbnQgaXMgYSBncmlkIGNoaWxkIGFuZCBzb1xuICAgICAgICB3ZSBuZWVkIHRoZSBmb2xsb3dpbmcgZm9yIHRleHQgb3ZlcmZsb3cgdG8gd29yay5cbiAgICAgICAgKiovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvX2Jhc2ljIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyAvKiBUbyBtYXRjaCBteF9MZWdhY3lDYWxsRXZlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9zZW5kZXIge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7IC8qIFNlZSBteF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b25zICovXG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0MnB4OyAvKiBhdmF0YXIgKDMycHgpICsgbXhfTGVnYWN5Q2FsbEV2ZW50X2luZm9fYmFzaWMgbWFyZ2luICgxMHB4KSAqL1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF9idXR0b24ge1xuICAgICAgICAgICAgICAgIEBtaXhpbiBMZWdhY3lDYWxsQnV0dG9uO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF90b29sdGlwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHVuc2V0O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyOTBweDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGVfaWNvbiB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLm14X0V2ZW50VGlsZV9lMmVJY29uICsgLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC8qIDVweCAoZ2FwKSArIDE0cHggKGUyZSBpY29uIHNpemUgKiBtYXNrLXNpemUpICsgOXB4IChtYXJnaW4tbGVmdCBvZiBlMmUgaWNvbikgKi9cbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDVweCArIDE0cHggKyA5cHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlIHtcbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JUkNMYXlvdXQge1xuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogZGlzcGxheSBncmVlbiBsaW5lICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUdWxpciBBc29rYW4gPHR1bGlyQG1hdW5pdW0ubmV0PlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTUltYWdlUmVwbHlCb2R5LFxuLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICAubXhfTUltYWdlQm9keV9iYW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCAzNTBweCk7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfcGxhY2Vob2xkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAgICAgLm14X0JsdXJoYXNoID4gY2FudmFzIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbXgtLWFuaW0tcHVsc2UgMS43NXMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3RodW1ibmFpbF9jb250YWluZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29udGFpbjogcGFpbnQ7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfdGh1bWJuYWlsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfZ2lmTGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMTRweDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpbWFnZWJvZHktZ2lmbGFiZWw7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRpbWFnZWJvZHktZ2lmbGFiZWwtYm9yZGVyO1xuICAgICAgICBjb2xvcjogJGltYWdlYm9keS1naWZsYWJlbC1jb2xvcjtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfTUltYWdlUmVwbHlCb2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAubXhfTUltYWdlQm9keV90aHVtYm5haWxfY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBQcmV2ZW50IGEgYmxvd291dCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiA0NTBweDtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgei1pbmRleDogMDsgLyoga2VlcHMgdGhlIGVudGlyZSBtYXAgdW5kZXIgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhciAqL1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4vKiBJbiB0aGUgdGltZWxpbmUsIHdlIGZpdCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciAqL1xuLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IC5teF9NTG9jYXRpb25Cb2R5X21hcCB7XG4gICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUgLm14X01Mb2NhdGlvbkJvZHkgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQ1MHB4O1xufVxuXG4ubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUgfiAubXhfTUxvY2F0aW9uQm9keSB7XG4gICAgbWFyZ2luLXRvcDogNnB4OyAvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRyaXgtb3JnL21hdHJpeC1yZWFjdC1zZGsvcHVsbC84NDQyICovXG59XG5cbi5teF9SZXBseVRpbGUgLm14X01Mb2NhdGlvbkJvZHkge1xuICAgIC8qIFByZXZlbnQgY2xpY2tpbmcgYSBsb2NhdGlvbiB3aXRoaW4gYSByZXBseSAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJHBvbGwtbWF4LXdpZHRoOiA1NTBweDtcblxuLm14X01Qb2xsQm9keSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtaW4td2lkdGg6IDA7IC8qIE92ZXJyaWRlIGZpZWxkc2V0IGRlZmF1bHQgbWluLXdpZHRoOiBtaW4tY29udGVudCAqL1xuICAgIHdpZHRoOiAxMDAlOyAvKiBFbnN1cmUgZmllbGRzZXQgdGFrZXMgZnVsbCBhdmFpbGFibGUgd2lkdGggKi9cbiAgICBib3JkZXI6IG5vbmU7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IGJvcmRlciAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHBhZGRpbmcgKi9cbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDsgLyogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgbWFyZ2luICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBQcmVzZXJ2ZSB0aGUgZmllbGRzZXQgZGlzcGxheSB2YWx1ZSB3ZSB1c2VkIHRvIHNldCBnbG9iYWxseSAqL1xuXG4gICAgbGVnZW5kIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0OyAvKiBSZW1vdmUgZGVmYXVsdCBsZWdlbmQgcGFkZGluZyAqL1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWhlYWRpbmctbGcpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01Qb2xsQm9keV9lZGl0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRyb29tdG9waWMtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTVBvbGxCb2R5X3RvdGFsVm90ZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogaW5saW5lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG5cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBQcmV2ZW50IGNsaWNraW5nIGEgcG9sbCB3aXRoaW4gYSByZXBseSAqL1xuLm14X1JlcGx5VGlsZSAubXhfTVBvbGxCb2R5IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X01Qb2xsQm9keV9hbGxPcHRpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1heC13aWR0aDogJHBvbGwtbWF4LXdpZHRoO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NU3RpY2tlckJvZHlfd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTJweCAwcHg7XG59XG5cbi5teF9NU3RpY2tlckJvZHlfaGlkZGVuIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBUbyBjZW50ZXIgdGhlIHRleHQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZnJhbWUgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9NU3RpY2tlckJvZHlfcGxhY2Vob2xkZXIge1xuICAgIC8qIGNlbnRlcmluZyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDQwcHgpO1xuICAgIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgIC0tTWVzc2FnZUFjdGlvbkJhci1zaXplLWJ1dHRvbjogMjhweDtcbiAgICAtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1tYXJnaW46IDNweDtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoXG4gICAgICAgIC0xICpcbiAgICAgICAgICAgICh2YXIoLS1NZXNzYWdlQWN0aW9uQmFyLXNpemUtYnV0dG9uKSArIDIgKiAodmFyKC0tTWVzc2FnZUFjdGlvbkJhci1zaXplLW1hcmdpbikgKyB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpKSlcbiAgICApO1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogRW5zdXJlIHRoZSBhY3Rpb24gYmFyIGFwcGVhcnMgYWJvdmUgb3RoZXIgdGhpbmdzIGxpa2UgdGhlIHJlYWQgbWFya2VyICovXG4gICAgLyogYW5kIHNlbmRlciBhdmF0YXIgKGZvciBzbWFsbCBzY3JlZW5zKSAqL1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgLyogQWRkcyBhIHByZXZpb3VzIGV2ZW50IHNhZmUgYXJlYSBzbyB0aGF0IHlvdSBjYW4ndCBhY2NpZGVudGFsbHkgaG92ZXIgdGhlICovXG4gICAgLyogcHJldmlvdXMgZXZlbnQgd2hpbGUgdHJ5aW5nIHRvIG1vdXNlIGludG8gdGhlIGFjdGlvbiBiYXIgb3IgZnJvbSB0aGUgKi9cbiAgICAvKiByZWFjdCBidXR0b24gdG8gaXRzIHRvb2x0aXAuICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAvKiB0b29sdGlwIHNhZmUgbW91c2luZyBhcmVhICsgdG9vbHRpcCBvdmVyaGFuZyArICovXG4gICAgICAgIC8qIGFjdGlvbiBiYXIgKyBhY3Rpb24gYmFyIG9mZnNldCBmcm9tIGV2ZW50ICovXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwcHggKyA0OHB4ICsgMTAwJSArIDhweCk7XG4gICAgICAgIC8qIHNhZmUgYXJlYSArIGFjdGlvbiBiYXIgKi9cbiAgICAgICAgaGVpZ2h0OiBjYWxjKDIwcHggKyAxMDAlKTtcbiAgICAgICAgdG9wOiAtMTJweDtcbiAgICAgICAgbGVmdDogLTU4cHg7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBjdXJzb3I6IGluaXRpYWw7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lLWxlbmd0aCAqL1xuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1cbiAgICAgICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGVcbiAgICAgICAgICAgIH4gLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9pbmZvOmZpcnN0LW9mLXR5cGVcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgLyogaW1wcm92ZSBjbGlja2FiaWxpdHkgb2YgXCJjb2xsYXBzZVwiIGxpbmsgYnV0dG9uIG9uIGJ1YmJsZSBsYXlvdXQgYnkgcmVkdWNpbmcgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgKi9cbiAgICAgICAgICAgIC8qIG14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB+OiB0byBhcHBseSBydWxlcyB0byBhY3Rpb24gYmFyIHdoZW4gXCJjb2xsYXBzZVwiIGJ1dHRvbiBpcyBhdmFpbGFibGUgKi9cbiAgICAgICAgICAgIC8qIG14X0V2ZW50VGlsZV9pbmZvOmZpcnN0LW9mLXR5cGU6IHRvIGFwcGx5IHJ1bGVzIHRvIHRoZSBpbmZvIGV2ZW50IHRpbGUganVzdCB1bmRlciBcImNvbGxhcHNlXCIgYnV0dG9uICovXG4gICAgICAgICAgICAvKiBUT0RPOiB1c2UgYSBuZXcgY2xhc3MgbmFtZSBpbnN0ZWFkICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2luZm8gLm14X1ZpZXdTb3VyY2VFdmVudCB+ICYge1xuICAgICAgICAgICAgLyogaW1wcm92ZSBjbGlja2FiaWxpdHkgb2YgdmlldyBzb3VyY2UgZXZlbnQgdG9nZ2xlIGJ1dHRvbiBieSByZW1vdmluZyB2ZXJ0aWNhbCBzYWZlIGFyZWEgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UZXh0dWFsQm9keV91cmxQcmV2aWV3cyB7XG4gICAgLyogTGV0IHNoYXJlZC1jb21wb25lbnRzIG93biBwcmV2aWV3IGxpbmsgY29sb3VycyBpbnN0ZWFkIG9mIHRoZSBhcHAtd2lkZSBhbmNob3IgY29sb3VyLiAqL1xuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmhvdmVyLFxuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmxpbmssXG4gICAgYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKSk6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiByZXZlcnQtbGF5ZXI7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1RocmVhZEFjdGlvbkJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0b3A6IGNhbGMoLTEgKiAoMjhweCArIDIgKiAoM3B4ICsgdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSkpKTtcbiAgICByaWdodDogOHB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIEVuc3VyZSB0aGUgYWN0aW9uIGJhciBhcHBlYXJzIGFib3ZlIG90aGVyIHRoaW5ncyBsaWtlIHRoZSByZWFkIG1hcmtlciAqL1xuICAgIC8qIGFuZCBzZW5kZXIgYXZhdGFyIChmb3Igc21hbGwgc2NyZWVucykgKi9cbiAgICB6LWluZGV4OiAxMDtcblxuICAgIC8qIEFkZHMgYSBwcmV2aW91cyBldmVudCBzYWZlIGFyZWEgc28gdGhhdCB5b3UgY2FuJ3QgYWNjaWRlbnRhbGx5IGhvdmVyIHRoZSAqL1xuICAgIC8qIHByZXZpb3VzIGV2ZW50IHdoaWxlIHRyeWluZyB0byBtb3VzZSBpbnRvIHRoZSBhY3Rpb24gYmFyIG9yIGZyb20gdGhlICovXG4gICAgLyogcmVhY3QgYnV0dG9uIHRvIGl0cyB0b29sdGlwLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdG9vbHRpcCBzYWZlIG1vdXNpbmcgYXJlYSArIHRvb2x0aXAgb3ZlcmhhbmcgKyAqL1xuICAgICAgICAvKiBhY3Rpb24gYmFyICsgYWN0aW9uIGJhciBvZmZzZXQgZnJvbSBldmVudCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMHB4ICsgNDhweCArIDEwMCUgKyA4cHgpO1xuICAgICAgICAvKiBzYWZlIGFyZWEgKyBhY3Rpb24gYmFyICovXG4gICAgICAgIGhlaWdodDogY2FsYygyMHB4ICsgMTAwJSk7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIGxlZnQ6IC01OHB4O1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGggKi9cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdXG4gICAgICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlXG4gICAgICAgICAgICB+IC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3RcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIFwiY29sbGFwc2VcIiBsaW5rIGJ1dHRvbiBvbiBidWJibGUgbGF5b3V0IGJ5IHJlZHVjaW5nIHdpZHRoIGFuZCBoZWlnaHQgdmFsdWVzICovXG4gICAgICAgICAgICAvKiBteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUgfjogdG8gYXBwbHkgcnVsZXMgdG8gYWN0aW9uIGJhciB3aGVuIFwiY29sbGFwc2VcIiBidXR0b24gaXMgYXZhaWxhYmxlICovXG4gICAgICAgICAgICAvKiBteF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlOiB0byBhcHBseSBydWxlcyB0byB0aGUgaW5mbyBldmVudCB0aWxlIGp1c3QgdW5kZXIgXCJjb2xsYXBzZVwiIGJ1dHRvbiAqL1xuICAgICAgICAgICAgLyogVE9ETzogdXNlIGEgbmV3IGNsYXNzIG5hbWUgaW5zdGVhZCAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9pbmZvIC5teF9WaWV3U291cmNlRXZlbnQgfiAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIHZpZXcgc291cmNlIGV2ZW50IHRvZ2dsZSBidXR0b24gYnkgcmVtb3ZpbmcgdmVydGljYWwgc2FmZSBhcmVhICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X2NyeXB0b0V2ZW50IHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbEhpc3RvcnlfY29udGVudCB7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X1BvbGxIaXN0b3J5X2hlYWRlci5teF9IZWFkaW5nX2gyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BvbGxIaXN0b3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbGlzdCB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgZmxleDogMSAxIDA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgMDtcblxuICAgICYubXhfUG9sbEhpc3RvcnlMaXN0X2xpc3RfRU5ERUQge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X25vUmVzdWx0cyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLm14X1BvbGxIaXN0b3J5TGlzdF9sb2FkTW9yZVBvbGxzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbG9hZGluZyB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBjZW50ZXIgaW4gYWxsIGZyZWUgc3BhY2VcbiAgICB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzICovXG4gICAgJi5teF9Qb2xsSGlzdG9yeUxpc3Rfbm9SZXN1bHRzWWV0IHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIGF1dG87XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X2xvYWRNb3JlUG9sbHMge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNlQ2FyZCB7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGVfbGluZS1wYWRkaW5nLWJsb2NrOiAycHg7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmU6IDM2cHg7XG4gICAgLS1CYXNlQ2FyZF9oZWFkZXItYnV0dG9uLXNpemU6IDI4cHg7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kKTtcblxuICAgIC5teF9CYXNlQ2FyZF9oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC8qIGNoYW5naW5nIHRoZSBjb2xvciBmcm9tICRzZXBhcmF0b3IgdG8gdHJhbnNwYXJlbnQgYXMgaXQgaXNcbiAgICAgICAgICAgdGhlIGJlc3QgdmlzdWFsIG91dHB1dCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLiBUaGlzIHdpbGwgYmVcbiAgICAgICAgICAgcmVpbnRyb2R1Y2VkIGF0IGEgbGF0ZXIgc3RhZ2UuICovXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkICRzZXBhcmF0b3I7XG5cbiAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl9zcGFjZXIge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDQ0cHg7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZV9oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlX2J1dHRvbi0tb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tQmFzZUNhcmRfaGVhZGVyLWJ1dHRvbi1zaXplKSAtIDRweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLUJhc2VDYXJkX2hlYWRlci1idXR0b24tc2l6ZSkgLSA0cHgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgIH1cblxuICAgIC5teF9CYXNlQ2FyZF9mb290ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZSB7XG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG5cbiAgICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjRweCByZ2IoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl90b3Age1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMjJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBib3JkZXI6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VtcHR5U3RhdGUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDU2cHg7XG4gICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICAvKiBCbG9vbSB1c2luZyBtYWdpYyBudW1iZXJzIGRpcmVjdGx5IG91dCBvZiBGaWdtYSAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB3aWR0aDogNjQycHg7XG4gICAgICAgIGhlaWdodDogNzc1cHg7XG4gICAgICAgIHJpZ2h0OiAtMjUzLjc3cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDQ5Ljk1JSA0OS45NSUgYXQgNTAlIDUwJSwgcmdiKDEzLCAxODksIDEzOSwgMC4xMikgMCUsIHJnYigxOCwgMTE1LCAyMzUsIDApIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtODkuNjlkZWcpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FbmNyeXB0aW9uSW5mb19zcGlubmVyIHtcbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4dGVuc2lvbnNDYXJkIHtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAtLUFkZEV4dGVuc2lvbi1vdmVybGFwOiAtNzZweDtcbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgLyogU3R5bGluZyBmb3IgdGhlIFwiQWRkIGV4dGVuc2lvbnNcIiBidXR0b24gKi9cbiAgICAgICAgJiA+IGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FeHRlbnNpb25zQ2FyZF9jb250YWluZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxuXG4gICAgLm14X0V4dGVuc2lvbnNDYXJkX0J1dHRvbiB7XG4gICAgICAgIC8qIHRoaXMgYnV0dG9uIGlzIHNwZWNpYWwgc28gd2UgaGF2ZSB0byBvdmVycmlkZSBzb21lIG9mIHRoZSBvcmlnaW5hbCBzdHlsaW5nICovXG4gICAgICAgIC8qIGFzIHdlIHdpbGwgYmUgYXBwbHlpbmcgaXQgaW4gaXRzIGNoaWxkcmVuICovXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9pY29uX2FwcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlLFxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvKiB0byBnaXZlIGJpZ2dlciBpbnRlcmFjdGl2ZSB6b25lICovXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogZXF1YWwgdG8gcGFkZGluZy10b3Agb2YgcGFyZW50ICovXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHtcbiAgICAgICAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcmlnaHQ6IDMycHg7IC8qIDI0ICsgOCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FeHRlbnNpb25zQ2FyZF9CdXR0b25fcGlubmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7IC8qIHJlLWFsaWduIGJhc2VkIG9uIHRoZSBoZWlnaHQgY2hhbmdlICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcGFzcyB0aHJvdWdoIHRvIHRoZSByZWFsIGJ1dHRvbiAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogU2V0IGxheW91dCBmb3IgZXZlcnlvbmUgYnV0dG9uICovXG4gICAgYVtkYXRhLWtpbmQ9XCJwcmltYXJ5XCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0VtcHR5U3RhdGU6OmJlZm9yZSB7XG4gICAgICAgIC8qIE92ZXJsYXAgdGhlIEFkZCBleHRlbnNpb25zIGJ1dHRvbiAqL1xuICAgICAgICB0b3A6IHZhcigtLUFkZEV4dGVuc2lvbi1vdmVybGFwKTtcbiAgICB9XG5cbiAgICAubXhfRW1wdHlTdGF0ZSB7XG4gICAgICAgIC8qIFN0b3AgZW1wdHkgc3RhdGUgc2Nyb2xsaW5nICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tQWRkRXh0ZW5zaW9uLW92ZXJsYXApKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlubmVkTWVzc2FnZXNDYXJkIHtcbiAgICAtLXVucGluLWhlaWdodDogNzZweDtcblxuICAgIC5teF9QaW5uZWRNZXNzYWdlc0NhcmRfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX1NlcGFyYXRvciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAvKiBPdmVycmlkZSBkZWZhdWx0IGNvbXBvdW5kIHZhbHVlICovXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3dyYXBwZXJfdW5waW5fYWxsIHtcbiAgICAgICAgLyogUmVtb3ZlIHRoZSB1bnBpbiBhbGwgYnV0dG9uIGhlaWdodCBhbmQgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tdW5waW4taGVpZ2h0KSAtIGNhbGModmFyKC0tY3BkLXNwYWNlLTR4KSAqIDIpKTtcbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3VucGluIHtcbiAgICAgICAgLyogTWFrZSBpdCBmbG9hdCBhdCB0aGUgYm90dG9tIG9mIHRoZSB1bnBpbiBwYW5lbCAqL1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogdmFyKC0tdW5waW4taGVpZ2h0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU3VtbWFyeUNhcmQge1xuICAgIC0tY3BkLXNlcGFyYXRvci1pbnNldDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfY29udGFpbmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIH1cblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfcm9vbU5hbWUsXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF9hbGlhcyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX2FsaWFzIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpYyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2NvbnRhaW5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2VkaXQge1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY29sbGFwc2VkIHtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9Sb29tU3VtbWFyeUNhcmRfYmFkZ2VzIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9zZWFyY2gge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdW5zZXQ7IC8qIG92ZXJyaWRlIF9jb21tb24ucGNzcyB3aGljaCBpbmhpYml0cyB0aGlzICovXG4gICAgfVxufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX3Jvb21OYW1lIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX2JvdHRvbU9wdGlvbnMge1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaHJlYWRQYW5lbCB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIC5teF9UaHJlYWRQYW5lbEhlYWRlciB7XG4gICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRQYW5lbF92ZXJ0aWNhbF9zZXBhcmF0b3Ige1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfZHJvcGRvd24ge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCB2YXIoLS1jcGQtc3BhY2UtMXgpIDNweCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOyAvKiBzZXQgZ2FwIGJldHdlZW4gdGhlIHRocmVhZCB0aWxlIGFuZCB0aGUgcmlnaHQgYm9yZGVyICovXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogLTM2cHg7IC8qIDJweCBhYm92ZSBFdmVudFRpbGUgKi9cbiAgICAgICAgICAgIHotaW5kZXg6IDEwOyAvKiBTZWUgX0V2ZW50VGlsZS5wY3NzICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBGb3Igc3R5bGUgcnVsZXMgb2YgRXZlbnRUaWxlIGluIGEgdGhyZWFkLCBzZWUgX0V2ZW50VGlsZS5wY3NzICovXG4gICAgJi5teF9UaHJlYWRWaWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfVGhyZWFkVmlld190aW1lbGluZVBhbmVsV3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwOyAvKiBkb24ndCBkaXNwbGFjZSB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgLm14X0ZpbGVEcm9wVGFyZ2V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3NlbmRNZXNzYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgdXNlIG9mIHRoZSBzcGFjZSBhYm92ZSB0aGUgY29tcG9zZXIgYnV0dG9ucyB0b28gKi9cbiAgICAgICAgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTQwcHgpO1xuICAgICAgICB9XG4gICAgICAgICYubXhfVGhyZWFkVmlld19uYXJyb3cgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTA4cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCB7XG4gICAgICAgICYubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgNnB4KTsgLyogOHB4IC0gMnB4ICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVZpZXdfZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZSxcbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICAgICAvKiBBY2NvdW50IGZvciBzY3JvbGxiYXIgd2hlbiBob3ZlcmluZyAqL1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfVGltZWxpbmVTZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NsYW1wOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9CYXNlQ2FyZF9mb290ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlciB7XG4gICAgLm14X1RocmVhZFBhbmVsX0hlYWRlcl9GaWx0ZXJPcHRpb25JdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDMwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1jaGVja2VkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RpbWVsaW5lQ2FyZCB7XG4gICAgLm14X1RpbWVsaW5lQ2FyZF90aW1lbGluZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogb2Zmc2V0IHBhcmVudCBmb3IganVtcCB0byBib3R0b20gYnV0dG9uICovXG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMXB4O1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IC0xNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVzc2FnZS1hY3Rpb24tYmFyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAtLVRpbWVsaW5lQ2FyZF9SZWFkUmVjZWlwdEdyb3VwLWluc2V0LWJsb2NrLXN0YXJ0OiAtNnB4O1xuICAgICAgICAgICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZV9saW5lLXBhZGRpbmctYmxvY2spIHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTsgLyogZW5zdXJlIHRpbWVzdGFtcCBpcyBub3QgaGlkZGVuICovXG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMThweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBJbmZvIGV2ZW50cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzaXplIGFzIHN0YXRlIGV2ZW50cywgdGhvc2VcbiAgICAgICAgICAgICAgICAgKiBhcmUgdXN1YWxseSB3cmFwcGVkIGluIGEgZ2VuZXJpYyBldmVudCBsaXN0IHN1bW1hcnkgKi9cbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtM3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG5cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tVGltZWxpbmVDYXJkX1JlYWRSZWNlaXB0R3JvdXAtaW5zZXQtYmxvY2stc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlLFxuICAgICAgICAgICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpKTsgLyogaW5zdGVhZCBvZiAkbGVmdC1ndXR0ZXIgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZTogYXV0byAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICAgICAgLyogU2VlOiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctZW5kKSBmb3IgUmVhY3Rpb25zUm93IG9uIF9FdmVudFRpbGUucGNzcyAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtaW4oY2FsYygxMDAlIC0gMzZweCksIDYwMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0ge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIC8qIFJlYWQgcmVjZWlwdCBncm91cCBvbiBjb21wYWN0IG1vZGVybiBsYXlvdXQgKi9cbiAgICAgICAgICAgIC8qIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBteF9UaW1lbGluZUNhcmQgaXMgYSBjaGlsZCBlbGVtZW50IHdyYXBwZWQgYnkgbXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0LCAqL1xuICAgICAgICAgICAgLyogd2hpY2ggc3BlY2lmaWVzIHRoZSBkZWZhdWx0IHBvc2l0aW9uIG9mIG14X1JlYWRSZWNlaXB0R3JvdXAgb24gY29tcGFjdCBtb2Rlcm4gbGF5b3V0LiAqL1xuICAgICAgICAgICAgLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCAmIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICB0b3A6IHZhcigtLVRpbWVsaW5lQ2FyZF9SZWFkUmVjZWlwdEdyb3VwLWluc2V0LWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiBhdXRvOyAvKiBlbmFibGUgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgICAgICAvKiAxcHg6IGJvcmRlciB3aWR0aCAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgKyAxcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUmVhY3Rpb25zUm93IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIGRpc3BsYXkgb24gaG92ZXIgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG8gNXB4O1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3QgPiAubXhfRXZlbnRUaWxlX2luZm8gLm14X0V2ZW50VGlsZV9hdmF0YXIgfiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCk7IC8qIGVuc3VyZSB0aW1lc3RhbXAgaXMgbm90IGhpZGRlbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgLyogdW5kbyBwYWRkaW5nIG9uIHRoZSBtZXNzYWdlIGxpc3QgKi9cbiAgICB9XG5cbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMge1xuICAgICAgICBmbGV4LWJhc2lzOiA0OHB4OyAvKiAxMiAocGFkZGluZyBvbiBtZXNzYWdlIGxpc3QpICsgMzYgKHBhZGRpbmcgb24gZXZlbnQgbGluZXMpICovXG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdCwgLyogUlIgbmV4dCB0byBhIG1lc3NhZ2Ugb24gdGhlIGV2ZW50IGxpc3Qgc3VtbWFyeSAqL1xuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIC8qIFJSIG5leHQgdG8gYSBtZXNzYWdlIG9uIHRoZSBtZXNzc2dlIGxpc3QgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogNnB4OiBzY3JvbGwgYmFyIHdpZHRoIChtYWdpYyBudW1iZXIpICovXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkgKyB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKSArIDZweFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogLTRweDsgLyogYWxpZ24gd2l0aCBSUiBvdXRzaWRlIG9mIGluZm8gdGlsZSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlckluZm8ubXhfQmFzZUNhcmQge1xuICAgIC8qIFVzZXJJbmZvIGhhcyBhIGNpcmN1bGFyIGltYWdlIGF0IHRoZSB0b3Agc28gaXQgZml0cyBiZXR3ZWVuIHRoZSBiYWNrICYgY2xvc2UgYnV0dG9ucyAqL1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktc20pO1xuXG4gICAgLm14X1VzZXJJbmZvX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAmICsgLm14X1VzZXJJbmZvX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19tZW1iZXJEZXRhaWxzQ29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9Sb29tVGlsZV90aXRsZUNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxNTRweDtcbiAgICB9XG5cbiAgICAubXhfUm9vbVRpbGVfYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5teF9Sb29tVGlsZV90aXRsZSB7XG4gICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXM7XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAvKiBPdmVycmlkZSB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUgc28gdGhhdCB0aGUgbGV0dGVyIGlzbid0IHRpbnkgKi9cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyLFxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3Byb2ZpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZV9uYW1lIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgICAgIC8qIGxpbWl0IHRvIDIgbGluZXMsIHNob3cgYW4gZWxsaXBzaXMgaWYgaXQgb3ZlcmZsb3dzICovXG4gICAgICAgICAgICAvKiB0aGlzIGxvb2tzIHdlYmtpdCBzcGVjaWZpYyBidXQgaXMgc3VwcG9ydGVkIGJ5IEZpcmVmb3ggNjgrICovXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Vc2VySW5mb19wcm9maWxlX214aWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZVN0YXR1cyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdGltZXpvbmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogT3ZlcnJpZGVzIGZvciB0aGUgY29weSB0byBjbGlwYm9hcmQgYnV0dG9uICoqL1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb190aW1lem9uZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUxhYmVsIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9iYWRnZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDY4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9pY29uIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1VzZXJJbmZvX3ZlcmlmaWVkX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uX3VuYXZhaWxhYmxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX21lbWJlckRldGFpbHMge1xuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZUZpZWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIG1hcmdpbjogNnB4IDA7XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb19yb2xlRGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvKiB0cnkgdG8gbWFrZSBpdCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGRyb3Bkb3duICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMXB4IDAgMTJweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19maWVsZCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19zdGF0dXNNZXNzYWdlIHtcbiAgICAgICAgJHN0YXR1c051bWJlck9mTGluZXM6IDM7XG5cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMXJlbSAqICRzdGF0dXNOdW1iZXJPZkxpbmVzKTtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkc3RhdHVzTnVtYmVyT2ZMaW5lcztcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAmLm14X1VzZXJJbmZvX3NtYWxsQXZhdGFyIHtcbiAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhciB7XG4gICAgICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIC8qIE92ZXJyaWRlIHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZSBzbyB0aGF0IHRoZSBsZXR0ZXIgaXNuJ3QgdGlueSAqL1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uLFxuLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgIC8qIGNlbnRlciB0aGUgYmlnIHNoaWVsZCBpY29uICovXG4gICAgLm14X0UyRUljb24ge1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9Vc2VySW5mby5teF9CYXNlQ2FyZCB7XG4gICAgLm14X1VzZXJJbmZvX2NvbnRhaW5lcjpub3QoLm14X1VzZXJJbmZvX3NlcGFyYXRvcikge1xuICAgICAgICA+IGRpdiA+IHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfdmVyaWZ5QnlFbW9qaUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJJbmZvX3dpZGVCdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0VuY3J5cHRpb25JbmZvX3NwaW5uZXIsXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25TaG93U2FzIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGlubmVyLFxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uU2hvd1NhcyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3FyQ29kZSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggMCA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgLyogb3ZlcnJpZGUgaGVpZ2h0IGFuZCB3aWR0aCB3aGljaCBhcmUgc2V0IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5ICovXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogU3BlY2lhbCBjYXNlIHN0eWxpbmcgZm9yIEVuY3J5cHRpb25QYW5lbCBpbiBhIE1vZGFsIGRpYWxvZyAqL1xuLm14X0RpYWxvZyxcbi5teF9Db21wbGV0ZVNlY3VyaXR5X2JvZHkge1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX3N0YXJ0T3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICA+IC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX2JldHdlZW5UZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9zdGFydE9wdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMTBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgY2FudmFzLFxuICAgICAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2Vfbm9RUiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9oZWxwVGV4dCB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDMwcHggMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBFbmNyeXB0aW9uUGFuZWwgd2hlbiB2ZXJpZmljYXRpb24gaXMgZG9uZSAqL1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uIHtcbiAgICAgICAgLyogcmlnaHQgYWxpZ24gdGhlIFwiR290IGl0XCIgYnV0dG9uICovXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZV9zZWN0aW9uIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA3cHggNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZUJ1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldENhcmQge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BbGlhc1NldHRpbmdzX2xvY2FsQWRkcmVzc2VzIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgLyogbGlzdC1zdHlsZSBkb2Vzbid0IGRvIGl0IGZvciB3ZWJraXQgKi9cbiAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9Sb29tTGlzdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwc0RyYXdlciB7XG4gICAgLS1taW5XaWR0aDogMjQwcHg7IC8qIFRPRE8gdGhpcyBzaG91bGQgYmUgMzAwcHggYnV0IHRoYXQncyB0b28gbGFyZ2UgKi9cblxuICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgLyogVGhlIGxlZnQgc2lkZSBnYXAgaXMgZnVsbHkgaGFuZGxlZCBieSB0aGlzIG1hcmdpbi4gVG8gcHJvaGliaXQgYmxlZWRpbmcgb24gd2Via2l0IGJyb3dzZXIuICovXG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLyogTm8gYm90dG9tIG1hcmdpbiBmb3IgdGhlIGNvcnJlY3QgZ2FwIHRvIHRoZSBDYWxsVmlldyBiZWxvdy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgIH1cblxuICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXJfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGUge1xuICAgICAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7XG5cbiAgICAgICAgICAgIC8qIE92ZXJyaWRlIHN0eWxlcyBmcm9tIGxpYnJhcnksIG1ha2luZyB0aGUgd2hvbGUgYXJlYSB0aGUgdGFyZ2V0IGFyZWEgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLyogVGhpcyBpcyBwb3NpdGlvbmVkIGRpcmVjdGx5IGJlbG93IGZyYW1lICovXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDUwJSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBmcm9tIGxpYnJhcnkgKi9cblxuICAgICAgICAgICAgLyogV2UgdGhlbiByZW5kZXIgdGhlIHBpbGwgaGFuZGxlIGluIGFuIDo6YWZ0ZXIgdG8ga2VlcCBpdCBpbiB0aGUgaGFuZGxlJ3MgKi9cbiAgICAgICAgICAgIC8qIGFyZWEgd2l0aG91dCBiZWluZyBhIG1hc3NpdmUgbGluZSBhY3Jvc3MgdGhlIHNjcmVlbiAqL1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgIC8qIFRvZ2V0aGVyLCB0aGVzZSBtYWtlIHRoZSBiYXIgNjRweCB3aWRlICovXG4gICAgICAgICAgICAgICAgLyogVGhlc2UgYXJlIGFsc28gb3ZlcnJpZGRlbiBmcm9tIHRoZSBsaWJyYXJ5ICovXG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgICAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taW5XaWR0aCk7XG4gICAgfVxuXG4gICAgJi5teF9BcHBzRHJhd2VyLS1tYXhpbWlzZWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICB9XG5cbiAgICAmLm14X0FwcHNEcmF3ZXItLXJlc2l6aW5nIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICYubXhfQXBwc0RyYXdlci0tMmFwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfQXBwc0RyYXdlci0tM2FwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogMzMlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXBwc0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAubXhfQXBwVGlsZTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMCAxMHB4O1xuICAgIH1cbiAgICAubXhfQXBwVGlsZTpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgIH1cblxuICAgIC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BcHBUaWxlIHtcbiAgICBib3JkZXI6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpIHNvbGlkICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVGdWxsV2lkdGgge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IC8qIHRvIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGUgc2V0IGJ5IHRoZSByZXNpemVyICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKSBzb2xpZCAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVfbWluaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlcixcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIgZGl2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9BcHBUaWxlTWVudUJhciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXJfdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyX3dpZGdldHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9BcHBUaWxlTWVudUJhcl93aWRnZXRzX2J1dHRvbiB7XG4gICAgICAgICAgICAtLXNpemU6IDI0cHg7IC8qIFNpemUgb2YgdGhlIGJ1dHRvbi4gSXRzIGhlaWdodCBhbmQgd2lkdGggdmFsdWVzIHNob3VsZCBiZSBzYW1lICovXG5cbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFJ1bGVzIGFkZGVkIHRvIHRoaXMgc2VsZWN0b3Igc3R5bGUgYXBwVGlsZUJvZHkgZ2VuZXJhbGx5ICovXG4ubXhfQXBwVGlsZUJvZHkge1xuICAgIC8qIEFwcGx5IHRvIGV2ZXJ5IHZhcmlhbnQgb2YgYXBwVGlsZUJvZHkgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAvKiBjb25zdCBsb2FkaW5nRWxlbWVudCAqL1xuICAgIC8qIE5vdGUgdGhlIGxvYWRpbmcgc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgbmV4dCB0byBpdCBhcmUgbm90IGFsd2F5cyBpbmNsdWRlZCBpbiBteF9BcHBUaWxlQm9keS0tbG9hZGluZyAqL1xuICAgIC5teF9BcHBUaWxlQm9keV9mYWRlSW5TcGlubmVyIHtcbiAgICAgICAgLyogcGxhY2Ugc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgYXQgdGhlIGNlbnRlciBvZiBteF9BcHBUaWxlQm9keSAqL1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiBtZXNzYWdlIG5leHQgdG8gdGhlIHNwaW5uZXIgKi9cbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDIwMG1zO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbjtcbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbiAgICAmLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSB7XG4gICAgICAgIC0tQXBwVGlsZUJvZHktaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtYm9keS1iZy1jb2xvcjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWxvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyogbWF0Y2ggYmcgb2YgYm9yZGVyIHNvIHRoYXQgdGhlIGN1dCBjb3JuZXJzIGhhdmUgdGhlIHJpZ2h0IGZpbGwgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1ib2R5LWJnLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cblxuLyogYXBwVGlsZUJvZHkgaXMgZW1iZWRkZWQgdG8gUGVyc2lzdGVkRWxlbWVudCBvdXRzaWRlIG9mIG14X0FwcFRpbGUsXG4gICBzbyBydWxlcyB0byBzdHlsZSBhcHBUaWxlQm9keSBnZW5lcmFsbHkgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBoZXJlLiAqL1xuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlQm9keS0tbGFyZ2UsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlQm9keS0tbWluaSB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIGZsZXg6IDE7XG59XG5cbkBrZXlmcmFtZXMgbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4iLCIubXhfQXV0b2NvbXBsZXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDEwMDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICBvdmVyZmxvdzogY2xpcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNoYWRvdzogMHB4IC0xNnB4IDMycHggJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Qcm92aWRlclNlY3Rpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogYSBcImJsb2NrXCIgY29tcGxldGlvbiB0YWtlcyB1cCBhIHdob2xlIGxpbmUgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayB7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayAqIHtcbiAgICBtYXJnaW46IDAgM3B4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fcGlsbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIGhlaWdodDogJGZvbnQtMzRweDtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3BpbGwgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcbn1cblxuLyogc3R5bGluZyBmb3IgY29tbW9uIGNvbXBsZXRpb24gZWxlbWVudHMgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6IGdyYXk7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl9waWxsIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuQGNvbnRhaW5lciByb29tdmlldyAoaGVpZ2h0ID49IDBweCkge1xuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9jb250YWluZXJfcGlsbCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwY3FoO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl90cnVuY2F0ZSB7XG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3RpdGxlLFxuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSxcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICAvKiBFbGxpcHNpcyBmb3IgbG9uZyBuYW1lcy9zdWJ0aXRsZXMvZGVzY3JpcHRpb25zICovXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uLnNlbGVjdGVkLFxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0ZWQtY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9wcm92aWRlcl9uYW1lIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBvcGFjaXR5OiAwLjQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1eFBhbmVsIHtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuXG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgLyogVGhlc2UgYXJlIHNldCBpbiBKYXZhc2NyaXB0ICovXG4gICAgLS1hdmF0YXItbGV0dGVyOiBcIlwiO1xuICAgIC0tYXZhdGFyLWJhY2tncm91bmQ6IHVuc2V0O1xuICAgIC0tYXZhdGFyLWNvbG9yOiB1bnNldDtcbiAgICAtLXBsYWNlaG9sZGVyOiBcIlwiO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0RW1wdHkgPiA6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLXBsYWNlaG9sZGVyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dF9lcnJvciB7XG4gICAgICAgIGFuaW1hdGlvbjogMC4ycyB2aXN1YWxiZWxsO1xuICAgIH1cblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgLyogRm9yY2UgY2FyZXQgbm9kZXMgdG8gYmUgc2VsZWN0ZWQgaW4gZnVsbCBzbyB0aGF0IHRoZXkgY2FuIGJlICovXG4gICAgICAgIC8qIG5hdmlnYXRlZCB0aHJvdWdoIGluIGEgc2luZ2xlIGtleXByZXNzICovXG4gICAgICAgIC5jYXJldE5vZGUge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRfc2hvdWxkU2hvd1BpbGxBdmF0YXIge1xuICAgICAgICAgICAgc3Bhbi5teF9Vc2VyUGlsbCxcbiAgICAgICAgICAgIHNwYW4ubXhfUm9vbVBpbGwsXG4gICAgICAgICAgICBzcGFuLm14X1NwYWNlUGlsbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSB8IFRvIG92ZXJyaWRlIHRoZSBvdmVycmlkaW5nIG9mIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogYXZhdGFyIHBzdWVkbyBlbGVtZW50ICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS1hdmF0YXItbGV0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtMTZweDsgLyogZW5zdXJlIHRoZSBhdmF0YXIgaXMgbm90IGNvbXByZXNzZWQgKi9cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXZhdGFyLWJhY2tncm91bmQpLCAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWF2YXRhci1jb2xvciwgJGF2YXRhci1pbml0aWFsLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwLTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0X2Rpc2FibGVkIHtcbiAgICAgICAgICAgIC8qIElnbm9yZSBhbGwgdXNlciBpbnB1dCB0byBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX0F1dG9Db21wbGV0ZVdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG59XG4iLCIubXhfSm9pblJ1bGVEaWFsb2cge1xuICAgIC5teF9Kb2luUnVsZURpYWxvZ0J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRTJFSWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMCA5cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5teF9FMkVJY29uLm14X0UyRUljb25faW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FMkVJY29uVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfd2FybmluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfdmVyaWZpZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zdWNjZXNzLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lOiAzcHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBkaXNhYmxlIG92ZXJmbG93ICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogM3B4IHZhcigtLUVkaXRNZXNzYWdlQ29tcG9zZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VkaXRNZXNzYWdlQ29tcG9zZXJfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXAtcmV2ZXJzZTsgLyogZGlzcGxheSBcIlNhdmVcIiBvdmVyIFwiQ2FuY2VsXCIgKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4OyAvKiBtYWdpYyBudW1iZXIgdG8gYWxpZ24gdGhlIGVkZ2Ugb2YgdGhlIGJ1dHRvbiB3aXRoIHRoZSBpbnB1dCBhcmVhICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW1vamlCdXR0b24ge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1MCUsIHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSksIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0Vtb2ppQnV0dG9uX2hpZ2hsaWdodCB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcge1xuICAgIC5teF9FbW9qaUJ1dHRvbiB7XG4gICAgICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1cHgsICR0ZXJ0aWFyeS1jb250ZW50LCAkcGFuZWxzO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVmlld19ib2R5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfUm9vbVZpZXdfdGltZWxpbmUsXG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWEsXG4gICAgLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAtLWF2YXRhclNpemU6IDMycHg7XG4gICAgLS1ndXR0ZXJTaXplOiAxMXB4O1xuICAgIC0tY29ybmVyUmFkaXVzOiAxMnB4O1xuICAgIC0tbWF4V2lkdGg6IDcwJTtcblxuICAgIC8qIEZvciBib3RoIGV2ZW50IHRpbGUgYW5kIGV2ZW50IGxpc3Qgc3VtbWFyeSAqL1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0OiA0OXB4O1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZDogNjBweDtcblxuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpO1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0OiAtOXB4O1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kOiAtMTJweDtcbiAgICAtLUV2ZW50VGlsZV9idWJibGVfZ2FwLWlubGluZTogNXB4O1xuXG4gICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICB3aWR0aDogdW5zZXQ7IC8qIENhbmNlbCB0aGUgZGVmYXVsdCB3aWR0aCAqL1xuICAgICAgICBtYXgtd2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgubXhfRXZlbnRUaWxlX2luZm8pIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA2cHg7XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJGJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9oaWdobGlnaHQge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRldmVudC1oaWdobGlnaHQtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1oaWdobGlnaHQtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBGb3IgcmVwbGllcyAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KSk7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZCkpO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUG9zaXRpb24gdGhlIG1haW4gZXZlbnQgc2VuZGVyOyByZXBseSBzZW5kZXJzIG93biB0aGVpciBhbGlnbm1lbnQuICovXG4gICAgPiAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUsXG4gICAgLm14X0V2ZW50VGlsZV9zZW5kZXJEZXRhaWxzID4gLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbnNldC1ibG9jay1zdGFydDogLTJweDtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgIHRvcDogLTI4cHg7XG4gICAgICAgIHotaW5kZXg6IDk7IC8qIGFib3ZlIHRoZSBhdmF0YXIgKi9cbiAgICB9XG5cbiAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgLyogbGVhdmUgc3BhY2UgZm9yIHRoZSB0aW1lc3RhbXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMS44cmVtICsgdmFyKC0tZ3V0dGVyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMS44cmVtICsgdmFyKC0tZ3V0dGVyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEtNXgpIDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0KSB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1lbmQpO1xuICAgIH1cblxuICAgICZbZGF0YS1zZWxmPVwiZmFsc2VcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgbGVmdDogLTM2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwJSAtIHZhcigtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1idXR0b24pIC0gMiAqIHZhcigtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1tYXJnaW4pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmlnaHQ6IGluaXRpYWw7IC8qIFJlc2V0IHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZ3V0dGVyU2l6ZSkpO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVhY3Rpb25zUm93LFxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAtLWJhY2tncm91bmRDb2xvcjogJGV2ZW50YnViYmxlLW90aGVycy1iZztcbiAgICB9XG5cbiAgICAmW2RhdGEtc2VsZj1cInRydWVcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX3N0aWNrZXIge1xuICAgICAgICAgICAgLyogYWxpZ24gdGltZXN0YW1wIHdpdGggdGhvc2UgaW5zaWRlIGJ1YmJsZXMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogY2FsYygtMSAqIHZhcigtLWd1dHRlclNpemUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7IC8qIE1vdmluZyB0aGUgXCJhZGQgcmVhY3Rpb24gYnV0dG9uXCIgYmVmb3JlIHRoZSByZWFjdGlvbnMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHRvcDogLTE5cHg7IC8qIGhlaWdodCBvZiB0aGUgc2VuZGVyIGJsb2NrICovXG4gICAgICAgICAgICByaWdodDogLTM4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1zZWxmLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC0tYmFja2dyb3VuZENvbG9yOiAkZXZlbnRidWJibGUtc2VsZi1iZztcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAtLUV2ZW50QnViYmxlVGlsZV9saW5lLW1heC13aWR0aDogNzAlO1xuXG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1FdmVudEJ1YmJsZVRpbGVfbGluZS1tYXgtd2lkdGgpOyAvKiBBbGlnbiBtZXNzYWdlIGJ1YmJsZSBhbmQgZGlzcGxheU5hbWUgKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7IC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA1cHggdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9nYXAtaW5saW5lKTtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1zdGFydCkgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKTtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgLyogdGhlIHNlbGVjdG9yIGhlcmUgaXMgcXVpdGUgd2VpcmQgYmVjYXVzZSB0aW1lc3RhbXBzIGNhbiBhcHBlYXIgbGlua2VkICYgdW5saW5rZWQgYW5kIGluIGRpZmZlcmVudCBwbGFjZXMgKi9cbiAgICAgICAgLyogaW4gdGhlIERPTSBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIHJlbmRlcmluZyBjb250ZXh0ICovXG4gICAgICAgID4gYSwgLyogbGlua2VkIHRpbWVzdGFtcCBlbGVtZW50ICovXG4gICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyICsgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMzsgLyogYWJvdmUgbWVkaWEgYW5kIGxvY2F0aW9uIHNoYXJlIG1hcHMgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX21lZGlhTGluZSB7XG4gICAgICAgICAgICAvKiBUT0RPOiBVc2UgYSBjb21tb24gY2xhc3MgbmFtZSBpbnN0ZWFkICovXG4gICAgICAgICAgICAubXhfTUZpbGVCb2R5LFxuICAgICAgICAgICAgLm14X01BdWRpb0JvZHkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogYXZvaWQgb3ZlcmZsb3cgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01Wb2ljZU1lc3NhZ2VCb2R5IHtcbiAgICAgICAgICAgICAgICAvKiBhbGxvdyB0aGUgZXZlbnQgdG8gYmUgY29sbGFwc2VkLCB0aGlzIGNhdXNlcyB0aGUgd2F2ZWZvcm0gdG8gZ2V0IGNyb3BwZWQgKi9cbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHdlIHB1dCB0aGUgdGltZXN0YW1wcyBmb3IgbWVkaWEgKG90aGVyIHRoYW4gc3RpY2tlcnMpIGF0b3AgdGhlIG1lZGlhICovXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbWFnZSB7XG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICAgICAgLyogSGFyZGNvZGVkIGNvbG91cnMgYmVjYXVzZSBpdCdzIHRoZSBzYW1lIG9uIGFsbCB0aGVtZXMgKi9cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggNHB4IDBweCA0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfc3RpY2tlciB7XG4gICAgICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIgKyAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgLyogcG9zaXRpb24gdGltZXN0YW1wcyBmb3Igc3RpY2tlcnMgdG8gdGhlIHJpZ2h0IG9mIHRoZSB1bi1idWJibGVkIHN0aWNrZXIgKi9cbiAgICAgICAgICAgICAgICByaWdodDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vaW5zcGVjdGlvbiBDc3NSZXBsYWNlV2l0aFNob3J0aGFuZFNhZmVseSAqL1xuICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NZWRpYUJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7IC8qIGtlZXAgaXQgYXQgZnVsbCBzaXplICovXG5cbiAgICAgICAgICAgIC8qIEtlZXAgaGVpZ2h0IGVxdWFsIHRvIHRleHQgZm9yIHNoaWVsZCBhbGlnbm1lbnQsIGFkZGl0aW9uYWwgMnB4IGJlY2F1c2Ugb2YgMXB4IHBhZGRpbmcgb24gdGV4dCAqL1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKCRmb250LTE4cHggKyAycHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm14X0V2ZW50VGlsZV9ub0J1YmJsZSk6bm90KC5teF9FdmVudFRpbGVfYWxpZ25lZEJldHdlZW5CdWJibGVzKVxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmU6bm90KC5teF9FdmVudFRpbGVfbWVkaWFMaW5lKSB7XG4gICAgICAgIC8qIG1ha2UgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgMXB4IHNtYWxsZXIgc28gdGhhdCB3ZSBjYW4gcGFkXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQgYnkgMXB4ICovXG4gICAgICAgIC8qIHRvIGF2b2lkIGFudGktemFsZ28gY3V0dGluZyBvZmYgb3VyIGxhcmdlciB0aGFuIHRleHQgZW1vamlzLiAqL1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWd1dHRlclNpemUpIC0gMXB4KTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgLyogc3BhY2UgZm9yIHRoZSB0aW1lc3RhbXAgKi9cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZENvbG9yKTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uW2RhdGEtc2VsZj1cImZhbHNlXCJdIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgIC5teF9NZWRpYUJvZHksXG4gICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5teF9FdmVudFRpbGVfbGFzdEluU2VjdGlvbltkYXRhLXNlbGY9XCJmYWxzZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuXG4gICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NVmlkZW9Cb2R5IC5teF9NVmlkZW9Cb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAsXG4gICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uW2RhdGEtc2VsZj1cInRydWVcIl0gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgIC5teF9NZWRpYUJvZHksXG4gICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfRXZlbnRUaWxlX2xhc3RJblNlY3Rpb25bZGF0YS1zZWxmPVwidHJ1ZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcblxuICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9JbWFnZUJvZHk6OmJlZm9yZSxcbiAgICAgICAgLm14X01lZGlhQm9keSxcbiAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAubXhfTUJlYWNvbkJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9ub1NlbmRlciB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHRvcDogLTE5cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtaGFzLXJlcGx5PVwidHJ1ZVwiXSB7XG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgID4gYSwgLyogbGlua2VkIHRpbWVzdGFtcCBlbGVtZW50ICovXG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIgKyAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1ndXR0ZXJTaXplKTtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01Qb2xsQm9keSB7XG4gICAgICAgIHdpZHRoOiA1NTBweDsgLyogdG8gcHJldmVudCB0aW1lc3RhbXAgb3ZlcmxhcHBpbmcgc3VtbWFyeSB0ZXh0ICovXG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogcHJldmVudCBvdmVyZmxvd2luZyBhIHJlcGx5IHRpbGUgKi9cblxuICAgICAgICAubXhfTVBvbGxCb2R5X3RvdGFsVm90ZXMge1xuICAgICAgICAgICAgLyogYWxpZ24gc3VtbWFyeSB0ZXh0IHdpdGggY29ybmVyIHRpbWVzdGFtcCAqL1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9iYWQge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBTcGVjaWFsIGxheW91dCBzY2VuYXJpbyBmb3IgXCJVbmFibGUgVG8gRGVjcnlwdCAoVVREKVwiIGV2ZW50cyAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgXCJyZXBseSByZXBseVwiIGF1dG9cbiAgICAgICAgICAgICAgICBcInNoaWVsZCBib2R5XCIgYXV0b1xuICAgICAgICAgICAgICAgIC8gYXV0byAxZnI7XG5cbiAgICAgICAgICAgIC5teF9Vbmtub3duQm9keSxcbiAgICAgICAgICAgIC5teF9SZXBseUNoYWluX3dyYXBwZXIsXG4gICAgICAgICAgICAubXhfVmlld1NvdXJjZUV2ZW50IHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7IC8qIFByZXZlbnQgYSBncmlkIGJsb3dvdXQgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICBncmlkLWFyZWE6IHNoaWVsZDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Vbmtub3duQm9keSxcbiAgICAgICAgICAgIC5teF9EZWNyeXB0aW9uRmFpbHVyZUJvZHkge1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogYm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlcGx5Q2hhaW5fd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiByZXBseTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgLyogXCJVbmFibGUgVG8gRGVjcnlwdFwiIGxheW91dCBmb3IgaGlkZGVuIGV2ZW50cyAqL1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBnYXA6IDAgOXB4OyAvKiA5cHg6IG1hcmdpbiB2YWx1ZSBvZiBFMkUgaWNvbiAqL1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgICAgICAgICAgXCJzaGllbGQgc291cmNlXCIgYXV0b1xuICAgICAgICAgICAgICAgICAgICAvIGF1dG8gMWZyO1xuXG4gICAgICAgICAgICAgICAgLm14X1ZpZXdTb3VyY2VFdmVudCB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogc291cmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlcixcbiAgICAubXhfQ2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9hbGlnbmVkQmV0d2VlbkJ1YmJsZXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KSArIHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0KVxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpICsgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKVxuICAgICAgICApO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbm9CdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC0tYmFja2dyb3VuZENvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZS5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4OyAvKiBhbGlnbiB3aXRoIGJ1YmJsZXMgdGV4dCAqL1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tOiB1bnNldDtcbiAgICAgICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7IC8qIHVuZG8gaXRhbGljIGFib3ZlICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfTUVtb3RlQm9keSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfYnViYmxlQ29udGFpbmVyW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbGVmdEFsaWduZWRCdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC5teF9FdmVudFRpbGVfbGluZSA+IGEge1xuICAgICAgICAvKiBoaWRlIHRoaXMgdGltZXN0YW1wIGFzIHRoZSB0aWxlIHdpbGwgcmVuZGVyIGl0cyBvd24gKi9cbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2J1YmJsZUNvbnRhaW5lcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfaW5mb1tkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIC8qIFByZXNlcnZlIGFsaWdubWVudCB3aXRoIGxlZnQgZWRnZSBvZiB0ZXh0IGluIGJ1YmJsZXMgKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfYnViYmxlQ29udGFpbmVyW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbGVmdEFsaWduZWRCdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0sXG4ubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdW2RhdGEtZXhwYW5kZWQ9XCJmYWxzZVwiXSB7XG4gICAgLS1iYWNrZ3JvdW5kQ29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC0tZ3V0dGVyU2l6ZTogMDtcblxuICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9nYXAtaW5saW5lKTsgLyogU2FtZSBzcGFjaW5nIGJldHdlZW4gRTJFIGljb24gYW5kIGEgaGlkZGVuIGV2ZW50ICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7IC8qIG14X0V2ZW50VGlsZV9hdmF0YXIgaGFzIG1hcmdpbi1pbmxpbmUtZW5kLCBzbyBtYXJnaW4gaXMgbm90IG5lZWRlZCBoZXJlICovXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciArIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogLTc3cHg7XG4gICAgICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCxcbiAgICAgICAgICAgICYubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIC8qIEF2b2lkIG92ZXJmbG93IG9mIGV2ZW50IGluZm8gYnkgY2FuY2VsbGluZyB3aWR0aCBzZXR0aW5ncyAqL1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLyogaW5jcmVhc2UgbWFyZ2luIGJldHdlZW4gRUxTIGFuZCB0aGUgbmV4dCBFdmVudCB0byBub3QgaGF2ZSBvdXIgdXNlciBhdmF0YXIgb3ZlcmxhcCB0aGUgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbiAqL1xuICAgICZbZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdICsgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVtkYXRhLXNlbGY9XCJ0cnVlXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG5cbiAgICAmW2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgLyogUmVzZXQgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVtkYXRhLXNlbGY9XCJmYWxzZVwiXSAubXhfTWVzc2FnZUFjdGlvbkJhciAqL1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogNDhweDsgLyogYWxpZ24gd2l0aCB0aGF0IG9mIHJpZ2h0LWNvbHVtbiBidWJibGVzICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAvKiBtYXRjaCBhbGlnbm1lbnQgdG8gUlJzIG9mIGNoYXQgYnViYmxlcyAqL1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYygtMSAqIHZhcigtLVJlYWRSZWNlaXB0R3JvdXBfRXZlbnRCdWJibGVUaWxlLXNwYWNpbmctZW5kKSArIDYwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7IC8qIG1hdGNoIGFsaWdubWVudCBvZiB0aGUgaG92ZXIgYmFja2dyb3VuZCB0byB0aGF0IG9mIGNoYXQgYnViYmxlcyAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX3RpbGVFcnJvcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIHJlc3RvcmUgdGhlIGNlbnRlcmluZyAqL1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRsZWZ0LWd1dHRlcjogNjRweDtcblxuLm14X0V2ZW50VGlsZSB7XG4gICAgLS1FdmVudFRpbGVfY29udGVudC1tYXJnaW4taW5saW5lLWVuZDogMzRweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stc3RhcnQ6IDFweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stZW5kOiAzcHg7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydDogJGxlZnQtZ3V0dGVyO1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgLS1FdmVudFRpbGVfVGhyZWFkU3VtbWFyeS1saW5lLWhlaWdodDogY2FsYygyICogJGZvbnQtMTJweCk7XG5cbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7IC8qIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5ICovXG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9jb250YWluZXIgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICYubXhfRWRpdE1lc3NhZ2VDb21wb3NlcixcbiAgICAgICAgJi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgZm9ybWF0dGluZyBiYXIgaXMgdmlzaWJsZSAqL1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3NlYXJjaEhpZ2hsaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAycHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZXNzYWdlVGltZXN0YW1wX2xhdGVJY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICAubXhfSW1hZ2VCb2R5IHtcbiAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIG9uIGV2ZXJ5IGxheW91dCAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluLS1leHBhbmRlZCB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfYm9keSB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG5lZWRlZCB0byBvdmVycmlkZSAubXhfUmVwbHlUaWxlIC5teF9FdmVudFRpbGVfY29udGVudCAubXhfRXZlbnRUaWxlX2JvZHkgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbGxhcHNlZENvZGVCbG9jayB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG5lZWRlZCBkdWUgdG8gLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyID4gcHJlICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X3NlYXJjaFJlc3VsdHNQYW5lbCAmIHtcbiAgICAgICAgJi5teF9FdmVudFRpbGVfY29udGV4dHVhbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9idWJibGVDb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxMDBweDtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAzO1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBkZWZhdWx0IHBhZGRpbmcgb2YgbXhfRXZlbnRUaWxlX2xpbmUgc28gdGhhdCB3ZSBjYW4gYmUgY2VudGVyZWQgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIC8qIFRvIGF2b2lkIGJ1YmJsZSBldmVudHMgYmVpbmcgaGlnaGxpZ2h0ZWQgKi9cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9pc0VkaXRpbmcgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAtLXNlbGVjdGVkLW1lc3NhZ2UtYm9yZGVyLXdpZHRoOiA0cHg7XG5cbiAgICAgICAgLyogVE9ETzogYWRqdXN0IHRoZSB2YWx1ZXMgZm9yIElSQyBsYXlvdXQgKi9cbiAgICAgICAgLS1FdmVudFRpbGUtYm94LXNoYWRvdy1vZmZzZXQteDogY2FsYyg1MHB4ICsgdmFyKC0tc2VsZWN0ZWQtbWVzc2FnZS1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgLS1FdmVudFRpbGUtYm94LXNoYWRvdy1zcHJlYWQtcmFkaXVzOiAtNTBweDtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkZm9udC00NHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtNDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDkwcHg7XG5cbiAgICAgICAgICAgIC8qIEhhY2sgdG8gc3RvcCB0aGUgaGVpZ2h0IG9mIHRoaXMgcHVzaGluZyB0aGUgbWVzc2FnZXMgYXBhcnQuXG4gICAgICAgICAgICAgICBSZXBsYWNlcyBtYXJnaW4tdG9wOiAtNnB4LiBUaGlzIGludGVyYWN0cyBiZXR0ZXIgd2l0aCBhIHJlYWRcbiAgICAgICAgICAgICAgIG1hcmtlciBiZWluZyBpbiBiZXR3ZWVuLiBDb250ZW50IG92ZXJmbG93cy4gKi9cbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaGlnaGxpZ2h0LFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9oaWdobGlnaHQgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlOmZvY3VzLXdpdGhpbixcbiAgICAgICAgJi5teF9FdmVudFRpbGVfYWN0aW9uQmFyRm9jdXNlZCxcbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nLFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoaXMgaXMgdXNlZCBmb3IgdGhlIHRpbGUgZm9yIHRoZSBldmVudCB3aGljaCBpcyBzZWxlY3RlZCB2aWEgdGhlIFVSTC4gKi9cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nLFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCB7XG4gICAgICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgLyogVE9ETzogdWx0aW1hdGVseSB3ZSBwcm9iYWJseSB3YW50IHNvbWUgdHJhbnNpdGlvbiBvbiBoZXJlLiAqL1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IHZhcigtLUV2ZW50VGlsZS1ib3gtc2hhZG93LW9mZnNldC14KSAwIDAgdmFyKC0tRXZlbnRUaWxlLWJveC1zaGFkb3ctc3ByZWFkLXJhZGl1cylcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW50LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSB7XG4gICAgICAgIC0tRXZlbnRUaWxlX2lyY19saW5lLXBhZGRpbmctYmxvY2s6IDFweDtcblxuICAgICAgICAvKiBhZGQgLS1yaWdodC1wYWRkaW5nIHZhbHVlIG9mIE1lc3NhZ2VUaW1lc3RhbXAgb25seSAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICAgICAgLS1FdmVudFRpbGVfaXJjX2xpbmVfaW5mby1tYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArIDEgKiB2YXIoLS1yaWdodC1wYWRkaW5nKVxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpOyAvKiBlbnN1cmUgc3BhY2UgZm9yIEV2ZW50VGlsZSB3aXRob3V0IHRpbWVzdGFtcCAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICA+ICo6bm90KC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXJpZ2h0LXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWlyYy1saW5lLWhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhcixcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uLFxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC8qIE5lZWQgdG8gdXNlIGltcG9ydGFudCB0byBvdmVycmlkZSB0aGUganMgY2FsY3VsYXRlZCB2YWx1ZXMuICovXG4gICAgICAgICAgICA+IC5teF9CYXNlQXZhdGFyLFxuICAgICAgICAgICAgPiAubXhfQmFzZUF2YXRhciA+ICoge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCRmb250LTE1cHggLSAycHgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIC8qIGFkZCBhIDFweCBwYWRkaW5nIHRvcCBhbmQgYm90dG9tIGJlY2F1c2Ugb3VyIGxhcmdlclxuICAgICAgICAgICAgICAgIGVtb2ppIGZvbnQgb3RoZXJ3aXNlIGdldHMgY3JvcHBlZCBieSBhbnRpLXphbGdvICovXG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lLXBhZGRpbmctYmxvY2spIDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUmVwbHlUaWxlIHtcbiAgICAgICAgICAgICAgICAubXhfTVRleHRCb2R5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7IC8qIEVuYWJsZSAtd2Via2l0LWxpbmUtY2xhbXAgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIG9yZGVyOiA1O1xuXG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IC0wLjNyZW07IC8qICh2YXIoLS1pcmMtbGluZS1oZWlnaHQpIC0gYXZhdGFyIGhlaWdodCkgLyAyICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRWRpdE1lc3NhZ2VDb21wb3Nlcl9idXR0b25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVCdWJibGUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGVmdDogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydCk7XG5cbiAgICAgICAgICAgICYubXhfY3J5cHRvRXZlbnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIGxlZnQ6IHVuc2V0OyAvKiBDYW5jZWwgdGhlIHZhbHVlIHNwZWNpZmllZCBhYm92ZSBmb3IgdGhlIHRpbGUgaW5zaWRlIFJlcGx5VGlsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIC5teF9FZGl0TWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgICAgICAgICAvKiBhZGQgc3BhY2UgZm9yIHRoZSBzdHJva2Ugb24gYm94LXNoYWRvdyAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1zZWxlY3RlZC1tZXNzYWdlLWJvcmRlci13aWR0aCkgKyB2YXIoLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1FdmVudFRpbGVfaXJjX2xpbmVfaW5mby1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1yaWdodC1wYWRkaW5nKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1FdmVudFRpbGVfaXJjX2xpbmUtcGFkZGluZy1ibG9jayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9lbW90ZSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgLyogYWRkIC0tcmlnaHQtcGFkZGluZyB2YWx1ZSBvZiBNZXNzYWdlVGltZXN0YW1wIG9ubHkgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICsgMSAqIHZhcigtLXJpZ2h0LXBhZGRpbmcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEtNXgpIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLWVuZCk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgaW5zZXQ6IDAgMCAwIDQ0cHg7XG5cbiAgICAgICAgICAgIC8qIEtlZXAgaGVpZ2h0IGVxdWFsIHRvIHRleHQgZm9yIGFsaWdubWVudCAqL1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxMHB4O1xuXG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogVGhpcyBhbGlnbnMgdGhlIGF2YXRhciB3aXRoIHRoZSBsYXN0IGxpbmUgb2YgdGhlICovXG4gICAgICAgICAgICAgICAgLyogbWVzc2FnZS4gV2Ugd2FudCB0byBtb3ZlIGl0IG9uZSBsaW5lIHVwICovXG4gICAgICAgICAgICAgICAgLyogU2VlIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9Z3JvdXBdIC5teF9FdmVudFRpbGVfbGluZSBpbiBfRXZlbnRUaWxlLnNjc3MgKi9cbiAgICAgICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogY2FsYygtJGZvbnQtMjJweCAtIDNweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFN1bW1hcnksXG4gICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5X2ljb24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gJGxlZnQtZ3V0dGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tVmlld190aW1lbGluZV9ycl9lbmFibGVkICYge1xuICAgICAgICAgICAgJGlubGluZS1lbmQtbWFyZ2luOiA4MHB4O1xuXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSxcbiAgICAgICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5X2ljb24sXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGlubGluZS1lbmQtbWFyZ2luO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgICAgICAgICAvKiBsZWF2ZSBzcGFjZSBvbiBib3RoIGxlZnQgJiByaWdodCBndXR0ZXJzICovXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtaW4oY2FsYygxMDAlIC0gJGxlZnQtZ3V0dGVyIC0gJGlubGluZS1lbmQtbWFyZ2luKSwgNjAwcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBvbiBFTFMgd2UgbmVlZCB0aGUgbWFyZ2luIHRvIGFsbG93IGludGVyYWN0aW9uIHdpdGggdGhlIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gKi9cbiAgICAgICAgICAgIC8qIHdoaWNoIGlzIG5vcm1hbGx5IGluIHRoZSBSUiBndXR0ZXIgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgJHNwYWNpbmctYmxvY2stc3RhcnQ6IDNweDtcbiAgICAgICAgICAgICRzcGFjaW5nLWJsb2NrLWVuZDogMnB4O1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmctYmxvY2stc3RhcnQgMCAkc3BhY2luZy1ibG9jay1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6ICRzcGFjaW5nLWJsb2NrLXN0YXJ0ICRzcGFjaW5nLWJsb2NrLWVuZDtcbiAgICAgICAgICAgICAgICAvKiAyMHB4OiBhdmF0YXIgYXJlYSAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuXG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIC8qIFRPRE86IGNoZWNrIGlmIHRoaXMgd291bGQgYmUgbmVjZXNzYXJ5OyAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIC8qIE90aGVyIGhhbGYgb2YgdGhlIGd1dHRlciBpcyBwcm92aWRlZCBieSBtYXJnaW4tYm90dG9tIG9uIHRoZSBsYXN0IHRpbGVcbiAgICAgICAgb2YgdGhlIHNlY3Rpb24gKi9cbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1ndXR0ZXJTaXplKSAvIDIpO1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KTtcblxuICAgICAgICAvKiBSZXNldCBkZWZhdWx0IHZhbHVlcy4gVE9ETzogcmVtb3ZlICovXG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAvKiBhcyBjbG9zZSB0byByaWdodCBndXR0ZXIgd2l0aG91dCBjbGlwcGluZyBhcyBwb3NzaWJsZSAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkpO1xuXG4gICAgICAgICAgICAgICAgLyogKEV2ZW50VGlsZUxpbmUubGluZS1oZWlnaHQgLSBSZWFkUmVjZWlwdEdyb3VwLmhlaWdodCkgLyAyICovXG4gICAgICAgICAgICAgICAgLyogdGhpcyBjZW50ZXJzIHRoZSBSZWFkUmVjZWlwdEdyb3VwIGlmIHdl4oCZdmUgZ290IGEgc2luZ2xlIGxpbmUgKi9cbiAgICAgICAgICAgICAgICBpbnNldC1ibG9jay1lbmQ6IGNhbGMoKCRmb250LTE4cHggLSAyNHB4KSAvIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5teF9FdmVudFRpbGVCdWJibGUge1xuICAgICAgICAgICAgLyogVGltZXN0YW1wcyBhcmUgaW5zaWRlIHRoZSB0aWxlLCBzbyB0aGUgd2lkdGggY2FuIGJlIGxlc3MgY29uc3RyYWluZWQgKi9cbiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICB9XG4gICAgICAgICYubXhfRXZlbnRUaWxlX2xhc3RJblNlY3Rpb24ge1xuICAgICAgICAgICAgLyogT3RoZXIgaGFsZiBvZiB0aGUgZ3V0dGVyIGlzIHByb3ZpZGVkIGJ5IG1hcmdpbi10b3Agb24gdGhlIGZpcnN0XG4gICAgICAgICAgICB0aWxlIG9mIHRoZSBzZWN0aW9uICovXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWd1dHRlclNpemUpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTsgLyogcmVtb3ZlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSB7XG4gICAgICAgIC8qIEFwcGx5IG9ubHkgY29sbGFwc2VkIGV2ZW50cyBibG9jayAqL1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAvKiBhZGQgLS1yaWdodC1wYWRkaW5nIHZhbHVlIG9mIE1lc3NhZ2VUaW1lc3RhbXAgYW5kIGF2YXRhciBvbmx5ICovXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICsgdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyAyICogdmFyKC0tcmlnaHQtcGFkZGluZylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0ID4gLm14X0V2ZW50VGlsZV9pbmZvIC5teF9FdmVudFRpbGVfYXZhdGFyIH4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIC8qIG92ZXJyaWRlIHBhZGRpbmctbGVmdCAkbGVmdC1ndXR0ZXIgKi9cbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgIC8qXG4gICAgYWxsIHRoZSBvdmVyZmxvdy15OiBoaWRkZW47IGFyZSB0byB0cmFwIFphbGdvcyAtXG4gICAgYnV0IHRoZXkgaW50cm9kdWNlIGFuIGltcGxpY2l0IG92ZXJmbG93LXg6IGF1dG8uXG4gICAgc28gbWFrZSB0aGF0IGV4cGxpY2l0bHkgaGlkZGVuIHRvbyB0byBhdm9pZCByYW5kb21cbiAgICBob3Jpem9udGFsIHNjcm9sbGJhcnMgb2NjYXNpb25hbGx5IGFwcGVhcmluZywgbGlrZSBpblxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vdmVjdG9yLXdlYi9pc3N1ZXMvMTE1NFxuICAgICovXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLUV2ZW50VGlsZV9jb250ZW50LW1hcmdpbi1pbmxpbmUtZW5kKTtcblxuICAgIC5tYXJrZG93bi1ib2R5IHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKSAhaW1wb3J0YW50O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIGluaGVyaXQgdGhlIGNvbG91ciBmcm9tIHRoZSBkYXJrIG9yIGxpZ2h0IHRoZW1lIGJ5IGRlZmF1bHQgKGJ1dCBub3QgZm9yIGNvZGUgYmxvY2tzKSAqL1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHByZSxcbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGU6bm90KHByZSAqKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgLyogVGhlIGhvcml6b250YWwgcGFkZGluZyBpcyBhZGRlZCBieSBnaXRodWItbWFya2Rvd24tY3NzIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCkgMDtcbiAgICAgICAgICAgIC8qIEF2b2lkIGlubGluZSBjb2RlIGJsb2NrcyB0byBiZSBzdGlja2VkIHdoZW4gb24gbXVsdGlwbGUgbGluZXMgKi9cbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgLyogQXZvaWQgdGhlIGJvcmRlciB0byBiZSBnbHVlZCB0byB0aGUgb3RoZXIgd29yZHMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8qIGRvbid0IGNvbGxhcHNlIHNwYWNlcyBpbiBpbmxpbmUgY29kZSBibG9ja3MgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgICAvKiBoYXZlIHRvIHVzZSBvdmVybGF5IHJhdGhlciB0aGFuIGF1dG8gb3RoZXJ3aXNlIExpbnV4IGFuZCBXaW5kb3dzICovXG4gICAgICAgICAgICAvKiBDaHJvbWUgZ2V0cyB2ZXJ5IGNvbmZ1c2VkIGFib3V0IHZlcnRpY2FsIHNwYWNpbmc6ICovXG4gICAgICAgICAgICAvKiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzc1NCAqL1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogb3ZlcmxheTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGNvZGUge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7IC8qIHdlIHdhbnQgY29kZSBibG9ja3MgdG8gYmUgc2Nyb2xsYWJsZSBhbmQgbm90IHdyYXAgKi9cblxuICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgaDEgYW5kIGgyIHRoZSBzYW1lIHNpemUgYXMgaDMuICovXG4gICAgICAgIGgxLFxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBHRk0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRibG9ja3F1b3RlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAvLyBhY3R1YWxseSwgcmVtb3ZpbmcgdGhlIEl0YWxpYyBUVEYgcHJvdmlkZXNcbiAgICAgICAgLy8gYmV0dGVyIHJlc3VsdHMgc2VlbWluZ2x5XG5cbiAgICAgICAgLy8gY29tcGVuc2F0ZSBmb3IgTnVuaXRvIGl0YWxpY3MgYmVpbmcgdGVycmlibGVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9mb250cy9pc3N1ZXMvMTcyNlxuICAgICAgICBlbSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0xNGRlZyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgKi9cblxuICAgICAgICAvKiBTdXBwb3J0IGFyYml0cmFyaWx5IGxhcmdlIG1hcmtlciBudW1iZXJzICovXG4gICAgICAgIG9sIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE92ZXJyaWRlIG5lc3RlZCBsaXN0cyBiZWluZyBsb3dlci1yb21hbiAqL1xuICAgICAgICBvbCBvbCxcbiAgICAgICAgdWwgb2wge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiByZXZlcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGxpc3QgdHlwZSBkaXNjIHRvIG1hdGNoIHJpY2ggdGV4dCBlZGl0b3IgKi9cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogb3ZlcnJpZGUgc3R5bGVzIGZyb20gdGhlIGJhc2UgbWFya2Rvd24gQ1NTIHRoYXQgcHV0IG1hcmtkb3duIGNvbnRlbnQgb24gaXRzIG93biBsaW5lLFxuICAgICAgICAgICBhcyB0aGlzIGlzbid0IHdoYXQgd2Ugd2FudCBmb3IgcmljaHRleHQgZW1vdGUgY29udGVudC5cbiAgICAgICAgICovXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogU3BvaWxlciBzdHVmZiAqL1xuLm14X0V2ZW50VGlsZV9zcG9pbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvKiBjbGVhciBidXR0b24gc3R5bGVzICovXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcblxuICAgIC5teF9FdmVudFRpbGVfc3BvaWxlcl9yZWFzb24ge1xuICAgICAgICBjb2xvcjogJGV2ZW50LXRpbWVzdGFtcC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfc3BvaWxlcl9jb250ZW50IHtcbiAgICAgICAgZmlsdGVyOiBibHVyKDVweCkgc2F0dXJhdGUoMC4xKSBzZXBpYSgxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52aXNpYmxlID4gLm14X0V2ZW50VGlsZV9zcG9pbGVyX2NvbnRlbnQge1xuICAgICAgICBmaWx0ZXI6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBhdXRvO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfYmlnRW1vamkge1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBsaW5lLWhlaWdodDogNTdweDtcblxuICAgIC5teF9FbW9qaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgIGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICAubXhfRXZlbnRUaWxlOmhvdmVyICYsXG4gICAgICAgIC5teF9FdmVudFRpbGU6Zm9jdXMtdmlzaWJsZTpmb2N1cy13aXRoaW4gJiB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNlbGVjdG9yIHdyb25nbHkgYXBwbGllcyB0byBwaWxsIGF2YXRhcnMgYnV0IHRob3NlIGhhdmUgZXhwbGljaXQgd2lkdGgvaGVpZ2h0IHBhc3NlZCBhdCBhIGhpZ2hlciBzcGVjaWZpY2l0eSAqL1xuICAgICYubWFya2Rvd24tYm9keSBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGxlZnQgdG9wO1xuXG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbG9ycyBvZiB0aGUgJ2dpdGh1Yi1tYXJrZG93bi1jc3MnIGxpYnJhcnlcbiAgICAgICAgKCNmZmYgZm9yIGxpZ2h0IHRoZW1lLCAjMDAwIGZvciBkYXJrIHRoZW1lKSB0byBtYXRjaCB0aGUgaW5oZXJpdGVkIHRoZW1lICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2NsYW1wICYge1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3ByZV9jb250YWluZXIge1xuICAgICAgICAvKiBGb3IgY29ycmVjdCBwb3NpdGlvbmluZyBvZiBfY29weUJ1dHRvbiAoU2VlIFRleHR1YWxCb2R5KSAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLyogRW1vamkgYXJlIGVubGFyZ2VkIGluIHByb3NlLCBidXQgYSBjb2RlIGJsb2NrJ3MgbGluZSBudW1iZXJzIGFyZSBvbmUgZml4ZWQtaGVpZ2h0IGJsb2NrXG4gICAgICAgICAgIHBlciBsaW5lIGFuZCBjYW5ub3QgZm9sbG93IGEgbGluZSB0aGF0IGFuIGVubGFyZ2VkIGVtb2ppIGhhcyBtYWRlIHRhbGxlci4gKi9cbiAgICAgICAgLm14X0Vtb2ppIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtd2l0aGluLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb2xsYXBzZWRDb2RlQmxvY2sge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzB2aDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBJbnNlcnRlZCBhZGphY2VudCB0byA8cHJlPiBibG9ja3MsIChTZWUgVGV4dHVhbEJvZHkpICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9idXR0b25Cb3R0b20ge1xuICAgICAgICAgICAgICAgIHRvcDogMzNweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtZXNzYWdlLWFjdGlvbi1iYXItZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfbGluZU51bWJlcnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAwLjVlbSAwIC0xLjVlbTtcbiAgICBjb2xvcjogZ3JheTtcblxuICAgICYgc3BhbiB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0V2ZW50VGlsZV90aWxlRXJyb3Ige1xuICAgIGNvbG9yOiByZWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLyogUmVtb3ZlIHNvbWUgb2YgdGhlIGRlZmF1bHQgdGlsZSBwYWRkaW5nIHNvIHRoYXQgdGhlIGVycm9yIGlzIGNlbnRlcmVkICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGU6aG92ZXIgLm14X1RocmVhZEFjdGlvbkJhcixcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2FjdGlvbkJhckZvY3VzZWQgLm14X1RocmVhZEFjdGlvbkJhcixcbltkYXRhLXdoYXRpbnB1dD1cImtleWJvYXJkXCJdIC5teF9FdmVudFRpbGU6Zm9jdXMtd2l0aGluIC5teF9UaHJlYWRBY3Rpb25CYXIsXG4ubXhfRXZlbnRUaWxlOmZvY3VzLXZpc2libGU6Zm9jdXMtd2l0aGluIC5teF9UaHJlYWRBY3Rpb25CYXIge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1zaGFwZT1cIlRocmVhZHNMaXN0XCJdLFxuLm14X0V2ZW50VGlsZVtkYXRhLXNoYXBlPVwiTm90aWZpY2F0aW9uXCJdIHtcbiAgICAtLXRvcE9mZnNldDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAtLWxlZnRPZmZzZXQ6IDQ4cHg7XG4gICAgJGJvcmRlclJhZGl1czogOHB4O1xuICAgICRwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICRockhlaWdodDogMXB4O1xuICAgICRub3RpZmljYXRpb24tZG90LXNpemU6IDhweDsgLyogbm90aWZpY2F0aW9uIGRvdCBuZXh0IHRvIHRoZSB0aW1lc3RhbXAgKi9cblxuICAgIG1hcmdpbjogY2FsYyh2YXIoLS10b3BPZmZzZXQpICsgJGhySGVpZ2h0KSAwIHZhcigtLXRvcE9mZnNldCk7IC8qIGluY2x1ZGUgdGhlIGhlaWdodCBvZiBob3Jpem9udGFsIGxpbmUgKi9cbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgICRpbnNldC1ibG9jay1zdGFydDogYXV0bztcbiAgICAgICAgJGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtMngpKTtcbiAgICAgICAgJGluc2V0LWJsb2NrLWVuZDogY2FsYygtMSAqIHZhcigtLXRvcE9mZnNldCkgLSAkaHJIZWlnaHQpOyAvKiBleGNsdWRlIHRoZSBoZWlnaHQgb2YgaG9yaXpvbnRhbCBsaW5lICovXG4gICAgICAgICRpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tbGVmdE9mZnNldCkgKyAkcGFkZGluZyk7XG4gICAgICAgIGluc2V0OiAkaW5zZXQtYmxvY2stc3RhcnQgJGluc2V0LWlubGluZS1lbmQgJGluc2V0LWJsb2NrLWVuZCAkaW5zZXQtaW5saW5lLXN0YXJ0O1xuXG4gICAgICAgIGhlaWdodDogJGhySGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogZGlzYWJsZSB0aGUgbWVzc2FnZSBhY3Rpb24gYmFyIG9uIGhvdmVyICovXG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBlbnN1cmVzIHRoZSB0aXRsZSBmb3IgdGhlIHNlbmRlciBuYW1lIGNhbiBiZSBjb3JyZWN0bHkgZGlzcGxheWVkICovXG4gICAgfVxuXG4gICAgJltkYXRhLW5vdGlmaWNhdGlvbj1cInRvdGFsXCJdOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcm9vbS1pY29uLXVucmVhZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmW2RhdGEtbm90aWZpY2F0aW9uPVwiaGlnaGxpZ2h0XCJdOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgaW5zZXQ6ICRwYWRkaW5nIGF1dG8gYXV0byAkcGFkZGluZztcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2RldGFpbHMge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9kaXNwbGF5TmFtZSxcbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfZGlzcGxheU5hbWUge1xuICAgICAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9teGlkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1sZWZ0T2Zmc2V0KTtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgd2lkdGg6IHVuc2V0OyAvKiBDYW5jZWwgdGhlIGRlZmF1bHQgd2lkdGggKi9cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogZW5zdXJlIGNvcnJlY3Qgb3ZlcmZsb3cgYmVoYXZpb3IgKi9cbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogdG8gZW5zdXJlIGl0J3MgZW5kLWFsaWduZWQgZXZlbiBpZiBpdCdzIHRoZSBvbmx5IGVsZW1lbnQgb2YgaXRzIHBhcmVudCAqL1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIH1cblxuICAgIC8qIFRocmVhZHNMaXN0IGhhcyBhbHdheXMgZ3JvdXAgbGF5b3V0ICovXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdOmhvdmVyIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lOyAvKiBkb24ndCBzaG93IHRoZSB2ZXJpZmljYXRpb24gbGVmdCBzdHJva2UgaW4gdGhlIHRocmVhZCBsaXN0ICovXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1zaGFwZT1cIlRocmVhZHNMaXN0XCJdIHtcbiAgICAubXhfVGhyZWFkUGFuZWxfcmVwbGllcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBAbWl4aW4gVGhyZWFkU3VtbWFyeUljb247XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfcmVwbGllc19hbW91bnQge1xuICAgICAgICAgICAgQG1peGluIFRocmVhZFJlcGxpZXNBbW91bnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9UaHJlYWRTdW1tYXJ5X2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICA+IHN2ZyB7XG4gICAgICAgIEBtaXhpbiBUaHJlYWRTdW1tYXJ5SWNvbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgfVxuXG4gICAgYSYge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLyogRm9yIHN0eWxlIHJ1bGVzIG9mIFRocmVhZFZpZXcsIHNlZSBfVGhyZWFkUGFuZWwucGNzcyAqL1xuLm14X1RocmVhZFZpZXcge1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0OiA1NnB4OyAvKiA1NnB4OiA2NHB4IC0gOHB4IChwYWRkaW5nKSAqL1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZDogOHB4OyAvKiBzYW1lIGFzIHBhZGRpbmcgKi9cblxuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfcm9vbU5hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGhhbmRsaW5nIGZvciBoaWRkZW4gZXZlbnRzIChlLmcgcmVhY3Rpb25zKSBpbiB0aGUgdGhyZWFkIHZpZXcgKi9cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIC8qIEFsaWduIHdpdGggaGlkZGVuIGV2ZW50IGNvbnRlbnQgKi9cbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRsaW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAvKiAxNHB4OiBhdmF0YXIgd2lkdGgsIDRweDogYWxpZ24gd2l0aCB0ZXh0ICovXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyAxNHB4IC0gNHB4KTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTsgLyogcG9zaXRpb24gYWJvdmUgdGhlIGhvdmVyIHN0eWxpbmcgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMnB4OyAvKiBBbGlnbiB3aXRoIGF2YXRhciAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX3NlbGVjdGVkIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIC5teF9SZWRhY3RlZEJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogMTRweDogYXZhdGFyIHdpZHRoLCA2cHg6IDIwcHggLSAxNHB4ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKDE0cHggKyA2cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAubXhfUmVkYWN0ZWRCb2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0KSArIDE0cHggKyA2cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlX2xpbmUtcGFkZGluZy1ibG9jayk7XG5cbiAgICAgICAgICAgICAgICAvKiBBZGQgcGFkZGluZyB0byBhbGlnbiBtZXNzYWdlIHRleHQgd2l0aCBzdW1tYXJ5IHRleHQgKi9cbiAgICAgICAgICAgICAgICAvKiBTZWU6IC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSAubXhfRXZlbnRUaWxlX2xpbmUgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0KTtcblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICYubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsgLyogYWxpZ24gc3RhcnQgb2YgZmlyc3QgbGV0dGVyIHdpdGggdGhhdCBvZiB0aGUgZXZlbnQgYm9keSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICAgICAgLyogQWxpZ24gd2l0aCBtZXNzYWdlIHRleHQgYW5kIHN1bW1hcnkgdGV4dCAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogMDsgLyogQ2FuY2VsIHBhZGRpbmctYmxvY2stc3RhcnQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9zZW5kZXJEZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpOyAvKiBnYXAgYmV0d2VlbiB0aGUgYXZhdGFyIGFuZCB0aGUgc2VuZGVyIElEICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBmb3IgSVJDIGxheW91dCAqL1xuICAgICAgICAgICAgICAgIHRvcDogMnB4OyAvKiBBbGlnbiB3aXRoIG14X0V2ZW50VGlsZV9jb250ZW50ICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lOiBjYWxjKC0xICogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKSk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogYXV0bzsgLyogZW5hYmxlIGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBkaXNwbGF5IG9uIGhvdmVyICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZS5teF9FdmVudFRpbGVfbWVkaWFMaW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tRXZlbnRCdWJibGVUaWxlX2xpbmUtbWF4LXdpZHRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJltkYXRhLXNlbGY9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUubXhfRXZlbnRUaWxlX21lZGlhTGluZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1lbmQpIDAgMDsgLyogYWxpZ24gd2l0aCBub3JtYWwgbWVzc2FnZXMgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctc3RhcnQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogQ2FzY2FkaW5nIC0gY29tcGFjdCBtb2Rlcm4gbGF5b3V0IG9uIHRoZSBtYWluIHRpbWVsaW5lIGFuZCB0aGUgcmlnaHQgcGFuZWwgKi9cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2dyb3VwLXBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dC10b3AtYXZhdGFyOiAycHg7XG4gICAgICAgIC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jazogMHB4O1xuXG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfZ3JvdXAtcGFkZGluZy10b3ApO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfbGluZS1zcGFjaW5nLWJsb2NrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZXBseUNoYWluIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyAvKiBzYW1lIGFzIHRoZSBwYWRkaW5nIGZvciBub24tY29tcGFjdCAubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvICovXG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbixcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfbGluZS1zcGFjaW5nLWJsb2NrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9lbW90ZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogYWRkIGEgYml0IG1vcmUgc3BhY2UgZm9yIGVtb3RlcyBzbyB0aGF0IGF2YXRhcnMgZG9uJ3QgY29sbGlkZSAqL1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQtdG9wLWF2YXRhcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogQ2FzY2FkaW5nIC0gYXBwbHkgemVybyBwYWRkaW5nIHRvIGV2ZXJ5IGVsZW1lbnQgaW5jbHVkaW5nIG14X0V2ZW50VGlsZV9lbW90ZSAqL1xuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dF9saW5lLXNwYWNpbmctYmxvY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQtdG9wLWF2YXRhcik7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogVGhpcyBhbGlnbnMgdGhlIGF2YXRhciB3aXRoIHRoZSBsYXN0IGxpbmUgb2YgdGhlICovXG4gICAgICAgICAgICAgICAgLyogbWVzc2FnZS4gV2Ugd2FudCB0byBtb3ZlIGl0IG9uZSBsaW5lIHVwIC0gMnJlbSAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAtMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCAubWFya2Rvd24tYm9keSB7XG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICBvbCxcbiAgICAgICAgICAgIGRsLFxuICAgICAgICAgICAgYmxvY2txdW90ZSxcbiAgICAgICAgICAgIHByZSxcbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpOyAvKiAxLzQgb2YgdGhlIG5vbi1jb21wYWN0IG1hcmdpbi1ib3R0b20gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tbGVmdE9mZnNldCk7XG4gICAgLm14X0V2ZW50VGlsZV90cnVuY2F0ZWQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBNZWRpYSBxdWVyeSBmb3IgbW9iaWxlIFVJICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFJvYmluIFRvd25zZW5kIDxyb2JpbkByb2Jpbi50b3duPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X0hpc3RvcnlUaWxlIHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuOnJvb3Qge1xuICAgIC0taXJjLWxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xufVxuXG4ubXhfSVJDTGF5b3V0IHtcbiAgICAtLW5hbWUtd2lkdGg6IDgwcHg7IC8qIGNmLiBpcmNEaXNwbGF5TmFtZVdpZHRoIG9uIFNldHRpbmdzLnRzeCAqL1xuICAgIC0tZXZlbnQtdGlsZS1pcmMtbmFtZS13aWR0aDogdmFyKC0tbmFtZS13aWR0aCk7XG4gICAgLS1pY29uLXdpZHRoOiAxNHB4O1xuICAgIC0tbGluZS1oZWlnaHQ6IHZhcigtLWlyYy1saW5lLWhlaWdodCk7XG4gICAgLS1yaWdodC1wYWRkaW5nOiA1cHg7XG5cbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpICFpbXBvcnRhbnQ7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5teF9OZXdSb29tSW50cm8ge1xuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOyAvKiBDYW5jZWwgdmFyKC0taXJjLWxpbmUtaGVpZ2h0KSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlcGx5Q2hhaW4ge1xuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgb3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IHVuc2V0OyAvKiBVbnNldCBmbGV4LXNocmluayB0byBwcmV2ZW50IGxvbmcgZGlzcGxheSBuYW1lIGJsb3dvdXQgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhZGRpbmcgdGhlIGljb24gYmFjayBpbiB0aGUgZG9jdW1lbnQgZmxvd1xuICAgICAgICAgKiBpZiBpdCdzIG5vdCBwcmVzZW50LCB0aGVyZSdzIG5vIHVud2FudGVkIHdhc3RlZCBzcGFjZVxuICAgICAgICAgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Qcm9maWxlUmVzaXplciB7XG4gICAgICAgIC0tcmVzaXplci13aWR0aDogMTVweDtcbiAgICAgICAgLS1yZXNpemVyLWExMXk6IDNweDsgLyogTWFnaWMgbnVtYmVyLCB0byBiZSByZXBsYWNlZCB3aXRoIHNvbWV0aGluZyBtb3JlIHByb3BlciBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBhMTF5ICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1yZXNpemVyLXdpZHRoKTtcbiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLyogQWRkIHdpZHRoIG9mIGV2ZXJ5IGVsZW1lbnQgcmVuZGVyZWQgYmVmb3JlIHRoZSByZXNpemVyIChpbmNsdWRpbmcgcGFkZGluZyBmb3IgdGhlIGF2YXRhciBhbmQgdGhlIGRpc3BsYXlcbiAgICAgICAgICAgbmFtZSksIHN1YnRyYWN0aW5nIHRoZSByZXNpemVyIHdpZHRoIGl0c2VsZiB0byBwcmV2ZW50IHRoZSByZXNpemVyIGZyb20gb3ZlcmxhcHBpbmcgdGhlIHRleHQgYW5kIG1vdmluZ1xuICAgICAgICAgICB0aGUgcmVzaXplciBhIGJpdCB0byB0aGUgbGVmdCB0byBtYWtlIGl0IGVhc2llciB0byBhdm9pZCBzZWxlY3RpbmcgdGhlIHJlc2l6ZXIgd2hlbiBoaWdobGlnaHRpbmcgdGV4dC5cbiAgICAgICAgICAgUGxlYXNlIG5vdGUgdGhhdCBNZXNzYWdlVGltZXN0YW1wIGRvZXMgbm90IGhhdmUgaW5saW5lIHBhZGRpbmcuICovXG4gICAgICAgIGluc2V0LWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpICsgdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArXG4gICAgICAgICAgICAgICAgdmFyKC0tcmlnaHQtcGFkZGluZykgKyB2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLXJpZ2h0LXBhZGRpbmcpIC0gdmFyKC0tcmVzaXplci13aWR0aCkgLVxuICAgICAgICAgICAgICAgIHZhcigtLXJlc2l6ZXItYTExeSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVkSWNvblZpZXcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbiB7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogMTIgYmVjYXVzZSBoZWlnaHQgaXMgNTAgYnV0IGJ1dHRvbiBpcyBvbmx5IDM4ID0gMTIrKDUwLTM4KSA9IDI0ICovXG4gICAgYm90dG9tOiAxMnB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIC8qIGdpdmUgaXQgYSBmaXhlZCBoZWlnaHQgc28gdGhlIGJhZGdlIGRvZXNuJ3QgbWFrZSAqL1xuICAgIC8qIGl0IHRhbGxlciBhbmQgcG9wIHVwd2FyZHMgd2hlbiB2aXNpYmxlICovXG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIHRvIGJlIGFibGUgdG8gZ2V0IGl0IGNlbnRlcmVkICovXG4gICAgLyogd2l0aCB0ZXh0LWFsaWduIGluIHBhcmVudCAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbn1cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9oaWdobGlnaHQgLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9iYWRnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25fc2Nyb2xsRG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDEuM3B4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiA3cHggOHB4IDdweCA2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpdmVDb250ZW50U3VtbWFyeSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9MaXZlQ29udGVudFN1bW1hcnlfdGV4dCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5X3RleHRfYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeV9wYXJ0aWNpcGFudHMgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZW1iZXJMaXN0SGVhZGVyVmlldyB7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgIG1heC1oZWlnaHQ6IDExMnB4O1xuXG4gICAgLm14X01lbWJlckxpc3RIZWFkZXJWaWV3X2NvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19pbnZpdGVfc21hbGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19pbnZpdGVfbGFyZ2Uge1xuICAgICAgICB3aWR0aDogMjg4cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjQwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyTGlzdFZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAubXhfTWVtYmVyTGlzdFZpZXdfY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0Vmlld19zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyVGlsZVZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCk7XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfbGVmdCxcbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfcmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2xlZnQge1xuICAgICAgICBmbGV4LWJhc2lzOiAyMDlweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X25hbWUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld191c2VyTGFiZWwge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2F2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfcHJlc2VuY2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICBib3R0b206IDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yZXBsYWNlZF93cmFwcGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcmVwbGFjZWRfdmFsaWduIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3Jvb21SZXBsYWNlZF9pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIHdpZHRoOiAzMXB4O1xuICAgIGhlaWdodDogMzFweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb29tUmVwbGFjZWRfaGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDI2cHg7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbldyYXBwZXIge1xuICAgIGhlaWdodDogMTJweDsgLyogTWF0Y2ggdGhlIGhlaWdodCBvZiB0aGUgRTJFIGljb24gZm9yIGFsaWdubWVudCAqL1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHRvcDogMjJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IC8qIENvdW50ZXJhY3QgdGhlIEUyRUljb24gY2xhc3MgKi9cbiAgICBtYXJnaW4tbGVmdDogM3B4OyAvKiBDb3VudGVyYWN0IHRoZSBFMkVJY29uIGNsYXNzICovXG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX25vcGVybV9lcnJvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgZmxleDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuXG4gICAgcHJlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ0ZS1jb2RlLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgbWF4LWhlaWdodDogMTIwcHg7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIC8qIGhhY2sgZm9yIEZGIGFzIHZlcnRpY2FsIGFsaWdubWVudCBvZiBjdXN0b20gcGxhY2Vob2xkZXIgdGV4dCBpcyBicm9rZW4gKi9cbiAgICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uX2hpZ2hsaWdodCB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbiB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDUwJSwgdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSksIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmLm14X01lc3NhZ2VDb21wb3Nlcl9jbG9zZUJ1dHRvbk1lbnUge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxufVxuLm14X01lc3NhZ2VDb21wb3Nlcl93eXNpd3lnIHtcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2FjdGlvbnMge1xuICAgICAgICAvKiBIZWlnaHQgb2YgdGhlIGNvbXBvc2VyIGVkaXRvciAqL1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLm14X01lZGlhQm9keSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b24ge1xuICAgICAgICBAbWl4aW4gY29tcG9zZXJCdXR0b24gNXB4LCAkdGVydGlhcnktY29udGVudCwgJHBhbmVscztcblxuICAgICAgICAmLm14X01lc3NhZ2VDb21wb3Nlcl9jbG9zZUJ1dHRvbk1lbnUge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQtMzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b25NZW51IHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZzogMXB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfc2VuZE1lc3NhZ2Uge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcblxuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tb24tc29saWQtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX25vcGVybV9lcnJvciB7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG59XG5cbi8qKlxuICogVW5zdGFibGUgY29tcGFjdCBtb2RlXG4gKi9cblxuLm14X01lc3NhZ2VDb21wb3Nlci5teF9NZXNzYWdlQ29tcG9zZXItLWNvbXBhY3Qge1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uV3JhcHBlciB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpub3QoLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVTdGF0dXMpIHtcbiAgICAgICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogY2FsYygzMnB4ICogNik7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvKiBlcXVhbCB0byB6LWluZGV4IG9mIG14X1JlcGx5UHJldmlldyBhbmQgbXhfUm9vbVZpZXdfc3RhdHVzQXJlYSAoMTAwMCkgKi9cbiAgICAvKiBidXQgYXMgaXQgYXBwZWFycyBhZnRlciB0aGVtIGluIHRoZSBET00sIHdpbGwgYXBwZWFyIG9uIHRvcC4gKi9cbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgJi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfc2hvd24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhcl9idXR0b24ge1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfYnV0dG9uVG9vbHRpcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiA1NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9OZXdSb29tSW50cm8ge1xuICAgIG1hcmdpbjogNDBweCAwIDQ4cHggNjRweDtcblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaGFzQXZhdGFyOm5vdCgubXhfTWluaUF2YXRhclVwbG9hZGVyX2J1c3kpOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgLm14X01pbmlBdmF0YXJVcGxvYWRlcl9pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9OZXdSb29tSW50cm9fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgZ2FwOiAxNHB4IDEycHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlld190ZXh0IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3OmhvdmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogdG8ga2VlcCB0aGUgY2hldnJvbiBhbGlnbmVkICovXG5cbiAgICAubXhfT3ZlcmZsb3dUaWxlVmlld19jaGV2cm9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfY2hldnJvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMnB4KTsgLyogY2VudGVyICovXG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlld19pY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlubmVkRXZlbnRUaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIC5teF9QaW5uZWRFdmVudFRpbGVfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgLyogUmVtb3ZlIGF2YXRhciB3aWR0aCBhbmQgc3BhY2UgYmV0d2VlbiB0aGUgYXZhdGFyIGFuZCB0aGUgd3JhcHBlciAqL1xuICAgICAgICAvKiBXZSBuZWVkIGl0IHRvIG1ha2UgdGhlIGxvY2F0aW9uIGZpdCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tY3BkLXNwYWNlLTR4KSAtIDMycHgpO1xuICAgICAgICAvKiBQcmV2ZW50IGEgbG9uZyBzZW5kZXIgbmFtZSB0byBvdmVyZmxvdyB0aGUgdGlsZSAqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9QaW5uZWRFdmVudFRpbGVfdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAubXhfUGlubmVkRXZlbnRUaWxlX3NlbmRlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZEV2ZW50VGlsZV90aHJlYWQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmlsbDogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUGlubmVkTWVzc2FnZUJhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogNjRweCA9IDYzcHggKyAxcHggZnJvbSB0aGUgYm90dG9tIGJvcmRlciAqL1xuICAgIGhlaWdodDogNjNweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgLyogRnJvbSBmaWdtYSAqL1xuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNngpIGNhbGModmFyKC0tY3BkLXNwYWNlLTJ4KSAqIC0xKSByZ2IoMjcsIDI5LCAzNCwgMC4xKTtcblxuICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21haW4ge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAgICAgICAgIFwiaW5kaWNhdG9ycyBwaW5JY29uIHRpdGxlXCIgYXV0b1xuICAgICAgICAgICAgICAgIFwiaW5kaWNhdG9ycyBwaW5JY29uIG1lc3NhZ2VcIiBhdXRvO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvcnMge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBpbmRpY2F0b3JzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTYwMCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3ItLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3ItLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9QaW5JY29uIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogcGluSWNvbjtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIGZpbGw6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeS1hbHBoYSk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl90aXRsZSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IHRpdGxlO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl90aXRsZV9jb3VudGVyIHtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21lc3NhZ2Uge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBtZXNzYWdlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9yZWRhY3RlZE1lc3NhZ2Uge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBtZXNzYWdlO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9hY3Rpb25zIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5teF9QaW5uZWRNZXNzYWdlQmFubmVyW2RhdGEtc2luZ2xlLW1lc3NhZ2U9XCJ0cnVlXCJdIHtcbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9jb250ZW50IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJpbmRpY2F0b3JzIHBpbkljb24gbWVzc2FnZVwiIGF1dG87XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfbWVzc2FnZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ByZXNlbmNlSWNvblZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld19vbmxpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X29mZmxpbmUsXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfZG5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld191bmF2YWlsYWJsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1xdWF0ZXJuYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUHJlc2VuY2VMYWJlbCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLm14X1ByZXNlbmNlTGFiZWxfb25saW5lIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc3VjY2Vzcy1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAtLVJlYWRSZWNlaXB0R3JvdXBfRXZlbnRCdWJibGVUaWxlLXNwYWNpbmctZW5kOiA3OHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3JlbWFpbmRlciB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAvKiBDb21wb3VuZCB1c2VzIGEgYm9yZGVyIG9uIGRlZmF1bHQgYXZhdGFycyBidXQgbm8gYm9yZGVyIG9uIGFjdHVhbCBpbWFnZXMsIHdlIHdhbnQgYSBib3JkZXIgaW4gYWxsIGNhc2VzICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBSZXNldCB0aGUgbGluZSBoZWlnaHQgYXMgd2UgYXJlIG5vIGxvbmdlciBib3gtc2l6aW5nIGJvcmRlci1ib3guIDE0cHggYmVjYXVzZSBhdmF0YXIgaXMgc2V0IGF0IDE0cHggaW4gY29tcG9uZW50ICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiBsZWZ0LCB0b3A7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGxlZnQgdmFyKC0tdHJhbnNpdGlvbi1zaG9ydCkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgdG9wIHZhcigtLXRyYW5zaXRpb24tc3RhbmRhcmQpIGVhc2Utb3V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUmVhZFJlY2VpcHRHcm91cF9wb3B1cCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG5cbiAgICByaWdodDogMDtcblxuICAgICYubXhfQ29udGV4dHVhbE1lbnVfdG9wIHtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgJi5teF9Db250ZXh0dWFsTWVudV9ib3R0b20ge1xuICAgICAgICBib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF90aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbjogMTZweCAxNnB4IDhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIC8qIHNob3VsZG7igJl0IGJlIGFjdHVhbGx5IGZvY3VzYWJsZSAqL1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3BlcnNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOyAvKiBMb25nIG5hbWVzIHNob3VsZCBub3Qgc2hyaW5rIHRoZSBwaWN0dXJlICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX25hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJweCAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1JlYWRSZWNlaXB0R3JvdXBfcGVyc29uLS10b29sdGlwIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXBseVByZXZpZXcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgbWF4LWhlaWdodDogNTB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC5teF9SZXBseVByZXZpZXdfc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIDA7XG5cbiAgICAgICAgLm14X1JlcGx5UHJldmlld19oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDhweDtcblxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuXG4gICAgICAgICAgICAubXhfUmVwbHlQcmV2aWV3X2hlYWRlcl9jYW5jZWwgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICAubXhfUmVwbHlQcmV2aWV3IHtcbiAgICAgICAgLyogQWRkIGJveC1zaGFkb3cgdG8gdGhlIHJlcGx5IHByZXZpZXcgb24gdGhlIG1haW4gKGxlZnQpIHBhbmVsIG9ubHkuICovXG4gICAgICAgIC8qIEl0IGlzIG5vdCBhZGRlZCB0byB0aGUgcHJldmlldyBvbiB0aGUgKHJpZ2h0KSBwYW5lbCBmb3IgdGhyZWFkcyBhbmQgYSBjaGF0IHdpdGggYSBtYXhpbWl6ZWQgd2lkZ2V0LiAqL1xuICAgICAgICBib3gtc2hhZG93OiAwcHggLTE2cHggMzJweCAkY29tcG9zZXItc2hhZG93LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUdWxpciBBc29rYW4gPHR1bGlyQG1hdW5pdW0ubmV0PlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVwbHlUaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMnB4IDA7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcInNlbmRlclwiIGF1dG9cbiAgICAgICAgICAgIFwibWVzc2FnZVwiIGF1dG9cbiAgICAgICAgICAgIC8gMTAwJTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlIDAuMTVzO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBhdm9pZCBvdmVyZmxvdyB3aXRoIHdpZGUgY29udGVudCAqL1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUmVkYWN0ZWRCb2R5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgfVxuXG4gICAgLm14X1JlZGFjdGVkQm9keSxcbiAgICAubXhfSGlkZGVuQm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDJweCAyMHB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogV2UgZG8gcmVwbHkgc2l6ZSBsaW1pdGluZyB3aXRoIENTUyB0byBhdm9pZCBkdXBsaWNhdGluZyB0aGUgVGV4dHVhbEJvZHkgY29tcG9uZW50LiAqL1xuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgJHJlcGx5LWxpbmVzOiAyO1xuICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG5cbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRyZXBseS1saW5lcztcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2JvZHkubXhfRXZlbnRUaWxlX2JpZ0Vtb2ppIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4ICFpbXBvcnRhbnQ7IC8qIFNhbWUgYXMgdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpICovXG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE0cHggIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgdGhlIGJpZyBlbW9qaSBvdmVycmlkZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaW4gb3JkZXIgdG8ga2VlcCB0aGUgbWVzc2FnZSBvbiB0d28gbGluZXMsIHdlIG5lZWQgdG8gbWFrZSB0aGUgYm9keSBpbmxpbmUgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFRoZSBhbm5vdGF0aW9uIHdyYXBwZXIgaXMgZmxleCBpbiBub3JtYWwgdGltZWxpbmUgbWVzc2FnZXMsIGJ1dCB0aGF0IHN0b3BzXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcCBmcm9tIHRyaW1taW5nIGxvbmcgZWRpdGVkIHF1b3RlcyBkb3duIHRvIHR3byBsaW5lcy4gKi9cbiAgICAgICAgW2RhdGEtdGV4dHVhbC1ib2R5LWFubm90YXRpb24td3JhcHBlcl0ge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIaWRlIGxpbmUgbnVtYmVycyBhbmQgZWRpdGVkIGluZGljYXRvciAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmVOdW1iZXJzLFxuICAgICAgICBbZGF0YS10ZXh0dWFsLWJvZHktZWRpdGVkLW1hcmtlcl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEhhY2sgdG8gY3V0IGNvbnRlbnQgaW4gPHByZT4gdGFncyB0b28gKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyID4gcHJlIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcmVwbHktbGluZXM7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWFya2Rvd24tYm9keSBibG9ja3F1b3RlLFxuICAgICAgICAubWFya2Rvd24tYm9keSBkbCxcbiAgICAgICAgLm1hcmtkb3duLWJvZHkgb2wsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHAsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHByZSxcbiAgICAgICAgLm1hcmtkb3duLWJvZHkgdGFibGUsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfUmVwbHlUaWxlX2luZm8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5VGlsZV9pbmxpbmUgPiBhIHtcbiAgICAgICAgLyogUmVuZGVyIHJlcGxpZXMgdG8gZW1vdGVzIGlubGluZSB3aXRoIHRoZSBzZW5kZXIgYXZhdGFyICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcInNlbmRlciAgICAgICAgbWVzc2FnZVwiIGF1dG9cbiAgICAgICAgICAgIC8gbWF4LWNvbnRlbnQgYXV0bztcbiAgICAgICAgZ2FwOiA0cHg7IC8qIGluY3JlYXNlIHNwYWNpbmcgKi9cbiAgICB9XG5cbiAgICAubXhfUmVwbHlUaWxlX3NlbmRlciB7XG4gICAgICAgIGdyaWQtYXJlYTogc2VuZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgLyogUHJldmVudCBjcnVzaGluZyBieSB0aGUgZmxleGJveCAqL1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgY2FsYyh2YXIoLS1jcGQtc3BhY2UtM3gpICsgdmFyKC0tY3BkLXNwYWNlLTEtNXgpKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgYnV0dG9uOmhhcyhzdmcubXhfUm9vbUhlYWRlcl90b2dnbGVkKSB7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctaG92ZXI7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm9XcmFwcGVyIHtcbiAgICAvKiB1bnNldCBidXR0b24gc3R5bGVzICovXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm8ge1xuICAgIC8qIFdlIHdhbnQgdGhlIHNwYWNpbmcgdG8gYmUgNjRweCwgMTN4ID0gNTJweCBidXQgd2UgaGF2ZSBhIGZsZXggZ2FwIG9mXG4gICAgICAgMTJweCBzZXQgb24gdGhlIGZsZXggY29udGFpbmVyLCB3aGljaCBzdW1zIHVwIHRvIDY0ICovXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEzeCk7XG59XG5cbi5teF9Sb29tSGVhZGVyX3RydW5jYXRlZCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X1Jvb21IZWFkZXJfaGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfUm9vbUhlYWRlcl9pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0ZhY2VQaWxlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuXG4gICAgLyogUm9vbUF2YXRhciBkb2Vzbid0IHBhc3MgY2xhc3NlcyBkb3duIHRvIGF2YXRhclxuICAgIFNvIHNldCBzdHlsZSBoZXJlXG4gICAgdXNpbmcgZGl2IGJlY2F1c2UgY29tcG91bmQgY2xhc3NlcyBhcmUgbm90IHN0YWJsZSAqL1xuICAgID4gZGl2IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfRmFjZVBpbGVfdG9nZ2xlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWNjZXNzLXN1YnRsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0Jhc2VBdmF0YXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl92aWRlb0NhbGxPcHRpb24ge1xuICAgIC8qIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGVtZW50LWhxL2NvbXBvdW5kL2lzc3Vlcy8zMzEgKi9cbiAgICBtaW4td2lkdGg6IDI0MHB4O1xufVxuXG4ubXhfUm9vbUhlYWRlciAubXhfUm9vbUhlYWRlcl90b2dnbGVkIHtcbiAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUluZm9MaW5lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Sb29tSW5mb0xpbmVfbWVtYmVycyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIsK3XCI7IC8qIHZpc3VhbCBzZXBhcmF0b3IgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBOb3JkZWNrIElUICsgQ29uc3VsdGluZyBHbWJIXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tS25vY2tzQmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfcGFyYWdyYXBoIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2xpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9hY3Rpb24sXG4ubXhfUm9vbUtub2Nrc0Jhcl9hdmF0YXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uICsgLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyICsgLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtNHgpICogLTEpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdCYXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblxuICAgICAgICAmLm14X1Jvb21QcmV2aWV3QmFyX3NwaW5uZXJUaXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMyxcbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSBwIHtcbiAgICAgICAgLyogYnJlYWstd29yZCwgd2l0aCBmYWxsYmFjayB0byBicmVhay1hbGwsIHdoaWNoIGlzIHdpZGVyIHN1cHBvcnRlZCAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9mb290ZXIge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIHAge1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX3BhbmVsIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAyMHB4O1xuXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBhZGRpbmc6IDNweCA4cHg7XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFdpdGggbWF4aW1pc2VkIHdpZGdldHMsIHRoZSBwYW5lbCBmaXRzIGluIGJldHRlciB3aGVuIHJvdW5kZWQgKi9cbi5teF9NYWluU3BsaXRfbWF4aW1pc2VkV2lkZ2V0IC5teF9Sb29tUHJldmlld0Jhcl9wYW5lbCB7XG4gICAgbWFyZ2luOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTsgLyogU2hhcmVkIHdpdGggcmlnaHQgcGFuZWwgKi9cbiAgICBtYXJnaW4tdG9wOiAwOyAvKiBBbHJlYWR5IGNvdmVyZWQgYnkgYXBwcyBkcmF3ZXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9kaWFsb2cge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3gtc2l6aW5nOiBjb250ZW50O1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICAvKiBNYXRjaGVzIHRoZSByb29tIHByZXZpZXcgY2FyZCB0aGlzIHN0YW5kcyBpbiBwbGFjZSBvZiwgYW5kIHRoZSBwYW5lbCBmb3JtIG9mIHRoaXMgc2FtZSBiYXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9tZXNzYWdlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDUwcHg7IC8qIGV4dHJhIHdpZGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgLyogdG8gYWNjb3VudCBmb3IgdGhlIHBhZGRpbmcgb2YgdGhlIHByaW1hcnkgYnV0dG9uIHdoaWNoIGNhdXNlcyBpbmNvbnNpc3RlbnQgbG9vayBiZXR3ZWVuICovXG4gICAgICAgICAgICAvKiBzdWJzZXF1ZW50IHNlY29uZGFyeSAodGV4dCkgYnV0dG9ucyAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1Jvb21QcmV2aWV3QmFyX0ludml0ZSB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9JbnZpdGUgaDMge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbmEubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlcl9teGlkIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2Z1bGxXaWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS02eCkgIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgU3BhY2VSb29tVmlldydzIGRlZmF1bHQgcGFkZGluZyAqL1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9ub3RpY2Uge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2ludml0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfaW52aXRlcl9uYW1lIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9pbnZpdGVyX214aWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2F2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF92aWRlbyB7XG4gICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKCg1MHB4ICsgMiAqIDNweCkgLyAyKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgICAgICAgICBsZWZ0OiBjYWxjKC01MHB4IC8gNCAtIDNweCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBYWFggUmVtb3ZlIHRoaXMgd2hlbiB2aWRlbyByb29tcyBsZWF2ZSBiZXRhICovXG4gICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5teF9Sb29tUHJldmlld0NhcmRfbmFtZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIFNwYWNlUm9vbVZpZXcncyBkZWZhdWx0IG1hcmdpbnMgKi9cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX3RvcGljIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0NhcmRfam9pbkJ1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2VhcmNoQXV4UGFuZWwge1xuICAgIC8qIHVzZSBgbWluLWhlaWdodGAgcmF0aGVyIHRoYW4gaGVpZ2h0LCB0byBhbGxvdyByb29tIGZvciB0aGUgdGV4dCB0byB3cmFwIGlmIHRoZSB3aW5kb3cgaXMgbmFycm93ICovXG4gICAgbWluLWhlaWdodDogODRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9zdW1tYXJ5IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0OyAvKiBmbGV4ICovXG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVNlYXJjaEF1eFBhbmVsX3N1bW1hcnlfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaFdhcm5pbmcge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogZmxleCAqL1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nQmFyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mby1wbGludGgtYmctY29sb3I7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl93cmFwcGVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9oZWFkZXIge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfYm9keSB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl91cGdyYWRlbGluayB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9zbWFsbCB7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDcwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kTWVzc2FnZUNvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC8qIG1pbi1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyB0aGUgbXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQgKi9cbiAgICAgICAgLyogc3RpbGwgc3RheXMgdmVydGljYWxseSBjZW50ZXJlZCB3aGVuIGxlc3MgdGhhbiA1NXB4LiAqL1xuICAgICAgICAvKiBXZSBhbHNvIHNldCB0aGlzIHRvIGVuc3VyZSB0aGUgdm9pY2UgbWVzc2FnZSByZWNvcmRpbmcgd2lkZ2V0ICovXG4gICAgICAgIC8qIGRvZXNuJ3QgY2F1c2UgYSBqdW1wLiAqL1xuICAgICAgICBtaW4taGVpZ2h0OiA1NXB4O1xuXG4gICAgICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgLyogaW4gaXQncyBwYXJlbnQgdmVydGljYWxseSAqL1xuICAgICAgICAgICAgLyogd2hpbGUga2VlcGluZyB0aGUgYXV0b2NvbXBsZXRlIGF0IHRoZSB0b3AgKi9cbiAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgICAgICAgIC8qIG1heC1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyBhdXRvY29tcGxldGUgZG9lc24ndCBnZXQgc2Nyb2xsZWQgdG9vICovXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubXhfU3RpY2tlcnNfY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRfY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogMzAwcHg7XG59XG5cbiNteF9wZXJzaXN0ZWRFbGVtZW50X3N0aWNrZXJQaWNrZXIge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIC8qIFN0aWNrZXIgcGlja2VyIGRlcGVuZHMgb24gdGhlIGZpeGVkIGhlaWdodCBwcmV2aW91c2x5IHVzZWQgZm9yIGFsbCB0aWxlcyAqL1xuICAgICAgICBoZWlnaHQ6IDI4M3B4OyAvKiBoZWlnaHQgb2YgdGhlIHBvcG91dCBtaW51cyB0aGUgQXBwVGlsZSBtZW51IGJhciAqL1xuICAgIH1cbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciBwIHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfU3RpY2tlcnNfYWRkTGluayB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaGlyZFBhcnR5TWVtYmVySW5mbyB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub3BVbnJlYWRNZXNzYWdlc0JhciB7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNHB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAzOHB4O1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgbGVmdDogMTFweDtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXJfc2Nyb2xsVXAge1xuICAgIGhlaWdodDogMzhweDtcbiAgICB3aWR0aDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyX21hcmtBc1JlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDEuM3B4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgLyogNDJweCBpcyB0aGUgcGFkZGluZy1sZWZ0IG9mIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciBpbiByZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzcyAqL1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC00MnB4ICsgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykpO1xuXG4gICAgLm14X1VzZXJJZGVudGl0eVdhcm5pbmdfcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVXNlcklkZW50aXR5V2FybmluZ19tYWluIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5teF9Vc2VySWRlbnRpdHlXYXJuaW5nX21haW4uY3JpdGljYWwge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1VzZXJJZGVudGl0eVdhcm5pbmcuY3JpdGljYWwge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNwZC1jb2xvci1yZWQtMTAwKSAwJSwgdmFyKC0tY3BkLWNvbG9yLXRoZW1lLWJnKSAxMDAlKTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlci5teF9NZXNzYWdlQ29tcG9zZXItLWNvbXBhY3QgPiAubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTI1cHggKyB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfc3RvcCB7XG4gICAgLyogMjBweCArIDRweCBwYWRkaW5nICsgMnB4IGJvcmRlciBtYWtlcyB0aGlzIGEgMzJweCBzcXVhcmUgKGFzIGludGVuZGVkKSAqL1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogYmV0d2VlbiB1cyBhbmQgdGhlIHdhdmVmb3JtIGNvbXBvbmVudCAqL1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZGVsZXRlIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogZGlzdGFuY2UgZnJvbSBsZWZ0IGVkZ2Ugb2Ygd2F2ZWZvcm0gY29udGFpbmVyIChjb250YWluZXIgaGFzIHNvbWUgbWFyZ2luIHRvbykgKi9cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdm9pY2UtcmVjb3JkLWljb24tY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfdXBsb2FkaW5nU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZmFpbGVkU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMjFweDtcblxuICAgIC5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV91cGxvYWRTdGF0ZV9iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTm90ZTogcmVtYWluaW5nIGNsYXNzIHByb3BlcnRpZXMgYXJlIGluIHRoZSBQbGF5ZXJDb250YWluZXIgQ1NTLiAqL1xuXG4gICAgLyogZml4ZWQgaGVpZ2h0IHRvIHJlZHVjZSBsYXlvdXQganVtcHMgd2l0aCB0aGUgcGxheSBidXR0b24gYXBwZWFyaW5nICovXG4gICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvMTg0MzEgKi9cbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBtYXJnaW46IDZweDsgLyogZm9yY2UgdGhlIGNvbXBvc2VyIGFyZWEgdG8gcHV0IGEgZ3V0dGVyIGFyb3VuZCB1cyAqL1xuICAgIG1hcmdpbi1yaWdodDogNnB4OyAvKiBpc29sYXRlIGZyb20gc3RvcC9zZW5kIGJ1dHRvbiAqL1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBpbXBvcnRhbnQgZm9yIHRoZSBsaXZlIGNpcmNsZSAqL1xuXG4gICAgJi5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV9yZWNvcmRpbmcge1xuICAgICAgICAvKiBXZSBhcmUgcHV0dGluZyB0aGUgY2lyY2xlIGluIHRoaXMgcGFkZGluZywgc28gd2UgbmVlZCArMTBweCBmcm9tIHRoZSByZWd1bGFyICovXG4gICAgICAgIC8qIHBhZGRpbmcgb24gdGhlIGxlZnQgc2lkZS4gKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBhbmltYXRpb246IHJlY29yZGluZy1wdWxzZSAycyBpbmZpbml0ZTtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2b2ljZS1yZWNvcmQtbGl2ZS1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEycHg7IC8qIDEycHggZnJvbSB0aGUgbGVmdCBlZGdlIGZvciBjb250YWluZXIgcGFkZGluZyAqL1xuICAgICAgICAgICAgdG9wOiAxN3B4OyAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAobWlkZGxlIGFsaWduIHdpdGggY2xvY2spICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgICYubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfcmVjb3JkaW5nIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMTVweDsgLyogdmVydGljYWxseSBjZW50ZXIgKG1pZGRsZSBhbGlnbiB3aXRoIGNsb2NrKSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBUaGUga2V5ZnJhbWVzIGFyZSBzbGlnaHRseSB3ZWlyZCBoZXJlIHRvIGhlbHAgbWFrZSBhIHJhbXBpbmcvcHVuY2ggZWZmZWN0ICovXG4vKiBmb3IgdGhlIHJlY29yZGluZyBkb3QuIFdlIHN0YXJ0IGFuZCBlbmQgYXQgMTAwJSBvcGFjaXR5IHRvIGhlbHAgbWFrZSB0aGUgKi9cbi8qIGRvdCBmZWVsIGEgYml0IGxpa2UgYSByZWFsIGxhbXAgdGhhdCBpcyBibGlua2luZzogdGhlIGFuaW1hdGlvbiBlbmRzIHVwICovXG4vKiBzcGVuZGluZyBhIGxvdCBvZiBpdHMgdGltZSBzaG93aW5nIGEgc3RlYWR5IHN0YXRlIHdpdGhvdXQgYSBmYWRlIGVmZmVjdC4gKi9cbi8qIFRoaXMgbGFtcCBlZmZlY3QgZXh0ZW5kcyBpbnRvIHdoeSB0aGUgMCUgb3BhY2l0eSBrZXlmcmFtZSBpcyBub3QgaW4gdGhlICovXG4vKiBtaWRwb2ludDogbGFtcHMgdGFrZSBsb25nZXIgdG8gdHVybiBvZmYgdGhhbiB0aGV5IGRvIHRvIHR1cm4gb24sIGFuZCB0aGUgKi9cbi8qIGV4dHJhIGZyYW1lcyBnaXZlIGl0IGEgYml0IG9mIGEgcmVhbGlzdGljIHB1bmNoIGZvciB3aGVuIHRoZSBhbmltYXRpb24gaXMgKi9cbi8qIHJhbXBpbmcgYmFjayB1cCB0byAxMDAlIG9wYWNpdHkuICovXG5cbi8qIFRhcmdldCBhbmltYXRpb24gdGltaW5nczogc3RlYWR5IGZvciAxLjVzLCBmYWRlIG91dCBmb3IgMC4zcywgZmFkZSBpbiBmb3IgMC4ycyAqL1xuLyogKGludGVuZGVkIHRvIGJlIHVzZWQgaW4gYSBsb29wIGZvciAycyBhbmltYXRpb24gc3BlZWQpICovXG5Aa2V5ZnJhbWVzIHJlY29yZGluZy1wdWxzZSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAzNSUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICA2NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xOHB4OyAvKiBvZmZzZXQgcGFkZGluZyBmcm9tIG14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHRvIGNlbnRlciBhdmF0YXJzICovXG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBwb3NpdGlvbiB0aGUgaW5kaWNhdG9yIGluIHRoZSBzYW1lIHBsYWNlIGhvcml6b250YWxseSBhcyAubXhfRXZlbnRUaWxlX2F2YXRhci4gKi9cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyB7XG4gICAgZmxleDogMCAwIDgycHg7IC8qIDE4IChwYWRkaW5nIG9uIG1lc3NhZ2UgbGlzdCkgKyA2NCAocGFkZGluZyBvbiBldmVudCBsaW5lcykgKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMgLm14X0Jhc2VBdmF0YXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfcmVtYWluaW5nQXZhdGFyUGxhY2Vob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGNvbG9yOiAkcm9vbXRvcGljLWNvbG9yO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsID4gc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAtLUVkaXRXeXNpd3lnQ29tcG9zZXItcGFkZGluZy1pbmxpbmU6IDNweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIGRpc2FibGUgb3ZlcmZsb3cgKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggdmFyKC0tRWRpdFd5c2l3eWdDb21wb3Nlci1wYWRkaW5nLWlubGluZSk7XG5cbiAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50LTQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwLXJldmVyc2U7IC8qIGRpc3BsYXkgXCJTYXZlXCIgb3ZlciBcIkNhbmNlbFwiICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDsgLyogbWFnaWMgbnVtYmVyIHRvIGFsaWduIHRoZSBlZGdlIG9mIHRoZSBidXR0b24gd2l0aCB0aGUgaW5wdXQgYXJlYSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbiB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kV3lzaXd5Z0NvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxM3B4O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTFweCA2cHggMTJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgLm14X0UyRUljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgN3B4IDA7XG4gICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1pcy1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcblxuICAgICAgICAgICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWlzLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDA7XG5cbiAgICAgICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgICAgIC8qIGluIGl0J3MgcGFyZW50IHZlcnRpY2FsbHkgKi9cbiAgICAgICAgICAgICAgICAvKiB3aGlsZSBrZWVwaW5nIHRoZSBhdXRvY29tcGxldGUgYXQgdGhlIHRvcCAqL1xuICAgICAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICAgICAgLyogdGhlIGxpbmUgaGVpZ2h0IGlzICRmb250LTIycHggKHNldCBpbiBfRWRpdG9yLnBjc3MpIGFuZCB3ZSB3YW50IHRvIGRpc3BsYXkgMTYgbGluZXMgKi9cbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDE2ICogJGZvbnQtMjJweCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NlbmRXeXNpd3lnQ29tcG9zZXItZm9jdXNlZCB7XG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAvKiBUaGVzZSBhcmUgc2V0IGluIEphdmFzY3JpcHQgKi9cbiAgICAtLWF2YXRhci1sZXR0ZXI6IFwiXCI7XG4gICAgLS1hdmF0YXItYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgLS1wbGFjZWhvbGRlcjogXCJcIjtcblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC8qIEZvcmNlIGNhcmV0IG5vZGVzIHRvIGJlIHNlbGVjdGVkIGluIGZ1bGwgc28gdGhhdCB0aGV5IGNhbiBiZSAqL1xuICAgICAgICAvKiBuYXZpZ2F0ZWQgdGhyb3VnaCBpbiBhIHNpbmdsZSBrZXlwcmVzcyAqL1xuICAgICAgICAuY2FyZXROb2RlIHtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3ZSBhbHdheXMgaGF2ZSBhIDxici8+IHRhZyBhdCB0aGUgZW5kIG9mIHRoZSBodG1sLCB3ZSBuZWVkIGl0IHRvIGJlIHByZXNlbnQgYXQgZmlyc3QgdGhlbiBoaWRlIGl0IGFzIHNvb24gYXNcbiAgICAgICAgd2UgaGF2ZSBhbnkgb3RoZXIgZWxlbWVudHMgKi9cbiAgICAgICAgYnI6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIC8qIHRoaXMgbWF5IHNlZW0gcmVkdW5kYW50LCBidXQgd2UgbmVlZCB0byBoYW5kbGUgemVybyBjb250ZW50IGZvcm1hdHRpbmcgdGFncywgd2hpY2ggb2NjdXIgd2hlbiB3ZSBzcGxpdCBhXG4gICAgICAgICAgICAgICBmb3JtYXR0aW5nIHRhZyBpbnRvIHBhcmFncmFwaHMgKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIH1cblxuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgbGlzdCB0eXBlIGRpc2MgdG8gbWF0Y2ggcmljaCB0ZXh0IGVkaXRvciAqL1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNzc3O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHByZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlOm5vdChwcmUgKikge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIHNlbGVjdG9yIHJlcHJlc2VudHMgd2hhdCB3aWxsIGJlY29tZSBhIHBpbGxcbiAgICAgICAgbmIgZGVzcGl0ZSB0aGVyZSBiZWluZyBteF9Vc2VyUGlsbCBhbmQgbXhfUm9vbVBpbGwgY2xhc3NlcyBhcHBlbmRlZCB0byB0aGVzZSBwaWxsc1xuICAgICAgICBpbiB0aGUgY3VycmVudCBjb21wb3NlciwgdGhlcmUgZG9uJ3QgYXBwZWFyIHRvIGJlIGFueSBzdHlsZXMgYXNzb2NpYXRlZCB3aXRoIHRob3NlIGNsYXNzZXNcbiAgICAgICAgaW4gdGhpcyByZXBvICovXG4gICAgICAgIGFbZGF0YS1tZW50aW9uLXR5cGVdIHtcbiAgICAgICAgICAgIC8qIGNvbWJpbmUgbXhfUGlsbCBmcm9tIF9QaWxsLnBjc3MgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb250LTFweCAwLjRlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLyogLi4ud2l0aCB0aGUgb3ZlcnJpZGVzIGZyb20gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgKi9cbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAvKiBhdmF0YXIgcHNldWRvIGVsZW1lbnQgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgLyogQWZ0ZXIgY29uc29saWRhdGlvbiwgYWxsIG9mIHRoZSBzdHlsaW5nIGZyb20gX1BpbGwuc2NzcyB3YXMgYmVpbmcgb3ZlcnJpZGRlbixcbiAgICAgICAgICAgICAgICBzbyB0YWtlIHdoYXQgaXMgaW4gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgYXMgdGhlIHN0YXJ0aW5nIHBvaW50ICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLWF2YXRhci1sZXR0ZXIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF2YXRhci1iYWNrZ3JvdW5kKSwgJGJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIGF2YXRhciBqdXN0IHJpZ2h0IGZvciBjb25zaXN0ZW5jeSB3aXRoIHRpbWVsaW5lICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuNHJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogMC4xMnJlbTtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG5cbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYXZhdGFyLWNvbG9yLCAkYXZhdGFyLWluaXRpYWwtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTAtNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudF9wbGFjZWhvbGRlcjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdmFyKC0tcGxhY2Vob2xkZXIpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfV3lzaXd5Z0NvbXBvc2VyX0F1dG9Db21wbGV0ZVdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIER1ZSB0byB0aGUgZmFjdCB0aGF0IGVkaXRpbmcgYSBtZXNzYWdlIG5vdyBoYXMgYSBsYXJnZXIgYW1vdW50IG9mIGdyZXlcbiAgICBjb2xvdXIgYWJvdmUgaXQgKGR1ZSB0byB0aGUgcmljaCB0ZXh0IGJ1dHRvbnMgYWJvdmUgdGhlIGNvbXBvc2VyKSwgd2UgbmVlZFxuICAgIHRvIGdpdmUgdGhlIGF1dG9jb21wbGV0ZSBhIGJpdCBtb3JlIHZpc3VhbCBzZXBhcmF0aW9uIGJ5IHVzaW5nIGEgYm9yZGVyLlxuICAgICovXG4gICAgPiAubXhfQXV0b2NvbXBsZXRlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb3JtYXR0aW5nQnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfQnV0dG9uIHtcbiAgICAgICAgLS1zaXplOiAyOHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfQnV0dG9uX2hvdmVyIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFuZWxzO1xuXG4gICAgICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtcblxuICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19kaXNhYmxlZCB7XG4gICAgICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAtLXNpemU6IDE2cHg7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0Zvcm1hdHRpbmdCdXR0b25zX1Rvb2x0aXBfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpbmtNb2RhbCB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIGhlaWdodDogMzQxcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfTGlua01vZGFsX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDdweDtcblxuICAgICAgICAubXhfTGlua01vZGFsX0ZpZWxkIHtcbiAgICAgICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGlua01vZGFsX2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F2YXRhclNldHRpbmdfYXZhdGFyIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgbWluLXdpZHRoOiAxMjBweDsgLyogc28gaXQgZG9lc24ndCBnZXQgY3J1c2hlZCBieSB0aGUgZmxleGJveCBpbiBsYW5ndWFnZXMgd2l0aCBsb25nZXIgd29yZHMgKi9cbiAgICBoZWlnaHQ6IDEyMHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLm14X0F2YXRhclNldHRpbmdfYXZhdGFyRGlzcGxheTpob3ZlciAubXhfQXZhdGFyU2V0dGluZ19ob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJiA+ICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX3NtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJiA+IGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgLm14X0F2YXRhclNldHRpbmdfdXBsb2FkQnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdmF0YXJTZXR0aW5nX3VwbG9hZEJ1dHRvbjpob3ZlcixcbiAgICAubXhfQXZhdGFyU2V0dGluZ191cGxvYWRCdXR0b25fYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9BdmF0YXJTZXR0aW5nX3JlbW92ZU1lbnVJdGVtIHN2Zyxcbi5teF9BdmF0YXJTZXR0aW5nX3JlbW92ZU1lbnVJdGVtIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZvbnRTY2FsaW5nUGFuZWxfcHJldmlldyB7XG4gICAgLS1Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXctcGFkZGluZy1ibG9jazogOXB4O1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTR4KSB2YXIoLS1Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXctcGFkZGluZy1ibG9jaykgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG5cbiAgICAmLm14X0lSQ0xheW91dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA5cHg7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm14X0ZvbnRTY2FsaW5nUGFuZWxfRHJvcGRvd24ge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICAvKiBPdmVycmlkZSBkZWZhdWx0IG14X0ZpZWxkIG1hcmdpbiAqL1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbWFnZVNpemVQYW5lbF9yYWRpb3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2OHB4OyAvKiBrZWVwIHRoZSBib3hlcyBzZXBhcmF0ZSAqL1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlU2l6ZVBhbmVsX3NpemUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHdpZHRoOiAyMjFweDtcbiAgICAgICAgaGVpZ2h0OiAxNDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDsgLyogbW92ZSByYWRpbyBidXR0b24gYXdheSBmcm9tIGJvdHRvbSBlZGdlIGEgYml0ICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludGVncmF0aW9uTWFuYWdlciB7XG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBoZWlnaHQ6IDcwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICB9XG5cbiAgICAubXhfSW50ZWdyYXRpb25NYW5hZ2VyX2xvYWRpbmcsXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9lcnJvciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfSW50ZWdyYXRpb25NYW5hZ2VyX2Vycm9yIGgzIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc191cGdyYWRlUmVxdWlyZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3Nfc3BhY2VzV2l0aEFjY2VzcyB7XG4gICAgPiBoNCB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7IC8qIG1hdGNoZXMgaGVpZ2h0IG9mIGF2YXRhciBmb3Igdi1hbGlnbiAqL1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfcmFkaW9CdXR0b24ge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLm14X1N0eWxlZFJhZGlvQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgICYubXhfU3R5bGVkUmFkaW9CdXR0b25fZGlzYWJsZWQgKyBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgICYgKyBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAmICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19sYWJlbGxlZENoZWNrYm94IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3JlY29tbWVuZGVkIHtcbiAgICBjb2xvcjogJGFjY2VudC0xMDAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGtiZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGtiZC1ib3JkZXItY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4ICRrYmQtYm9yZGVyLWNvbG9yO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc2V0dGluZ3MgZm9ybSBoYXMgYSBkZWZhdWx0IGdhcCBvZiAxMHB4XG4gICAgICogV2Ugd2FudCB0byBoYXZlIGEgYmlnZ2VyIGdhcCBiZXR3ZWVuIHRoZSBsYXlvdXQgb3B0aW9uc1xuICAgICAqL1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KSAhaW1wb3J0YW50O1xuXG4gICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW8ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX2lubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIDEwcHhcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWNwZC1zcGFjZS0yeCkgKyB2YXIoLS1jcGQtc3BhY2UtMC01eCkpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX2lubGluZSxcbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9fRXZlbnRUaWxlUHJldmlldyB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGUgdGhlIGV2ZW50IHRpbGUgc3R5bGUgdG8gbWFrZSBpdCBmaXQgaW4gdGhlIHNlbGVjdG9yXG4gICAgICAgICAqIFR3ZWFrIGFsc28gaG92ZXIgc3R5bGUgYW5kIHJlbW92ZSBhY3Rpb24gYmFyXG4gICAgICAgICAqL1xuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19FdmVudFRpbGVQcmV2aWV3IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBIaWRlIHRoZSBtZXNzYWdlIG9wdGlvbnMgYW5kIG1lc3NhZ2UgYWN0aW9uIGJhciBpbiB0aGUgcHJldmlld1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uLFxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtM3gpICogLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEFkZCBtYXJnaW4gdG8gY2VudGVyIHRoZSBidWJibGVcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEFkZCB0aGUgbGF5b3V0IG1hcmdpbiBhbmQgdGhlIG1hcmdpbiB0byB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgYnViYmxlXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDM0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0gLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBoaWRlIHRoZSBjb250YWluZXIgdXNlZCBmb3Igc3BhY2luZyBjb25zaXN0ZW5jeSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3Mge1xuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXRhaWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1RhYiAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyIHtcbiAgICAvKiBUaGUgbGFicyBub3RpY2UgYmFubmVyIHJlbmRlcnMgZGlyZWN0bHkgYmVsb3cgdGhpcywgc28ga2VlcCB0aGVtIGFwYXJ0LiBXaGVuIGl0IGlzIGFic2VudFxuICAgICAgIHRoZSBtYXJnaW4gY29sbGFwc2VzIHdpdGggdGhlIHNlY3Rpb24ncyBvd24sIGxlYXZpbmcgdGhlIHNwYWNpbmcgYmVsb3cgdW5jaGFuZ2VkLiAqL1xuICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nczJfZXJyb3Ige1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIC8qIFRoZSBhbGVydCBsYXlzIGl0cyBhY3Rpb25zIG91dCBhdCBmbGV4LWJhc2lzIDAsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBicmVhayB0aGUgbGFiZWxcbiAgICAgICAgICAgYWNyb3NzIGxpbmVzIHJhdGhlciB0aGFuIHdyYXBwaW5nIGl0IGJlbG93IHRoZSBtZXNzYWdlLiAqL1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ29tcG91bmQgZHJvcHMgdGhlIGFjdGlvbiBvbnRvIGl0cyBvd24gcm93IGZvciBhbnkgYWxlcnQgdW5kZXIgNjAwcHgsIHdoaWNoIGxlYXZlcyB0aGlzXG4gICAgICAgICAgIHNob3J0IG1lc3NhZ2Ugc2l0dGluZyBiZXNpZGUgYSBtb3N0bHkgZW1wdHkgc2Vjb25kIHJvdy4gV3JhcCBvbiBkZW1hbmQgaW5zdGVhZCwgc28gdGhlXG4gICAgICAgICAgIGFjdGlvbiBvbmx5IG1vdmVzIGJlbG93IHRoZSBtZXNzYWdlIG9uY2UgdGhlIHR3byBnZW51aW5lbHkgc3RvcCBmaXR0aW5nIHNpZGUgYnkgc2lkZS5cbiAgICAgICAgICAgVGhlIGNoaWxkcmVuIGFyZSB0aGUgYWxlcnQncyBjb250ZW50IHJvdyBhbmQgdGhlIG1lc3NhZ2Ugd2l0aGluIGl0LiAqL1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcblxuICAgICAgICAgICAgICAgIC8qIENvbXBvdW5kIHRpbnRzIG9ubHkgdGhlIGljb24gb24gYSBjcml0aWNhbCBhbGVydCBhbmQgbGVhdmVzIHRoZSBtZXNzYWdlIGluIHRoZVxuICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdGV4dCBjb2xvdXIsIHNvIHN0YXRlIGl0IGhlcmUgdG8gcmVhZCBsaWtlIHdhcm5pbmdzIGVsc2V3aGVyZS4gVGhlIGFjdGlvblxuICAgICAgICAgICAgICAgICAgIGlzIGEgc2libGluZyBvZiB0aGlzIGVsZW1lbnQgYW5kIHNvIGtlZXBzIGl0cyBvd24gY29sb3VyLiAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1NlY3Rpb25fc3ViU2VjdGlvbnMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgICAgICAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAubXhfVGFnQ29tcG9zZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gICAgICAgICYubXhfVGFnQ29tcG9zZXJfZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RhZ0NvbXBvc2VyX3RhZ3Mge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIGdhcDogOHB4O1xuXG4gICAgICAgICAgICAubXhfVGFnIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIC5teF9UYWdfZGVsZXRlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxMnB4KTsgLyogKzEycHggdG8gbGluZSB1cCBjZW50ZXIgb2YgJ05vaXN5JyBjb2x1bW4gd2l0aCB0b2dnbGUgc3dpdGNoZXMgKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byByZXBlYXQoMywgNjJweCk7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAvKiBPdmVycmlkZSBTdHlsZWRSYWRpb0J1dHRvbiBkZWZhdWx0IHN0eWxlcyAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBsZWZ0IGFsaWduIHNlY3Rpb24gaGVhZGluZyAqL1xuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3cge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvd0xhYmVsIHtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGxlZ2VuZCBwYWRkaW5nICovXG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAvKiA8bGVnZW5kPiBkb2VzIG5vdCBhY2NlcHQgKi9cbiAgICAvKiBkaXNwbGF5OiBpbmxpbmUgfCBpbmxpbmUtYmxvY2sgKi9cbiAgICAvKiBmb3JjZSBpdCBpbmxpbmUgdXNpbmcgZmxvYXQgKi9cbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRDb2x1bW5MYWJlbCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbn1cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93RXJyb3Ige1xuICAgIC8qIG9jY3VweSBmdWxsIHJvdyAqL1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzAlO1xuICAgIC8qIGNvbGxhcHNlIGhhbGYgb2YgdGhlIGdyaWQtZ2FwICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS0xeCkpO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZmxvYXRpbmdTZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gICAgJiA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIC8qIHNlY3Rpb24gaGVhZGVyICovXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG5cbiAgICAgICAgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAvKiBKdXN0IGZvciBhIGJpdCBvZiBzcGFjaW5nICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19jbGVhck5vdGlmc0J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ubXhfVGFnQ29tcG9zZXIge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7IC8qIGxvdHMgb2YgZGlzdGFuY2UgZnJvbSB0aGUgbGFzdCBsaW5lIG9mIHRoZSB0YWJsZSAqL1xufVxuXG4ubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9Ob3RpZmljYXRpb25Tb3VuZF9icm93c2Uge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc2VjdGlvbi0tZGlzY292ZXJ5X2V4aXN0aW5nX3ZlcmlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMWVtO1xuICAgIH1cbn1cblxuLm14X1Bob25lTnVtYmVyc19pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfUGhvbmVOdW1iZXJzX2lucHV0ID4gLm14X0ZpZWxkIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5teF9QaG9uZU51bWJlcnNfY291bnRyeSB7XG4gICAgd2lkdGg6IDgwcHg7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUG93ZXJMZXZlbFNlbGVjdG9yX0J1dHRvbiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwICwgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByb2ZpbGVTZXR0aW5ncyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1NHB4O1xuXG4gICAgICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdG9waWMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAmID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc190b3BpYy0tcm9vbSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdXNlcklkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IC8qIDE4cHggaXMgYWxyZWFkeSBhY2NvdW50ZWQgZm9yIGJ5IHRoZSA8cD4gYWJvdmUgdGhlIGJ1dHRvbnMgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyIHtcbiAgICAubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyX2hlYWRpbmdfbWFuYWdlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG4gICAgZm9ybSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzRmllbGRzZXQge1xuICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGZpZWxkc2V0PiBzdHlsaW5nICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgIHBhZGRpbmctYmxvY2s6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfbGVnZW5kIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxsZWdlbmQ+IHN0eWxpbmcgKi9cbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NGaWVsZHNldF9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfU2V0dGluZ3NIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLyogT3ZlcnJpZGUgbWFyZ2luIGZyb20gY29tbW9uLnBjc3MgKi9cbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzSGVhZGVyX3JlY29tbWVuZGVkOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBjbGlwLXBhdGg6IGNpcmNsZSg0cHgpO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1NldHRpbmdzU3ViaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3ViaGVhZGVyX3N1Y2Nlc3Mge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc3VjY2Vzcy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJoZWFkZXJfZXJyb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXhpc3RpbmdTcGVsbENoZWNrTGFuZ3VhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0V4aXN0aW5nU3BlbGxDaGVja0xhbmd1YWdlX2xhbmd1YWdlIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc3BlbGxDaGVja0xhbmd1YWdlSW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhlbWVDaG9pY2VQYW5lbF9UaGVtZVNlbGVjdG9ycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogT3ZlcnJpZGUgZm9ybSBkZWZhdWx0IHN0eWxlICovXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KSAhaW1wb3J0YW50O1xuXG4gICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3RvciB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAgICAgJi5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZW5hYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuXG4gICAgICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwZGF0ZUNoZWNrQnV0dG9uX3N1bW1hcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQZXJzb25hbEluZm9TZXR0aW5ncyB7XG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCAsIDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQcm9maWxlU2V0dGluZ3Mge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfZGlzcGxheU5hbWUge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9uYW1lQW5kU3RhdHVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9scyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZF9sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX2FjY291bnRtYW5hZ2VJY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzBweDtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uRGV0YWlscyxcbi5teF9PdGhlclNldHRpbmdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCBmb3JtICovXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX3Nlc3Npb25fdGl0bGUsXG4gICAgLm14X090aGVyU2V0dGluZ3NfdGl0bGUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0VuY3J5cHRpb25EZXRhaWxzIHtcbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfc2Vzc2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2Om50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9DaGFuZ2VSZWNvdmVyeUtleSB7XG4gICAgLm14X0luZm9ybWF0aW9uUGFuZWxfZGVzY3JpcHRpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X0Zvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X2Zvb3RlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0tleVBhbmVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgIFwiaGVhZGVyIGJ1dHRvblwiIGF1dG9cbiAgICAgICAgICAgIFwiY29udGVudCBidXR0b25cIiBhdXRvIC8gMWZyO1xuXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcblxuICAgICAgICAgICAgLm14X0tleVBhbmVsX2tleSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRmlyYSBDb2RlXCIsIG1vbm9zcGFjZTtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NDcxJnQ9dDdsb3pZclNJMUFWWlozVS00XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGJ1dHRvbjtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnktYWxwaGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0tleUZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgLm14X0tleUZvcm1fcGFzc3dvcmQge1xuICAgICAgICAgICAgPiBpbnB1dFtuYW1lPVwicmVjb3ZlcnlLZXlcIl0ge1xuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICogRnJvbSBmaWdtYSBodHRwczovL3d3dy5maWdtYS5jb20vZGVzaWduL3FUV1JmSXRwTzNSZENqblRLUHU0bUwvU2V0dGluZ3M/bm9kZS1pZD0zNzUtNzc1MDYmdD1kODJOZFJCRG9Lc1VlMUM5LTRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICogU2VlIGZpZ21hIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vcVRXUmZJdHBPM1JkQ2puVEtQdTRtTC9TZXR0aW5ncz9ub2RlLWlkPTM3NS03NzUwNiZ0PWQ4Mk5kUkJEb0tzVWUxQzktNFxuICAgICAgICAgICAgICAgICAqIEF2b2lkIHN0cmV0Y2hpbmcgdGhlIGhpZGUvc2hvdyBzeW1ib2wgdG8gdGhlIGhlaWdodCBvZiB0aGUgaW5wdXQsIGFuZCBjZW50cmUgaXQgdmVydGljYWxseS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0LjVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogRnJvbSBmaWdtYSAqL1xuICAgIGJveC1zaGFkb3c6IDAgMS4ycHggMi40cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBleHRyYSBjbGFzcyBmb3Igc3BlY2lmeWluZyB0aGF0IHdlIGRvbid0IG5lZWQgYSBib3JkZXIgKi9cbiAgICAmLm14X0VuY3J5cHRpb25DYXJkX25vQm9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cbn1cblxuLm14X0VuY3J5cHRpb25DYXJkX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uQ2FyZF9lbXBoYXNpc2VkQ29udGVudCB7XG4gICAgc3BhbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4vKiBSZWQgdGV4dCBmb3IgdGhlIFwiRG8gbm90IGNsb3NlIHRoaXMgd2luZG93XCIgd2FybmluZyAqL1xuLm14X1Jlc2V0SWRlbnRpdHlQYW5lbF93YXJuaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NCYW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBnYXA6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfU2V0dGluZ3NCYW5uZXJfY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzSW5kZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyMywgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzU2VjdGlvbiB7XG4gICAgLS1TZXR0aW5nc1RhYl9zZWN0aW9uLW1hcmdpbi1ib3R0b20tcHJlZmVyZW5jZXMtbGFiczogMzBweDtcbiAgICAtLVNldHRpbmdzVGFiX2hlYWRpbmdfbnRoX2NoaWxkLW1hcmdpbi10b3A6IDMwcHg7XG4gICAgLS1TZXR0aW5nc1RhYl90b29sdGlwLW1heC13aWR0aDogMjBweDsgLyogU28gaXQgZml0cyBpbiB0aGUgc3BhY2UgcHJvdmlkZWQgYnkgdGhlIHBhZ2UgKi9cblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLyogQ29tcG91bmQgbGlua3MgY2FycnkgZGF0YS1raW5kIGFuZCBwcm92aWRlIHRoZWlyIG93biBjb2xvdXIuICovXG4gICAgYTpub3QoW2RhdGEta2luZF0pIHtcbiAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU2VjdGlvbl9uZXdVaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1NlY3Rpb25faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1NlY3Rpb25fc3ViU2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NUYWIge1xuICAgIC0tU2V0dGluZ3NUYWJfdG9vbHRpcC1tYXgtd2lkdGg6IDEyMHB4OyAvKiBTbyBpdCBmaXRzIGluIHRoZSBzcGFjZSBwcm92aWRlZCBieSB0aGUgcGFnZSAqL1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBDb21wb3VuZCBsaW5rcyBjYXJyeSBkYXRhLWtpbmQgYW5kIHByb3ZpZGUgdGhlaXIgb3duIGNvbG91ci4gKi9cbiAgICBhOm5vdChbZGF0YS1raW5kXSkge1xuICAgICAgICBjb2xvcjogJGxpbmtzO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAvKiBuZXZlciB3YW50IGZ1bGwgd2lkdGggYnV0dG9uc1xuICAgIGV2ZW50IHdoZW4gb3RoZXIgY29udGVudCBpcyAxMDAlIHdpZHRoICovXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbn1cblxuLm14X1NldHRpbmdzVGFiX3dhcm5pbmdUZXh0IHtcbiAgICBjb2xvcjogJGFsZXJ0O1xufVxuXG4ubXhfU2V0dGluZ3NUYWJfc3Vic2VjdGlvblRleHQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4MHB4OyAvKiBBbGlnbiB3aXRoIHRoZSByZXN0IG9mIHRoZSB2aWV3ICovXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xufVxuXG4ubXhfU2V0dGluZ3NUYWJfc2VjdGlvbiB7XG4gICAgJGVuZC1ndXR0ZXI6IDgwcHg7XG5cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAkZW5kLWd1dHRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRmb250LTQ4cHgpOyAvKiBGb3JjZSB3b3JkIHdyYXAgaW5zdGVhZCBvZiBjb2xsaWRpbmcgd2l0aCB0aGUgc3dpdGNoICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgICAgICBmbG9hdDogaW5saW5lLWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAkZW5kLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzVGFiX3N1YnNlY3Rpb25UZXh0IC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X1NldHRpbmdzVGFiX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05vdGlmaWNhdGlvblNldHRpbmdzVGFiX25vdGlmaWNhdGlvbnNTZWN0aW9uIHtcbiAgICB3aWR0aDogMzYwcHg7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGlucHV0ICsgZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nc1RhYl9taWNyb0NvcHkge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ubXhfTm90aWZpY2F0aW9uU291bmRfc291bmRVcGxvYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBOb3JkZWNrIElUICsgQ29uc3VsdGluZyBHbWJIXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfa25vY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYXZhdGFyIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX25hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3RpbWVzdGFtcCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl91c2VySWQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktc20pO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3NlZU1vcmVPckxlc3Mge1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwIDA7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYWN0aW9uIHtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICsgLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfcGFyYWdyYXBoIHtcbiAgICBtYXJnaW46IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JvbGVzUm9vbVNldHRpbmdzVGFiX2Jhbm5lZExpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5teF9Sb2xlc1Jvb21TZXR0aW5nc1RhYl91bmJhbkJ0biB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VjdXJpdHlSb29tU2V0dGluZ3NUYWJfYWR2YW5jZWRTZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfU2VjdXJpdHlSb29tU2V0dGluZ3NUYWJfd2FybmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogI2ZmMDA2NDsgLyogTWF0Y2ggbGVnYWN5IGljb24gY29sb3VyIHVudGlsIHJlZGVzaWduICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpZWxkLm14X0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWJfY2hlY2tib3hDb250cm9sbGVkRmllbGQge1xuICAgIHdpZHRoOiAyNTZweDtcbiAgICAvKiBMaW5lIHVwIHdpdGggU2V0dGluZ3MgZmllbGQgdG9nZ2xlIGJ1dHRvbiAqL1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSGVscFVzZXJTZXR0aW5nc1RhYl9hY2Nlc3NUb2tlbkRldGFpbHMge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0TGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0Um93LFxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0Um93IHtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX1JhZGlvIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfUmFkaW9IZWxwIHtcbiAgICAvKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kIGhlbHAgbWVzc2FnZSAqL1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfRm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19Ub2dnbGVTd2l0Y2gge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWpvbG5pclVzZXJTZXR0aW5nc1RhYl9saXN0SXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QcmVmZXJlbmNlc1VzZXJTZXR0aW5nc1RhYl9zZWN0aW9uX2hpbnQge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2J1bGtPcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2lnbm9yZWRVc2VycyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfaWdub3JlZFVzZXIge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9pZ25vcmVkVXNlciAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfd2FybmluZyB7XG4gICAgY29sb3I6ICRhbGVydDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG5cbmZvcm0ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfcG9zdGhvZ1NlY3Rpb24ge1xuICAgIC8qIEluaGliaXQgY29tcG91bmQgc3BhY2luZyBoZXJlIGFzIGl0IGNsYXNoZXMgd2l0aCBwcmUtY29tcG91bmQgVUkgKi9cbiAgICBkaXNwbGF5OiBjb250ZW50cyAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9ob21lQWxsUm9vbXNDaGVja2JveCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG5cbiAgICAmICsgZGl2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ4cHg7XG4gICAgfVxufVxuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9jaGVja2JveCBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZUJhc2ljU2V0dGluZ3Mge1xuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUJhc2ljU2V0dGluZ3NfYXZhdGFyQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgICAgICAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOyAvKiB3aGl0ZSBpY29uIGZpbGwgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAxOHB4O1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9TcGFjZUJhc2ljU2V0dGluZ3NfYXZhdGFyX3JlbW92ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VDaGlsZHJlblBpY2tlciB7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24gKyAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAvKiBUbyBtYXRjaCB0aGUgc3BhY2UgYXJvdW5kIHRoZSB0aXRsZSAqL1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZUNoaWxkcmVuUGlja2VyX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZUNyZWF0ZU1lbnVfd3JhcHBlciB7XG4gICAgLyogYmFja2dyb3VuZCBibHVyIGV2ZXJ5dGhpbmcgZXhjZXB0IFNwYWNlUGFuZWwgKi9cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctYmFja2Ryb3AtY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgbGVmdDogNjhweDtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUNyZWF0ZU1lbnVfYmFjayB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBtaW4tY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5saW5lVGVybXNBZ3JlZW1lbnRfY2JDb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0lubGluZVRlcm1zQWdyZWVtZW50X2NoZWNrYm94IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQW5hbHl0aWNzVG9hc3Qge1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmNvbWluZ0NhbGxUb2FzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgLyogcmVzdG9yZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgdXNlciBjYW4gYWNjZXB0L2RlY2xpbmUgKi9cblxuICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9leHBhbmRCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xcztcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9hdmF0YXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9hY3Rpb25CdXR0b24ge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTMxcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgLyogcmVzdG9yZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgdXNlciBjYW4gYWNjZXB0L2RlY2xpbmUgKi9cblxuICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2NhbGxlciB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfdHlwZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGdhcDogMTJweDtcblxuICAgICAgICAgICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgQG1peGluIExlZ2FjeUNhbGxCdXR0b247XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfaWNvbkJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3Qge1xuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6ICRmb250LTE4cHg7XG4gICAgICAgIGhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgY29sb3I6ICNmZmY7IC8qIHdlIGtub3cgdGhhdCBub24tdXJnZW50IHRvYXN0cyBhcmUgYWx3YXlzIHN0eWxlZCB0aGUgc2FtZSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgLyogaW5jbHVkZXMgdGhlIGkxOG4gYmxvY2sgKi9cbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDIzIHggVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hlYWRpbmdfaDEsXG4ubXhfSGVhZGluZ19oMixcbi5teF9IZWFkaW5nX2gzLFxuLm14X0hlYWRpbmdfaDQge1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgIG1hcmdpbi1ibG9jazogdW5zZXQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9IZWFkaW5nX2gxIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXhsLXNlbWlib2xkKTtcbn1cblxuLm14X0hlYWRpbmdfaDIge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbGctc2VtaWJvbGQpO1xufVxuXG4ubXhfSGVhZGluZ19oMyB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9IZWFkaW5nX2g0IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZGVjaW1hbFNhcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZGVjaW1hbFNhcyBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19lbW9qaVNhcyB7XG4gICAgbWFyZ2luOiAyNXB4IDA7XG59XG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2J1dHRvblJvdyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIGRhdGEtd2hhdGludGVudCBtYWtlcyBtb3JlIHNlbnNlIGhlcmUgc2VtYW50aWNhbGx5IGJ1dCB0aGVuIHRoZSB0b29sdGlwIHdvdWxkIHN0YXkgdmlzaWJsZSB3aXRob3V0IHRoZSBidXR0b24gKi9cbi8qIHdoaWNoIGxvb2tzIGJyb2tlbiwgc28gd2UgbWF0Y2ggdGhlIGJlaGF2aW91ciBvZiB0b29sdGlwcyB3aGljaCBpcyBmaW5lIHRvby4gKi9cbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2hpZGRlbiB7XG4gICAgb3BhY2l0eTogMC4wMDE7IC8qIG9wYWNpdHkgMCBjYW4gY2F1c2UgYSByZS1sYXlvdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9ucyB7XG4gICAgLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZTogMTZweDtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvdHRvbTogMzJweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICB6LWluZGV4OiAyMDA7IC8qIFRvIGJlIGFib3ZlIF9hbGxfIGZlZWRzICovXG4gICAgZ2FwOiAxOHB4O1xuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDRweCAwcHggIzAwMDAwMDI2OyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG5cbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fbWljIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFN0YXRlIGJ1dHRvbnMgKi9cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zY3JlZW5zaGFyaW5nIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX29mZiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vZmYtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zY3JlZW5zaGFyaW5nLFxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX3NpZGViYXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogU3RhdGUgYnV0dG9ucyAqL1xuXG4gICAgICAgIC8qIFN0YXRlbGVzcyBidXR0b25zICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9oYW5ndXAge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIFN0YXRlbGVzcyBidXR0b25zICovXG5cbiAgICAgICAgLyogSW52aXNpYmxlIHN0YXRlICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9pbnZpc2libGUge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICAgICAgLyogSW52aXNpYmxlIHN0YXRlICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NhbGxEdXJhdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsVmlldyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4gICAgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLWJhY2tncm91bmQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcm93LWdhcDogMTZweDtcbiAgICBjb2x1bW4tZ2FwOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAvKiBzcXVlZXplIHRoZSBkaWFsIHBhZCBidXR0b25zIHRvZ2V0aGVyIGhvcml6b250YWxseSAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbi5teF9EaWFsUGFkX2J1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXhfRGlhbFBhZF9idXR0b24gLm14X0RpYWxQYWRfYnV0dG9uU3ViVGV4dCB7XG4gICAgZm9udC1zaXplOiA4cHg7XG59XG5cbi5teF9EaWFsUGFkX2RpYWxCdXR0b24ge1xuICAgIC8qIEFsd2F5cyBzaG93IHRoZSBkaWFsIGJ1dHRvbiBpbiB0aGUgY2VudGVyIGdyaWQgY29sdW1uICovXG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgY29sb3I6ICNmZmY7IC8qIG9uIGFsbCB0aGVtZXMgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxQYWQgLm14X0RpYWxQYWQge1xuICAgIHJvdy1nYXA6IDE2cHg7XG4gICAgY29sdW1uLWdhcDogMzJweDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudVdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfaGVhZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAvKiBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBpbnB1dCBsaW5lIGFuZCB0aGUgZGlhbCBidXR0b25zICovXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjI1cztcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9jYW5jZWwge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9oZWFkZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV90aXRsZSB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbGxlZCB7XG4gICAgaGVpZ2h0OiAxLjVlbTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMHB4O1xufVxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsbGVkIGlucHV0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtd2lkdGg6IDE4NXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogOHB4IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMCk7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbFBhZCB7XG4gICAgbWFyZ2luOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxvZ19kaWFsUGFkV3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWwge1xuICAgIHdpZHRoOiAyOTJweDtcbiAgICBoZWlnaHQ6IDM3MHB4O1xuICAgIHBhZGRpbmc6IDE2cHggMHB4IDBweCAwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcblxuICAgIC8qIGEgc2VwYXJhdG9yIGJldHdlZW4gdGhlIGlucHV0IGxpbmUgYW5kIHRoZSBkaWFsIGJ1dHRvbnMgKi9cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1YXRlcm5hcnktY29udGVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIDAuMjVzO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2hlYWRlcjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX3RpdGxlIHtcbiAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9jYW5jZWwge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZmllbGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZmllbGQgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgIC8qIFJlbW92ZSBib3JkZXIgc2VwYXJhdG9yIGJldHdlZW4gcG9zdGZpeCBhbmQgZmllbGQgY29udGVudCAqL1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIGlucHV0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZGlhbFBhZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3IHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcGFuZWwtYmctY29sb3I7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIC8qIFhYWDogUGlQQ29udGFpbmVyIHNldHMgcG9pbnRlci1ldmVudHM6IG5vbmUgLSBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGJhY2sgaW4gYSBiZXR0ZXIgcGxhY2UgKi9cbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcblxuICAgIC5teF9MZWdhY3lDYWxsVmlld190b2FzdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA3NHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB6LWluZGV4OiA1MDtcblxuICAgICAgICAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MTkxYztcbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudF93cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygyMCUgKyAyMHB4KTsgLyogU3BhY2UgZm9yIHRoZSBzaWRlYmFyICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfc3RhdHVzIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2F2YXRhcnNDb250YWluZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19ob2xkQmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZpbHRlcjogYmx1cigyMHB4KTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld19jb250ZW50X2hvbGQgLm14X0xlZ2FjeUNhbGxWaWV3X3N0YXR1cyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL3ZvaXAvcGF1c2VkLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19waXAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubXhfTGVnYWN5Q2FsbFZpZXdfc2lkZWJhcikgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC5teF9WaWRlb0ZlZWRfcHJpbWFyeSB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IHVuc2V0O1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfcGlwIHtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDIwcHggcmdiKDAsIDAsIDAsIDAuMik7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9ucyB7XG4gICAgICAgICAgICBib3R0b206IDEzcHg7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XG5cbiAgICAgICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTgwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X2xhcmdlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgICAgIC8qIFRoZSBsZWZ0IHNpZGUgZ2FwIGlzIGZ1bGx5IGhhbmRsZWQgYnkgdGhpcyBtYXJnaW4uIFRvIHByb2hpYml0IGJsZWVkaW5nIG9uIHdlYmtpdCBicm93c2VyLiAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X2JlbG93V2lkZ2V0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlld0ZvclJvb20ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdGb3JSb29tX1Jlc2l6ZVdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICY6aG92ZXIgLm14X0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbV9SZXNpemVIYW5kbGUge1xuICAgICAgICAgICAgLyogTmVlZCB0byB1c2UgaW1wb3J0YW50IHRvIG92ZXJyaWRlIGVsZW1lbnQgc3R5bGUgYXR0cmlidXRlcyAqL1xuICAgICAgICAgICAgLyogc2V0IGJ5IHJlLXJlc2l6YWJsZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDY0cHg7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyIHtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9waXAge1xuICAgICAgICBjdXJzb3I6IGdyYWI7XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3NlY29uZGFyeUNhbGxJbmZvIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIsK3XCI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2NvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNXB4O1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfY2FsbEluZm8ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfcm9vbU5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgICBoZWlnaHQ6IDE1cHg7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld19zZWNvbmRhcnlDYWxsX3Jvb21OYW1lIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXdTaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEwcHg7XG5cbiAgICB3aWR0aDogMjAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuXG4gICAgPiAubXhfVmlkZW9GZWVkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAmLm14X1ZpZGVvRmVlZF92b2ljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdTaWRlYmFyX3BpcE1vZGUge1xuICAgICAgICB0b3A6IDE2cHg7XG4gICAgICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2ICwgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVmlkZW9GZWVkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogdHJhbnNwYXJlbnQgMnB4IHNvbGlkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi5teF9WaWRlb0ZlZWRfc2Vjb25kYXJ5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjRweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgIH1cblxuICAgICYubXhfVmlkZW9GZWVkX3ZvaWNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVydGVkLWJnLWNvbG9yO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6bm90KC5teF9WaWRlb0ZlZWRfcHJpbWFyeSkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmlkZW9GZWVkX3ZpZGVvIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuXG4gICAgICAgICYubXhfVmlkZW9GZWVkX3ZpZGVvX21pcnJvciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WaWRlb0ZlZWRfbWljIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNSk7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsInByZSBjb2RlLmhsanN7ZGlzcGxheTpibG9jaztvdmVyZmxvdy14OmF1dG87cGFkZGluZzoxZW19Y29kZS5obGpze3BhZGRpbmc6M3B4IDVweH0uaGxqc3tjb2xvcjojMzgzYTQyO2JhY2tncm91bmQ6I2ZhZmFmYX0uaGxqcy1jb21tZW50LC5obGpzLXF1b3Rle2NvbG9yOiNhMGExYTc7Zm9udC1zdHlsZTppdGFsaWN9LmhsanMtZG9jdGFnLC5obGpzLWZvcm11bGEsLmhsanMta2V5d29yZHtjb2xvcjojYTYyNmE0fS5obGpzLWRlbGV0aW9uLC5obGpzLW5hbWUsLmhsanMtc2VjdGlvbiwuaGxqcy1zZWxlY3Rvci10YWcsLmhsanMtc3Vic3R7Y29sb3I6I2U0NTY0OX0uaGxqcy1saXRlcmFse2NvbG9yOiMwMTg0YmJ9LmhsanMtYWRkaXRpb24sLmhsanMtYXR0cmlidXRlLC5obGpzLW1ldGEgLmhsanMtc3RyaW5nLC5obGpzLXJlZ2V4cCwuaGxqcy1zdHJpbmd7Y29sb3I6IzUwYTE0Zn0uaGxqcy1hdHRyLC5obGpzLW51bWJlciwuaGxqcy1zZWxlY3Rvci1hdHRyLC5obGpzLXNlbGVjdG9yLWNsYXNzLC5obGpzLXNlbGVjdG9yLXBzZXVkbywuaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwuaGxqcy10eXBlLC5obGpzLXZhcmlhYmxle2NvbG9yOiM5ODY4MDF9LmhsanMtYnVsbGV0LC5obGpzLWxpbmssLmhsanMtbWV0YSwuaGxqcy1zZWxlY3Rvci1pZCwuaGxqcy1zeW1ib2wsLmhsanMtdGl0bGV7Y29sb3I6IzQwNzhmMn0uaGxqcy1idWlsdF9pbiwuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwuaGxqcy10aXRsZS5jbGFzc197Y29sb3I6I2MxODQwMX0uaGxqcy1lbXBoYXNpc3tmb250LXN0eWxlOml0YWxpY30uaGxqcy1zdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfS5obGpzLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0iLCIvKmxpZ2h0ICovXG4ubWFya2Rvd24tYm9keSB7XG4gIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG4gIC8qKiBDU1MgZGVmYXVsdCBlYXNpbmcuIFVzZSBmb3IgaG92ZXIgc3RhdGUgY2hhbmdlcyBhbmQgbWljcm8taW50ZXJhY3Rpb25zLiAqL1xuICAvKiogQWNjZWxlcmF0aW5nIG1vdGlvbi4gVXNlIGZvciBlbGVtZW50cyBleGl0aW5nIHRoZSB2aWV3cG9ydCAobW92aW5nIG9mZi1zY3JlZW4pLiAqL1xuICAvKiogU21vb3RoIGFjY2VsZXJhdGlvbiBhbmQgZGVjZWxlcmF0aW9uLiBVc2UgZm9yIGVsZW1lbnRzIG1vdmluZyBvciBtb3JwaGluZyB3aXRoaW4gdGhlIHZpZXdwb3J0LiAqL1xuICAvKiogRGVjZWxlcmF0aW5nIG1vdGlvbi4gVXNlIGZvciBlbGVtZW50cyBlbnRlcmluZyB0aGUgdmlld3BvcnQgb3IgYXBwZWFyaW5nIG9uIHNjcmVlbi4gKi9cbiAgLyoqIENvbnN0YW50IG1vdGlvbiB3aXRoIG5vIGFjY2VsZXJhdGlvbi4gVXNlIGZvciBjb250aW51b3VzIGFuaW1hdGlvbnMgbGlrZSBwcm9ncmVzcyBiYXJzIG9yIGxvYWRlcnMuICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMxZjIzMjg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJOb3RvIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ubWFya2Rvd24tYm9keSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogLjJyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5vY3RpY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDE6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGgyOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoMzpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDQ6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGg1OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoNjpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgdmVyc2lvbj0nMS4xJyBhcmlhLWhpZGRlbj0ndHJ1ZSc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHonPjwvcGF0aD48L3N2Zz5cIik7XG4gIG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyB2ZXJzaW9uPScxLjEnIGFyaWEtaGlkZGVuPSd0cnVlJz48cGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J003Ljc3NSAzLjI3NWEuNzUuNzUgMCAwMDEuMDYgMS4wNmwxLjI1LTEuMjVhMiAyIDAgMTEyLjgzIDIuODNsLTIuNSAyLjVhMiAyIDAgMDEtMi44MyAwIC43NS43NSAwIDAwLTEuMDYgMS4wNiAzLjUgMy41IDAgMDA0Ljk1IDBsMi41LTIuNWEzLjUgMy41IDAgMDAtNC45NS00Ljk1bC0xLjI1IDEuMjV6bS00LjY5IDkuNjRhMiAyIDAgMDEwLTIuODNsMi41LTIuNWEyIDIgMCAwMTIuODMgMCAuNzUuNzUgMCAwMDEuMDYtMS4wNiAzLjUgMy41IDAgMDAtNC45NSAwbC0yLjUgMi41YTMuNSAzLjUgMCAwMDQuOTUgNC45NWwxLjI1LTEuMjVhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0xLjI1IDEuMjVhMiAyIDAgMDEtMi44MyAweic+PC9wYXRoPjwvc3ZnPlwiKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGV0YWlscyxcbi5tYXJrZG93bi1ib2R5IGZpZ2NhcHRpb24sXG4ubWFya2Rvd24tYm9keSBmaWd1cmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBjb2xvcjogIzA5NjlkYTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBhYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGIsXG4ubWFya2Rvd24tYm9keSBzdHJvbmcge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIHtcbiAgbWFyZ2luOiAuNjdlbSAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nLWJvdHRvbTogLjNlbTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkOWUwYjM7XG59XG5cbi5tYXJrZG93bi1ib2R5IG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOGM1O1xuICBjb2xvcjogIzFmMjMyODtcbn1cblxuLm1hcmtkb3duLWJvZHkgc21hbGwge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3ViLFxuLm1hcmtkb3duLWJvZHkgc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4ubWFya2Rvd24tYm9keSBjb2RlLFxuLm1hcmtkb3duLWJvZHkga2JkLFxuLm1hcmtkb3duLWJvZHkgcHJlLFxuLm1hcmtkb3duLWJvZHkgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBmaWd1cmUge1xuICBtYXJnaW46IDFlbSAyLjVyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkOWUwYjM7XG4gIGhlaWdodDogLjI1ZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWQ5ZTA7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW5wdXQge1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9YnV0dG9uXSxcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXJlc2V0XSxcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1jaGVja2JveF0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1yYWRpb10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAuNTQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzU5NjM2ZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHI6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keSBocjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtdmFyaWFudDogdGFidWxhci1udW1zO1xufVxuXG4ubWFya2Rvd24tYm9keSB0ZCxcbi5tYXJrZG93bi1ib2R5IHRoIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGV0YWlscyBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYm9yZGVyQ29sb3ItYWNjZW50LWVtcGhhc2lzKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogc29saWQgMXB4IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOm5vdChbY2xhc3NdKTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGE6bm90KFtjbGFzc10pOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lLW9mZnNldDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkga2JkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBmb250OiAxMXB4IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBjb2xvcjogIzFmMjMyODtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjhmYTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ib3JkZXJDb2xvci1tdXRlZCk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSxcbi5tYXJrZG93bi1ib2R5IGgyLFxuLm1hcmtkb3duLWJvZHkgaDMsXG4ubWFya2Rvd24tYm9keSBoNCxcbi5tYXJrZG93bi1ib2R5IGg1LFxuLm1hcmtkb3duLWJvZHkgaDYge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4ubWFya2Rvd24tYm9keSBoMiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QxZDllMGIzO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogLjg3NWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogLjg1ZW07XG4gIGNvbG9yOiAjNTk2MzZlO1xufVxuXG4ubWFya2Rvd24tYm9keSBwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxZW07XG4gIGNvbG9yOiAjNTk2MzZlO1xuICBib3JkZXItbGVmdDogLjI1ZW0gc29saWQgI2QxZDllMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwsXG4ubWFya2Rvd24tYm9keSBvbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IHVsIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwgdWwgb2wsXG4ubWFya2Rvd24tYm9keSB1bCBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgb2wgb2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB0dCxcbi5tYXJrZG93bi1ib2R5IGNvZGUsXG4ubWFya2Rvd24tYm9keSBzYW1wIHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5vY3RpY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4ubWFya2Rvd24tYm9keSBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIG1hcmdpbjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1yLTIge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keTo6YmVmb3JlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHk+KjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHk+KjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOm5vdChbaHJlZl0pIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmFic2VudCB7XG4gIGNvbG9yOiAjZDEyNDJmO1xufVxuXG4ubWFya2Rvd24tYm9keSAuYW5jaG9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5hbmNob3I6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBwLFxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZSxcbi5tYXJrZG93bi1ib2R5IHVsLFxuLm1hcmtkb3duLWJvZHkgb2wsXG4ubWFya2Rvd24tYm9keSBkbCxcbi5tYXJrZG93bi1ib2R5IHRhYmxlLFxuLm1hcmtkb3duLWJvZHkgcHJlLFxuLm1hcmtkb3duLWJvZHkgZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGU+OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZT46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoMiAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDMgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg0IC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNSAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDYgLm9jdGljb24tbGluayB7XG4gIGNvbG9yOiAjMWYyMzI4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxOmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoMjpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDM6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGg0OmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoNTpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDY6aG92ZXIgLmFuY2hvciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDE6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDM6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDQ6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDY6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEgdHQsXG4ubWFya2Rvd24tYm9keSBoMSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDIgdHQsXG4ubWFya2Rvd24tYm9keSBoMiBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDMgdHQsXG4ubWFya2Rvd24tYm9keSBoMyBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDQgdHQsXG4ubWFya2Rvd24tYm9keSBoNCBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDUgdHQsXG4ubWFya2Rvd24tYm9keSBoNSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDYgdHQsXG4ubWFya2Rvd24tYm9keSBoNiBjb2RlIHtcbiAgcGFkZGluZzogMCAuMmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDEsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgyLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMyxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDQsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg1LFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMSAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMiAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMyAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNCAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNSAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNiAuYW5jaG9yIHtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgxLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMiB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bC5uby1saXN0LFxuLm1hcmtkb3duLWJvZHkgb2wubm8tbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cImEgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJBIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiaSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cIkkgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCIxXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSBkaXY+b2w6bm90KFt0eXBlXSkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsIHVsLFxuLm1hcmtkb3duLWJvZHkgdWwgb2wsXG4ubWFya2Rvd24tYm9keSBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIHVsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgbGk+cCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGxpK2xpIHtcbiAgbWFyZ2luLXRvcDogLjI1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGRsIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGwgZHQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBkbCBkZCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGgge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0aCxcbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRkIHtcbiAgcGFkZGluZzogNnB4IDEzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ5ZTA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRkPjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDllMGIzO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjhmYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgaW1nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nW2FsaWduPXJpZ2h0XSB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nW2FsaWduPWxlZnRdIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmVtb2ppIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZT5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogN3B4O1xuICBtYXJnaW46IDEzcHggMCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDFkOWUwO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHNwYW4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHNwYW4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA1cHggMCAwO1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6ICMxZjIzMjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLWNlbnRlcj5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTNweCBhdXRvIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1jZW50ZXIgc3BhbiBpbWcge1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0PnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tcmlnaHQgc3BhbiBpbWcge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LWxlZnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1sZWZ0IHNwYW4ge1xuICBtYXJnaW46IDEzcHggMCAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LXJpZ2h0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtcmlnaHQ+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDEzcHggYXV0byAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSxcbi5tYXJrZG93bi1ib2R5IHR0IHtcbiAgcGFkZGluZzogLjJlbSAuNGVtO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogODUlO1xuICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODE4Yjk4MWY7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSBicixcbi5tYXJrZG93bi1ib2R5IHR0IGJyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGVsIGNvZGUge1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNhbXAge1xuICBmb250LXNpemU6IDg1JTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIGNvZGUge1xuICBmb250LXNpemU6IDEwMCU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZT5jb2RlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQgcHJlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHByZSxcbi5tYXJrZG93bi1ib2R5IHByZSB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDg1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiAjMWYyMzI4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOGZhO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgcHJlIHR0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRkLFxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRoIHtcbiAgcGFkZGluZzogNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgLmJsb2ItbnVtIHtcbiAgcGFkZGluZzogMTBweCAwLjVyZW0gOXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdHIge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdGgge1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiAjZjZmOGZhO1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBbZGF0YS1mb290bm90ZS1yZWZdOjpiZWZvcmUge1xuICBjb250ZW50OiBcIltcIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW2RhdGEtZm9vdG5vdGUtcmVmXTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIl1cIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1OTYzNmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDFkOWUwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIG9sIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIG9sIHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgbGk6dGFyZ2V0OjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygwLjVyZW0qLTEpO1xuICByaWdodDogY2FsYygwLjVyZW0qLTEpO1xuICBib3R0b206IGNhbGMoMC41cmVtKi0xKTtcbiAgbGVmdDogY2FsYygxLjVyZW0qLTEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyOiAycHggc29saWQgIzA5NjlkYTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpOnRhcmdldCB7XG4gIGNvbG9yOiAjMWYyMzI4O1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIC5kYXRhLWZvb3Rub3RlLWJhY2tyZWYgZy1lbW9qaSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jIHtcbiAgY29sb3I6ICM1OTYzNmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jMSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zIC5wbC12IHtcbiAgY29sb3I6ICMwNTUwYWU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1lLFxuLm1hcmtkb3duLWJvZHkgLnBsLWVuIHtcbiAgY29sb3I6ICM2NjM5YmE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zbWksXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtczEge1xuICBjb2xvcjogIzFmMjMyODtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWVudCB7XG4gIGNvbG9yOiAjMDU1MGFlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtayB7XG4gIGNvbG9yOiAjY2YyMjJlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtcyxcbi5tYXJrZG93bi1ib2R5IC5wbC1wZHMsXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtcHNlIC5wbC1zMSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zcixcbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtY2NlLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1zcmUsXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLXNyYSB7XG4gIGNvbG9yOiAjMGEzMDY5O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtdixcbi5tYXJrZG93bi1ib2R5IC5wbC1zbXcge1xuICBjb2xvcjogIzk1MzgwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWJ1IHtcbiAgY29sb3I6ICM4MjA3MWU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1paSB7XG4gIGNvbG9yOiB2YXIoLS1mZ0NvbG9yLWRhbmdlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnQ29sb3ItZGFuZ2VyLW11dGVkKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWMyIHtcbiAgY29sb3I6ICNmNmY4ZmE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjIyMmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtY2NlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMTE2MzI5O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWwge1xuICBjb2xvcjogIzNiMjMwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1oLFxuLm1hcmtkb3duLWJvZHkgLnBsLW1oIC5wbC1lbixcbi5tYXJrZG93bi1ib2R5IC5wbC1tcyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzA1NTBhZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzFmMjMyODtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMWYyMzI4O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWQge1xuICBjb2xvcjogIzgyMDcxZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlOTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pMSB7XG4gIGNvbG9yOiAjMTE2MzI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFmYmUxO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWMge1xuICBjb2xvcjogIzk1MzgwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDhiNTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pMiB7XG4gIGNvbG9yOiAjZDFkOWUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDU1MGFlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWRyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjODI1MGRmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYmEge1xuICBjb2xvcjogIzU5NjM2ZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXNnIHtcbiAgY29sb3I6ICM4MThiOTg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jb3JsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjMGEzMDY5O1xufVxuXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBbcm9sZT10YWJwYW5lbF1bdGFiaW5kZXg9XCIwXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBidXR0b246Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnk6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0YWJpbmRleD1cIjBcIl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGRldGFpbHMtZGlhbG9nOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBnLWVtb2ppIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDFjaDtcbiAgZm9udC1mYW1pbHk6IFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCIsXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IC0wLjA3NWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBnLWVtb2ppIGltZyB7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6aGFzKD5wLD5kaXYsPnByZSw+YmxvY2txdW90ZSk6bm90KDpoYXMoLnNuaXBwZXQtY2xpcGJvYXJkLWNvbnRlbnQsPnByZSkpIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpOmhhcyguc25pcHBldC1jbGlwYm9hcmQtY29udGVudCw+cHJlKTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtLmVuYWJsZWQgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSsudGFzay1saXN0LWl0ZW0ge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0gLmhhbmRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbS1jaGVja2JveCB7XG4gIG1hcmdpbjogMCAuMmVtIC4yNWVtIC0xLjRlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWw6ZGlyKHJ0bCkgLnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIC0xLjZlbSAuMjVlbSAuMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbDpkaXIocnRsKSAudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBtYXJnaW46IDAgLTEuNmVtIC4yNWVtIC4yZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jb250YWlucy10YXNrLWxpc3Q6aG92ZXIgLnRhc2stbGlzdC1pdGVtLWNvbnZlcnQtY29udGFpbmVyLFxuLm1hcmtkb3duLWJvZHkgLmNvbnRhaW5zLXRhc2stbGlzdDpmb2N1cy13aXRoaW4gLnRhc2stbGlzdC1pdGVtLWNvbnZlcnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZmlsdGVyOiBpbnZlcnQoNTAlKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0IHtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItbGVmdDogLjI1ZW0gc29saWQgI2QxZDllMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0PjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydD46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LW5vdGUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzA5NjlkYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LW5vdGUgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICMwOTY5ZGE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzgyNTBkZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogIzgyNTBkZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzlhNjcwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICM5YTY3MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC10aXAge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzFhN2YzNztcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXRpcCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogIzFhN2YzNztcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWNhdXRpb24ge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2NmMjIyZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWNhdXRpb24gLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNkMTI0MmY7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6Zmlyc3QtY2hpbGQ+LmhlYWRpbmctZWxlbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCBwcmU6aGFzKCsuemVyb2NsaXBib2FyZC1jb250YWluZXIpIHtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cblxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/