/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/css-loader@7.1.5_webpack@5.112.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../node_modules/.pnpm/postcss-loader@8.2.1_@typescript+typescript6@6.0.2_postcss@8.5.32_webpack@5.112.2/node_modules/postcss-loader/dist/cjs.js??postcss-pcss!./res/themes/dark-custom/css/dark-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{
/* Colors from Figma Compound https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=559%3A741 */

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

/* typical text (dark-on-white in light skin) */

/* used for dialog box text */

/* used for focusing form controls */

/* informational plinth */

/* used by Autocomplete */

/* selected for hoverover & selected event tiles */

/* used for the hairline dividers in RoomView */

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

/* scrollbars */

/* context menus */

/* Legacy theme backports */

/**
 * 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
 */
/* Legacy theme backports */

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

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

/* event timestamp */

/* Tabbed views */

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

/* Toggle switch */

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

/* Bubble tiles */

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

body {
    color-scheme: dark;
}

/* Nasty hacks to apply a filter to arbitrary monochrome artwork to make it */
/* better match the theme.  Typically applied to dark grey 'off' buttons or */
/* light grey 'on' buttons. */
.mx_filterFlipColor {
    -webkit-filter: invert(1);
            filter: invert(1);
}

/* markdown overrides: */
        .mx_EventTile_content .markdown-body table tr {
            background-color: #000000;
        }

        .mx_EventTile_content .markdown-body table tr:nth-child(2n) {
            background-color: #080808;
        }

/* highlight.js overrides: */
.hljs-tag {
    color: inherit; /* Without this they'd be weirdly blue which doesn't match the theme */
}
}
@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.
*/

/* stylelint-disable csstools/value-no-unknown-custom-properties */

/* 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.85;
    }
}

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

@-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 */
    --MediaPreview-width: 478px; /* keep in sync with PREVIEW_WIDTH_PX in src/utils/UrlPreviewFetcher.ts */

    /* 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: #a1b2d1;
}

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

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

.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: #61708b;
        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: #2a3039;
        }

        /* 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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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.85;
        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 styles are a mess; this is opt-in styling for legacy raw <button>s and
 * <input type="submit">s in dialogs. Search `mx_LegacyDialogButton` in the JSX for the elements
 * still relying on it.
 * Keep the `.mx_Dialog`/`.mx_Dialog_buttons` ancestor + `button`/`input[type="submit"]` type
 * selector alongside the marker class: they preserve the specificity of the old selectors, which
 * some per-dialog CSS overrides (e.g. width tweaks) rely on losing to.
 */
.mx_Dialog button.mx_LegacyDialogButton,
.mx_Dialog input.mx_LegacyDialogButton[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.mx_LegacyDialogButton:not(:focus-visible), .mx_Dialog input.mx_LegacyDialogButton[type="submit"]:not(:focus-visible) {
        outline: none;
    }
    .mx_Dialog button.mx_LegacyDialogButton,
.mx_Dialog input.mx_LegacyDialogButton[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.mx_LegacyDialogButton:last-child {
    margin-right: 0px;
}

.mx_Dialog button.mx_LegacyDialogButton:focus,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"]:focus {
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
}

/* Default (non-cancel) buttons inside a DialogButtons footer get filled in as the primary action,
 * even without the mx_Dialog_primary class - .danger/.warning override the colours below via a
 * same-specificity, later-in-source rule; disabled overrides everyone the same way.
 */
.mx_Dialog button.mx_LegacyDialogButton.mx_Dialog_primary,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"].mx_Dialog_primary,
.mx_Dialog_buttons button.mx_LegacyDialogButton:not(.cancel) {
    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.mx_LegacyDialogButton.danger,
.mx_Dialog input.mx_LegacyDialogButton[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.mx_LegacyDialogButton.warning,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"].warning {
    border: solid 1px var(--cpd-color-border-critical-subtle);
    color: var(--cpd-color-text-critical-primary);
}

.mx_Dialog_buttons button.mx_LegacyDialogButton.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;
}

.mx_Dialog button.mx_LegacyDialogButton:disabled,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"]:disabled {
    background-color: var(--timeline-text-secondary-color);
    border: solid 1px var(--timeline-text-secondary-color);
    opacity: 0.7;
}

/* 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;
}

.mx_MessageTimestamp_lateIcon {
    position: absolute;
    inset-block-start: var(--cpd-space-1x);
    inset-inline-end: 100%;
    color: var(--cpd-color-text-secondary);
}
}
@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 #21262c;

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

    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: #edf3ff;
    color: var(--tertiary-content, #edf3ff);
    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, #edf3ff);
}

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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 #181b21;
            box-shadow: 4px 4px 12px 0 #181b21;
}
}
@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: #edf3ff;
        }

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

.mx_BeaconViewDialog_mapFallbackMessage {
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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 #181b21;
            box-shadow: 4px 4px 12px 0 #181b21;

    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 #181b21;
            box-shadow: 0px 4px 4px #181b21;
}

    .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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
        }

    .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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}
}
@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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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_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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

/* 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: #edf3ff;
            background-color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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: #21262c;

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

        .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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

        .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, #edf3ff);
    --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: #21262c;

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

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;

    color: var(--tertiary-content, #edf3ff);
    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;
}
}
@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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #21262c;
    background-color: var(--system, #21262c);
    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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        line-height: 0.875rem;
        margin-top: var(--cpd-space-1x);
    }

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

    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: #21262c;

    background: var(--system, #21262c);
}

    .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, #edf3ff);
        --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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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, #edf3ff);

    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

    /* 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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

    .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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: rgb(255, 255, 255, 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: rgb(255, 255, 255, 0.2);
}

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

    .mx_AutoHideScrollbar:hover::-webkit-scrollbar-thumb {
        background-color: rgb(255, 255, 255, 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: #edf3ff;
    fill: var(--secondary-content, #edf3ff);
}

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    font-size: 0.75rem;
}
}
@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;
}

    .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);
    }
}
@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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

    .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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #343a46;
                background-color: var(--menu-selected-color, #343a46);
            }

            .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: #a1b2d1;
    }

    .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_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 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.
*/

/*
 * The new timeline's reply-preview rules — the loading skeleton and the row
 * heights that keep it height-neutral — live alongside the reply components in
 * _ReplyChain.pcss / _ReplyTile.pcss.
 */
.mx_NewTimelinePanel {
    /* Fill the room view body, like the old message panel does. */
    height: 100%;
}

    /* Kept mounted but invisible, e.g. while search results are shown, so the
       timeline keeps its scroll position and loaded window. */
    .mx_NewTimelinePanel.mx_NewTimelinePanel_hidden {
        display: none;
    }

    /* The virtualized timeline renders its rows as an <ol role="list"> of <li>
       tiles (mx_TimelineView_list / mx_TimelineView_tile in TimelineView; the <ol>
       and <li> reset their own list markers inline). Inset the tile content to
       match the legacy mx_RoomView_MessageList padding so messages don't sit flush
       against the panel edges.

       The inset goes on the tiles rather than the <ol>: the rows are absolutely
       positioned, so their containing block is the <ol>'s padding box and padding
       there would not inset them. box-sizing + padding-inline on each row does,
       and — being horizontal only — leaves the virtualizer's measured row heights
       and vertical offsets untouched. */
    .mx_NewTimelinePanel .mx_TimelineView_tile {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding-inline: 18px;
        padding-inline: var(--RoomView_MessageList-padding);
    }

    /* The row holding the spinner shown while more history is fetched. Its height is
       fixed so the row always measures the same. */
    .mx_NewTimelinePanel .mx_NewTimelinePanel_loading {
        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: 32px;
        overflow: hidden;
    }

    /* An image that fails to load replaces its reserved media box with a short
       error message, which would otherwise pull every row below it upwards. Hold
       the row at the height of the box being replaced — ImageBodyView passes it
       as --mx-image-reserved-height, and only for images whose event declared
       dimensions; anything else reserved no box, so it gets no minimum.

       The error state sets `display: block`, so laying the message out needs flex
       re-asserting here; the root's `flex-direction: column` then means the cross
       axis is horizontal, and centring in the box is align-items (horizontally)
       plus justify-content (vertically). */
    .mx_NewTimelinePanel span.mx_ImageBody {
        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;
        min-height: 0;
        min-height: var(--mx-image-reserved-height, 0);
    }
}
@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;
    /*
     * Rendered in #mx_PersistedElement_container: display above docked widgets (z-index 9),
     * but below the persisted widget shown in the PiP itself (z-index 101), which is
     * positioned over a placeholder inside this element.
     */
    z-index: 100;
}

.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: #edf3ff;
        fill: var(--secondary-content, #edf3ff);
    }

    .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: #edf3ff !important;
            color: var(--secondary-content, #edf3ff) !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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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;
    }

    /* Fill the space the messages will occupy, so this spinner is centred like the
       timeline's own. Otherwise it sits near the top and then appears to jump down
       when the timeline takes over. */
    .mx_RoomView_body .mx_RoomView_messagePanelSpinner {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }

    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

    .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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
            -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: #edf3ff;
                            color: var(--tertiary-content, #edf3ff);
                            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: #edf3ff;
                        color: var(--secondary-content, #edf3ff);
                        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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

    .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: #edf3ff;
        background-color: var(--tertiary-content, #edf3ff);
        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: #edf3ff;
                color: var(--tertiary-content, #edf3ff);
                /* 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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

        .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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .mx_SpacePillButton svg {
        position: absolute;
        content: "";
        width: 28px;
        height: 28px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 22px;
        color: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }

    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

            .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: #edf3ff;
                        color: var(--tertiary-content, #edf3ff);
                    }

        .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
    }

    .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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
        }

    .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: #edf3ff;
}

.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: #edf3ff !important;
            color: var(--secondary-content, #edf3ff) !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: #edf3ff;
        fill: var(--secondary-content, #edf3ff);
    }

/* Compound styles its Menu/NavBar/MenuItem internals with single-class selectors. The
   `[role="menu"]` qualifier gives our rules a higher specificity so they win without
   `!important`. */
.mx_ThreadsActivityCentre_menu[role="menu"] {
    /* Override compound's default 340px cap */
    max-inline-size: 444px;
    inline-size: 444px;
}
    /*
     * Awful, brittle hack to remove padding from the menu which is now added on the content child
     * This probably ought to be a parameter to the compound component if we sometimes don't want padding.
     */
    .mx_ThreadsActivityCentre_menu[role="menu"] > [role="none"] {
        padding-block: 0;

        --cpd-menu-padding-block-end: 0;
    }

    .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_tabs {
        /* Override NavBar's default block margin to match the Figma design */
        margin: 0;
        padding: var(--cpd-space-2x) var(--cpd-space-4x) 0;
    }

    .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows {
        overflow-y: auto;
        /* Fixed panel height from the design (~6 rows), so the menu doesn't resize as the
           list changes. Row heights vary with the preview, and 432px isn't on the spacing
           scale, so this stays in px. */
        height: 432px;
        min-height: 432px;
    }

        .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow {
            /* Floor for rows without a message preview, which would otherwise be ~48px */
            min-height: var(--cpd-space-14x);

            /* Override compound's display: grid with a simple left-to-right flex row:
               [avatar] [gap] [text content] [indicator] */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            gap: var(--cpd-space-3x);
            padding: var(--cpd-space-3x) var(--cpd-space-4x);
        }

            /* Compound's .icon class adds margin-inline-end; zero it since gap handles spacing */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow > .mx_DecoratedRoomAvatar {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

            /* Notification decoration (mention icon / counter / activity dot) at the trailing edge */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow > .mx_ThreadsActivityCentreThreadRow_decoration {
                -ms-flex-negative: 0;
                    flex-shrink: 0;
                -ms-flex-item-align: center;
                    align-self: center;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_content {
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;
                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;
                gap: var(--cpd-space-0-5x);
                text-align: start;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_header {
                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/letter-spacing come from the Compound Text components; only layout + colour here. */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_roomName {
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;
                min-width: 0;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_preview {
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
                color: var(--cpd-color-text-secondary);
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_sender {
                color: var(--cpd-color-text-primary);
            }

.mx_ThreadsActivityCentre_emptyCaption {
    /* Typography comes from the Compound Text component. */
    padding: var(--cpd-space-3x) var(--cpd-space-4x);
    color: var(--cpd-color-text-secondary);
}
}
@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: #21262c;
        background-color: var(--system, #21262c);
        -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;
        }
}
@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: #a1b2d1;
        align-self: center;
    }

    .mx_UploadBar .mx_UploadBar_filename {
        grid-area: filename;
        color: #a1b2d1;
        position: relative;
        font-size: 0.9375rem;
        vertical-align: middle;
    }

    .mx_UploadBar .mx_UploadBar_cancel {
        grid-area: cancel;
        height: 16px;
        width: 16px;
        color: #a1b2d1;
        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: #edf3ff;
    color: var(--tertiary-content, #edf3ff);
}

.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_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 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: #edf3ff;
                background-color: var(--secondary-content, #edf3ff);
            }

    .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: #edf3ff;
        background-color: var(--tertiary-content, #edf3ff);
        cursor: pointer;
    }

    .mx_SeekBar::-moz-range-thumb {
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #edf3ff;
        background-color: var(--tertiary-content, #edf3ff);
        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: #edf3ff;
        background-color: var(--tertiary-content, #edf3ff);

        /* 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: #edf3ff;
        background-color: var(--tertiary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #21262c;
        background-color: var(--system, #21262c);
    }

.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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .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_ExtraTile .mx_DecoratedRoomAvatar_notificationBadge {
        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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

    .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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }

.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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

            .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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 #000000;
        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;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        gap: var(--cpd-space-6x);
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
    }

        .mx_CompoundDialog .mx_CompoundDialog_footer .mx_AccessibleButton .mx_Spinner {
            margin-right: var(--cpd-space-2x);
        }

.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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

        .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning svg {
            height: 16px;
            width: 16px;
            vertical-align: -4px;
            margin-right: var(--cpd-space-1-5x);
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }
}
@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: #a1b2d1;
    }

    .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: #a1b2d1;
    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: #a1b2d1;
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

            .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 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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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 */
        /* The file tile's inline download and open actions go for the same reason */
    }

        .mx_ForwardDialog > .mx_ForwardDialog_preview div {
            pointer-events: none;
        }
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_ReadReceiptGroup,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_E2ePadlock,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="download"],
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="actions"] {
            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: #edf3ff;
                        color: var(--tertiary-content, #edf3ff);
                    }

                .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: #a1b2d1;
        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: #a1b2d1;
        }

.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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
                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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        position: absolute;
        left: 6px;
        top: 8px;
    }
}
@layer app-web{

/*
Copyright 2026 hayaksi1

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LeaveRoomDialog .mx_Dialog_fixedWidth {
        width: 320px;
        max-width: 100%;
    }

    .mx_LeaveRoomDialog .mx_Dialog_content:not(:empty) {
        margin-bottom: var(--cpd-space-8x);
        color: var(--cpd-color-text-secondary);
    }

    .mx_LeaveRoomDialog .mx_Dialog_content:empty {
        margin: 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_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: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                }

                    .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning svg {
                        height: 16px;
                        width: 16px;
                        color: #edf3ff;
                        color: var(--secondary-content, #edf3ff);
                        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;
}
        /* The dialog-based recovery key flow preserves the card's gap, but emphasised content sets its own. */
        .mx_LogoutDialog .mx_EncryptionCard:has(> .mx_EncryptionCard_emphasisedContent) {
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
                color: var(--tertiary-content, #edf3ff);
            }
        .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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info svg {
            height: 16px;
            width: 16px;
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #1c2026;
                background: var(--eventbubble-bg-hover, #1c2026);
            }

    .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 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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

    .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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }

    .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: #a1b2d1;
                    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: #a1b2d1;
                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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: rgb(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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
                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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

            .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: #edf3ff;
                color: var(--tertiary-content, #edf3ff);
                /* 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 #21262c;
        border-bottom: 1px solid var(--system, #21262c);
    }

        .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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
                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: #21262c;
                background: var(--system, #21262c);
                border-radius: 8px;
                margin-left: var(--cpd-space-2x);
                text-align: center;
                line-height: 16px;
                color: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

                .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close svg {
                    color: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                    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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
            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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
                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, #21262c);

                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 {
                            /* $secondary-content, not $tertiary-content: at 12px this has to meet WCAG AA
                               (4.5:1) against the dialog background, and tertiary is 3.5:1 in the light
                               and dark themes. */
                            color: #edf3ff;
                            color: var(--secondary-content, #edf3ff);
                            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: #edf3ff;
                        color: var(--secondary-content, #edf3ff);
                        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: #edf3ff;
                        color: var(--tertiary-content, #edf3ff);
                    }

                    .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: #edf3ff;
                        color: var(--secondary-content, #edf3ff);
                    }
                    .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 is legible at rest but only 4.2:1 against the hover
                       background ($quinary-content), so step up to $primary-content to keep WCAG AA. */
                        .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: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                    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);
            /* See .mx_SpotlightDialog_result_publicRoomAlias: 12px text needs 4.5:1 at rest too. */
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

        .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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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;
    width: 478px;
    width: var(--MediaPreview-width);
}

.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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #a1b2d1;
        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: #22262e;
    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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

    .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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    margin-left: auto;
}

    .mx_NetworkDropdown_removeServer svg {
        color: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #343a46;
    background-color: var(--focus-bg-color, #343a46);
}

.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: #edf3ff;
    color: var(--tertiary-content, #edf3ff);
    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: #edf3ff;
    color: var(--tertiary-content, #edf3ff);
}
}
@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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

.mx_GenericEventListSummary_unstyledList {
    list-style: none;
    padding: 0;
}

.mx_TextualEvent.mx_GenericEventListSummary_summary {
    font: var(--cpd-font-body-sm-regular);
    display: inline;
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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: #a1b2d1;
    }

.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 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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

        .mx_InviteReason .mx_InviteReason_view svg {
            width: 16px;
            height: 16px;
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

.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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #21262c;
}
    progress.mx_ProgressBar::-webkit-progress-bar {
        background-color: #21262c;
    }
    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-block: 0 var(--cpd-space-2x);
    margin-inline: 0;
    padding-left: 10px;
    border-left: 2px solid var(--username-color);
    border-radius: 2px;
}

    .mx_ReplyChain_compact .mx_ReplyChain {
        -webkit-margin-after: var(--cpd-space-1x);
                margin-block-end: var(--cpd-space-1x);
    }
        .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline {
            white-space: nowrap; /* Enforce 'In reply to' to be a single line */
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            -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);
    }

/*
 * Reply previews in the new timeline (`compactPreview` in ReplyChain.tsx).
 *
 * The preview itself is the shared ReplyTileView, drawn at its natural size: a
 * quote already in the room renders at its final height on the first pass, and
 * growth above the viewport is compensated by the timeline. The rules here cover
 * the two states that stand in for a preview while it is fetched, or if the
 * fetch fails, so a row holds a sensible height instead of collapsing.
 */
.mx_NewTimelinePanel {
    /* About the height of the sender row and one line of quoted text. */
    --mx-reply-row-height: 20px;
}

    /* The skeleton shown while the quoted message is being fetched: a sender row
       and a message row, spaced like the real preview. */
    .mx_NewTimelinePanel .mx_ReplyChain_placeholder {
        --username-color: var(--quinary-content, #6f7882);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: 2px;
        padding-top: 2px;
        padding-bottom: 2px;
    }

    .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow {
        height: var(--mx-reply-row-height);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow::before {
            content: "";
            height: 12px;
            width: 35%;
            border-radius: 6px;
            background: #6f7882;
            background: var(--quinary-content, #6f7882);
        }

        /* The message line reads longer than the name above it. */
        .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow:last-child::before {
            width: 70%;
        }

    /* If the fetch fails the preview becomes a one-line error, so hold it at the
       height of the skeleton it replaces. */
    .mx_NewTimelinePanel .mx_ReplyChain_error {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        min-height: calc(2 * var(--mx-reply-row-height) + 2px + 4px);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }
}
@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{
.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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
        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: #edf3ff;
    color: var(--secondary-content, #edf3ff);

    /* 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: rgb(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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        -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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        background: #21262c;
        background: var(--system, #21262c);
        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: #21262c;
    background-color: var(--system, #21262c);
    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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

    .mx_CallEvent .mx_LiveContentSummary {
        font-size: 0.75rem;
    }

    .mx_CallEvent{

    --facepile-background: var(--system, #21262c);
}

.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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #a1b2d1;
    }
}
@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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

        .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: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                }

        .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }
            .mx_EventTile:has(> [data-testid="event-tile-line"] > [data-testid="event-tile-slot-body"] .mx_LegacyCallEvent) .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: rgb(0, 0, 0, 0.7);
        border: 2px solid rgb(0, 0, 0, 0.2);
        color: rgb(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;
    }

/* Location maps use the full event-line width instead of the text-body gutter. */
.mx_EventTile_line .mx_MLocationBody {
    --event-tile-content-inline-end: 0;
}

/* In the timeline, we fit the width of the container */
.mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 450px;
    width: 100%;
}

/* Bubble lines use shrink-to-fit sizing. Give the map an intrinsic width
   before constraining it to the available bubble width. */
.mx_EventTile_line .mx_MLocationBody_bubble .mx_MLocationBody_map {
    max-width: 100%;
    width: 450px;
}

/* EventTileView places the sender and body in separate slot boundaries. */
.mx_EventTile > :has(> .mx_DisambiguatedProfile) ~ .mx_EventTile_line .mx_MLocationBody {
    margin-top: 6px; /* See: https://github.com/matrix-org/matrix-react-sdk/pull/8442 */
}
}
@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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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);
        }

    .mx_MPollBody.mx_MPollBody_bubble {
        width: 550px; /* to prevent timestamp overlapping summary text */
        max-width: 100%; /* prevent overflowing a reply tile */
    }

        .mx_MPollBody.mx_MPollBody_bubble .mx_MPollBody_totalVotes {
            /* align summary text with corner timestamp */
            padding: 4px 0;
        }

.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 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.
*/

/* EventTileView owns the generic action-bar geometry. These are application
   context exceptions and intentionally target only the outer slot wrapper. */
    /* Improve clickability of the first event below a collapsed bubble summary. */
    .mx_GenericEventListSummary[data-layout="bubble"]
        .mx_GenericEventListSummary_toggle
        ~ .mx_GenericEventListSummary_unstyledList
        .mx_EventTile:first-of-type
        .mx_EventTile_line > :has(> .mx_MessageActionBar)::before {
        width: 100%;
        height: 100%;
        inset: 0;
    }

    /* Remove the vertical safe area for view-source events. */
    .mx_EventTile:has(> .mx_EventTile_line .mx_ViewSourceEvent) .mx_EventTile_line > :has(> .mx_MessageActionBar)::before {
        width: 100%;
        height: 100%;
        inset: 0;
    }

/* Align event action bars with right-column bubbles in an expanded bubble
   summary. */
.mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"]
    > .mx_GenericEventListSummary_unstyledList
    > .mx_EventTile
    > .mx_EventTile_line
    > :has(> .mx_MessageActionBar) {
    inset-inline-start: initial;
    inset-inline-end: 48px;
}
}
@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 {
    /* Separate the preview group from the message text above it. */
    margin-top: var(--cpd-space-4x);

    /* 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;
    }
}
@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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

    .mx_PollHistoryList_noResults .mx_PollHistoryList_loadMorePolls {
        margin-top: var(--cpd-space-4x);
    }

.mx_PollHistoryList_loading {
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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;
            min-width: 0;
        }

            .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: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                }

                .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
        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 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.
*/

/* The usercontent iframe the document is rendered in. */
.mx_PdfViewer_iframe {
    display: block;
    border: 0;
    /* Lets the panel's background show through around the pages. */
    background: transparent;
}
}
@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_line {
        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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }

        .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%;
    }

    /* 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_GenericEventListSummary {
        /* Account for scrollbar when hovering */
        padding-top: 0;
    }

        .mx_ThreadPanel .mx_GenericEventListSummary .mx_TimelineSeparator {
            display: none;
        }

    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }
    .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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
        }
}
@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_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 > :has(> .mx_BaseAvatar) ~ .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 > :has(> .mx_BaseAvatar) ~ .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) */
    }
}
@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_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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
        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_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: #a1b2d1;
            }

/* 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: #1a1d23;
    }

        .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: #1a1d23 !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: #800;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
        }
}
@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_GenericEventListSummary[data-layout="bubble"] {
    --avatarSize: 32px;
    --gutterSize: 11px;
    --cornerRadius: 12px;
    --maxWidth: 70%;

    /* Generic event list summaries still use the legacy bubble variables. */
    --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);
}

    /* Keep the following event clear of the expand/collapse control when the
       summary is collapsed. */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] + .mx_EventTile {
        -webkit-margin-before: 20px;
                margin-block-start: 20px;
    }

    /* Keep expanded informational rows aligned with the legacy summary layout. */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) {
        padding-block: 2px;
        -webkit-margin-end: 0;
                margin-inline-end: 0;
    }

        /* EventTileView owns the line-height for informational rows. */
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line {
            /* EventTileView keeps the state-info line at min-width: 100% for
               ordinary bubble rows. Expanded summaries must be allowed to
               shrink around the sender avatar, as in the legacy tile. */
            width: 100%;
            min-width: 0;
            max-width: 100%;
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) .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:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent))::before {
            inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
        }

/* Preserve the legacy expanded-summary metrics in RoomView. ThreadView owns
   its informational row metrics through EventTileView. */
        .mx_RoomView_timeline .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line {
            line-height: normal;
        }

        .mx_RoomView_timeline .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent) {
            padding-block: 0;
        }
}
@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 {
    /* Pass the application/theme-specific highlight colour to the shared
       EventTileView interaction styles. */
    --event-tile-state-highlight-background: var(--timeline-highlights-color);
    --event-tile-state-hover-background: var(--timeline-highlights-color);
    --event-tile-state-selected-background: var(--timeline-highlights-color);
    --event-tile-bubble-hover-background: var(--eventbubble-bg-hover, #1c2026);
    --event-tile-bubble-other-background: var(--eventbubble-others-bg, #22262e);
    --event-tile-bubble-self-background: var(--eventbubble-self-bg, #14322e);
    --event-tile-preview-hover-background: var(--panels, var(--cpd-color-gray-600));
    --event-tile-preview-separator-color: var(--quinary-content, #6f7882);
    --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 */
    position: relative;
}

    /* Retained for legacy error/fallback markup that does not use EventTileView. */
    .mx_EventTile.mx_EventTile_info {
        font-size: var(--cpd-font-size-body-sm);
        color: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }
        .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_EditMessageComposerWrapper {
        /* This keeps the autocomplete / format bar visible above the edit composer. */
        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_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_content .mx_EventTile_body {
            /* !important needed to override the reply-tile content clamp. */
            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;
        }

/* Theads do not set a background on mentioned events as they use an indicator dot */
.mx_ThreadPanel .mx_EventTile {
    --event-tile-preview-highlight-background: none;
}
        .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)
            );
        }
        /* The collapsed summary has a legacy line outside EventTileView. */
        .mx_GenericEventListSummary[data-layout="group"] > .mx_EventTile_line {
            -webkit-padding-start: 64px;
                    padding-inline-start: 64px;
        }

.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;
}
    .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: #21262c;
            background-color: var(--system, #21262c);
        }

        .mx_EventTile_content .markdown-body code:not(pre *) {
            background-color: #2a3039;
            border: 1px solid #2a3039;
            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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #a1b2d1;
        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_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 #edf3ff;
            border: 1px solid var(--tertiary-content, #edf3ff);
        }

    /* 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_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,
[data-whatinput="keyboard"] .mx_EventTile:focus-within .mx_ThreadActionBar,
.mx_EventTile:focus-visible:focus-within .mx_ThreadActionBar {
    visibility: visible;
}

/* Thread-list reply summaries retain the legacy application styling while
   remaining independent of the EventTileView root DOM contract. */
.mx_EventTile .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 .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 .mx_ThreadPanel_replies .mx_ThreadPanel_replies_amount {
        color: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

/* 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_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 */
            }

    /* ViewSourceEvent explicitly uses Compound's 11px body-xs token. Legacy
       thread info tiles applied their 12px size directly to event content;
       keep that override on the body component after its slot boundary. */
    .mx_ThreadView .mx_EventTile .mx_EventTile_line .mx_ViewSourceEvent {
        font-size: 0.75rem;
    }

/* Body-only compact markdown spacing remains application-owned. */
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body p,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body ul,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body ol,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body dl,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body blockquote,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body pre,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body table {
                margin-bottom: var(--cpd-space-1x); /* 1/4 of the non-compact margin-bottom */
            }

/* 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: #a1b2d1;
    }
}
@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 */
    --icon-width: 14px;
    --line-height: var(--irc-line-height);
    --right-padding: 5px;
    /* Map application IRC geometry onto the shared EventTileView API. */
    --event-tile-irc-name-width: var(--name-width);
    --event-tile-irc-timestamp-width: var(--MessageTimestamp-width);

    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_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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}
        .mx_LiveContentSummary .mx_LiveContentSummary_text svg {
            display: inline-block;
            vertical-align: text-bottom;
            color: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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);
}

    .mx_MemberListHeaderView .mx_MemberListHeaderView_container {
        margin-top: var(--cpd-space-6x);
        padding: 0 var(--cpd-space-4x);
        -ms-flex-item-align: stretch;
            align-self: stretch;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_inviteButton {
        width: 100%;
        max-width: 428px;
    }

    .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;
    }
}
@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: rgb(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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
        }
            .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;
                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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }
}
@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: #a1b2d1;
    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;
    inset-inline-end: auto;
    inset-inline-end: var(--event-tile-read-receipt-inset-inline-end, auto);
    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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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 svg {
            display: inline-block;
            width: 16px;
            height: 16px;
            color: var(--cpd-color-icon-tertiary);
        }

        .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: #343a46;
                background: var(--menu-selected-color, #343a46);
            }

            .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: #edf3ff;
                    color: var(--secondary-content, #edf3ff);
                }

.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 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;
    /* Without this, this flex item reports its unshrunk content width to
       mx_RoomHeader which breaks its max-width. */
    min-width: 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);
    /* See mx_RoomHeader_infoWrapper min-width comment above. */
    min-width: 0;
}

.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;
    min-width: 0;
}

.mx_RoomHeader_userStatus {
    -ms-flex-negative: 1;
        flex-shrink: 1;
    min-width: 0;
}

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

.mx_RoomHeader .mx_FacePile {
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    display: inline-block;
}

    .mx_RoomInfoLine svg {
        margin-right: 6px;
        vertical-align: -2px;
        color: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }

    .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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #21262c;
    background-color: var(--system, #21262c);
    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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

    .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 #21262c;
            border: 3px solid var(--system, #21262c);

            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: #22262e;
    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 #6f7882;
    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: #6f7882;
    }

.mx_VoiceRecordComposerTile_uploadingState {
    margin-right: 10px;
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
}

.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 the event-tile avatar slot. */
.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;
    --user-status: none;
    --placeholder: "";
}

    @-webkit-keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        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: #2a3039;
            border: 1px solid #2a3039;
            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: #2a3039;
            border: 1px solid #2a3039;
            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;
            }

            /* Pseudo element for rendering the user status emoji on mention pills. It is a
            pseudo element rather than a child node because the pill's text content is used
            verbatim when the message is serialised, so a real node would put the emoji in the
            sent message. */
            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type]::after {
                content: var(--user-status);
                -webkit-margin-start: var(--cpd-space-1x);
                        margin-inline-start: var(--cpd-space-1x);
            }

    .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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

    .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: #edf3ff;
        color: var(--tertiary-content, #edf3ff);
    }
    .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_ReadReceiptGroup {
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
        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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

        .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;

                /*
                 * EventTileView applies the content gutter through this
                 * variable on the shell. Keep the preview's content width
                 * consistent with the legacy preview override below.
                 */
                --event-tile-content-inline-end: 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_ReadReceiptGroup,
                .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;
                    -webkit-margin-end: 0;
                            margin-inline-end: 0;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-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:has([data-event-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:has([data-event-layout="irc"]) {
                    /*
                     * The migrated tile keeps an empty timestamp slot for
                     * IRC alignment. The preview must hide that slot as the
                     * legacy preview hid its timestamp element.
                     */
                }
                    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="irc"]) .mx_MessageTimestamp,
                    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="irc"]) [data-testid="event-tile-slot-timestamp"] {
                        display: none;
                    }

                .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: #edf3ff;
                    background: var(--tertiary-content, #edf3ff);
                    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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);
    color: var(--cpd-color-text-primary);
    /* 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%;
            /* Override the default of min-width: auto to allow max-width: 100% to bound correctly */
            min-width: 0;
            gap: 16px;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor {
        margin-top: var(--cpd-space-6x);
        border: 0;
        padding: 0;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor legend {
            font-weight: 600;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_help,
    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_preview {
        margin: var(--cpd-space-2x) 0;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_options {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        gap: var(--cpd-space-2x) var(--cpd-space-4x);
        margin: var(--cpd-space-3x) 0;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_options label {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            gap: var(--cpd-space-1x);
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_swatch {
        width: 16px;
        height: 16px;
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 50%;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_unavailable {
        margin-top: var(--cpd-space-6x);
    }

    .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_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);
        }

/* Used by ChangeRecoveryKeyBody and CheckRecoveryKey, which both render the form in an
   EncryptionCard. */
.mx_EncryptionCard .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_EncryptionCard .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_EncryptionCard .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"]:focus {
                outline: none;
                -webkit-box-shadow: none;
                        box-shadow: none;
            }

        .mx_EncryptionCard .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 {
            color: var(--cpd-color-text-primary);
            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 .mx_AlertNoIcon {
        color: var(--cpd-color-text-critical-primary);
        margin-top: -var(cpd-space-2x);
    }

        .mx_EncryptionCard .mx_AlertNoIcon svg {
            display: none;
        }

.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: #21262c;
    background: var(--system, #21262c);
    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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
            color: var(--secondary-content, #edf3ff);
            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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    margin-left: var(--cpd-space-1x);
}

.mx_PeopleRoomSettingsTab_userId {
    color: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #edf3ff;
            background-color: var(--tertiary-content, #edf3ff);
            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: #edf3ff;
                color: var(--secondary-content, #edf3ff);
            }

        .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: #edf3ff;
                color: var(--tertiary-content, #edf3ff);
            }

        .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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);

            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: #edf3ff;
            color: var(--tertiary-content, #edf3ff);
        }
}
@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: #21262c;

        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: #edf3ff;

            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: #21262c;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on svg {
                color: #edf3ff;
            }

            .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: #edf3ff;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off svg {
                color: #21262c;
            }

            .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: #21262c;
            }

                .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: #edf3ff;
                }

        /* 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: #edf3ff;
    color: var(--secondary-content, #edf3ff);
    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: #181b21;
    }
}
@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: #a1b2d1;
    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: #a1b2d1;
    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: #6f7882;
        }

            .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: #21262c;

        background-color: var(--system, #21262c);
        -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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }

.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: #edf3ff;
        color: var(--secondary-content, #edf3ff);
    }
}
@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: #21262c;
        }

    .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: #15171b;
        background-color: var(--strong-input-border-color, #15171b);

        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:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
}
@layer app-web{
/*dark */
.markdown-body {
  color-scheme: dark;
  /** 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: #f0f6fc;
  background-color: #0d1117;
  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: #4493f8;
  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 #3d444db3;
}

.markdown-body mark {
  background-color: #bb800926;
  color: #f0f6fc;
}

.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 #3d444db3;
  height: .25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #3d444d;
  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: #9198a1;
  opacity: 1;
}

.markdown-body ::-moz-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body :-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::placeholder {
  color: #9198a1;
  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: #f0f6fc;
  vertical-align: middle;
  background-color: #151b23;
  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 #3d444db3;
}

.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: #9198a1;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #9198a1;
  border-left: .25em solid #3d444d;
}

.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: #f85149;
}

.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: #f0f6fc;
  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 #3d444d;
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #0d1117;
  border-top: 1px solid #3d444db3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #151b23;
}

.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 #3d444d;
}

.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: #f0f6fc;
}

.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: #656c7633;
  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: #f0f6fc;
  background-color: #151b23;
  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: #0d1117;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #151b23;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #9198a1;
  border-top: 1px solid #3d444d;
}

.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 #1f6feb;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #f0f6fc;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #9198a1;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #79c0ff;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #d2a8ff;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #f0f6fc;
}

.markdown-body .pl-ent {
  color: #7ee787;
}

.markdown-body .pl-k {
  color: #ff7b72;
}

.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: #a5d6ff;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #ffa657;
}

.markdown-body .pl-bu {
  color: #f85149;
}

.markdown-body .pl-ii {
  color: var(--fgColor-danger);
  background-color: var(--bgColor-danger-muted);
}

.markdown-body .pl-c2 {
  color: #f0f6fc;
  background-color: #b62324;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #7ee787;
}

.markdown-body .pl-ml {
  color: #f2cc60;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #1f6feb;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #f0f6fc;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #f0f6fc;
}

.markdown-body .pl-md {
  color: #ffdcd7;
  background-color: #67060c;
}

.markdown-body .pl-mi1 {
  color: #aff5b4;
  background-color: #033a16;
}

.markdown-body .pl-mc {
  color: #ffdfb6;
  background-color: #5a1e02;
}

.markdown-body .pl-mi2 {
  color: #f0f6fc;
  background-color: #1158c7;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #d2a8ff;
}

.markdown-body .pl-ba {
  color: #9198a1;
}

.markdown-body .pl-sg {
  color: #3d444d;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #a5d6ff;
}

.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 #3d444d;
}

.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: #1f6feb;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #4493f8;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8957e5;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #ab7df8;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #9e6a03;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #d29922;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #238636;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #3fb950;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #da3633;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #f85149;
}

.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy8wZmVmMjVhN2ViNjU4M2NkZTExOC90aGVtZS1kYXJrLWN1c3RvbS5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBQWdFO0FDQWhFOztBQUFBOzs7Ozs7Q0FNQzs7QUFFRDs7Ozs7O0VBTUU7O0FBRUY7Ozs7Ozs7RUFPRSxFQUtxQixpREFBaUQsRUFFakQsaURBQWlELEVBRWpELGlEQUFpRCxFQUVqRCxpREFBaUQsRUFFbkQsb0RBQW9ELEVBRXJELG9EQUFvRCxFQUduRCxvREFBb0QsRUFFdkQsb0RBQW9EO0FBTXRFO0FDakRBOztBQUFBOzs7Ozs7Ozs7Ozs7RUFZRTs7QUFFRiw2RUFBNkU7QUFDN0UsK0JBQStCO0FBMEIvQjtBQ3pDQTs7QUFBQTtFQUNFOztBQUVGLGlCQUFpQjtBQUNqQjtJQUNJLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGO0FBQ0EsNkhBQTZIO0FBQzdIO0lBQ0ksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQiw0REFBZ0Y7QUFDcEY7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBO0FEckJBO0FBa0JBLGlFQUFpRTtBQUNqRTtFQUNFO0FBQ0Y7SUFDSSxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiwrREFBbUU7QUFDdkU7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiwrREFBb0U7QUFDeEU7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiwrREFBZ0U7QUFDcEU7QUFDQTtBRXpDQTs7QUFBQTtJQUNJLDBFQUEwRTtJQUMxRSx1QkFBdUI7QUFDM0I7O0FBRUE7OztvRUFHb0U7QUFDcEU7OzZFQUU2RTs7QUFTN0Usb0JBQW9CO0FBQ3BCLDBDQUEwQzs7QUFJMUMsK0NBQStDLEVBS3JCLG9EQUFvRDs7QUFFOUUsNkJBQTZCOztBQUc3QixvQ0FBb0M7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QUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2RhcmstY3VzdG9tL2Nzcy9kYXJrLWN1c3RvbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fZm9udC1zaXplcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC9jc3MvX2ZvbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xlZ2FjeS1saWdodC9jc3MvX2xlZ2FjeS1saWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktZGFyay9jc3MvX2xlZ2FjeS1kYXJrLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xpZ2h0LWN1c3RvbS9jc3MvX2N1c3RvbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fY29tcG9uZW50cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fYW5pbWF0aW9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fY29tbW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25MaXN0SXRlbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXNUb29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25WaWV3RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dPd25CZWFjb25TdGF0dXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ1NpZGViYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xpdmVUaW1lUmVtYWluaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19Pd25CZWFjb25TdGF0dXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1NoYXJlTGF0ZXN0TG9jYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1N0eWxlZExpdmVCZWFjb25JY29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvY29udGV4dF9tZW51cy9fS2ViYWJDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxEZXRhaWxIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW1FbmRlZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBQZXJtaXNzaW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyVGFiR3JvdXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fTGVhcm5Nb3JlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0VuYWJsZUxpdmVTaGFyZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19MaXZlRHVyYXRpb25Ecm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblNoYXJlTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBFcnJvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBGYWxsYmFjay5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXJrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVEaWFsb2dCdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlVHlwZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19ab29tQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL19NQmVhY29uQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL3NoYXJlZC9fTWVkaWFQcm9jZXNzaW5nRXJyb3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9wb2xscy9fUG9sbE9wdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL19BZGRSZW1vdmVUaHJlZXBpZHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19DdXJyZW50RGV2aWNlU2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbEhlYWRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVNlY3VyaXR5Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUeXBlSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlY3VyaXR5UmVjb21tZW5kYXRpb25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VsZWN0YWJsZURldmljZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19LZXlTdG9yYWdlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9fUXVpY2tUaGVtZVN3aXRjaGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvdHlwb2dyYXBoeS9fQ2FwdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb3VuZC9fSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb3VuZC9fU3VjY2Vzc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19BdXRvSGlkZVNjcm9sbGJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19BdXRvY29tcGxldGVJbnB1dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Db250ZXh0dWFsTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19FcnJvck1lc3NhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRmlsZURyb3BUYXJnZXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRmlsZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0dlbmVyaWNEcm9wZG93bk1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fSG9tZVBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTGFyZ2VMb2FkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTGVmdFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX01haW5TcGxpdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19NYXRyaXhDaGF0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX05ld1RpbWVsaW5lUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTm9uVXJnZW50VG9hc3RDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUGljdHVyZUluUGljdHVyZURyYWdnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUXVpY2tTZXR0aW5nc0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19SaWdodFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1Jvb21WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NlYXJjaEJveC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZUhpZXJhcmNoeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwYWNlUGlsbEJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVJvb21WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwbGFzaFBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVGFiYmVkVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19UaHJlYWRzQWN0aXZpdHlDZW50cmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVG9hc3RDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVXBsb2FkQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1ZpZXdTb3VyY2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Db21wbGV0ZVNlY3VyaXR5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fQ29uZmlybVNlc3Npb25Mb2NrVGhlZnRWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTG9naW4ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Mb2dpblNwbGFzaFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Nb2JpbGVSZWdpc3RyYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19SZWdpc3RyYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19TZXNzaW9uTG9ja1N0b2xlblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19TZXR1cEVuY3J5cHRpb25Cb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19QbGF5YmFja0NvbnRhaW5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fU2Vla0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fV2F2ZWZvcm0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEZvb3Rlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXJMb2dvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHlCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0NvdW50cnlEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19EZWZhdWx0V2VsY29tZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fTGFuZ3VhZ2VTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Mb2dpbldpdGhRUi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19QYXNzcGhyYXNlRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fV2VsY29tZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19CYXNlQXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX0RlY29yYXRlZFJvb21BdmF0YXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fUm9vbUF2YXRhclZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fV2lkZ2V0QXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1dpdGhQcmVzZW5jZUluZGljYXRvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9iZXRhL19CZXRhQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19EZXZpY2VDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19JY29uaXplZENvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0xlZ2FjeUNhbGxDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQW5hbHl0aWNzTGVhcm5Nb3JlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0J1Z1JlcG9ydERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DaGFuZ2Vsb2dEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29tcG91bmREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybUtleVN0b3JhZ2VPZmZEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybVNwYWNlVXNlckFjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Db25maXJtVXNlckFjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcmVhdGVSb29tRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVNlY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3JlYXRlU3Vic3BhY2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3J5cHRvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0RlYWN0aXZhdGVBY2NvdW50RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0RldnRvb2xzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0V4cG9ydERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19GZWVkYmFja0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Gb3J3YXJkRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSW5jb21pbmdTYXNEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSW52aXRlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZVByb2dyZXNzQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Kb2luUnVsZURyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0xlYXZlUm9vbURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19MZWF2ZVNwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0xvY2F0aW9uVmlld0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Mb2dvdXREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Nb2RhbFdpZGdldERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Qb2xsQ3JlYXRlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlbW92ZVNlY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUmVwb3J0Um9vbURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nQnJpZGdlcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2VydmVyT2ZmbGluZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TZXJ2ZXJQaWNrZXJEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2V0RW1haWxEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2hhcmVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2xhc2hDb21tYW5kSGVscERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TcGFjZVByZWZlcmVuY2VzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU3BvdGxpZ2h0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Rlcm1zRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VucGluQWxsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VwbG9hZENvbmZpcm1EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVXNlclNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1ZlcmlmeUVNYWlsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1dpZGdldENhcGFiaWxpdGllc1Byb21wdERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL2ludml0ZS9fVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fS2V5QmFja3VwRmFpbGVkRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlyZWN0b3J5L19OZXR3b3JrRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0FjY2Vzc2libGVCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0NvcHlhYmxlVGV4dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19EaWFsUGFkQmFja3NwYWNlQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Ecm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRWRpdGFibGVJdGVtTGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRXJyb3JCb3VuZGFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRXh0ZXJuYWxMaW5rLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19GYWNlUGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbWFnZVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0luZm9Ub29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbmxpbmVTcGlubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbnZpdGVSZWFzb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0xhYmVsbGVkQ2hlY2tib3gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0xhbmd1YWdlRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX01pbmlBdmF0YXJVcGxvYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUGlsbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUG93ZXJTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUHJvZ3Jlc3NCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1FSQ29kZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmVwbHlDaGFpbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmVzaXplSGFuZGxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19SaWNoVGV4dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUm9vbUFsaWFzRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NTT0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NlYXJjaFdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NlcnZlclBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2V0dGluZ3NEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2V0dGluZ3NGbGFnLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TcGlubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TdHlsZWRSYWRpb0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3ludGF4SGlnaGxpZ2h0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19UYWdDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVGV4dFdpdGhUb29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Ub2dnbGVTd2l0Y2gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1ZhbGlkYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbG9jYXRpb24vX0xvY2F0aW9uUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19DYWxsRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0NyZWF0ZUV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19EaXNhbWJpZ3VhdGVkUHJvZmlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTGVnYWN5Q2FsbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NSW1hZ2VSZXBseUJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01Mb2NhdGlvbkJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01Qb2xsQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTVN0aWNrZXJCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NZXNzYWdlQWN0aW9uQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19UZXh0dWFsRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX1RocmVhZEFjdGlvbkJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fY29tbW9uX0NyeXB0b0V2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3BvbGxzL3BvbGxIaXN0b3J5L19Qb2xsSGlzdG9yeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnlMaXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19CYXNlQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fRW1wdHlTdGF0ZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fRW5jcnlwdGlvbkluZm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0V4dGVuc2lvbnNDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19QZGZWaWV3ZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1Bpbm5lZE1lc3NhZ2VzQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fUm9vbVN1bW1hcnlDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaHJlYWRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVGltZWxpbmVDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19Vc2VySW5mby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVmVyaWZpY2F0aW9uUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1dpZGdldENhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbV9zZXR0aW5ncy9fQWxpYXNTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9Sb29tTGlzdFBhbmVsL19Sb29tTGlzdFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BcHBzRHJhd2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BdXRvY29tcGxldGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0F1eFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19CYXNpY01lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQ2FsbEd1ZXN0TGlua0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRTJFSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRTJFSWNvblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0VkaXRNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0Vtb2ppQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FdmVudEJ1YmJsZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0V2ZW50VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSGlzdG9yeVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0lSQ0xheW91dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSW52aXRlZEljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19KdW1wVG9Cb3R0b21CdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0xpdmVDb250ZW50U3VtbWFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVtYmVyTGlzdEhlYWRlclZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lbWJlckxpc3RWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZW1iZXJUaWxlVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX05ld1Jvb21JbnRyby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fT3ZlcmZsb3dUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QaW5uZWRFdmVudFRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Bpbm5lZE1lc3NhZ2VCYW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ByZXNlbmNlSWNvblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ByZXNlbmNlTGFiZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1JlYWRSZWNlaXB0R3JvdXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1JlcGx5UHJldmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUluZm9MaW5lLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tS25vY2tzQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tUHJldmlld0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tU2VhcmNoQXV4UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21VcGdyYWRlV2FybmluZ0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fU2VuZE1lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fU3RpY2tlcnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1RoaXJkUGFydHlNZW1iZXJJbmZvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Ub3BVbnJlYWRNZXNzYWdlc0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVXNlcklkZW50aXR5V2FybmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVm9pY2VSZWNvcmRDb21wb3NlclRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1dob0lzVHlwaW5nVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19FZGl0V3lzaXd5Z0NvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvX1NlbmRXeXNpd3lnQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19FZGl0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19Gb3JtYXR0aW5nQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0xpbmtNb2RhbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fQXZhdGFyU2V0dGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fRm9udFNjYWxpbmdQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fSW1hZ2VTaXplUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ludGVncmF0aW9uTWFuYWdlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fSm9pblJ1bGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fS2V5Ym9hcmRTaG9ydGN1dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTGF5b3V0U3dpdGNoZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvblB1c2hlclNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25TZXR0aW5nczIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1Bob25lTnVtYmVycy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fUG93ZXJMZXZlbFNlbGVjdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Sb29tUHJvZmlsZVNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXRJbnRlZ3JhdGlvbk1hbmFnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzRmllbGRzZXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc1N1YmhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU3BlbGxDaGVja0xhbmd1YWdlcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVGhlbWVDaG9pY2VQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVXBkYXRlQ2hlY2tCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VzZXJQZXJzb25hbEluZm9TZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVXNlclByb2ZpbGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19BZHZhbmNlZFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0NoYW5nZVJlY292ZXJ5S2V5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0VuY3J5cHRpb25DYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0VuY3J5cHRpb25DYXJkRW1waGFzaXNlZENvbnRlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVjb3ZlcnlQYW5lbE91dE9mU3luYy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19SZXNldElkZW50aXR5UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NCYW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NJbmRlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NTZWN0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fTm90aWZpY2F0aW9uU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19QZW9wbGVSb29tU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19Sb2xlc1Jvb21TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fQXBwZWFyYW5jZVVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0hlbHBVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19LZXlib2FyZFVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX01lZGlhUHJldmlld0FjY291bnRTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX01qb2xuaXJVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19QcmVmZXJlbmNlc1VzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NlY3VyaXR5VXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fU2lkZWJhclVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zcGFjZXMvX1NwYWNlQmFzaWNTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zcGFjZXMvX1NwYWNlQ2hpbGRyZW5QaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUNyZWF0ZU1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdGVybXMvX0lubGluZVRlcm1zQWdyZWVtZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fQW5hbHl0aWNzVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19JbmNvbWluZ0NhbGxUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX0luY29taW5nTGVnYWN5Q2FsbFRvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fTm9uVXJnZW50RWNob0ZhaWx1cmVUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90eXBvZ3JhcGh5L19IZWFkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZlcmlmaWNhdGlvbi9fVmVyaWZpY2F0aW9uU2hvd1Nhcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL0xlZ2FjeUNhbGxWaWV3L19MZWdhY3lDYWxsVmlld0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fQ2FsbER1cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0NhbGxWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fRGlhbFBhZENvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWRNb2RhbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld0ZvclJvb20ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdTaWRlYmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX1ZpZGVvRmVlZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9oaWdobGlnaHQuanNAMTEuMTIuMC9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL3N0eWxlcy9hdG9tLW9uZS1kYXJrLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2dpdGh1Yi1tYXJrZG93bi1jc3NANS45LjAvbm9kZV9tb2R1bGVzL2dpdGh1Yi1tYXJrZG93bi1jc3MvZ2l0aHViLW1hcmtkb3duLWRhcmsuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBsYXllciBjb21wb3VuZC10b2tlbnMsIGNvbXBvdW5kLXdlYiwgc2hhcmVkLWNvbXBvbmVudHMsIGFwcC13ZWI7XG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19mb250LXNpemVzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IFwiLi4vLi4vbGVnYWN5LWxpZ2h0L2Nzcy9fbGVnYWN5LWxpZ2h0LnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9sZWdhY3ktZGFyay9jc3MvX2xlZ2FjeS1kYXJrLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9saWdodC1jdXN0b20vY3NzL19jdXN0b20ucGNzc1wiIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCBcIi4uLy4uLy4uLy4uL3Jlcy9jc3MvX2NvbXBvbmVudHMucGNzc1wiIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCB1cmwoXCJoaWdobGlnaHQuanMvc3R5bGVzL2F0b20tb25lLWRhcmsubWluLmNzc1wiKSBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgdXJsKFwiZ2l0aHViLW1hcmtkb3duLWNzcy9naXRodWItbWFya2Rvd24tZGFyay5jc3NcIikgbGF5ZXIoYXBwLXdlYik7XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogU0NTUyB2YXJpYWJsZXMgZGVmaW5pbmcgYSByYW5nZSBvZiBmb250IHNpemVzLlxuICpcbiAqIFRoZXNlIGFyZSBkZWZpbmVkIGluIGByZW1gIHNvIHRoYXQgdGhleSBzY2FsZSB3aXRoIHRoZSBgZm9udC1zaXplYCBvZiB0aGUgcm9vdCBlbGVtZW50ICh3aGljaCBpcyBhZGp1c3RhYmxlIHZpYSB0aGVcbiAqIFwiRm9udCBzaXplXCIgc2V0dGluZykuIFRoZXkgZXhpc3QgdG8gbWFrZSB0aGUgam9iIG9mIGNvbnZlcnRpbmcgZGVzaWducyAod2hpY2ggdGVuZCB0byBiZSBiYXNlZCBpbiBwaXhlbHMpIGludG8gQ1NTXG4gKiBlYXNpZXIuXG4gKi9cblxuLypcbiAqIFRoZXNlIHZhcmlhYmxlcyBhcmUgbm93ICpkZXByZWNhdGVkKiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIG5ldyBjb2RlOyBpbnN0ZWFkIENvbXBvdW5kIHR5cG9ncmFwaGljIHRva2Vuc1xuICogc2hvdWxkIGJlIHVzZWQuIERpcmVjdCBlcXVpdmFsZW50cyBmb3IgdGhlc2Ugb2xkIGZvbnQgc2l6ZSB0b2tlbnMgYXJlIGxpc3RlZCBiZWxvdzsgd2hlcmUgbm8gZXF1aXZhbGVudCBleGlzdHMsXG4gKiB0aGF0IHN1Z2dlc3RzIHRoYXQgdGhlIGRlc2lnbiBpcyB1c2luZyBhIG5vbi1zdGFuZGFyZCBmb250IHNpemUgYW5kIHNob3VsZCBiZSB1cGRhdGVkLlxuICpcbiAqIEluIGZhY3QsIG1vZGVybiBGaWdtYSBkZXNpZ25zIHNob3VsZCBhY3R1YWxseSB1c2UgYSBuYW1lZCBUeXBvZ3JhcGh5IHN0eWxlIHN1Y2ggYXMgXCJXZWIvZm9udC9oZWFkaW5nL3NtL3NlbWlib2xkXCIsXG4gKiB0cmFuc2xhdGVzIGRpcmVjdGx5IHRvIGBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKWAuXG4gKi9cbiRmb250LTFweDogMC4wNjI1cmVtO1xuJGZvbnQtOHB4OiAwLjVyZW07XG4kZm9udC0xMHB4OiAwLjYyNXJlbTtcbiRmb250LTEwLTRweDogMC42Mjc1cmVtO1xuJGZvbnQtMTFweDogMC42ODc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS14cyAqL1xuJGZvbnQtMTJweDogMC43NXJlbTtcbiRmb250LTEzcHg6IDAuODEyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktc20gKi9cbiRmb250LTE0cHg6IDAuODc1cmVtO1xuJGZvbnQtMTVweDogMC45Mzc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS1tZCAqL1xuJGZvbnQtMTZweDogMXJlbTtcbiRmb250LTE3cHg6IDEuMDYyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktbGcgKi9cbiRmb250LTE4cHg6IDEuMTI1cmVtO1xuJGZvbnQtMjBweDogMS4yNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmctc20gKi9cbiRmb250LTIycHg6IDEuMzc1cmVtO1xuJGZvbnQtMjRweDogMS41cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1tZCAqL1xuJGZvbnQtMjVweDogMS41NjI1cmVtO1xuJGZvbnQtMjZweDogMS42MjVyZW07XG4kZm9udC0yOHB4OiAxLjc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1sZyAqL1xuJGZvbnQtMzBweDogMS44NzVyZW07XG4kZm9udC0zMnB4OiAycmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy14bCAqL1xuJGZvbnQtMzRweDogMi4xMjVyZW07XG4kZm9udC0zNXB4OiAyLjE4NzVyZW07XG4kZm9udC00MnB4OiAyLjYyNXJlbTtcbiRmb250LTQ0cHg6IDIuNzVyZW07XG4kZm9udC00OHB4OiAzcmVtO1xuIiwiLypcbiAqIE51bml0by5cbiAqIEluY2x1ZGVzIGV4dGVuZGVkIExhdGluIGFuZCBWaWV0bmFtZXNlIGNoYXJhY3RlciBzZXRzXG4gKiBDdXJyZW50IFVSTHMgYXJlIHRha2VuIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZWl2YS9OdW5pdG9Gb250L3JlbGVhc2VzL3RhZy92My41MDBcbiAqIC4uLmluIG9yZGVyIHRvIGluY2x1ZGUgY3lyaWxsaWMuXG4gKlxuICogUHJldmlvdXNseSwgdGhleSB3ZXJlXG4gKiBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TnVuaXRvOjQwMCw0MDBpLDYwMCw2MDBpLDcwMCw3MDBpJnN1YnNldD1sYXRpbi1leHQsdmlldG5hbWVzZVxuICpcbiAqIFdlIGV4cGxpY2l0bHkgZG8gbm90IGluY2x1ZGUgTnVuaXRvJ3MgaXRhbGljIHZhcmlhbnRzLCBhcyB0aGV5IGFyZSBub3QgaXRhbGljIGVub3VnaFxuICogYW5kIGl0J3MgYmV0dGVyIHRvIHJlbHkgb24gdGhlIGJyb3dzZXIncyBidWlsdC1pbiBvYmxpcXVpbmcgYmVoYXZpb3VyLlxuICovXG5cbi8qIEdyYWIgdGhlIG90aGVyIGZvbnRzIGZyb20gdGhlIGN1cnJlbnQgdGhlbWUsIHNvIHdlIGNhbiBvdmVycmlkZSB0byBJbnRlciAqL1xuLyogaW4gY3VzdG9tIGZvbnRzIGlmIG5lZWRlZC4gKi9cbkBpbXBvcnQgXCIuLi8uLi9saWdodC9jc3MvX2ZvbnRzLnBjc3NcIjtcblxuLyogTnVuaXRvIGFzIHRoZSBkZWZhdWx0LCBmb3Igb2xkIHRpbWUncyBzYWtlIG9uIGxlZ2FjeSB0aGVtZXMuICovXG4vKiB0aGUgJ3NyYycgbGlua3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBidW5kbGUuY3NzLCB3aGljaCBpcyBpbiBhIHN1YmRpcmVjdG9yeS5cbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1TZW1pQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBOdW5pdG87XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL051bml0by9OdW5pdG8tQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG4iLCIvKiB0aGUgJ3NyYycgbGlua3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBidW5kbGUuY3NzLCB3aGljaCBpcyBpbiBhIHN1YmRpcmVjdG9yeS5cbiAqL1xuXG4vKiBUd2Vtb2ppIENPTFIgKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBUd2Vtb2ppO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL1R3ZW1vamlfTW96aWxsYS9Ud2Vtb2ppTW96aWxsYS1jb2xyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuLyogRm9yIGF0IGxlYXN0IENocm9tZSBvbiBXaW5kb3dzIDEwLCB3ZSBoYXZlIHRvIGV4cGxpY3RseSBhZGQgZXh0cmEgd2VpZ2h0cyBmb3IgdGhlIGVtb2ppIHRvIGFwcGVhciBpbiBib2xkIG1lc3NhZ2VzLCBldGMuICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogVHdlbW9qaTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9Ud2Vtb2ppX01vemlsbGEvVHdlbW9qaU1vemlsbGEtY29sci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFR3ZW1vamk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4iLCI6cm9vdCB7XG4gICAgLyogVGhpcyBpcyBzZXQgdG8gVHdlbW9qaSB3aGVuIHRoZSB1c2VyIG9wdHMgaW50byB0aGUgYnVuZGxlZCBlbW9qaSBmb250ICovXG4gICAgLS1lbW9qaS1mb250LWZhbWlseTogXCJcIjtcbn1cblxuLyogTnVuaXRvIGxhY2tzIGNvbWJpbmluZyBkaWFjcml0aWNzLCBzbyB0aGVzZSB3aWxsIGZhbGwgdGhyb3VnaFxuICAgdG8gdGhlIG5leHQgZm9udC4gIEhlbGV2ZXRpY2EncyBkaWFjcml0aWNzIHNvbWV0aW1lcyBkbyBub3QgY29tYmluZVxuICAgbmljZWx5IChvbiBPU1gsIGF0IGxlYXN0KSBhbmQgcmVzdWx0IGluIGEgaHVnZSBob3Jpem9udGFsIG1lc3MuXG4gICBBcmlhbCBlbXBpcmljYWxseSBnZXRzIGl0IHJpZ2h0LCBoZW5jZSBwcmlvcml0aXNpbmcgQXJpYWwgaGVyZS4gKi9cbi8qIE5vdG8gQ29sb3IgRW1vamkgY29udGFpbnMgZGlnaXRzLCBpbiBmaXhlZC13aWR0aCwgdGhlcmVmb3JlIGNhdXNpbmdcbiAgIGRpZ2l0cyBpbiBmbG93ZWQgdGV4dCB0byBzdGFuZCBvdXQuXG4gICBUT0RPOiBDb25zaWRlciBwdXR0aW5nIGFsbCBlbW9qaSBmb250cyB0byB0aGUgZW5kIHJhdGhlciB0aGFuIHRoZSBmcm9udC4gKi9cbiRmb250LWZhbWlseTpcbiAgICBcIk51bml0b1wiLCB2YXIoLS1lbW9qaS1mb250LWZhbWlseSksIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWYsXG4gICAgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG5cbiRtb25vc3BhY2UtZm9udC1mYW1pbHk6XG4gICAgXCJGaXJhIENvZGVcIiwgdmFyKC0tZW1vamktZm9udC1mYW1pbHkpLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZSxcbiAgICBcIk5vdG8gQ29sb3IgRW1vamlcIjtcblxuLyogdW5pZmllZCBwYWxldHRlICovXG4vKiB0cnkgdG8gdXNlIHRoZXNlIGNvbG9ycyB3aGVuIHBvc3NpYmxlICovXG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiAjZjNmOGZkO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcblxuLyogdHlwaWNhbCB0ZXh0IChkYXJrLW9uLXdoaXRlIGluIGxpZ2h0IHNraW4pICovXG4kcHJpbWFyeS1mZy1jb2xvcjogIzJlMmYzMjtcbiRzZWNvbmRhcnktZmctY29sb3I6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRwcmltYXJ5LWJnLWNvbG9yOiAjZmZmZmZmO1xuJG11dGVkLWZnLWNvbG9yOiAjNjE3MDhiOyAvKiBDb21tb25seSB1c2VkIGluIGhlYWRpbmdzIGFuZCByZWxldmFudCBhbHQgdGV4dCAqL1xuXG4vKiB1c2VkIGZvciBkaWFsb2cgYm94IHRleHQgKi9cbiRsaWdodC1mZy1jb2xvcjogIzc0NzQ3NDtcblxuLyogdXNlZCBmb3IgZm9jdXNpbmcgZm9ybSBjb250cm9scyAqL1xuJGZvY3VzLWJnLWNvbG9yOiAjZGRkZGRkO1xuXG4vKiBidXR0b24gVUkgKHdoaXRlLW9uLWdyZWVuIGluIGxpZ2h0IHNraW4pICovXG4kYWNjZW50LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGFjY2VudC1hbHQ6ICMyMzhjZjU7XG5cbiRzZWxlY3Rpb24tZmctY29sb3I6ICRwcmltYXJ5LWJnLWNvbG9yO1xuXG4kZm9jdXMtYnJpZ2h0bmVzczogMTA1JTtcblxuLyogaW5mb3JtYXRpb25hbCBwbGludGggKi9cbiRpbmZvLXBsaW50aC1iZy1jb2xvcjogI2Y3ZjdmNztcbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuLyogbGVmdC1wYW5lbCBzdHlsZSBtdXRlZCBhY2NlbnQgY29sb3IgKi9cbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiAjZjJmNWY4O1xuXG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogIzI3MzAzYTtcbiRpbnZlcnRlZC1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgYnkgUm9vbURyb3BUYXJnZXQgKi9cbiRkcm9wdGFyZ2V0LWJnLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC41KTtcblxuLyogdXNlZCBieSBBdXRvY29tcGxldGUgKi9cbiRzZWxlY3RlZC1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG5cbi8qIHNlbGVjdGVkIGZvciBob3Zlcm92ZXIgJiBzZWxlY3RlZCBldmVudCB0aWxlcyAqL1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiB1c2VkIGZvciB0aGUgaGFpcmxpbmUgZGl2aWRlcnMgaW4gUm9vbVZpZXcgKi9cbiRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yOiAjZTVlNWU1O1xuJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKTtcblxuLyogdXNlZCBmb3IgdGhlIGJvcmRlciBvZiBpbnB1dCB0ZXh0IGZpZWxkcyAqL1xuJGlucHV0LWJvcmRlci1jb2xvcjogI2U3ZTdlNztcbiRpbnB1dC1kYXJrZXItYmctY29sb3I6ICNlM2U4ZjA7XG4kaW5wdXQtZGFya2VyLWZnLWNvbG9yOiAjOWZhOWJhO1xuJGlucHV0LWxpZ2h0ZXItYmctY29sb3I6ICNmMmY1Zjg7XG5cbiRyZXNlbmQtYnV0dG9uLWRpdmlkZXItY29sb3I6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG5cbiRidXR0b24tZmctY29sb3I6IHdoaXRlO1xuXG4vKiBhcGFydCBmcm9tIGxvZ2luIGZvcm1zLCB3aGljaCBoYXZlIHN0cm9uZ2VyIGJvcmRlciAqL1xuJHN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3I6ICNjN2M3Yzc7XG5cbi8qIHVzZWQgZm9yIFVzZXJTZXR0aW5ncyBFZGl0YWJsZVRleHQgKi9cbiRpbnB1dC11bmRlcmxpbmUtY29sb3I6IHJnYigxNTEsIDE1MSwgMTUxLCAwLjUpO1xuJGlucHV0LWZnLWNvbG9yOiByZ2IoNzQsIDc0LCA3NCwgMC45KTtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbi8qIHNjcm9sbGJhcnMgKi9cbiRzY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuLyogY29udGV4dCBtZW51cyAqL1xuJG1lbnUtYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xuJG1lbnUtYmctY29sb3I6ICNmZmY7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiByZ2IoMTE4LCAxMzEsIDE1NiwgMC42KTtcbiRtZW51LXNlbGVjdGVkLWNvbG9yOiAjZjVmOGZhO1xuXG4kYXZhdGFyLWluaXRpYWwtY29sb3I6ICNmZmZmZmY7XG5cbiRoMy1jb2xvcjogIzNkM2IzOTtcbiRpY29uLWJ1dHRvbi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4kZGlhbG9nLXRpdGxlLWZnLWNvbG9yOiAjNDU0NzRhO1xuJGRpYWxvZy1iYWNrZHJvcC1jb2xvcjogcmdiKDQ2LCA0OCwgNTEsIDAuMzgpO1xuJGRpYWxvZy1jbG9zZS1mZy1jb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG5cbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yOiAjMDAwO1xuJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTogMC45NTtcblxuJGltYWdlYm9keS1naWZsYWJlbDogcmdiKDAsIDAsIDAsIDAuNyk7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWJvcmRlcjogcmdiKDAsIDAsIDAsIDAuMik7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMSk7XG5cbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuJG5ldXRyYWwtYmFkZ2UtY29sb3I6ICNkYmRiZGI7XG5cbiRwcmV2aWV3LXdpZGdldC1iYXItY29sb3I6ICNkZGQ7XG5cbiRibG9ja3F1b3RlLWJhci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcblxuJHNldHRpbmdzLWdyZXktZmctY29sb3I6ICNhMmEyYTI7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogIzYxNzA4YjtcblxuJHJ0ZS1iZy1jb2xvcjogI2U5ZTllOTtcbiRydGUtY29kZS1iZy1jb2xvcjogcmdiKDAsIDAsIDAsIDAuMDQpO1xuXG4kaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjogIzkxYTFjMDtcblxuJHBpbGwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktaG92ZXJlZCk7XG4kcGlsbC1wcmVzcy1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXByZXNzZWQpO1xuXG4kdG9wbGVmdG1lbnUtY29sb3I6ICMyMTIxMjE7XG4kcm9vbWhlYWRlci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kcm9vbWhlYWRlci1hZGRyb29tLWJnLWNvbG9yOiAjOTFhMWMwO1xuJHJvb21oZWFkZXItYWRkcm9vbS1mZy1jb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiRyb29tdG9waWMtY29sb3I6ICM5ZTllOWU7XG4kcm9vbS1pY29uLXVucmVhZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kcHJlc2VuY2UtYXdheTogI2Q5YjA3MjtcbiRwcmVzZW5jZS1vZmZsaW5lOiAjZTNlOGYwO1xuJHByZXNlbmNlLWJ1c3k6ICNmZjViNTU7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cbiRhY2NlbnQ6ICMwZGJkOGI7XG4kYWxlcnQ6ICNmZjViNTU7XG4kbGlua3M6ICMwMDg2ZTY7XG4kbGluay1leHRlcm5hbDogIzA0NjdkZDtcbiRwcmltYXJ5LWNvbnRlbnQ6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHNlY29uZGFyeS1jb250ZW50OiAkc2Vjb25kYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWNvbnRlbnQ6ICR0ZXJ0aWFyeS1mZy1jb2xvcjtcbiRxdWF0ZXJuYXJ5LWNvbnRlbnQ6ICM2Zjc4ODI7XG4kcXVpbmFyeS1jb250ZW50OiAkcXVhdGVybmFyeS1jb250ZW50O1xuJHN5c3RlbTogI2Y0ZjZmYTtcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcbiRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1iZy1jb2xvcjtcblxuJHBhbmVsczogcmdiYSgkc3lzdGVtLCAwLjkpO1xuJHBhbmVsLWFjdGlvbnM6ICNmZmY7XG5cbiRzZXBhcmF0b3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR2b2lwY2FsbC1wbGludGgtY29sb3I6ICRzeXN0ZW07XG5cbiRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kOiAjMjEyNjJjO1xuXG4kdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDogIzM5NDA0OTsgLyogWFhYOiBDb2xvciBmcm9tIGRhcmsgdGhlbWUgKi9cblxuLyogQWxsIG9mIHRoZXNlIGFyZSBmcm9tIGRhcmsgdGhlbWUgKi9cbiRjYWxsLXN5c3RlbTogIzIxMjYyYztcbiRjYWxsLWJhY2tncm91bmQ6ICMxNTE5MWU7XG4kY2FsbC1wcmltYXJ5LWNvbnRlbnQ6ICNmZmZmZmY7XG4kY2FsbC1saWdodC1xdWF0ZXJuYXJ5LWNvbnRlbnQ6ICNjMWM2Y2Q7XG5cbiR1c2VybmFtZS12YXJpYW50MS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0xKTtcbiR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0yKTtcbiR1c2VybmFtZS12YXJpYW50My1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0zKTtcbiR1c2VybmFtZS12YXJpYW50NC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS00KTtcbiR1c2VybmFtZS12YXJpYW50NS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS01KTtcbiR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS02KTtcblxuLyoqXG4gKiBDcmVhdGluZyBhIGBzZW1hbnRpY2AgY29sb3Igc2NhbGUuIFRoaXMgd2lsbCBub3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ld1xuICogdmlzdWFsIGxhbmd1YWdlLCBidXQgbmVjZXNzYXJ5IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2RcbiAqIFRoaXMgYWJzdHJhY3QgdGhlIGBncmVlbmAgYXdheSBmcm9tIHdoZXJlIGFjY2VudCBzaGFkZXMgYXJlIHVzZWRcbiAqIFRha2U6IGBiYWNrZ3JvdW5kOiByZ2JhKCRhY2NlbnQsIDAuMSk7YFxuICogd291bGQgYmUgdHJhbnNmb3JtZWQgdG86IGBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtgXG4gKlxuICogVG8gdXNlIHVuZGVyIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLCBhbHdheXMgcHJlZmVyIHRoZSBzZW1hbnRpY3MgZGVmaW5lZFxuICogaW4gaHR0cHM6Ly9jb21wb3VuZC5lbGVtZW50LmlvLz9wYXRoPS9kb2NzL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG4kd2lkZ2V0LWJvZHktYmctY29sb3I6ICNmZmY7XG5cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qICRldmVudC1oaWdobGlnaHQtYmctY29sb3Igc2hhcmVzIHRoaXMgdmFsdWUsICovXG4vKiBzbyB0byBub3QgbWFrZSB0aGVpciBvcmRlciBkZXBlbmRlbnQgb24gd2hvIGRlcGVuZHMgb24gd2hvLCBoYXZlIGEgc2hhcmVkIHZhbHVlICovXG4vKiBkZWZpbmVkIGJlZm9yZSBib3RoICovXG4keWVsbG93LWJhY2tncm91bmQ6ICNmZmY4ZTM7XG5cbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6ICR5ZWxsb3ctYmFja2dyb3VuZDtcblxuLyogZXZlbnQgdGltZXN0YW1wICovXG4kZXZlbnQtdGltZXN0YW1wLWNvbG9yOiAjYWNhY2FjO1xuXG4vKiBlMmUgKi9cbiRlMmUtdmVyaWZpZWQtY29sb3I6ICMwZGJkOGI7XG4kZTJlLXdhcm5pbmctY29sb3I6ICNmZjViNTU7XG4kZTJlLXZlcmlmaWVkLWNvbG9yLWxpZ2h0OiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRlMmUtd2FybmluZy1jb2xvci1saWdodDogdmFyKC0tY3BkLWNvbG9yLXJlZC0zMDApO1xuXG4vKioqIEltYWdlVmlldyAqKiovXG4kbGlnaHRib3gtYmctY29sb3I6ICM0NTQ1NDU7XG4kbGlnaHRib3gtZmctY29sb3I6ICNmZmZmZmY7XG4kbGlnaHRib3gtYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xuXG4vKiBUYWJiZWQgdmlld3MgKi9cbiR0YWItbGFiZWwtZmctY29sb3I6ICM0NTQ3NGE7XG4kdGFiLWxhYmVsLWFjdGl2ZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuLyogQnV0dG9ucyAqL1xuJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1zZWNvbmRhcnktYmctY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4kYnV0dG9uLWRhbmdlci1mZy1jb2xvcjogI2ZmZmZmZjtcbiRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3I6ICNmNWI2YmI7IC8qIFRPRE86IFZlcmlmeSBjb2xvciAqL1xuXG4kdmlzdWFsLWJlbGwtYmctY29sb3I6ICNmYWE7XG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICNjMWM5ZDY7XG4kdG9nZ2xlc3ctYmFsbC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4kcHJvZ3Jlc3NiYXItYmctY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuXG4kYXV0aHBhZ2UtYmctY29sb3I6ICMyZTM2NDk7XG4kYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1LCAwLjU5KTtcbiRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUsIDAuNTkpO1xuJGF1dGhwYWdlLWZvY3VzLWJnLWNvbG9yOiAjZGRkZGRkO1xuJGF1dGhwYWdlLWxhbmctY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiRhdXRocGFnZS1wcmltYXJ5LWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4kZGFyay1wYW5lbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuJHBhbmVsLWdyYWRpZW50OiByZ2IoMjQyLCAyNDUsIDI0OCwgMCksIHJnYigyNDIsIDI0NSwgMjQ4LCAxKTtcblxuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYm9yZGVyLWNvbG9yOiAjZTllZGYxO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ob3Zlci1ib3JkZXItY29sb3I6ICRmb2N1cy1iZy1jb2xvcjtcblxuJHJlYWN0aW9uLXJvdy1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcjogI2U5ZmZmOTtcblxuJGtiZC1ib3JkZXItY29sb3I6ICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4kdG9vbHRpcC10aW1lbGluZS1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4kdG9vbHRpcC10aW1lbGluZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuJGJyZWFkY3J1bWItcGxhY2Vob2xkZXItYmctY29sb3I6ICNlOGVlZjU7XG5cbi8qIFNlZSBub24tbGVnYWN5IF9saWdodCBmb3IgdmFyaWFibGUgaW5mb3JtYXRpb24gKi9cbiR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I6ICNmZjRiNTU7XG4kdm9pY2UtcmVjb3JkLWxpdmUtY2lyY2xlLWNvbG9yOiAjZmY0YjU1O1xuJHZvaWNlLXJlY29yZC1zdG9wLWJvcmRlci1jb2xvcjogI2UzZThmMDtcbiR2b2ljZS1yZWNvcmQtaWNvbi1jb2xvcjogJHRlcnRpYXJ5LWZnLWNvbG9yO1xuXG4kY29tcG9zZXItc2hhZG93LWNvbG9yOiB0cmFucGFyZW50O1xuXG4kY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiBCdWJibGUgdGlsZXMgKi9cbiRldmVudGJ1YmJsZS1zZWxmLWJnOiAjZjBmYmY4O1xuJGV2ZW50YnViYmxlLW90aGVycy1iZzogJHN5c3RlbTtcbiRldmVudGJ1YmJsZS1iZy1ob3ZlcjogI2ZhZmJmZDtcblxuLyogcGlubmVkIGV2ZW50cyBpbmRpY2F0b3IgKi9cbiRwaW5uZWQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4kc3BhY2VQYW5lbC1kaXZpZGVyLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuLyogTG9jYXRpb24gc2hhcmluZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsb2NhdGlvbi1tYXJrZXItY29sb3I6ICNmZmZmZmY7XG4kbG9jYXRpb24tbGl2ZS1jb2xvcjogIzVjNTZmNTtcbiRsb2NhdGlvbi1saXZlLXNlY29uZGFyeS1jb2xvcjogI2RlZGRmZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbmJvZHkge1xuICAgIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG59XG5cbi8qIGRpZmYgaGlnaGxpZ2h0IGNvbG9ycyAqL1xuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNkZmQ7XG59XG5cbi5obGpzLWRlbGV0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRkO1xufVxuIiwiLyogQ29sb3JzIGZyb20gRmlnbWEgQ29tcG91bmQgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZC9Db21wb3VuZD9ub2RlLWlkPTU1OSUzQTc0MSAqL1xuJHN5c3RlbTogIzIxMjYyYztcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcblxuLyogdW5pZmllZCBwYWxldHRlICovXG4vKiB0cnkgdG8gdXNlIHRoZXNlIGNvbG9ycyB3aGVuIHBvc3NpYmxlICovXG4kYmctY29sb3I6ICMxODFiMjE7XG4kYmFzZS1jb2xvcjogIzE1MTcxYjtcbiRiYXNlLXRleHQtY29sb3I6ICNlZGYzZmY7XG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiAjMjIyNjJlO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcbiRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yOiAjYTFiMmQxO1xuJGhlYWRlci1wYW5lbC10ZXh0LXNlY29uZGFyeS1jb2xvcjogI2M4YzhjZDtcbiR0ZXh0LXByaW1hcnktY29sb3I6ICNlZGYzZmY7XG4kdGV4dC1zZWNvbmRhcnktY29sb3I6ICNhMWIyZDE7XG4kcm9vbS1oaWdobGlnaHQtY29sb3I6ICMzNDNhNDY7XG5cbi8qIHR5cGljYWwgdGV4dCAoZGFyay1vbi13aGl0ZSBpbiBsaWdodCBza2luKSAqL1xuJHByaW1hcnktZmctY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG4kc2Vjb25kYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiR0ZXJ0aWFyeS1mZy1jb2xvcjogJHByaW1hcnktZmctY29sb3I7XG4kcHJpbWFyeS1iZy1jb2xvcjogJGJnLWNvbG9yO1xuJG11dGVkLWZnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcblxuLyogdXNlZCBmb3IgZGlhbG9nIGJveCB0ZXh0ICovXG4kbGlnaHQtZmctY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1zZWNvbmRhcnktY29sb3I7XG5cbi8qIHVzZWQgZm9yIGZvY3VzaW5nIGZvcm0gY29udHJvbHMgKi9cbiRmb2N1cy1iZy1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuXG4kcGlsbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuJHBpbGwtaG92ZXItYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1ob3ZlcmVkKTtcbiRwaWxsLXByZXNzLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcHJlc3NlZCk7XG5cbi8qIGluZm9ybWF0aW9uYWwgcGxpbnRoICovXG4kaW5mby1wbGludGgtYmctY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5mby1wbGludGgtZmctY29sb3I6ICM4ODg7XG5cbiRzcGFjZVBhbmVsLWJnLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiRpbnZlcnRlZC1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgYnkgQXV0b2NvbXBsZXRlICovXG4kc2VsZWN0ZWQtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuLyogc2VsZWN0ZWQgZm9yIGhvdmVyb3ZlciAmIHNlbGVjdGVkIGV2ZW50IHRpbGVzICovXG4kZXZlbnQtc2VsZWN0ZWQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgZm9yIHRoZSBoYWlybGluZSBkaXZpZGVycyBpbiBSb29tVmlldyAqL1xuJHByaW1hcnktaGFpcmxpbmUtY29sb3I6ICMwMDAwMDA7XG4kc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0zMDApO1xuXG4vKiB1c2VkIGZvciB0aGUgYm9yZGVyIG9mIGlucHV0IHRleHQgZmllbGRzICovXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xuJGlucHV0LWRhcmtlci1iZy1jb2xvcjogIzE4MWIyMTtcbiRpbnB1dC1kYXJrZXItZmctY29sb3I6ICM2MTcwOGI7XG4kaW5wdXQtbGlnaHRlci1iZy1jb2xvcjogI2YyZjVmODtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcblxuJHJlc2VuZC1idXR0b24tZGl2aWRlci1jb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuXG4vKiBzY3JvbGxiYXJzICovXG4kc2Nyb2xsYmFyLXRodW1iLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC4yKTtcblxuLyogY29udGV4dCBtZW51cyAqL1xuJG1lbnUtYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuJG1lbnUtYmctY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiAkYmctY29sb3I7XG4kbWVudS1zZWxlY3RlZC1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuXG4kYXZhdGFyLWluaXRpYWwtY29sb3I6ICNmZmZmZmY7XG5cbiRoMy1jb2xvcjogJHByaW1hcnktZmctY29sb3I7XG4kaWNvbi1idXR0b24tY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcblxuJGRpYWxvZy10aXRsZS1mZy1jb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcbiRkaWFsb2ctYmFja2Ryb3AtY29sb3I6ICMwMDAwMDA4MDtcbiRkaWFsb2ctY2xvc2UtZmctY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiRkaWFsb2ctY2xvc2UtZXh0ZXJuYWwtY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG5cbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yOiAjMDAwO1xuJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTogMC44NTtcblxuJHNldHRpbmdzLWdyZXktZmctY29sb3I6ICNhMmEyYTI7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogJHRleHQtc2Vjb25kYXJ5LWNvbG9yO1xuXG4kdG9wbGVmdG1lbnUtY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG4kcm9vbWhlYWRlci1hZGRyb29tLWJnLWNvbG9yOiAjM2M0NTU2O1xuJHJvb21oZWFkZXItYWRkcm9vbS1mZy1jb2xvcjogJHRleHQtcHJpbWFyeS1jb2xvcjtcbiRyb29tdG9waWMtY29sb3I6ICR0ZXh0LXNlY29uZGFyeS1jb2xvcjtcbiRyb29tLWljb24tdW5yZWFkLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cbiRhY2NlbnQ6ICMwZGJkOGI7XG4kYWxlcnQ6ICNmZjViNTU7XG4kbGlua3M6ICMwMDg2ZTY7XG4kbGluay1leHRlcm5hbDogIzA0NjdkZDtcbiRwcmltYXJ5LWNvbnRlbnQ6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHNlY29uZGFyeS1jb250ZW50OiAkc2Vjb25kYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWNvbnRlbnQ6ICR0ZXJ0aWFyeS1mZy1jb2xvcjtcbiRxdWF0ZXJuYXJ5LWNvbnRlbnQ6ICM2Zjc4ODI7XG4kcXVpbmFyeS1jb250ZW50OiAkcXVhdGVybmFyeS1jb250ZW50O1xuJGJhY2tncm91bmQ6ICRwcmltYXJ5LWJnLWNvbG9yO1xuXG4kcGFuZWxzOiByZ2JhKCRzeXN0ZW0sIDAuOSk7XG4kcGFuZWwtYWN0aW9uczogIzFhMWQyMztcblxuJHNlcGFyYXRvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuLyoqXG4gKiBDcmVhdGluZyBhIGBzZW1hbnRpY2AgY29sb3Igc2NhbGUuIFRoaXMgd2lsbCBub3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ld1xuICogdmlzdWFsIGxhbmd1YWdlLCBidXQgbmVjZXNzYXJ5IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2RcbiAqIFRoaXMgYWJzdHJhY3QgdGhlIGBncmVlbmAgYXdheSBmcm9tIHdoZXJlIGFjY2VudCBzaGFkZXMgYXJlIHVzZWRcbiAqIFRha2U6IGBiYWNrZ3JvdW5kOiByZ2JhKCRhY2NlbnQsIDAuMSk7YFxuICogd291bGQgYmUgdHJhbnNmb3JtZWQgdG86IGBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtgXG4gKlxuICogVG8gdXNlIHVuZGVyIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLCBhbHdheXMgcHJlZmVyIHRoZSBzZW1hbnRpY3MgZGVmaW5lZFxuICogaW4gaHR0cHM6Ly9jb21wb3VuZC5lbGVtZW50LmlvLz9wYXRoPS9kb2NzL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDogJHByaW1hcnktY29udGVudDtcbiRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ6ICRzeXN0ZW07XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtZm9yZWdyb3VuZDogJHN5c3RlbTtcbiRjYWxsLXZpZXctYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1jb250ZW50LWJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiR2aWRlby1mZWVkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkc3lzdGVtO1xuXG4kY2FsbC1zeXN0ZW06ICRzeXN0ZW07XG4kY2FsbC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiRjYWxsLXByaW1hcnktY29udGVudDogJHByaW1hcnktY29udGVudDtcbiRjYWxsLWxpZ2h0LXF1YXRlcm5hcnktY29udGVudDogI2MxYzZjZDtcblxuJHJvb21zdWJsaXN0LXNrZWxldG9uLXVpLWJnOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjM2U0NDRjIDAlLCAjM2U0NDRjMDAgMTAwJSk7XG5cbiRzcGFjZVBhbmVsLWRpdmlkZXItY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJHdpZGdldC1ib2R5LWJnLWNvbG9yOiAjMWExZDIzO1xuXG4kZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yOiAjMjUyNzFmO1xuXG4vKiBldmVudCB0aW1lc3RhbXAgKi9cbiRldmVudC10aW1lc3RhbXAtY29sb3I6ICR0ZXh0LXNlY29uZGFyeS1jb2xvcjtcblxuLyogVGFiYmVkIHZpZXdzICovXG4kdGFiLWxhYmVsLWZnLWNvbG9yOiAkdGV4dC1wcmltYXJ5LWNvbG9yO1xuJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG5cbi8qIEJ1dHRvbnMgKi9cbiRidXR0b24tcHJpbWFyeS1mZy1jb2xvcjogI2ZmZmZmZjtcbiRidXR0b24tc2Vjb25kYXJ5LWJnLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZGFuZ2VyLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtZmctY29sb3I6ICNmZmZmZmY7XG4kYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1iZy1jb2xvcjogI2Y1YjZiYjsgLyogVE9ETzogVmVyaWZ5IGNvbG9yICovXG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuJHByb2dyZXNzYmFyLWJnLWNvbG9yOiAjMjEyNjJjO1xuXG4kdmlzdWFsLWJlbGwtYmctY29sb3I6ICM4MDA7XG5cbiRkYXJrLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4kcGFuZWwtZ3JhZGllbnQ6IHJnYigzNCwgMzgsIDQ2LCAwKSwgcmdiKDM0LCAzOCwgNDYsIDEpO1xuXG4kbWVzc2FnZS1hY3Rpb24tYmFyLWJnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWJvcmRlci1jb2xvcjogIzYxNmI3ZjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItaG92ZXItYm9yZGVyLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcblxuJHJlYWN0aW9uLXJvdy1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiRyZWFjdGlvbi1yb3ctYnV0dG9uLXNlbGVjdGVkLWJnLWNvbG9yOiAjMWY2OTU0O1xuXG4ka2JkLWJvcmRlci1jb2xvcjogJHN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3I7XG5cbiR0b29sdGlwLXRpbWVsaW5lLWJnLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcbiR0b29sdGlwLXRpbWVsaW5lLWZnLWNvbG9yOiAjZmZmZmZmO1xuXG4kYnJlYWRjcnVtYi1wbGFjZWhvbGRlci1iZy1jb2xvcjogIzI3MmMzNTtcblxuLyogU2VlIG5vbi1sZWdhY3kgZGFyayBmb3IgdmFyaWFibGUgaW5mb3JtYXRpb24gKi9cbiR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I6ICM2Zjc4ODI7XG4kdm9pY2UtcmVjb3JkLWljb24tY29sb3I6ICM2Zjc4ODI7XG5cbiRjb21wb3Nlci1zaGFkb3ctY29sb3I6IHRyYW5wYXJlbnQ7XG5cbiRjb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvcjogIzJhMzAzOTtcbiRpbmxpbmVjb2RlLWJvcmRlci1jb2xvcjogIzJhMzAzOTtcbiRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I6ICMyYTMwMzk7XG5cbi8qIEJ1YmJsZSB0aWxlcyAqL1xuJGV2ZW50YnViYmxlLXNlbGYtYmc6ICMxNDMyMmU7XG4kZXZlbnRidWJibGUtb3RoZXJzLWJnOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4kZXZlbnRidWJibGUtYmctaG92ZXI6ICMxYzIwMjY7XG5cbi8qIExvY2F0aW9uIHNoYXJpbmcgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kbG9jYXRpb24tbWFya2VyLWNvbG9yOiAjZmZmZmZmO1xuJGxvY2F0aW9uLWxpdmUtY29sb3I6ICM1YzU2ZjU7XG4kbG9jYXRpb24tbGl2ZS1zZWNvbmRhcnktY29sb3I6ICNkZWRkZmQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG5ib2R5IHtcbiAgICBjb2xvci1zY2hlbWU6IGRhcms7XG59XG5cbi8qIE5hc3R5IGhhY2tzIHRvIGFwcGx5IGEgZmlsdGVyIHRvIGFyYml0cmFyeSBtb25vY2hyb21lIGFydHdvcmsgdG8gbWFrZSBpdCAqL1xuLyogYmV0dGVyIG1hdGNoIHRoZSB0aGVtZS4gIFR5cGljYWxseSBhcHBsaWVkIHRvIGRhcmsgZ3JleSAnb2ZmJyBidXR0b25zIG9yICovXG4vKiBsaWdodCBncmV5ICdvbicgYnV0dG9ucy4gKi9cbi5teF9maWx0ZXJGbGlwQ29sb3Ige1xuICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuXG4vKiBtYXJrZG93biBvdmVycmlkZXM6ICovXG4ubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm1hcmtkb3duLWJvZHkge1xuICAgIHRhYmxlIHtcbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogaGlnaGxpZ2h0LmpzIG92ZXJyaWRlczogKi9cbi5obGpzLXRhZyB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIFdpdGhvdXQgdGhpcyB0aGV5J2QgYmUgd2VpcmRseSBibHVlIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIHRoZW1lICovXG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBjc3N0b29scy92YWx1ZS1uby11bmtub3duLWN1c3RvbS1wcm9wZXJ0aWVzICovXG5cbiRmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHksICRmb250LWZhbWlseSk7XG4kbW9ub3NwYWNlLWZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1tb25vc3BhY2UsICRtb25vc3BhY2UtZm9udC1mYW1pbHkpO1xuXG4vKiBDb2xvcnMgZnJvbSBGaWdtYSBDb21wb3VuZCBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkL0NvbXBvdW5kP25vZGUtaWQ9NTU5JTNBNzQxICovXG4kYWNjZW50OiB2YXIoLS1hY2NlbnQtY29sb3IsICRhY2NlbnQpO1xuJGFsZXJ0OiB2YXIoLS1hbGVydCwgJGFsZXJ0KTtcbiRsaW5rczogdmFyKC0tbGlua3MsICRsaW5rcyk7XG4kcHJpbWFyeS1jb250ZW50OiB2YXIoLS1wcmltYXJ5LWNvbnRlbnQsICRwcmltYXJ5LWNvbnRlbnQpO1xuJHNlY29uZGFyeS1jb250ZW50OiB2YXIoLS1zZWNvbmRhcnktY29udGVudCwgJHNlY29uZGFyeS1jb250ZW50KTtcbiR0ZXJ0aWFyeS1jb250ZW50OiB2YXIoLS10ZXJ0aWFyeS1jb250ZW50LCAkdGVydGlhcnktY29udGVudCk7XG4kcXVhdGVybmFyeS1jb250ZW50OiB2YXIoLS1xdWF0ZXJuYXJ5LWNvbnRlbnQsICRxdWF0ZXJuYXJ5LWNvbnRlbnQpO1xuJHF1aW5hcnktY29udGVudDogdmFyKC0tcXVpbmFyeS1jb250ZW50LCAkcXVpbmFyeS1jb250ZW50KTtcbiRzeXN0ZW06IHZhcigtLXN5c3RlbSwgJHN5c3RlbSk7XG4kc3lzdGVtLXRyYW5zcGFyZW50OiB2YXIoLS1zeXN0ZW0tdHJhbnNwYXJlbnQsICNlMWU2ZWMwMCk7XG4kYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCwgJGJhY2tncm91bmQpO1xuJHBhbmVsczogdmFyKC0tcGFuZWxzLCB2YXIoLS1jcGQtY29sb3ItZ3JheS02MDApKTtcbiRwYW5lbC1hY3Rpb25zOiB2YXIoLS1wYW5lbHMtYWN0aW9ucywgdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKSk7XG5cbi8qIC0tdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvciAqL1xuJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kOiB2YXIoLS10aW1lbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpKTtcbiRidXR0b24tc2Vjb25kYXJ5LWJnLWNvbG9yOiAkY3VzdG9tLXRoZW1lLWJhY2tncm91bmQ7XG4kbGlnaHRib3gtYm9yZGVyLWNvbG9yOiAkY3VzdG9tLXRoZW1lLWJhY2tncm91bmQ7XG4kbWVudS1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJGJhY2tncm91bmQ6ICRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDtcbiR0b2dnbGVzdy1iYWxsLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4kdG9nZ2xlc3ctb2ZmLWNvbG9yOiB2YXIoLS10b2dnbGVzdy1vZmYtY29sb3IpO1xuJGRyb3B0YXJnZXQtYmctY29sb3I6IHZhcigtLXRpbWVsaW5lLWJhY2tncm91bmQtY29sb3ItNTBwY3QpOyAvKiBzdGlsbCBuZWVkcyBhbHBoYSBhdCAuNSAqL1xuJGF1dGhwYWdlLW1vZGFsLWJnLWNvbG9yOiB2YXIoLS10aW1lbGluZS1iYWNrZ3JvdW5kLWNvbG9yLTUwcGN0KTsgLyogc3RpbGwgbmVlZHMgYWxwaGEgYXQgLjU5ICovXG4kcm9vbWhlYWRlci1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuXG4vKiAtLXJvb21saXN0LWhpZ2hsaWdodHMtY29sb3IgKi9cbiRwYW5lbC1hY3Rpb25zOiB2YXIoLS1yb29tbGlzdC1oaWdobGlnaHRzLWNvbG9yKTtcblxuLyogLS1zaWRlYmFyLWNvbG9yICovXG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvcik7XG4kdG9vbHRpcC10aW1lbGluZS1iZy1jb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvcik7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWNvbG9yLTUwcGN0KTtcblxuLyogLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yICovXG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRoZWFkZXItcGFuZWwtYmctaG92ZXI6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuJHBhbmVsLWdyYWRpZW50OiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yLTBwY3QpLCB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbi8qIHRoZXNlIHdlcmUgI2YyZjVmOCBpbnN0ZWFkIG9mICNmM2Y4ZmQsIGJ1dCBjbG9zZSBlbm91Z2ggKi9cbiRkYXJrLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRpbnB1dC1saWdodGVyLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRzZWxlY3RlZC1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiRyb29tbGlzdC1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG5cbi8qIC0tdGltZWxpbmUtdGV4dC1jb2xvciAqL1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4kcHJpbWFyeS1jb250ZW50OiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yKTtcbiRyb29tdG9waWMtY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3ItNTBwY3QpO1xuLyogd2FzICMyMTIxMjEgKi9cbiR0b3BsZWZ0bWVudS1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4vKiB3YXMgIzQ1NDc0YSAqL1xuJGRpYWxvZy10aXRsZS1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4vKiB3YXMgIzRlNTA1NCAqL1xuJGF1dGhwYWdlLWxhbmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3IpO1xuLyogd2FzICMyMzJmMzIgKi9cbiRhdXRocGFnZS1wcmltYXJ5LWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yKTtcblxuLyogLS1yb29tbGlzdC1zZXBhcmF0b3ItY29sb3IgKi9cbiRpbnB1dC1kYXJrZXItYmctY29sb3I6IHZhcigtLXJvb21saXN0LXNlcGFyYXRvci1jb2xvcik7XG4kcHJpbWFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tcm9vbWxpc3Qtc2VwYXJhdG9yLWNvbG9yKTsgLyogb3JpZ2luYWxseSAjZTVlNWU1LCBidXQgY2xvc2UgZW5vdWdoICovXG4kc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaGFpcmxpbmUtY29sb3IpO1xuXG4vKiAtLXRpbWVsaW5lLXRleHQtc2Vjb25kYXJ5LWNvbG9yICovXG4kYXV0aHBhZ2Utc2Vjb25kYXJ5LWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4kcGlubmVkLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJHJvb21oZWFkZXItYWRkcm9vbS1iZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuLyogd2FzICM3NDc0NzQgKi9cbiRsaWdodC1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJGZvY3VzLWJnLWNvbG9yOiB2YXIoLS1mb2N1cy1iZy1jb2xvciwgJGZvY3VzLWJnLWNvbG9yKTtcbiRyb29tLWhpZ2hsaWdodC1jb2xvcjogdmFyKC0tcm9vbS1oaWdobGlnaHQtY29sb3IpO1xuXG4kcnRlLXJvb20tcGlsbC1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuXG4vKiB3YXMgIzg4ODg4OCAqL1xuJGluZm8tcGxpbnRoLWZnLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG5cbi8qIC0tcHJpbWFyeS1jb2xvciAqL1xuJGFjY2VudC1hbHQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXG4vKiAtLXdhcm5pbmctY29sb3IgKi9cbiRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yLTUwcGN0KTsgLyogc3RpbGwgbmVlZHMgYWxwaGEgYXQgMC41ICovXG5cbi8qIC0tdGltZWxpbmUtaGlnaGxpZ2h0cy1jb2xvciAqL1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiB2YXIoLS10aW1lbGluZS1oaWdobGlnaHRzLWNvbG9yKTtcbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6IHZhcigtLXRpbWVsaW5lLWhpZ2hsaWdodHMtY29sb3IpO1xuXG4vKiByZWRpcmVjdCBzb21lIHZhcmlhYmxlcyBhd2F5IGZyb20gdGhlaXIgaGFyZGNvZGVkIHZhbHVlcyBpbiB0aGUgbGlnaHQgdGhlbWUgKi9cbiRzZXR0aW5ncy1ncmV5LWZnLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4vKiAtLWV2ZW50YnViYmxlIGNvbG9ycyAqL1xuJGV2ZW50YnViYmxlLXNlbGYtYmc6IHZhcigtLWV2ZW50YnViYmxlLXNlbGYtYmcsICRldmVudGJ1YmJsZS1zZWxmLWJnKTtcbiRldmVudGJ1YmJsZS1vdGhlcnMtYmc6IHZhcigtLWV2ZW50YnViYmxlLW90aGVycy1iZywgJGV2ZW50YnViYmxlLW90aGVycy1iZyk7XG4kZXZlbnRidWJibGUtYmctaG92ZXI6IHZhcigtLWV2ZW50YnViYmxlLWJnLWhvdmVyLCAkZXZlbnRidWJibGUtYmctaG92ZXIpO1xuXG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcjogdmFyKFxuICAgIC0tcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcixcbiAgICAkcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvclxuKTtcblxuJG1lbnUtc2VsZWN0ZWQtY29sb3I6IHZhcigtLW1lbnUtc2VsZWN0ZWQtY29sb3IsICRtZW51LXNlbGVjdGVkLWNvbG9yKTtcbiRwaWxsLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLWJnLWNvbG9yKTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLWhvdmVyLWJnLWNvbG9yKTtcbiRwaWxsLXByZXNzLWJnLWNvbG9yOiB2YXIoLS1vdGhlci11c2VyLXBpbGwtYmctY29sb3IsICRwaWxsLXByZXNzLWJnLWNvbG9yKTtcbiRpY29uLWJ1dHRvbi1jb2xvcjogdmFyKC0taWNvbi1idXR0b24tY29sb3IsICRpY29uLWJ1dHRvbi1jb2xvcik7XG5cbiRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yLCAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcik7XG4kaW52ZXJ0ZWQtYmctY29sb3I6IHZhcigtLXN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3IsICRpbnZlcnRlZC1iZy1jb2xvcik7XG5cbi8qKlxuICogVmFyaWF0aW9uIG9mIHRoZSBhY2NlbnQgY29sb3IuXG4gKiBHZW5lcmF0ZSB0aGlzIGNvbG91ciBzY2FsZSB1c2luZyBMZW9uYXJkb0NvbG9yXG4gKiBUT0RPOiBBZGQgbGlua1xuICovXG4kYWNjZW50LTEwMDogdmFyKC0tYWNjZW50LWNvbG9yLTEwMCk7XG4kYWNjZW50LTIwMDogdmFyKC0tYWNjZW50LWNvbG9yLTIwMCk7XG4kYWNjZW50LTMwMDogdmFyKC0tYWNjZW50LWNvbG9yLTMwMCk7XG4kYWNjZW50LTQwMDogdmFyKC0tYWNjZW50LWNvbG9yLTQwMCk7XG4kYWNjZW50LTUwMDogdmFyKC0tYWNjZW50LWNvbG9yLTUwMCk7XG4kYWNjZW50LTYwMDogdmFyKC0tYWNjZW50LWNvbG9yLTYwMCk7XG4kYWNjZW50LTcwMDogdmFyKC0tYWNjZW50LWNvbG9yLTcwMCk7XG4kYWNjZW50LTgwMDogdmFyKC0tYWNjZW50LWNvbG9yLTgwMCk7XG4kYWNjZW50LTkwMDogdmFyKC0tYWNjZW50LWNvbG9yLTkwMCk7XG4kYWNjZW50LTEwMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMDAwKTtcbiRhY2NlbnQtMTEwMDogdmFyKC0tYWNjZW50LWNvbG9yLTExMDApO1xuJGFjY2VudC0xMjAwOiB2YXIoLS1hY2NlbnQtY29sb3ItMTIwMCk7XG4kYWNjZW50LTEzMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMzAwKTtcbiRhY2NlbnQtMTQwMDogdmFyKC0tYWNjZW50LWNvbG9yLTE0MDApO1xuIiwiLyogYXV0b2dlbmVyYXRlZCBieSByZXRoZW1lbmRleC5zaCAqL1xuQGltcG9ydCBcIi4vX2FuaW1hdGlvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vX2NvbW1vbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uTGlzdEl0ZW0ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uVmlld0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nT3duQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dTaWRlYmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MaXZlVGltZVJlbWFpbmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fT3duQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TaGFyZUxhdGVzdExvY2F0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TdHlsZWRMaXZlQmVhY29uSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0tlYmFiQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsRGV0YWlsSGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtRW5kZWQucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwUGVybWlzc2lvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlckRyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlclRhYkdyb3VwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0xlYXJuTW9yZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19FbmFibGVMaXZlU2hhcmUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTGl2ZUR1cmF0aW9uRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25TaGFyZU1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRXJyb3IucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRmFsbGJhY2sucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFya2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlRGlhbG9nQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZVR5cGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fWm9vbUJ1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9fTUJlYWNvbkJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9zaGFyZWQvX01lZGlhUHJvY2Vzc2luZ0Vycm9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvcG9sbHMvX1BvbGxPcHRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9fQWRkUmVtb3ZlVGhyZWVwaWRzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fQ3VycmVudERldmljZVNlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxIZWFkaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlscy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VTZWN1cml0eUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVHlwZUljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3RIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWN1cml0eVJlY29tbWVuZGF0aW9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlbGVjdGFibGVEZXZpY2VUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fS2V5U3RvcmFnZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbkhlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zcGFjZXMvX1F1aWNrVGhlbWVTd2l0Y2hlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3R5cG9ncmFwaHkvX0NhcHRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG91bmQvX0ljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG91bmQvX1N1Y2Nlc3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQXV0b0hpZGVTY3JvbGxiYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQXV0b2NvbXBsZXRlSW5wdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQ29udGV4dHVhbE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRXJyb3JNZXNzYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0ZpbGVEcm9wVGFyZ2V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0ZpbGVQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19HZW5lcmljRHJvcGRvd25NZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0hvbWVQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0xhcmdlTG9hZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0xlZnRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19NYWluU3BsaXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTWF0cml4Q2hhdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19OZXdUaW1lbGluZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX05vblVyZ2VudFRvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1F1aWNrU2V0dGluZ3NCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fUmlnaHRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Sb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TZWFyY2hCb3gucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VIaWVyYXJjaHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGFjZVBpbGxCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VSb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGxhc2hQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RhYmJlZFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fVGhyZWFkc0FjdGl2aXR5Q2VudHJlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1VwbG9hZEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19WaWV3U291cmNlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fQ29tcGxldGVTZWN1cml0eS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTG9naW5TcGxhc2hWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTW9iaWxlUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2Vzc2lvbkxvY2tTdG9sZW5WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2V0dXBFbmNyeXB0aW9uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdWRpb19tZXNzYWdlcy9fUGxheWJhY2tDb250YWluZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXVkaW9fbWVzc2FnZXMvX1NlZWtCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXVkaW9fbWVzc2FnZXMvX1dhdmVmb3JtLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhGb290ZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEhlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoSGVhZGVyTG9nby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoUGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19Db21wbGV0ZVNlY3VyaXR5Qm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19Db3VudHJ5RHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fRGVmYXVsdFdlbGNvbWUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0xhbmd1YWdlU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fTG9naW5XaXRoUVIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fUGFzc3BocmFzZUZpZWxkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX1dlbGNvbWUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fQmFzZUF2YXRhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19EZWNvcmF0ZWRSb29tQXZhdGFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX1Jvb21BdmF0YXJWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX1dpZGdldEF2YXRhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19XaXRoUHJlc2VuY2VJbmRpY2F0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYmV0YS9fQmV0YUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvY29udGV4dF9tZW51cy9fRGV2aWNlQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvY29udGV4dF9tZW51cy9fSWNvbml6ZWRDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9jb250ZXh0X21lbnVzL19MZWdhY3lDYWxsQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19CdWdSZXBvcnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ2hhbmdlbG9nRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbXBvdW5kRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3JlYXRlUm9vbURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcmVhdGVTZWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVN1YnNwYWNlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyeXB0by5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19EZWFjdGl2YXRlQWNjb3VudERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19EZXZ0b29sc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19FeHBvcnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRmVlZGJhY2tEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRm9yd2FyZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0luY29taW5nU2FzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19JbnZpdGVQcm9ncmVzc0JvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSm9pblJ1bGVEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19MZWF2ZVJvb21EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTGVhdmVTcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Mb2NhdGlvblZpZXdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTG9nb3V0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTW9kYWxXaWRnZXREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUG9sbENyZWF0ZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19SZWdpc3RyYXRpb25FbWFpbFByb21wdERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19SZW1vdmVTZWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1JlcG9ydFJvb21EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZ0JyaWRnZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlck9mZmxpbmVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2VydmVyUGlja2VyRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NldEVtYWlsRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NldHRpbmdzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NoYXJlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NsYXNoQ29tbWFuZEhlbHBEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU3BhY2VQcmVmZXJlbmNlc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TcGFjZVNldHRpbmdzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Nwb3RsaWdodERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19UZXJtc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19VbnBpbkFsbERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19VcGxvYWRDb25maXJtRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1VzZXJTZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19WZXJpZnlFTWFpbERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9pbnZpdGUvX1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZUNyb3NzU2lnbmluZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0tleUJhY2t1cEZhaWxlZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19SZXN0b3JlS2V5QmFja3VwRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpcmVjdG9yeS9fTmV0d29ya0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19BY2Nlc3NpYmxlQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Db3B5YWJsZVRleHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRGlhbFBhZEJhY2tzcGFjZUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0VkaXRhYmxlSXRlbUxpc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0Vycm9yQm91bmRhcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0V4dGVybmFsTGluay5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRmFjZVBpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ZpZWxkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19HZW5lcmljRXZlbnRMaXN0U3VtbWFyeS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW1hZ2VWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19JbmZvVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW5saW5lU3Bpbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW52aXRlUmVhc29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYWJlbGxlZENoZWNrYm94LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYW5ndWFnZURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19NaW5pQXZhdGFyVXBsb2FkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1BpbGwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Bvd2VyU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Byb2dyZXNzQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19RUkNvZGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1JlcGx5Q2hhaW4ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jlc2l6ZUhhbmRsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fUmljaFRleHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jvb21BbGlhc0ZpZWxkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TU09CdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZWFyY2hXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXJ2ZXJQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRmxhZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3Bpbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3R5bGVkUmFkaW9CdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1N5bnRheEhpZ2hsaWdodC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVGFnQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RleHRXaXRoVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVG9nZ2xlU3dpdGNoLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19WYWxpZGF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fQ2FsbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19DcmVhdGVFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fRGlzYW1iaWd1YXRlZFByb2ZpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0xlZ2FjeUNhbGxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTUltYWdlUmVwbHlCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NTG9jYXRpb25Cb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NUG9sbEJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01TdGlja2VyQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTWVzc2FnZUFjdGlvbkJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fVGV4dHVhbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19UaHJlYWRBY3Rpb25CYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX2NvbW1vbl9DcnlwdG9FdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5TGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fQmFzZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VtcHR5U3RhdGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VuY3J5cHRpb25JbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FeHRlbnNpb25zQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fUGRmVmlld2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19QaW5uZWRNZXNzYWdlc0NhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1Jvb21TdW1tYXJ5Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fVGhyZWFkUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1RpbWVsaW5lQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fVXNlckluZm8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1ZlcmlmaWNhdGlvblBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19XaWRnZXRDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21fc2V0dGluZ3MvX0FsaWFzU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvUm9vbUxpc3RQYW5lbC9fUm9vbUxpc3RQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQXBwc0RyYXdlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQXV0b2NvbXBsZXRlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19BdXhQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQmFzaWNNZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0NhbGxHdWVzdExpbmtCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0UyRUljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0UyRUljb25WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FZGl0TWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FbW9qaUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRXZlbnRCdWJibGVUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FdmVudFRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0hpc3RvcnlUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19JUkNMYXlvdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0ludml0ZWRJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSnVtcFRvQm90dG9tQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19MaXZlQ29udGVudFN1bW1hcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lbWJlckxpc3RIZWFkZXJWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0Vmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVtYmVyVGlsZVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19OZXdSb29tSW50cm8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX092ZXJmbG93VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUGlubmVkRXZlbnRUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19QaW5uZWRNZXNzYWdlQmFubmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUljb25WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUxhYmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19SZWFkUmVjZWlwdEdyb3VwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19SZXBseVByZXZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21IZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21JbmZvTGluZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbUtub2Nrc0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVNlYXJjaEF1eFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tVXBncmFkZVdhcm5pbmdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1NlbmRNZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1N0aWNrZXJzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19UaGlyZFBhcnR5TWVtYmVySW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fVG9wVW5yZWFkTWVzc2FnZXNCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1VzZXJJZGVudGl0eVdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19XaG9Jc1R5cGluZ1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fRWRpdFd5c2l3eWdDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19TZW5kV3lzaXd5Z0NvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRWRpdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRm9ybWF0dGluZ0J1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19MaW5rTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0F2YXRhclNldHRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ZvbnRTY2FsaW5nUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ltYWdlU2l6ZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19JbnRlZ3JhdGlvbk1hbmFnZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0pvaW5SdWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0tleWJvYXJkU2hvcnRjdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0xheW91dFN3aXRjaGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uU2V0dGluZ3MyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19QaG9uZU51bWJlcnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1Bvd2VyTGV2ZWxTZWxlY3Rvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fUm9vbVByb2ZpbGVTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0SW50ZWdyYXRpb25NYW5hZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0ZpZWxkc2V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0hlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NTdWJoZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NwZWxsQ2hlY2tMYW5ndWFnZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1RoZW1lQ2hvaWNlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VwZGF0ZUNoZWNrQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VzZXJQcm9maWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQWR2YW5jZWRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19DaGFuZ2VSZWNvdmVyeUtleS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZEVtcGhhc2lzZWRDb250ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVzZXRJZGVudGl0eVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzQmFubmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzSW5kZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzU2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX05vdGlmaWNhdGlvblNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUGVvcGxlUm9vbVNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUm9sZXNSb29tU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19TZWN1cml0eVJvb21TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19IZWxwVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fS2V5Ym9hcmRVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19Nam9sbmlyVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TZWN1cml0eVVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NpZGViYXJVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUJhc2ljU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUNoaWxkcmVuUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VDcmVhdGVNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Rlcm1zL19JbmxpbmVUZXJtc0FncmVlbWVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX0FuYWx5dGljc1RvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdDYWxsVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdHlwb2dyYXBoeS9fSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92ZXJpZmljYXRpb24vX1ZlcmlmaWNhdGlvblNob3dTYXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9MZWdhY3lDYWxsVmlldy9fTGVnYWN5Q2FsbFZpZXdCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0NhbGxEdXJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19DYWxsVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0RpYWxQYWRDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdGb3JSb29tLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3SGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3U2lkZWJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19WaWRlb0ZlZWQucGNzc1wiO1xuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4gKiBSZWFjdCBUcmFuc2l0aW9uIEdyb3VwIGFuaW1hdGlvbnMgYXJlIHByZWZpeGVkIHdpdGggJ214X3J0Zy0tJyBzbyB0aGF0IHdlXG4gKiBrbm93IHRoZXkgc2hvdWxkIG5vdCBiZSB1c2VkIGFueXdoZXJlIG91dHNpZGUgb2YgUmVhY3QgVHJhbnNpdGlvbiBHcm91cHMuXG4qL1xuXG4ubXhfcnRnLS1mYWRlLWVudGVyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0IHtcbiAgICBvcGFjaXR5OiAxO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0LWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7XG59XG5cbjpyb290IHtcbiAgICAtLWhvdmVyLXRyYW5zaXRpb246IDAuMDhzIGN1YmljLWJlemllcigwLjQ2LCAwLjAzLCAwLjUyLCAwLjk2KTsgLyogcXVhZHJhdGljICovXG59XG5cbkBrZXlmcmFtZXMgbXgtLWFuaW0tcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbXhfRGlhbG9nX2xpZ2h0Ym94X2JhY2tncm91bmRfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgQGtleWZyYW1lcyBteC0tYW5pbS1wdWxzZSB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcyB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0ltYWdlVmlld19wYW5lbF9rZXlmcmFtZXMge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgICAubXhfcnRnLS1mYWRlLWV4aXQtYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcbkNvcHlyaWdodCAyMDE3LTIwMTkgTmV3IFZlY3RvciBMdGRcbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fYW5pbWF0aW9ucy5wY3NzXCI7XG5cbjpyb290IHtcbiAgICAtLWNvbnRhaW5lci1ib3JkZXItd2lkdGg6IDhweDtcbiAgICAtLWNvbnRhaW5lci1nYXAtd2lkdGg6IDhweDsgLyogb25seSBldmVuIG51bWJlcnMgc2hvdWxkIGJlIHVzZWQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgZ2V0IDAuNXB4IG1hcmdpbiB2YWx1ZXMuICovXG4gICAgLS10cmFuc2l0aW9uLXNob3J0OiAwLjFzO1xuICAgIC0tdHJhbnNpdGlvbi1zdGFuZGFyZDogMC4zcztcbiAgICAtLWJ1dHRvbnMtZGlhbG9nLWdhcC1yb3c6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLS1idXR0b25zLWRpYWxvZy1nYXAtY29sdW1uOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC0tTUJvZHktYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jazogMTBweDtcbiAgICAtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGg6IDQ2cHg7IC8qIDggKyAzMCAoYXZhdGFyKSArIDggKi9cbiAgICAtLU1lZGlhUHJldmlldy13aWR0aDogNDc4cHg7IC8qIGtlZXAgaW4gc3luYyB3aXRoIFBSRVZJRVdfV0lEVEhfUFggaW4gc3JjL3V0aWxzL1VybFByZXZpZXdGZXRjaGVyLnRzICovXG5cbiAgICAvKiBFeHBlY3RlZCB6LWluZGV4ZXMgZm9yIGRpYWxvZ3M6XG4gICAgICAgIDQwMDAgLSBEZWZhdWx0IHdyYXBwZXIgaW5kZXhcbiAgICAgICAgNDAwOSAtIFN0YXRpYyBkaWFsb2cgYmFja2dyb3VuZFxuICAgICAgICA0MDEwIC0gU3RhdGljIGRpYWxvZyBpdHNlbGZcbiAgICAgICAgNDAxMSAtIFN0YW5kYXJkIGRpYWxvZyBiYWNrZ3JvdW5kXG4gICAgICAgIDQwMTIgLSBTdGFuZGFyZCBkaWFsb2cgaXRzZWxmXG5cbiAgICAgICBUaGVzZSBhcmUgc2V0IHVwIHN1Y2ggdGhhdCB0aGUgc3RhdGljIGRpYWxvZyBhbHdheXMgYXBwZWFyc1xuICAgICAgIHVuZGVybmVhdGggdGhlIHN0YW5kYXJkIGRpYWxvZ3MuXG4gICAgICovXG4gICAgLS1kaWFsb2ctekluZGV4LXdyYXBwZXItZGVmYXVsdDogNDAwMDtcbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhdGljLWJhY2tncm91bmQ6IDQwMDk7XG4gICAgLS1kaWFsb2ctekluZGV4LXN0YXRpYzogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYy1iYWNrZ3JvdW5kKSArIDEpOyAvKiA0MDEwICovXG4gICAgLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkLWJhY2tncm91bmQ6IGNhbGModmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMpICsgMSk7IC8qIDQwMTEgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQ6IGNhbGModmFyKC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZC1iYWNrZ3JvdW5kKSArIDEpOyAvKiA0MDEyICovXG59XG5cbiNtYXRyaXhjaGF0IHtcbiAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBDb21wb3VuZCB0b29sdGlwcyBjb3JyZWN0bHkgZHJhdyB3aGVyZSB0aGV5IHNob3VsZCB3aXRoIHotaW5kZXg6IGF1dG8gKi9cbiAgICBjb250YWluOiBzdHJpY3Q7XG59XG4jbXhfQ29udGV4dHVhbE1lbnVfQ29udGFpbmVyLFxuI214X1BlcnNpc3RlZEVsZW1lbnRfY29udGFpbmVyLFxuI214X0RpYWxvZ19Db250YWluZXIsXG4jbXhfRGlhbG9nX1N0YXRpY0NvbnRhaW5lciB7XG4gICAgLyogVGhpcyBpcyByZXF1aXJlZCB0byBlbnN1cmUgQ29tcG91bmQgdG9vbHRpcHMgY29ycmVjdGx5IGRyYXcgd2hlcmUgdGhleSBzaG91bGQgd2l0aCB6LWluZGV4OiBhdXRvICovXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuXG4vKipcbiAqIERpc2FibGUgcG9pbnRlciBldmVudHMgaW5zaWRlIHRoZSBwZXJzaXN0ZW50RWxlbWVudCBjb250YWluZXIgd2hlbiB0aGUgcm9vbS1saXN0IGlzIGJlaW5nIHJlc2l6ZWQuXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZCB0aGUgcG9pbnRlciBldmVudHMgZnJvbSBiZWluZyBoaWphY2tlZCBieSB0aGUgY29udGVudCByZW5kZXJlZCBpbnNpZGVcbiAqIHRoYXQgZGl2LlxuICovXG46cm9vdDpoYXMoLm14X1NlcGFyYXRvcltkYXRhLXNlcGFyYXRvcj1cImFjdGl2ZVwiXSkgI214X1BlcnNpc3RlZEVsZW1lbnRfY29udGFpbmVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyoqXG4gKiBXZSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzcGVjaWZpY2l0eSBvZiB0aGUgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdGhlXG4gKiBjdXN0b20gcHJvcGVydHkgc2V0IGJ5IHRoZSBkZXNpZ24gdG9rZW5zIHBhY2thZ2VcbiAqL1xuW2NsYXNzXj1cImNwZC10aGVtZVwiXVtjbGFzc149XCJjcGQtdGhlbWVcIl0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBkZXNpZ24gdG9rZW5zIHBhY2thZ2UgY3VycmVudGx5IGRvZXMgbm90IGV4cG9zZSB0aGUgZmFsbGJhY2sgZm9udHNcbiAgICAgKiBXZSB3YW50IHRvIGtlZXAgb24gcmUtdXNpbmcgYCRmb250LWZhbWlseWAgdG8gbm90IGJyZWFrIGN1c3RvbSB0aGVtZXNcbiAgICAgKiBhbmQgYmVjYXVzZSB3ZSBjYW4gdG8gdXNlIGBUd2Vtb2ppYCB0byBkaXNwbGF5IGVtb2ppIHJhdGhlciB0aGFuIHVzaW5nXG4gICAgICogc3lzdGVtIG9uZXNcbiAgICAgKi9cbiAgICAtLWNwZC1mb250LWZhbWlseS1zYW5zOiAkZm9udC1mYW1pbHk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIDpyb290IHtcbiAgICAgICAgLS10cmFuc2l0aW9uLXNob3J0OiAwO1xuICAgICAgICAtLXRyYW5zaXRpb24tc3RhbmRhcmQ6IDA7XG4gICAgfVxufVxuXG5odG1sIHtcbiAgICAvKiBoYWNrIHRvIHN0b3Agb3ZlcnNjcm9sbCBib3VuY2Ugb24gT1NYIGFuZCBpT1MuXG4gICAgICAgTi5CLiBCcmVha3MgdGhpbmdzIHdoZW4gd2UgaGF2ZSBsZWdpdGltYXRlIGhvcml6b250YWwgb3ZlcnNjcm9sbCAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIFN0b3Agc2ltaWxhciBvdmVyc2Nyb2xsIGJvdW5jZSBpbiBGaXJlZm94IE5pZ2h0bHkgZm9yIG1hY09TICovXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbn1cblxuYm9keSB7XG4gICAgLyogIWltcG9ydGFudCBiZWNhdXNlIGNvbXBvdW5kIG92ZXJyaWRlcyB0aGVzZSBmb250IHNldHRpbmdzIGZvciBib2R5ICovXG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKSAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKSAhaW1wb3J0YW50O1xuICAgIC8qKlxuICAgICAqIFdlIHdhbnQgdG8gYXBwbHkgSW50ZXIgRHluYW1pYyBtZXRyaWNzIChodHRwczovL3JzbXMubWUvaW50ZXIvZHlubWV0cmljcy8pXG4gICAgICogV2UgbmVlZCB0byB0d2VhayB0aGUgYGxldHRlci1zcGFjaW5nYCBwcm9wZXJ0eSBhbmQgZG9pbmcgc28sIGRpc2FibGVzIGJ5XG4gICAgICogZGVmYXVsdCB0aGUgb3B0aW9uYWwgbGlnYXR1cmVzXG4gICAgICogYGZvbnQtZmVhdHVyZS1zZXR0aW5nc2AgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3VyIGFuZCBoYXZlIHRoZVxuICAgICAqIGNvcnJlY3QgbGlnYXR1cmVzIGFuZCB0aGUgcHJvcGVyIGR5bmFtaWMgbWV0cmljIHNwYWNpbmcuXG4gICAgICovXG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOlxuICAgICAgICBcImtlcm5cIiAxLFxuICAgICAgICBcImxpZ2FcIiAxLFxuICAgICAgICBcImNhbHRcIiAxICFpbXBvcnRhbnQ7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBib3JkZXI6IDBweDtcbiAgICBtYXJnaW46IDBweDtcblxuICAgIC8qIG5lZWRlZCB0byBtYXRjaCB0aGUgZGVzaWducyBjb3JyZWN0bHkgb24gbWFjT1MgKi9cbiAgICAvKiBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvMTE0MjUgKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5wcmUsXG5jb2RlIHtcbiAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmVycm9yLFxuLndhcm5pbmcsXG4udGV4dC1lcnJvcixcbi50ZXh0LXdhcm5pbmcge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi50ZXh0LXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi50ZXh0LXNlY29uZGFyeSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1ZlcmlmaWVkIHtcbiAgICBjb2xvcjogJGUyZS12ZXJpZmllZC1jb2xvcjtcbn1cblxuLm14X1VudHJ1c3RlZCB7XG4gICAgY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbn1cblxuYiB7XG4gICAgLyogT24gRmlyZWZveCwgdGhlIGRlZmF1bHQgd2VpZ2h0IGZvciBgPGI+YCBpcyBgYm9sZGVyYCB3aGljaCByZXN1bHRzIGluIG5vIGJvbGQgKi9cbiAgICAvKiBlZmZlY3Qgc2luY2Ugd2Ugb25seSBoYXZlIHNwZWNpZmljIHdlaWdodHMgb2Ygb3VyIGZvbnRzIGF2YWlsYWJsZS4gKi9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogS2VlcCB0aGUgbGVnYWN5IGxpbmsgY29sb3VyIHdpdGhvdXQgb3ZlcnJpZGluZyBDb21wb3VuZCBhbmNob3JzIG9yIHNoYXJlZCB0aW1lc3RhbXAgc3R5bGluZy4gKi9cbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6aG92ZXIsXG5hOndoZXJlKDpub3QoW2RhdGEta2luZF0pOm5vdCgubXhfTWVzc2FnZVRpbWVzdGFtcCkpOmxpbmssXG5hOndoZXJlKDpub3QoW2RhdGEta2luZF0pOm5vdCgubXhfTWVzc2FnZVRpbWVzdGFtcCkpOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbn1cblxuOm5vdCgubXhfbm9fdGV4dGlucHV0KTpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbjpub3QoLm14X25vX3RleHRpbnB1dCk6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0ubXhfdGV4dGlucHV0X2ljb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLm14X3RleHRpbnB1dF9pY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IGNlbnRlcjtcbn1cblxuLyogRklYTUUgVEhFTUUgLSBUaW50IGJ5IENTUyByYXRoZXIgdGhhbiByZWZlcmVuY2luZyBhIGR1cGxpY2F0ZSBhc3NldCAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0ubXhfdGV4dGlucHV0X2ljb24ubXhfdGV4dGlucHV0X3NlYXJjaCxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ubXhfdGV4dGlucHV0X2ljb24ubXhfdGV4dGlucHV0X3NlYXJjaCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHZlY3Rvci1pbS9jb21wb3VuZC1kZXNpZ24tdG9rZW5zL2ljb25zL3NlYXJjaC5zdmdcIik7XG59XG5cbi8qIGRvbnQgc2VhcmNoIFVJIGFzIG5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCBpdCwgKi9cbi8qIHdlIGltcGxlbWVudCBpdCBvdXJzZWx2ZXMgd2hlcmUgbmVlZGVkIGluc3RlYWQgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE92ZXJyaWRlIEZpcmVmb3gncyBVQSBzdHlsZSBzbyB3ZSBnZXQgYSBjb25zaXN0ZW50IGxvb2sgYWNyb3NzIGJyb3dzZXJzICovXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIG9wYWNpdHk6IGluaXRpYWw7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxudGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4vKiBSZXF1aXJlZCBieSBGaXJlZm94ICovXG50ZXh0YXJlYSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogVGhpcyBpcyB1c2VkIHRvIGhpZGUgdGhlIHN0YW5kYXJkIG91dGxpbmUgYWRkZWQgYnkgYnJvd3NlcnMgZm9yICovXG4vKiBhY2Nlc3NpYmxlIChmb2N1c2FibGUpIGNvbXBvbmVudHMuIE5vdCBpbnRlbmRlZCBmb3IgYnV0dG9ucywgYnV0ICovXG4vKiBzaG91bGQgYmUgdXNlZCBvbiB0aGluZ3MgbGlrZSBmb2N1c2FibGUgY29udGFpbmVycyB3aGVyZSB0aGUgb3V0bGluZSAqL1xuLyogaXMgdXN1YWxseSBub3QgaGVscGluZyBhbnlvbmUuICovXG4qOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbnN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogLm14X3RleHRpbnB1dCBpcyBhIGNvbnRhaW5lciBmb3IgYSB0ZXh0IGlucHV0ICovXG4vKiArIHNvbWUgb3RoZXIgY29udHJvbHMgbGlrZSBidXR0b25zLCAuLi4gKi9cbi8qIGl0IGhhcyB0aGUgYXBwZWFyYW5jZSBvZiBhIHRleHQgYm94IHNvIHRoZSBjb250cm9scyAqL1xuLyogYXBwZWFyIHRvIGJlIHBhcnQgb2YgdGhlIGlucHV0ICovXG5cbi5teF9EaWFsb2csXG4ubXhfTWF0cml4Q2hhdF93cmFwcGVyIHtcbiAgICAubXhfdGV4dGlucHV0ID4gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgLm14X3RleHRpbnB1dCA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIDpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCk6bm90KC5teF9ub190ZXh0aW5wdXQpID4gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICAgIC5teF90ZXh0aW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkaW5wdXQtZGFya2VyLWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmRhcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIC8qIHRoZXNlIHRoaW5ncyBzaG91bGQgcHJvYmFibHkgbm90IGJlIGRlZmluZWQgZ2xvYmFsbHkgKi9cbiAgICAgICAgbWFyZ2luOiA5cHg7XG4gICAgfVxuXG4gICAgLm14X3RleHRpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXTo6cGxhY2Vob2xkZXIsXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjpwbGFjZWhvbGRlcixcbiAgICAubXhfdGV4dGlucHV0IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXI7XG4gICAgfVxufVxuXG4vKiBQcmV2ZW50IHVnbHkgZG90dGVkIGhpZ2hsaWdodCBhcm91bmQgc2VsZWN0ZWQgZWxlbWVudHMgaW4gRmlyZWZveCAqL1xuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qIFRoZXNlIGFyZSBtYWdpYyBjb25zdGFudHMgd2hpY2ggYXJlIGV4Y2x1ZGVkIGZyb20gdGludGluZywgdG8gbGV0IHRoZW1lcyAqL1xuLyogKHdoaWNoIG9ubHkgaGF2ZSBDU1MpIHRlbGwgdGhlIGFwcCB3aGF0IHRoZWlyIG5vbi10aW50ZWQgKi9cbi8qIGNvbG91cnNjaGVtZSBpcyBieSBpbnNwZWN0aW5nIHRoZSBzdHlsZXNoZWV0IERPTS4gKi9cbi8qIFRoZXkgYXJlIG5vdCB1c2VkIGZvciBsYXlvdXQhISAqL1xuI214X3RoZW1lX2FjY2VudENvbG9yIHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuI214X3RoZW1lX3NlY29uZGFyeUFjY2VudENvbG9yIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG59XG5cbi5teF9EaWFsb2dfd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtd3JhcHBlci1kZWZhdWx0KTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWNwZC1zcGFjZS02eCkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9EaWFsb2dfbGlnaHRib3ggJiB7XG4gICAgICAgIC8qIFRoZSBsaWdodGJveCBpc24ndCBzbyBtdWNoIG9mIGEgZGlhbG9nIGFzIGEgZnVsbHNjcmVlbiBvdmVybGF5LiBXZVxuICAgICAgICBkb24ndCB3YW50IHRoZSBnbGFzcyBib3JkZXIuICovXG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsaWdodC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLm14X0RpYWxvZ19zdGF0aWNXcmFwcGVyICYge1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYyk7XG4gICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvKiBTdHlsZXMgY29waWVkL2luc3BpcmVkIGJ5IEdyb3VwTGF5b3V0LCBSZXBseVRpbGUsIGFuZCBFdmVudFRpbGUgdmFyaWFudHMuICovXG4gICAgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDsgLyogaW5oZXJpdCB0aGUgY29sb3VyIGZyb20gdGhlIGRhcmsgb3IgbGlnaHQgdGhlbWUgYnkgZGVmYXVsdCAoYnV0IG5vdCBmb3IgY29kZSBibG9ja3MpICovXG5cbiAgICAgICAgcHJlLFxuICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIHNlbGVjdG9yIHdyb25nbHkgYXBwbGllcyB0byBjb2RlIGJsb2NrcyB0b28gYnV0IHdlIHdpbGwgdW5zZXQgaXQgaW4gdGhlIG5leHQgb25lICovXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvKiBkb24ndCBjb2xsYXBzZSBzcGFjZXMgaW4gaW5saW5lIGNvZGUgYmxvY2tzICovXG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgICAgLyogaGF2ZSB0byB1c2Ugb3ZlcmxheSByYXRoZXIgdGhhbiBhdXRvIG90aGVyd2lzZSBMaW51eCBhbmQgV2luZG93cyAqL1xuICAgICAgICAgICAgLyogQ2hyb21lIGdldHMgdmVyeSBjb25mdXNlZCBhYm91dCB2ZXJ0aWNhbCBzcGFjaW5nOiAqL1xuICAgICAgICAgICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS92ZWN0b3Itd2ViL2lzc3Vlcy83NTQgKi9cbiAgICAgICAgICAgIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOyAvKiB3ZSB3YW50IGNvZGUgYmxvY2tzIHRvIGJlIHNjcm9sbGFibGUgYW5kIG5vdCB3cmFwICovXG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGgxIGFuZCBoMiB0aGUgc2FtZSBzaXplIGFzIGgzLiAqL1xuICAgICAgICBoMSxcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgR0ZNICovXG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgIHdpZHRoOiA2MHZ3O1xuICAgIG1heC13aWR0aDogNzA0cHg7XG59XG5cbi5teF9EaWFsb2dfYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlhbG9nLWJhY2tkcm9wLWNvbG9yO1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQtYmFja2dyb3VuZCk7XG5cbiAgICAmLm14X0RpYWxvZ19zdGF0aWNCYWNrZ3JvdW5kIHtcbiAgICAgICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ193cmFwcGVyV2l0aFN0YXRpY1VuZGVyICYge1xuICAgICAgICAvKiBSb3VnaGx5IGhhbGYgb2Ygd2hhdCBpdCB3b3VsZCBub3JtYWxseSBiZSAtIHdlIGRvbid0IHdhbnQgdG8gYmxhY2sgb3V0ICovXG4gICAgICAgIC8qIHRoZSBhcHAsIGp1c3QgbWFrZSBpdCBjbGVhciB0aGF0IHRoZSBkaWFsb2dzIGFyZSBzdGFja2VkLiAqL1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgb3BhY2l0eTogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctY29sb3I7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBteF9EaWFsb2dfbGlnaHRib3hfYmFja2dyb3VuZF9rZXlmcmFtZXM7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzAwbXM7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX3RpdGxlSW1hZ2Uge1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLm14X0RpYWxvZ190aXRsZSB7XG4gICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtZmctY29sb3I7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWhlYWRpbmctbGcpO1xuXG4gICAgJi5kYW5nZXIge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ19oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjBweDsgLyogUmVzZXJ2ZSByb29tIGZvciB0aGUgY2xvc2UgYnV0dG9uICovXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICYubXhfRGlhbG9nX2hlYWRlcldpdGhCdXR0b24gPiAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9EaWFsb2dfY29udGVudCB7XG4gICAgbWFyZ2luOiAyNHB4IDAgNjhweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnNfYWRkaXRpdmUge1xuICAgICAgICAvKiBUaGUgY29uc3VtZXIgaXMgcmVzcG9uc2libGUgZm9yIHBvc2l0aW9uaW5nIHRoZWlyIGVsZW1lbnRzLiAqL1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnNfcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC8qIGRlZmF1bHQgZ2FwIGFtb25nIGVsZW1lbnRzICovXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1jb2x1bW4pO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1idXR0b25zLWRpYWxvZy1nYXAtcm93KTtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IC8qIG92ZXJyaWRlIHRoZSBtYXJnaW4gc2V0dGluZ3MgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBteF9EaWFsb2dCdXR0b24ge1xuICAgIC8qIGFsaWduIGltYWdlcyBpbiBidXR0b25zIChlZyBzcGlubmVycykgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlcjogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogN3B4O1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICY6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4vKiBYWFg6IE91ciBidXR0b24gc3R5bGVzIGFyZSBhIG1lc3M7IHRoaXMgaXMgb3B0LWluIHN0eWxpbmcgZm9yIGxlZ2FjeSByYXcgPGJ1dHRvbj5zIGFuZFxuICogPGlucHV0IHR5cGU9XCJzdWJtaXRcIj5zIGluIGRpYWxvZ3MuIFNlYXJjaCBgbXhfTGVnYWN5RGlhbG9nQnV0dG9uYCBpbiB0aGUgSlNYIGZvciB0aGUgZWxlbWVudHNcbiAqIHN0aWxsIHJlbHlpbmcgb24gaXQuXG4gKiBLZWVwIHRoZSBgLm14X0RpYWxvZ2AvYC5teF9EaWFsb2dfYnV0dG9uc2AgYW5jZXN0b3IgKyBgYnV0dG9uYC9gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXWAgdHlwZVxuICogc2VsZWN0b3IgYWxvbmdzaWRlIHRoZSBtYXJrZXIgY2xhc3M6IHRoZXkgcHJlc2VydmUgdGhlIHNwZWNpZmljaXR5IG9mIHRoZSBvbGQgc2VsZWN0b3JzLCB3aGljaFxuICogc29tZSBwZXItZGlhbG9nIENTUyBvdmVycmlkZXMgKGUuZy4gd2lkdGggdHdlYWtzKSByZWx5IG9uIGxvc2luZyB0by5cbiAqL1xuLm14X0RpYWxvZyBidXR0b24ubXhfTGVnYWN5RGlhbG9nQnV0dG9uLFxuLm14X0RpYWxvZyBpbnB1dC5teF9MZWdhY3lEaWFsb2dCdXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbik7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgLyogZmxpcCBjb2xvdXJzIGZvciB0aGUgc2Vjb25kYXJ5IG9uZXMgKi9cbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi5teF9MZWdhY3lEaWFsb2dCdXR0b246bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbjpmb2N1cyxcbi5teF9EaWFsb2cgaW5wdXQubXhfTGVnYWN5RGlhbG9nQnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygkZm9jdXMtYnJpZ2h0bmVzcyk7XG59XG5cbi8qIERlZmF1bHQgKG5vbi1jYW5jZWwpIGJ1dHRvbnMgaW5zaWRlIGEgRGlhbG9nQnV0dG9ucyBmb290ZXIgZ2V0IGZpbGxlZCBpbiBhcyB0aGUgcHJpbWFyeSBhY3Rpb24sXG4gKiBldmVuIHdpdGhvdXQgdGhlIG14X0RpYWxvZ19wcmltYXJ5IGNsYXNzIC0gLmRhbmdlci8ud2FybmluZyBvdmVycmlkZSB0aGUgY29sb3VycyBiZWxvdyB2aWEgYVxuICogc2FtZS1zcGVjaWZpY2l0eSwgbGF0ZXItaW4tc291cmNlIHJ1bGU7IGRpc2FibGVkIG92ZXJyaWRlcyBldmVyeW9uZSB0aGUgc2FtZSB3YXkuXG4gKi9cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbi5teF9EaWFsb2dfcHJpbWFyeSxcbi5teF9EaWFsb2cgaW5wdXQubXhfTGVnYWN5RGlhbG9nQnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ubXhfRGlhbG9nX3ByaW1hcnksXG4ubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbjpub3QoLmNhbmNlbCkge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgbWluLXdpZHRoOiAxNTZweDtcbn1cblxuLm14X0RpYWxvZyBidXR0b24ubXhfTGVnYWN5RGlhbG9nQnV0dG9uLmRhbmdlcixcbi5teF9EaWFsb2cgaW5wdXQubXhfTGVnYWN5RGlhbG9nQnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0uZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbn1cblxuLm14X0RpYWxvZyBidXR0b24ubXhfTGVnYWN5RGlhbG9nQnV0dG9uLndhcm5pbmcsXG4ubXhfRGlhbG9nIGlucHV0Lm14X0xlZ2FjeURpYWxvZ0J1dHRvblt0eXBlPVwic3VibWl0XCJdLndhcm5pbmcge1xuICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWNwZC1jb2xvci1ib3JkZXItY3JpdGljYWwtc3VidGxlKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b24ubXhfTGVnYWN5RGlhbG9nQnV0dG9uLmNhbmNlbCB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LXJlc3QpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIG1pbi13aWR0aDogMTU2cHg7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbjpkaXNhYmxlZCxcbi5teF9EaWFsb2cgaW5wdXQubXhfTGVnYWN5RGlhbG9nQnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1mZy1jb2xvcjtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAkbGlnaHQtZmctY29sb3I7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBTcGlubmVyIERpYWxvZyBvdmVyaWRlICovXG4ubXhfRGlhbG9nX3dyYXBwZXIubXhfRGlhbG9nX3NwaW5uZXIge1xuICAgIC8qIFRoaXMgaXMgbm90IGEgcmVhbCBkaWFsb2csIHNvIHdlIHNob3VsZG4ndCBzaG93IGEgZ2xhc3MgYm9yZGVyICovXG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgaW5saW5lLXNpemU6IGF1dG87XG4gICAgICAgIGJsb2NrLXNpemU6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgIC8qIERvbid0IHNob3cgc2Nyb2xsLWJhcnMgb24gc3Bpbm5lciBkaWFsb2dzICovXG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbn1cblxuLyogVE9ETzogUmV2aWV3IG14X0dlbmVyYWxCdXR0b24gdXNhZ2UgdG8gc2VlIGlmIGl0IGNhbiB1c2UgYSBkaWZmZXJlbnQgY2xhc3MgKi9cbi8qIFRoZXNlIGNsYXNzZXMgd2VyZSBicm91Z2h0IGluIGZyb20gdGhlIG9sZCBVc2VyU2V0dGluZ3MgYW5kIGFyZSBpbmNsdWRlZCBoZXJlIHRvIGF2b2lkICovXG4vKiBicmVha2luZyB0aGUgYXBwLiAqL1xuLyogUmVmOiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy84NDIwICovXG4ubXhfR2VuZXJhbEJ1dHRvbiB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2xhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2lucHV0IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xufVxuXG4ubXhfYnV0dG9uX3JvdyB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbn1cblxuLyogdXNlcm5hbWUgY29sb3JzICovXG4vKiB1c2VkIGJ5IFNlbmRlclByb2ZpbGUgJiBSb29tUHJldmlld0JhciAqL1xuLm14X1VzZXJuYW1lX2NvbG9yMSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMyB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNCB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NC1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbn1cblxuLm14X0FwcFdhcm5pbmcsXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckNvbG91ciAkY29sb3VyIHtcbiAgICBjb2xvcjogJGNvbG91cjtcbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJnQ29sb3VyICRjb2xvdXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICB9XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIsXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIHVucmVhbC1mb2N1cyB7XG4gICAgb3V0bGluZS13aWR0aDogMnB4O1xuICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcblxuICAgIC8qIFdlYktpdCBnZXRzIGl0cyBuYXRpdmUgZm9jdXMgc3R5bGVzLiAqL1xuICAgIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICAgICAgb3V0bGluZS1zdHlsZTogYXV0bztcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gTGVnYWN5Q2FsbEJ1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBoZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIFRocmVhZFJlcGxpZXNBbW91bnQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuQGRlZmluZS1taXhpbiBUaHJlYWRTdW1tYXJ5SWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uICRib3JkZXItcmFkaXVzLCAkaG92ZXItY29sb3IsICRob3Zlci1iZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZztcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X2xpbmVDbGFtcCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IHZhcigtLW14LWxpbmUtY2xhbXAsIDEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExheW91dCBjb21wYXRpYmlsaXR5IGhvb2sgZm9yIHRpbWVzdGFtcCBwbGFjZW1lbnQgaW4gZXhpc3RpbmcgYXBwL3dlYiB0aW1lbGluZSBzdXJmYWNlcy4gKi9cbi5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm14X01lc3NhZ2VUaW1lc3RhbXBfbGF0ZUljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xufVxuIixudWxsLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uTGlzdEl0ZW0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgMDtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2F2YXRhciB7XG4gICAgZmxleDogMCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1faW5mbyB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgd2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fc3RhdHVzIHtcbiAgICAvKiBvdmVycmlkZSBiZWFjb24gc3RhdHVzIHBhZGRpbmcgKi9cbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9CZWFjb25TdGF0dXNfbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9sYXN0VXBkYXRlZCB7XG4gICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2ludGVyYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JlYWNvblN0YXR1cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgY29sb3I6IHZhcigtLWNvbG9yKTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfTG9hZGluZyxcbi5teF9CZWFjb25TdGF0dXNfU3RvcHBlZCB7XG4gICAgLS1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfQWN0aXZlLFxuLm14X0JlYWNvblN0YXR1c19FcnJvciB7XG4gICAgLS1jb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0JlYWNvblN0YXR1c19pY29uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG5cbiAgICBmbGV4OiAwIDAgMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfZGVzY3JpcHRpb24ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcblxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfQmVhY29uU3RhdHVzX2Rlc2NyaXB0aW9uX3N0YXR1cyB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cblxuLm14X0JlYWNvblN0YXR1c19leHBpcnlUaW1lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX2xhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25TdGF0dXNUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MnB4O1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQmVhY29uU3RhdHVzVG9vbHRpcF9pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJG1lbnUtYmctY29sb3I7XG4gICAgYm94LXNoYWRvdzogNHB4IDRweCAxMnB4IDAgJG1lbnUtYm94LXNoYWRvdy1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xuXG4gICAgLyogVW5zZXQgY29udGFpbiBhbmQgcG9zaXRpb24gdG8gYWxsb3cgdGhlIGNsb3NlIGJ1dHRvblxuICAgIHRvIGFwcGVhciBvdXRzaWRlIHRoZSBkaWFsb2cgKi9cbiAgICBjb250YWluOiB1bnNldDtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLyogc2lkZWJhciBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgaW5zaWRlICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICAgICAgei1pbmRleDogNDAxMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHJpZ2h0OiA1dnc7XG4gICAgICAgICAgICB0b3A6IDV2aDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfQmVhY29uVmlld0RpYWxvZ19tYXBGYWxsYmFja01lc3NhZ2Uge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfdmlld0xpc3RCdXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XG4gICAgbGVmdDogNTAlO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDRweCA0cHggMTJweCAwICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFyIHtcbiAgICBmbGV4OiAwIDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfc3RhdHVzIHtcbiAgICBmbGV4OiAxIDE7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dTaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAyNjVweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggNHB4ICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgZmxleDogMCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIC5teF9EaWFsb2dTaWRlYmFyX2Nsb3NlQnV0dG9uSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ1NpZGViYXJfbm9SZXN1bHRzIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG5cbiAgICAvKiBwYW5lbCBiYWNrZHJvcHMgb3ZlcmxheSB0aGUgd2hvbGUgc2lkZXBhbmVsICovXG4gICAgLyogZ28gYWJvdmUgdG8gZ2V0IGhvdmVyIGZvciB0aXRsZSAqL1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5teF9MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nX19lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpdmVUaW1lUmVtYWluaW5nIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Pd25CZWFjb25TdGF0dXNfYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X093bkJlYWNvblN0YXR1c19kZXN0cnVjdGl2ZUJ1dHRvbiB7XG4gICAgLyogb3ZlcnJpZGUgYnV0dG9uIGxpbmtfaW5saW5lIHN0eWxlcyAqL1xuICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlTGF0ZXN0TG9jYXRpb25faWNvbiB7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi8qIGRvdWJsZSBjbGFzcyB0byBiZSBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIGdlbmVyYWwgbXhfQ29weWFibGVUZXh0IENTUyBydWxlICovXG4ubXhfQ29weWFibGVUZXh0Lm14X1NoYXJlTGF0ZXN0TG9jYXRpb25fY29weSB7XG4gICAgLyogb3ZlcnJpZGUgY29weWFibGUgdGV4dCBzdHlsZSB0byBtYWtlIGNvbXBhY3QgKi9cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICB3aWR0aDogMTNweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkbG9jYXRpb24tbGl2ZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgLyogY29sb3JzIGljb24gKi9cbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbl9lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0O1xufVxuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb25faWRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2ViYWJDb250ZXh0TWVudV9pY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyIHtcbiAgICAvKiBvdmVycmlkZSBhY2Nlc3NpYmxlYnV0dG9uIHN0eWxlICovXG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyX2ljb24ge1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1fcXVlc3Rpb24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdGl0bGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9kYXRlIHtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3F1ZXN0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9hbnN3ZXJzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdm90ZUNvdW50IHtcbiAgICAvKiA2cHggdG8gbWF0Y2ggUG9sbE9wdGlvbiBwYWRkaW5nICovXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgMCA2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlOyAvKiBtYWtlIG14X0FwcFBlcm1pc3Npb24gZmlsbCB3aWR0aCBvZiBteF9BcHBUaWxlQm9keSBzbyB0aGF0IHNjcm9sbCBiYXIgYXBwZWFycyBvbiB0aGUgZWRnZSAqL1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAubXhfQXBwUGVybWlzc2lvbl9ib2xkZXIsXG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudF9ib2xkZXIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogYXV0bzsgLyogcGxhY2UgYXQgdGhlIGNlbnRlciAqL1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UZXh0V2l0aFRvb2x0aXBfdGFyZ2V0LS1oZWxwSWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE0cHg7IC8qIGFsaWduIHdpdGggY2hhcmFjdGVycyBvbiB0aGUgc2FtZSBsaW5lICovXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAubXhfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBTdWd1cnUgSGlyYWhhcmFcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcFdhcm5pbmcge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWx0ZXJEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtM3gpKTtcbiAgICAgICAgd2lkdGg6IDIzMnB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiKDIzLCAyNSwgMjgsIDAuMDUpO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG5cbiAgICAgICAgLm14X0Ryb3Bkb3duX29wdGlvbl9oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25faW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25TZWxlY3RlZEljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25MYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25EZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlclRhYkdyb3VwIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxmaWVsZHNldD4gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkICsgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgLyogdW5kZXJsaW5lICovXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEuNXB4IDAgMCBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVhcm5Nb3JlX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2ljb24ge1xuICAgIGhlaWdodDogNThweDtcbiAgICB3aWR0aDogNThweDtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG59XG5cbi5teF9FbmFibGVMaXZlU2hhcmVfYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGhlaWdodDogNDhweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlRHVyYXRpb25Ecm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblNoYXJlTWVudSB7XG4gICAgd2lkdGg6IDM3NXB4O1xuICAgIGhlaWdodDogNDYwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcEVycm9yIHtcbiAgICBwYWRkaW5nOiAxMDBweCB2YXIoLS1jcGQtc3BhY2UtOHgpIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZTogNThweDtcbn1cblxuLm14X01hcEVycm9yLm14X01hcEVycm9yX2lzTWluaW1pc2VkIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG5cbiAgICAtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yOiAkYWxlcnQ7XG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplOiAyNnB4O1xuXG4gICAgLm14X01hcEVycm9yX21lc3NhZ2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC13aWR0aDogMjc1cHg7XG4gICAgfVxuXG4gICAgLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgLyogb3ZlcnJpZGUgaDMgaGVhZGluZyBzaXplICovXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfTWFwRXJyb3JfbWVzc2FnZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfTWFwRXJyb3JfaWNvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplKTtcbiAgICB3aWR0aDogdmFyKC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZSk7XG4gICAgY29sb3I6IHZhcigtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXBGYWxsYmFjayB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG59XG5cbi5teF9NYXBGYWxsYmFja19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9NYXBGYWxsYmFja19pY29uIHtcbiAgICB3aWR0aDogNjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcmtlcl9kZWZhdWx0Q29sb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfTWFya2VyX2JvcmRlciB7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAzcHggNXB4IHJnYigwLCAwLCAwLCAwLjIpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvKiBjYXJldCBkb3duICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtNHB4O1xuICAgIH1cbn1cblxuLm14X01hcmtlcl9pY29uIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQ1xuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMDtcbn1cblxuYnV0dG9uLm14X1NoYXJlRGlhbG9nQnV0dG9uc19idXR0b24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5sZWZ0IHtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zX2J1dHRvbi1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVUeXBlIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IDYwcHggdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfU2hhcmVUeXBlX3dyYXBwZXJfb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIC5teF9TaGFyZVR5cGVfb3B0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2hhcmVUeXBlX2JhZGdlIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDE0cHggc29saWQgJGFjY2VudDtcbiAgICAvKiBjb2xvcnMgaWNvbiAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfU2hhcmVUeXBlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1NoYXJlVHlwZV9vcHRpb24taWNvbiB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgLyogTGl2ZSBpcyBzdHlsZWQgYnkgU3R5bGVkTGl2ZUJlYWNvbkljb24gKi9cblxuICAgICYuT3duIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYuUGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBwYWRkaW5nOiA3cHg7XG4gICAgICAgIC8qIGNvbG9ycyBpY29uICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfWm9vbUJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfWm9vbUJ1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgJFpvb21CdXR0b25zX2J1dHRvbi1zaXplOiAyNHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IHJnYigwLCAwLCAwLCAwLjI1KTtcblxuICAgICAgICAubXhfWm9vbUJ1dHRvbnNfaWNvbiB7XG4gICAgICAgICAgICAkWm9vbUJ1dHRvbnNfaWNvbi1zaXplOiAxMnB4O1xuXG4gICAgICAgICAgICBoZWlnaHQ6ICRab29tQnV0dG9uc19pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2ljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01CZWFjb25Cb2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyMjBweDtcbiAgICBtYXgtd2lkdGg6IDMyNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X01CZWFjb25Cb2R5Lm14X01CZWFjb25Cb2R5X3dpdGhvdXRNYXAge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIC5teF9NQmVhY29uQm9keV9jaGluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwQ29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwSW5mb0xhc3RVcGRhdGVkIHtcbiAgICAvKiA0OHB4IGxpbmVzIHVwIHdpdGggaWNvbiBpbiBCZWFjb25TdGF0dXMgKi9cbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTJ4KSk7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgNDhweDtcblxuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG59XG5cbi5teF9NQmVhY29uQm9keV9tYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwOyAvKiBrZWVwcyB0aGUgZW50aXJlIG1hcCB1bmRlciB0aGUgbWVzc2FnZSBhY3Rpb24gYmFycyAqL1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2ssXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3Ige1xuICAgIC8qIHB1c2hlcyBzcGlubmVyL2ljb24gdXAgKi9cbiAgICAvKiB0byBhcHBlYXIgbW9yZSBjZW50ZXJlZCB3aXRoIHRoZSBmb290ZXIgKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3JJbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2sge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm14X01CZWFjb25Cb2R5X2NoaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIC5teF9FdmVudFRpbGVfbGluZSAubXhfTUJlYWNvbkJvZHkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogNDUwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVkaWFQcm9jZXNzaW5nRXJyb3JfSWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsT3B0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50LFxuICAgIC5teF9Qb2xsT3B0aW9uX2VuZGVkT3B0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUG9sbE9wdGlvbixcbi8qIGxhYmVsIGhhcyBjdXJzb3I6IGRlZmF1bHQgaW4gdXNlci1hZ2VudCBzdHlsZXNoZWV0ICovXG4vKiBvdmVycmlkZSAqL1xuLm14X1BvbGxPcHRpb25fbGl2ZS1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1BvbGxPcHRpb25fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5teF9Qb2xsT3B0aW9uX29wdGlvblZvdGVDb3VudCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X1BvbGxPcHRpb25fd2lubmVySWNvbiB7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdmVycmlkZSBjaGVja2VkIHJhZGlvIGJ1dHRvbiBzdHlsaW5nIHRvIHNob3cgY2hlY2ttYXJrIGluc3RlYWQgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IC0ycHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1BvbGxPcHRpb25fZW5kZWQubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG92ZXJyaWRlIGNoZWNrZWQgcmFkaW8gYnV0dG9uIHN0eWxpbmcgdG8gc2hvdyBjaGVja21hcmsgaW5zdGVhZCAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogb3B0aW9ucyBub3QgYWN0aW9uYWJsZSBpbiB0aGVzZSBzdGF0ZXMgKi9cbi5teF9Qb2xsT3B0aW9uX2NoZWNrZWQsXG4ubXhfUG9sbE9wdGlvbl9lbmRlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlCYWNrZ3JvdW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICB3aWR0aDogMCU7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVGhlc2UgdXNlZCB0byBsaXZlIGluIEdlbmVyYWwgVXNlciBTZXR0aW5ncy4gVGhlc2UgY29tcG9uZW50cyBhcmUgaG9ycmlibHkgZHVwbGljYXRpdmVcbiAqIGJ1dCBzaGFyZSB0aGUgc2FtZSBzdHlsZXMuIEZvciBub3cgSSdtIHB1dHRpbmcgdGhlbSBoZXJlIHNvIEkgY2FuIHJlbmFtZWQgdGhlIGdlbmVyYWxcbiAqIHRhYiBzZW5zaWJseSBhbmQgYmVmb3JlIEkgY2FuIHJlZmFjdG9yIHRoZXNlIGNvbXBvbmVudHMuXG4gKi9cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2FkZHJlc3MsXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX3Byb21wdFRleHQge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAganVzdGlmeS1jb250ZW50OiByaWdodDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeV9pbnN0cnVjdGlvbnMge1xuICAgIGZsZXg6IDE7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3VycmVudERldmljZVNlY3Rpb25fZGV2aWNlRGV0YWlscyB7XG4gICAgLyogYWxpZ24gd2l0aCB0ZXh0IG9mIHNlc3Npb24gdGlsZSAqL1xuICAgIG1hcmdpbi1sZWZ0OiA1NnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZURldGFpbEhlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lQ3RhIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSW5wdXQge1xuICAgIC8qIG92ZXJyaWRlIGZpZWxkIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xeCkgMCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtRXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VEZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbn1cblxuLm14X0RldmljZURldGFpbHNfc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NlY3Rpb25IZWFkaW5nIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAubXhfRGV2aWNlRGV0YWlsc19zZWN0aW9uU3ViaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbn1cblxuLm14X0RldmljZURldGFpbHNfbWV0YWRhdGFUYWJsZSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBib3JkZXItc3BhY2luZzogMDtcblxuICAgIHRoIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teERldmljZURldGFpbHNfbWV0YWRhdGFMYWJlbCB7XG4gICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAubXhEZXZpY2VEZXRhaWxzX21ldGFkYXRhVmFsdWUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NpZ25PdXRCdXR0b25Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3B1c2hOb3RpZmljYXRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcblxuICAgIC0taWNvbi10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uX2V4cGFuZGVkIHtcbiAgICAtLWljb24tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cbiAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbl9pY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB0cmFuc2Zvcm06IHZhcigtLWljb24tdHJhbnNmb3JtKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9pY29uIHtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcblxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICYuVmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogJGUyZS12ZXJpZmllZC1jb2xvci1saWdodDtcbiAgICB9XG5cbiAgICAmLlVudmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3ItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5JbmFjdGl2ZSB7XG4gICAgICAgIC0taWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkX2NvbnRlbnQge1xuICAgIGZsZXg6IDEgMTtcbn1cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfaGVhZGluZyB7XG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZVRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmZvIHtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X0RldmljZVRpbGVfbWV0YWRhdGEge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmFjdGl2ZUljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0RldmljZVRpbGVfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VUeXBlSWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAvKiBjcmVhdGVzIHNwYWNlIGZvciB2ZXJpZmljYXRpb24gaWNvbiB0byBvdmVybGFwICovXG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgLS1pY29uLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogdmFyKC0tY3BkLXNwYWNlLTJ4KSBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6IHZhcigtLWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4ubXhfRGV2aWNlVHlwZUljb25fc2VsZWN0ZWQgLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgLS1pY29uLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX3ZlcmlmaWNhdGlvbkljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6IHZhcigtLXYtaWNvbi1jb2xvcik7XG5cbiAgICAmLnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi51bnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0IHtcbiAgICAubXhfRHJvcGRvd24ge1xuICAgICAgICBmbGV4OiAxIDAgODBweDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdEl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9zZWN1cml0eUNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3Rfbm9SZXN1bHRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9oZWFkZXJCdXR0b24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8qIG92ZXJyaWRlIGlubGluZSBidXR0b24gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9kZXZpY2VEZXRhaWxzIHtcbiAgICAvKiBhbGlnbiB3aXRoIHRleHQgb2Ygc2Vzc2lvbiB0aWxlICovXG4gICAgbWFyZ2luLWxlZnQ6IDg4cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBIaWdoZXIgc3BlY2lmaWNpdHkgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdGhlIGZsZXgtc3RhcnQgdmFsdWUgKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyX2xhYmVsIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVJlY29tbWVuZGF0aW9uc19zcGFjaW5nIHtcbiAgICBoZWlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZV9jaGVja2JveCB7XG4gICAgZmxleDogMSAwO1xuXG4gICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfS2V5U3RvcmFnZVBhbmVsX3RvZ2dsZVJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9uZXdVaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAqW3JvbGU9XCJzZXBhcmF0b3JcIl0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdhcCBiZXR3ZWVuIHN1YnNlY3Rpb25zIGlzIDMycHggYW5kIGluc2lkZSB0aGUgc3Vic2VjdGlvbiBpcyAyNHB4LlxuICAgICAgICAgKiBUaGUgc2VwYXJhdG9yIHNlcGFyYXRlcyB0aGUgc3Vic2VjdGlvbnMsIHNvIGl0IHNob3VsZCBoYXZlIHRoZSBzYW1lIGdhcCBhcyB0aGUgc3Vic2VjdGlvbnMuXG4gICAgICAgICAqIFdlIGFkZCAxMnB4IGFuZCB0aGUgc2VwYXJhdG9yIHNwYWNpbmcgKDhweCkgdG8gdGhlIHRvcCBtYXJnaW4gdG8gbWFrZSB0aGUgc2VwYXJhdG9yIHZpc3VhbGx5IGNlbnRlcmVkIGJldHdlZW4gdGhlIHN1YnNlY3Rpb25zLlxuICAgICAgICAgKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kIG1hcmdpbi5cbiAgICAgICAgICovXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIHNldHRpbmcgbWlud2lkdGggMCBtYWtlcyBjb2x1bW5zIGRlZmluaXRlbHkgc2l6ZWQgZml4aW5nIGhvcml6b250YWwgb3ZlcmZsb3cgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIGp1c3RpZnktaXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgIHN1bW1hcnkge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG4gICAgZGV0YWlsc1tvcGVuXSB7XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnRTdHJldGNoIHtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9ub0hlYWRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50X25ld1VpIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZHJvcGRvd24ge1xuICAgICAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nX2hlYWRpbmcge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1F1aWNrVGhlbWVTd2l0Y2hlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICAvKiBRdWljayBzZXR0aW5ncyBsaXZlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3csIHNvIGEgbWVudSBkcm9wcGluZyBkb3dud2FyZHMgd291bGQgcnVuXG4gICAgICAgICAgIG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC4gT3BlbiBpdCB1cHdhcmRzLCB3aGVyZSB0aGVyZSBpcyByb29tIGZvciBldmVyeSB0aGVtZS4gKi9cbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfUXVpY2tUaGVtZVN3aXRjaGVyX2hlYWRpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYXB0aW9uIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAmLm14X0NhcHRpb25fZXJyb3Ige1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBDb21wb3VuZCBpY29uXG5cbiAqIHtAbGluayBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkfVxuICovXG5cbi5teF9JY29uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfSWNvbl9hY2NlbnQge1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfSWNvbl9iZy1hY2NlbnQtbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtMzAwO1xufVxuXG4ubXhfSWNvbl9hbGVydCB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X0ljb25fY2lyY2xlLTQwIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgd2lkdGg6IDQwcHg7XG59XG5cbi5teF9JY29uXzgge1xuICAgIGZsZXg6IDAgMCA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbn1cblxuLm14X0ljb25fMTAge1xuICAgIGZsZXg6IDAgMCAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICB3aWR0aDogMTBweDtcbn1cblxuLm14X0ljb25fMTIge1xuICAgIGZsZXg6IDAgMCAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTJweDtcbn1cblxuLm14X0ljb25fMTYge1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbn1cblxuLm14X0ljb25fMjQge1xuICAgIGZsZXg6IDAgMCAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0ljb25fMzIge1xuICAgIGZsZXg6IDAgMCAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TdWNjZXNzRGlhbG9nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfSWNvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zX3JvdyB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYnV0dG9uLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBtYWtlIGFueSBzY3JvbGxiYXIgZ3JleSBhbmQgdGhpbiAqL1xuaHRtbCB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xufVxuLyogc2Nyb2xsYmFyLXdpZHRoIGlzIG5vdCBpbmhlcml0ZWQgKGJ1dCAtY29sb3IgaXMsIHdoeT8hKSwgKi9cbi8qIHNvIGRlY2xhcmUgaXQgb24gZXZlcnkgZWxlbWVudCAqL1xuKiB7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvcjtcbn1cblxuLyogbWFrZSBhdXRvLWhpZGUgc2Nyb2xsYmFycyBub3QgdHJhbnNwYXJlbnQgYWdhaW4gb24gaG92ZXIgKi9cbi5teF9BdXRvSGlkZVNjcm9sbGJhcjpob3ZlciB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yO1xuICAgIH1cbn1cblxuLyogbWFrZSBzY3JvbGxiYXJzIHRyYW5zcGFyZW50IGZvciBhdXRvaGlkZSBzY3JvbGxiYXJzICovXG4ubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IG92ZXJsYXk7IC8qIHdoZXJlIHN1cHBvcnRlZCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3NlYXJjaF9pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Ige1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXM7XG5cbiAgICA+IGlucHV0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiA0MCU7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgLyogYCFpbXBvcnRhbnRgIGlzIHJlcXVpcmVkIHRvIGJ5cGFzcyBnbG9iYWwgaW5wdXQgc3R5bGVzLiAqL1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSA5cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvci0tZm9jdXNlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGlua3M7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3ItLWhhcy1zdWdnZXN0aW9ucyB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvcl9zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3BpbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3JlbW92ZV9idXR0b24gc3ZnIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfbWF0Y2hlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpbmtzO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gKiB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbi0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl90aXRsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1MDAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogNTAwMTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9yaWdodCB7XG4gICAgcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl9yaWdodCB7XG4gICAgcmlnaHQ6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLThweDtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfbGVmdCB7XG4gICAgbGVmdDogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX2xlZnQge1xuICAgIGxlZnQ6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fbGVmdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC04cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV90b3Age1xuICAgIHRvcDogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX3RvcCB7XG4gICAgdG9wOiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX3RvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICB0b3A6IC04cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYm90dG9tIHtcbiAgICBib3R0b206IDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl9ib3R0b20ge1xuICAgIGJvdHRvbTogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3JpZ2h0QWxpZ25lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2JvdHRvbUFsaWduZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXJyb3JNZXNzYWdlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtaW4taGVpZ2h0OiAyLjRlbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbkBrZXlmcmFtZXMgbXhfRmlsZURyb3BUYXJnZXRfYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk1O1xuICAgIH1cbn1cblxuLm14X0ZpbGVEcm9wVGFyZ2V0IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgb3BhY2l0eTogMC45NTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAzMDAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBhbmltYXRpb246IG14X0ZpbGVEcm9wVGFyZ2V0X2FuaW1hdGlvbjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG59XG5cbkBrZXlmcmFtZXMgbXhfRmlsZURyb3BUYXJnZXRfaW1hZ2VfYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxufVxuXG4ubXhfRmlsZURyb3BUYXJnZXRfaW1hZ2Uge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGFuaW1hdGlvbjogbXhfRmlsZURyb3BUYXJnZXRfaW1hZ2VfYW5pbWF0aW9uO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbGVQYW5lbCB7XG4gICAgb3JkZXI6IDI7XG4gICAgZmxleDogMSAxIDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAzcHggNHB4IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9idXR0b246aG92ZXIsXG4ubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9idXR0b25bYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfd3JhcHBlciB7XG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYigyMywgMjUsIDI4LCAwLjA1KTtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl90b3Age1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMjJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHF1aW5hcnktY29udGVudDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYm9yZGVyOiBpbmhlcml0O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG1lbnUtYmctY29sb3I7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IC04cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9kaXZpZGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOXB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDMwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICA+IC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1oZWFkZXIgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0taXRlbSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1jaGVja0ljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSG9tZVBhZ2Uge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogbWluKDEwMCUgLSA1MHB4LCA5NjBweCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICBjb250YWluZXItbmFtZTogaG9tZXBhZ2U7XG59XG5cbi5teF9Ib21lUGFnZV9kZWZhdWx0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTMycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X01pbmlBdmF0YXJVcGxvYWRlciB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Ib21lUGFnZV9kZWZhdWx0X2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICBnYXA6IDVweCA0MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogODBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMTNweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMzJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmOyAvKiBvbiBhbGwgdGhlbWVzICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmOyAvKiBvbiBhbGwgdGhlbWVzICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGFpbmVyIGhvbWVwYWdlIChtYXgtd2lkdGg6IDU1OXB4KSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MYXJnZUxvYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICBmbGV4OiB1bnNldDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAzM3ZoO1xuICAgIH1cblxuICAgIC5teF9MYXJnZUxvYWRlcl90ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWF0cml4Q2hhdC0td2l0aC1hdmF0YXIge1xuICAgIC5teF9MZWZ0UGFuZWwsXG4gICAgLm14X0xlZnRQYW5lbCAubXhfTGVmdFBhbmVsX3Jvb21MaXN0Q29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsX291dGVyV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0xlZnRQYW5lbF93cmFwcGVyLFxuLm14X0xlZnRQYW5lbCB7XG4gICAgLS1jb2xsYXBzZWRXaWR0aDogNjhweDtcbn1cblxuLm14X0xlZnRQYW5lbF9wYW5lbCB7XG4gICAgLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5teF9MZWZ0UGFuZWxfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBlbnN1cmUgc3BhY2UgcGFuZWwgaXMgc3RpbGwgc2Nyb2xsYWJsZSB3aXRoIGFuIG91dGVyIHdyYXBwZXIgKi9cblxuICAgIC5teF9MZWZ0UGFuZWxfd3JhcHBlci0tdXNlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJltkYXRhLWNvbGxhcHNlZF0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xsYXBzZWRXaWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9MZWZ0UGFuZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgLyogVGhlIHJvb20gbGlzdCBpcyBub3QgZGVzaWduZWQgdG8gYmUgY29sbGFwc2VkIHRvIGp1c3QgaWNvbnMuICovXG4gICAgLyogMjI0ICsgNjgoc3BhY2VzIGJhcikgd2FzIGRlZW1lZCBieSBkZXNpZ24gdG8gYmUgYSBnb29kIG1pbmltdW0gZm9yIHRoZSBsZWZ0IHBhbmVsLiAqL1xuICAgIC0tY29sbGFwc2VkV2lkdGg6IDIyNHB4O1xuXG4gICAgLyogQ3JlYXRlIGEgcm93LWJhc2VkIGZsZXhib3ggZm9yIHRoZSBzcGFjZSBwYW5lbCBhbmQgdGhlIHJvb20gbGlzdCAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfTGVmdFBhbmVsX3Jvb21MaXN0Q29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMSAwIDA7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgLyogQ3JlYXRlIGFub3RoZXIgZmxleGJveCAodGhpcyB0aW1lIGEgY29sdW1uKSBmb3IgdGhlIHJvb20gbGlzdCBjb21wb25lbnRzICovXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLyogVGhlc2Ugc3R5bGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBmb3IgdGhlIG1pbmltaXplZCAoNjZweCkgbGF5b3V0ICovXG4gICAgJi5teF9MZWZ0UGFuZWxfbWluaW1pemVkIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICB3aWR0aDogdW5zZXQgIWltcG9ydGFudDtcblxuICAgICAgICAubXhfTGVmdFBhbmVsX3Jvb21MaXN0Q29udGFpbmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1jb2xsYXBzZWRXaWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNsZWZ0LXBhbmVsIC5teF9MZWZ0UGFuZWxfd3JhcHBlci0tdXNlciB7XG4gICAgLypcbiAgICAgKiBEaXNhYmxlIGJhY2tncm91bmQgd2hlbiB1c2luZyB0aGUgbmV3IHJvb20gbGlzdC5cbiAgICAgKiBUaGlzIGJhY2tncm91bmQgc29tZXRpbWVzIHNob3dzIHdoZW4gdGhlIHBhbmVsIGlzIHJlc2l6ZWQgYW5kIGl0IGxvb2tzIGxpa2UgYSB0aGlja2VyIGJvcmRlci5cbiAgICAgKi9cbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYWluU3BsaXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYWluU3BsaXQgPiAubXhfUmlnaHRQYW5lbF9SZXNpemVXcmFwcGVyIHtcbiAgICAmOmhvdmVyIC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWw6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1MCUsIC01MCUpO1xuXG4gICAgICAgIGhlaWdodDogNjRweDsgLyogdG8gbWF0Y2ggd2lkdGggb2YgdGhlIG9uZXMgb24gcm9vbWxpc3QgKi9cbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXRyaXhDaGF0X3NwbGFzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X01hdHJpeENoYXRfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X01hdHJpeENoYXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vKiBub3QgdGhlIGxlZnQgcGFuZWwsIGFuZCBub3QgdGhlIHJlc2l6ZSBoYW5kbGUsIHNvIHRoZSByb29tdmlldyBhbmQgZnJpZW5kcyAqL1xuLm14X01hdHJpeENoYXQgPiA6bm90KC5teF9MZWZ0UGFuZWwpOm5vdCgubXhfU3BhY2VQYW5lbCk6bm90KC5teF9SZXNpemVIYW5kbGUpOm5vdCgubXhfTGVmdFBhbmVsX291dGVyV3JhcHBlcikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLyogVG8gZml4IGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzMyOTggd2hlcmUgU2FmYXJpXG4gICAgICAgbmVlZGVkIGhlaWdodCAxMDAlIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIEhvbWVQYWdlLiBIZWlnaHQgZG9lcyBub3RcbiAgICAgICBoYXZlIHRvIGJlIGF1dG8sIGVtcGlyaWNhbGx5LlxuICAgICovXG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWF0cml4Q2hhdCA+IC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWw6aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgY29udGVudDogXCIgXCI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBUaGUgbmV3IHRpbWVsaW5lJ3MgcmVwbHktcHJldmlldyBydWxlcyDigJQgdGhlIGxvYWRpbmcgc2tlbGV0b24gYW5kIHRoZSByb3dcbiAqIGhlaWdodHMgdGhhdCBrZWVwIGl0IGhlaWdodC1uZXV0cmFsIOKAlCBsaXZlIGFsb25nc2lkZSB0aGUgcmVwbHkgY29tcG9uZW50cyBpblxuICogX1JlcGx5Q2hhaW4ucGNzcyAvIF9SZXBseVRpbGUucGNzcy5cbiAqL1xuLm14X05ld1RpbWVsaW5lUGFuZWwge1xuICAgIC8qIEZpbGwgdGhlIHJvb20gdmlldyBib2R5LCBsaWtlIHRoZSBvbGQgbWVzc2FnZSBwYW5lbCBkb2VzLiAqL1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC8qIEtlcHQgbW91bnRlZCBidXQgaW52aXNpYmxlLCBlLmcuIHdoaWxlIHNlYXJjaCByZXN1bHRzIGFyZSBzaG93biwgc28gdGhlXG4gICAgICAgdGltZWxpbmUga2VlcHMgaXRzIHNjcm9sbCBwb3NpdGlvbiBhbmQgbG9hZGVkIHdpbmRvdy4gKi9cbiAgICAmLm14X05ld1RpbWVsaW5lUGFuZWxfaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBUaGUgdmlydHVhbGl6ZWQgdGltZWxpbmUgcmVuZGVycyBpdHMgcm93cyBhcyBhbiA8b2wgcm9sZT1cImxpc3RcIj4gb2YgPGxpPlxuICAgICAgIHRpbGVzIChteF9UaW1lbGluZVZpZXdfbGlzdCAvIG14X1RpbWVsaW5lVmlld190aWxlIGluIFRpbWVsaW5lVmlldzsgdGhlIDxvbD5cbiAgICAgICBhbmQgPGxpPiByZXNldCB0aGVpciBvd24gbGlzdCBtYXJrZXJzIGlubGluZSkuIEluc2V0IHRoZSB0aWxlIGNvbnRlbnQgdG9cbiAgICAgICBtYXRjaCB0aGUgbGVnYWN5IG14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHBhZGRpbmcgc28gbWVzc2FnZXMgZG9uJ3Qgc2l0IGZsdXNoXG4gICAgICAgYWdhaW5zdCB0aGUgcGFuZWwgZWRnZXMuXG5cbiAgICAgICBUaGUgaW5zZXQgZ29lcyBvbiB0aGUgdGlsZXMgcmF0aGVyIHRoYW4gdGhlIDxvbD46IHRoZSByb3dzIGFyZSBhYnNvbHV0ZWx5XG4gICAgICAgcG9zaXRpb25lZCwgc28gdGhlaXIgY29udGFpbmluZyBibG9jayBpcyB0aGUgPG9sPidzIHBhZGRpbmcgYm94IGFuZCBwYWRkaW5nXG4gICAgICAgdGhlcmUgd291bGQgbm90IGluc2V0IHRoZW0uIGJveC1zaXppbmcgKyBwYWRkaW5nLWlubGluZSBvbiBlYWNoIHJvdyBkb2VzLFxuICAgICAgIGFuZCDigJQgYmVpbmcgaG9yaXpvbnRhbCBvbmx5IOKAlCBsZWF2ZXMgdGhlIHZpcnR1YWxpemVyJ3MgbWVhc3VyZWQgcm93IGhlaWdodHNcbiAgICAgICBhbmQgdmVydGljYWwgb2Zmc2V0cyB1bnRvdWNoZWQuICovXG4gICAgLm14X1RpbWVsaW5lVmlld190aWxlIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC8qIFRoZSByb3cgaG9sZGluZyB0aGUgc3Bpbm5lciBzaG93biB3aGlsZSBtb3JlIGhpc3RvcnkgaXMgZmV0Y2hlZC4gSXRzIGhlaWdodCBpc1xuICAgICAgIGZpeGVkIHNvIHRoZSByb3cgYWx3YXlzIG1lYXN1cmVzIHRoZSBzYW1lLiAqL1xuICAgIC5teF9OZXdUaW1lbGluZVBhbmVsX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC8qIEFuIGltYWdlIHRoYXQgZmFpbHMgdG8gbG9hZCByZXBsYWNlcyBpdHMgcmVzZXJ2ZWQgbWVkaWEgYm94IHdpdGggYSBzaG9ydFxuICAgICAgIGVycm9yIG1lc3NhZ2UsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBwdWxsIGV2ZXJ5IHJvdyBiZWxvdyBpdCB1cHdhcmRzLiBIb2xkXG4gICAgICAgdGhlIHJvdyBhdCB0aGUgaGVpZ2h0IG9mIHRoZSBib3ggYmVpbmcgcmVwbGFjZWQg4oCUIEltYWdlQm9keVZpZXcgcGFzc2VzIGl0XG4gICAgICAgYXMgLS1teC1pbWFnZS1yZXNlcnZlZC1oZWlnaHQsIGFuZCBvbmx5IGZvciBpbWFnZXMgd2hvc2UgZXZlbnQgZGVjbGFyZWRcbiAgICAgICBkaW1lbnNpb25zOyBhbnl0aGluZyBlbHNlIHJlc2VydmVkIG5vIGJveCwgc28gaXQgZ2V0cyBubyBtaW5pbXVtLlxuXG4gICAgICAgVGhlIGVycm9yIHN0YXRlIHNldHMgYGRpc3BsYXk6IGJsb2NrYCwgc28gbGF5aW5nIHRoZSBtZXNzYWdlIG91dCBuZWVkcyBmbGV4XG4gICAgICAgcmUtYXNzZXJ0aW5nIGhlcmU7IHRoZSByb290J3MgYGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5gIHRoZW4gbWVhbnMgdGhlIGNyb3NzXG4gICAgICAgYXhpcyBpcyBob3Jpem9udGFsLCBhbmQgY2VudHJpbmcgaW4gdGhlIGJveCBpcyBhbGlnbi1pdGVtcyAoaG9yaXpvbnRhbGx5KVxuICAgICAgIHBsdXMganVzdGlmeS1jb250ZW50ICh2ZXJ0aWNhbGx5KS4gKi9cbiAgICBzcGFuLm14X0ltYWdlQm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1teC1pbWFnZS1yZXNlcnZlZC1oZWlnaHQsIDApO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzBweDtcbiAgICBsZWZ0OiAyOHB4O1xuICAgIHotaW5kZXg6IDEwMTsgLyogc2FtZSBsZXZlbCBhcyBvdGhlciB0b2FzdHMgKi9cblxuICAgIC5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lcl90b2FzdCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgIC8qIFdlIGRvbid0IHVzZSB2YXJpYWJsZXMgb24gdGhlIGNvbG91cnMgYmVjYXVzZSB3ZSB3YW50IGl0IHRvIGJlIHRoZSBzYW1lICovXG4gICAgICAgIC8qIGluIGFsbCB0aGVtZXMuICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzE5MWM7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlciB7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICAvKlxuICAgICAqIFJlbmRlcmVkIGluICNteF9QZXJzaXN0ZWRFbGVtZW50X2NvbnRhaW5lcjogZGlzcGxheSBhYm92ZSBkb2NrZWQgd2lkZ2V0cyAoei1pbmRleCA5KSxcbiAgICAgKiBidXQgYmVsb3cgdGhlIHBlcnNpc3RlZCB3aWRnZXQgc2hvd24gaW4gdGhlIFBpUCBpdHNlbGYgKHotaW5kZXggMTAxKSwgd2hpY2ggaXNcbiAgICAgKiBwb3NpdGlvbmVkIG92ZXIgYSBwbGFjZWhvbGRlciBpbnNpZGUgdGhpcyBlbGVtZW50LlxuICAgICAqL1xuICAgIHotaW5kZXg6IDEwMDtcbn1cblxuLm14X1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyOmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBncmFiYmluZztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1F1aWNrU2V0dGluZ3NCdXR0b24ge1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDEycHggYXV0byAxMnB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZmlsbDogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCk6aG92ZXIge1xuICAgICAgICAvKipcbiAgICAgICAgICogb3ZlcnJpZGUgY29tcG91bmQgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJlZFxuICAgICAgICAgKiBzaG91bGQgZGlzYXBwZWFyIHdoZW4gdGhlIHNwYWNlIHBhbmVsIHdpbGwgYmUgbWlncmF0ZWQgdG8gY29tcG91bmRcbiAgICAgICAgICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG92ZXJyaWRlIGNvbXBvdW5kIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB3aGVuIGhvdmVyZWRcbiAgICAgICAgICogc2hvdWxkIGRpc2FwcGVhciB3aGVuIHRoZSBzcGFjZSBwYW5lbCB3aWxsIGJlIG1pZ3JhdGVkIHRvIGNvbXBvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgIC8qIGFsaWduIHdpdGggc2V0dGluZ3MgaWNvbiAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogMjFweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBtb2RpZnkgaW50ZXJuYWwgY3NzIG9mIHRoZSBjb21wb3VuZCBjb21wb25lbnRcbiAgICAgICAgICogZGlydHkgYnV0IHdlIG5lZWQgdG8gYWRkIHRoZSBsYWJlbCBpbnRvIHRoZSBpbmRpY2F0b3IgaWNvbiBidXR0b25cbiAgICAgICAgICoqL1xuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIC8qIGFsaWduIHdpdGggc2V0dGluZ3MgbGFiZWwgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcbiAgICAgICAgICAgIC8qIHJlcXVpcmVkIHRvIHNldCB0aGUgaWNvbiB3aWR0aCB3aGVuIGludG8gYSBmbGV4IGNvbnRhaW5lciAqL1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgLm14X1F1aWNrU2V0dGluZ3NCdXR0b25fbGFiZWwge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAgKi9cbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1F1aWNrU2V0dGluZ3NCdXR0b25fQ29udGV4dE1lbnVXcmFwcGVyIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBjb250YWluOiB1bnNldDsgLyogbGV0IHRoZSBkcm9wZG93biBwYWludCBiZXlvbmQgdGhlIGNvbnRleHQgbWVudSAqL1xuXG4gICAgPiBkaXYgPiBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG5cbiAgICA+IGRpdiA+IGg0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW46IDIwcHggMCAxMnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1F1aWNrU2V0dGluZ3NCdXR0b25fbW9yZU9wdGlvbnNCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1F1aWNrU2V0dGluZ3NCdXR0b25fb3B0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgLyogQ29ycmVjdGx5IGxpbmUgdXAgaWNvbnMgYW5kIHRleHQuICovXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1F1aWNrVGhlbWVTd2l0Y2hlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxufVxuXG4ubXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SaWdodFBhbmVsIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRzZXBhcmF0b3I7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29udGFpbjogc3RyaWN0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE4cHg7IC8qIHRvcCBhbmQgYm90dG9tIGlzIDRweCBzbWFsbGVyIHRvIGJhbGFuY2Ugd2l0aCB0aGUgcGFkZGluZyBzZXQgYWJvdmUgKi9cbiAgICB9XG59XG5cbi5teF9SaWdodFBhbmVsIC5teF9NZW1iZXJMaXN0LFxuLm14X1JpZ2h0UGFuZWwgLm14X01lbWJlckluZm8ge1xuICAgIG9yZGVyOiAyO1xuICAgIGZsZXg6IDEgMSAwO1xufVxuXG4ubXhfUmlnaHRQYW5lbCAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lciB7XG4gICAgb3JkZXI6IDI7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuOnJvb3Qge1xuICAgIC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZzogMThweDtcbn1cblxuLm14X0xlZnRQYW5lbF9wYW5lbCB7XG4gICAgLm14X1Jvb21WaWV3X3dyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8qIENvbnRhaW4gdGhlIGFtb3VudCBvZiBsYXllcnMgcmVuZGVyZWQgYnkgY29uc3RyYWluaW5nIHdoYXQgYWN0dWFsbHkgbmVlZHMgcmUtbGF5ZXJpbmcgdmlhIGNzcyAqL1xuICAgIGNvbnRhaW46IHN0cmljdDtcbn1cblxuLm14X1Jvb21WaWV3IHtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X01haW5TcGxpdCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2F1eFBhbmVsX2hpZGRlbkhpZ2hsaWdodHMge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAxMHB4IDI2cHg7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9Sb29tVmlld19tZXNzYWdlUGFuZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZmxleDogMSAxIDA7XG4gICAgb3ZlcmZsb3ctYW5jaG9yOiBub25lO1xufVxuXG4ubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU2VhcmNoU3Bpbm5lciB7XG4gICAgZmxleDogMTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcmVzL2ltZy90eXBpbmctaW5kaWNhdG9yLTJ4LmdpZlwiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgMzY3cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDI4NnB4O1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDI1cHgpO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBjb250YWluZXItdHlwZTogc2l6ZTtcbiAgICBjb250YWluZXItbmFtZTogcm9vbXZpZXc7XG5cbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsLFxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWxTcGlubmVyLFxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWxTZWFyY2hTcGlubmVyIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgfVxuXG4gICAgLyogRmlsbCB0aGUgc3BhY2UgdGhlIG1lc3NhZ2VzIHdpbGwgb2NjdXB5LCBzbyB0aGlzIHNwaW5uZXIgaXMgY2VudHJlZCBsaWtlIHRoZVxuICAgICAgIHRpbWVsaW5lJ3Mgb3duLiBPdGhlcndpc2UgaXQgc2l0cyBuZWFyIHRoZSB0b3AgYW5kIHRoZW4gYXBwZWFycyB0byBqdW1wIGRvd25cbiAgICAgICB3aGVuIHRoZSB0aW1lbGluZSB0YWtlcyBvdmVyLiAqL1xuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWxTcGlubmVyIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X3RpbWVsaW5lIHtcbiAgICAgICAgLyogb2Zmc2V0IHBhcmVudCBmb3IgbXhfUm9vbVZpZXdfdG9wVW5yZWFkTWVzc2FnZXNCYXIgICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi8qIFJlc3RvcmUgdGhlIGdhcCBiZXR3ZWVuIHRoZSB0aW1lbGluZSBhbmQgdGhlIHJpZ2h0IHBhbmVsIG9ubHkgd2hlbiB0aGUgcGFuZWwgaXMgb3Blbi5cbiAgIFdpdGhvdXQgdGhpcywgdGhlIHNjcm9sbGJhciBvbiBteF9Sb29tVmlld19tZXNzYWdlUGFuZWwgd291bGQgc2l0IDQgcHggYXdheSBmcm9tIHRoZVxuICAgdmlld3BvcnQgZWRnZSBpbiBGaXJlZm94ICh3aGljaCBkb2VzIG5vdCBzdXBwb3J0IG92ZXJmbG93Om92ZXJsYXkpLiAqL1xuLm14X01haW5TcGxpdDpoYXMoLm14X1JpZ2h0UGFuZWxfUmVzaXplV3JhcHBlcikgLm14X1Jvb21WaWV3X3RpbWVsaW5lIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgbWF4LWhlaWdodDogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYV9leHBhbmRlZCB7XG4gICAgbWF4LWhlaWdodDogMTAwcHg7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94IHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3hfbGluZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDY1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIGhlaWdodDogMXB4O1xufVxuXG4ubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9Sb29tVmlld19zZWFyY2hSZXN1bHRzUGFuZWwge1xuICAgIC5teF9Sb29tVmlld19tZXNzYWdlTGlzdFdyYXBwZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgPiAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3QgPiBsaSA+IG9sIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2VtcHR5IHtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogODBweDsgLyogdmlzdWFsbHkgY2VudGVyIHRoZSBjb250ZW50IChpbnRlbnRpb25hbCBvZmZzZXQpICovXG59XG5cbi5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmc6IHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpOyAvKiBteF9Qcm9maWxlUmVzaXplciBkZXBlbmRzIG9uIHRoaXMgdmFsdWUgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgLyogbmVlZGVkIGFzIG1pbi1oZWlnaHQgaXMgc2V0IHRvIGNsaWVudEhlaWdodCBpbiBTY3JvbGxQYW5lbFxuICAgIHRvIHByZXZlbnQgc2hyaW5raW5nIHdoZW4gV2hvSXNUeXBpbmdUaWxlIGlzIGhpZGRlbiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBsaSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5teF9TY3JvbGxQYW5lbCAmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0bztcbiAgICAgICAgY29udGFpbi1pbnRyaW5zaWMtc2l6ZTogNTBweDtcbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXctLWxvY2FsIC5teF9TY3JvbGxQYW5lbCAmIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfaW5DYWxsIHtcbiAgICAubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveF9saW5lIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMHB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcHg7XG4gICAgfVxufVxuXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3gge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWFyY2hCb3gge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4OyAvKiB0byBhdm9pZCBqdW1waW5nIHdoZW4gdGhlIFggdG8gY2xlYXIgc2hvd3MvaGlkZXMgKi9cblxuICAgICYubXhfU2VhcmNoQm94X2JsdXJyZWQ6bm90KDpob3Zlcikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAubXhfU2VhcmNoQm94X2Nsb3NlQnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA5cHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmcge1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgbWFyZ2luOiAyNHB4IDAgMTZweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfbm9SZXN1bHRzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0SGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3RIZWFkZXJfaGVhZGVyIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdEhlYWRlcl9idXR0b25zIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfb3V0bGluZSxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDEycHg7IC8qIHRvIGFjY291bnQgZm9yIHRoZSAxcHggYm9yZGVyICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfZXJyb3Ige1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBtYXJnaW46IDIwcHggYXV0byAxMnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB2ZWN0b3ItaW0vY29tcG91bmQtZGVzaWduLXRva2Vucy9pY29ucy9lcnJvci1zb2xpZC5zdmdcIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tQ291bnQge1xuICAgICAgICA+IGgzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX3RvZ2dsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTFweDtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX3RvZ2dsZV9zaG93biBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfc3Vic3BhY2VfY2hpbGRyZW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBsaS5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZVdyYXBwZXIge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBnYXA6IDZweCAxMnB4O1xuXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMHB4IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGdhcDogNnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTsgLyogd3JhcCBhY3Rpb24gYnV0dG9ucyAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9JbmZvVG9vbHRpcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9qb2luZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9JbmZvVG9vbHRpcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfam9pbmVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfaW5mbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLWdhcDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHggMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUsXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxNnB4OyAvKiB0byBhY2NvdW50IGZvciB0aGUgMXB4IGJvcmRlciAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1NwYWNlSGllcmFyY2h5X2pvaW5pbmcge1xuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDE4cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGUsXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX2NoaWxkcmVuIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9ucyB7XG4gICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9hY3Rpb25zVGV4dCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBociB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuICAgICAgICBtYXJnaW46IDIwcHggMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfY3JlYXRlUm9vbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDE2cHggYXV0byAwO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlUGFuZWwge1xuICAgIC0tYWN0aXZlQmFja2dyb3VuZC1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG4gICAgLS1hY3RpdmVCb3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgLS1hY3RpdmVCb3JkZXItdHJhbnNwYXJlbnQtZ2FwOiAxcHg7XG4gICAgLS1ndXR0ZXJTaXplOiAxNHB4O1xuICAgIC0taGVpZ2h0LW5lc3RlZDogMjRweDtcbiAgICAtLWhlaWdodC10b3BMZXZlbDogMzJweDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogRml4IGZvciB0aGUgYmx1cnJlZCBhdmF0YXItYmFja2dyb3VuZCAqL1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgLyogQ3JlYXRlIGFub3RoZXIgZmxleGJveCBzbyB0aGUgUGFuZWwgZmlsbHMgdGhlIGNvbnRhaW5lciAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgd2lkdGg6IDY4cHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUGFuZWxfdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHRvcDogMTlweDsgLyogdi1hbGlnbiB3aXRoIGF2YXRhciAqL1xuICAgICAgICByaWdodDogLThweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgICAgICAvKiBTbGlnaHQgYWxpZ25tZW50IHR3ZWFrIHRvIGNlbnRlciB0aGUgYXNzZXQgKi9cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmV4cGFuZGVkIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgLyogU2xpZ2h0IGFsaWdubWVudCB0d2VhayB0byBjZW50ZXIgdGhlIGFzc2V0ICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIgLm14X1NwYWNlUGFuZWxfdG9nZ2xlQ29sbGFwc2UsXG4gICAgLm14X1NwYWNlUGFuZWxfdG9nZ2xlQ29sbGFwc2U6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtX2RyYWdnaW5nIHtcbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuXG4gICAgICAgICYubXhfU3BhY2VJdGVtX25hcnJvdyB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW0uY29sbGFwc2VkIHtcbiAgICAgICAgJiA+IC5teF9TcGFjZUJ1dHRvbiA+IC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgLTEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gLm14X1NwYWNlVHJlZUxldmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtX25ldyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtOm5vdCguaGFzU3ViU3BhY2VzKSA+IC5teF9TcGFjZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXJTaXplKTtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNHB4IDRweCA0cHggMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSB1bmxheWVyZWQgY3Vyc29yOiBncmFiOyBydWxlIGZyb20gcmVhY3QtYmVhdXRpZnVsLWRuZCAqL1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX2FjdGl2ZSB7XG4gICAgICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KSAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWN0aXZlQmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfU3BhY2VCdXR0b25fbmFycm93IC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1hY3RpdmVCb3JkZXItdHJhbnNwYXJlbnQtZ2FwKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDNweCB2YXIoLS1hY3RpdmVCb3JkZXItY29sb3IpIHNvbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfU3BhY2VCdXR0b25fbmFycm93IC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9uYW1lIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tZ3V0dGVyU2l6ZSk7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAvKiBSZS1hbGlnbiB3aXRoIHBhcmVudCAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX2ljb24ge1xuICAgICAgICAgICAgLyogQ2FsY3VsYXRlIGhlaWdodCBleGNsdWRpbmcgcGFkZGluZyB0byBhbGxvdyBzdmcgdG8gaW5oZXJpdCAqL1xuICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0taGVpZ2h0LXRvcExldmVsKSAtIDE0cHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWhlaWdodC10b3BMZXZlbCkgLSAxNHB4KTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgcGFkZGluZzogN3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25ldyAubXhfU3BhY2VCdXR0b25faWNvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgLyogVE9ETyB0cmFuc2l0aW9uICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25ld0NhbmNlbCAubXhfU3BhY2VCdXR0b25faWNvbiBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX21lbnVCdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlVHJlZUxldmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLm14X1NwYWNlVHJlZUxldmVsIHtcbiAgICAgICAgICAgIC8qIEluZGVudCBzdWJzcGFjZXMgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUJ1dHRvbl9hdmF0YXJXcmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VQYW5lbF9iYWRnZUNvbnRhaW5lciB7XG4gICAgICAgIC8qIENyZWF0ZSBhIGZsZXhib3ggdG8gbWFrZSBhbGlnbmluZyBkb3QgYmFkZ2VzIGVhc2llciAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgICB0b3A6IC0zcHg7XG5cbiAgICAgICAgLm14X1NwYWNlUGFuZWxfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDsgLyogY2VudGVyaW5nICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtYmFkZ2UtdHlwZT1cImRvdFwiXSB7XG4gICAgICAgICAgICAvKiBtYWtlIHRoZSBzbWFsbGVyIGRvdCBvY2N1cHkgdGhlIHNhbWUgd2lkdGggZm9yIGNlbnRlcmluZyAqL1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xcHggMCAwO1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBbZGF0YS1iYWRnZS10eXBlPVwiYmFkZ2VfMmNoYXJcIl0sXG4gICAgICAgIFtkYXRhLWJhZGdlLXR5cGU9XCJiYWRnZV8zY2hhclwiXSB7XG4gICAgICAgICAgICBtYXJnaW46IC01cHggLTVweCAwIDA7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUJ1dHRvbjpob3ZlcixcbiAgICAubXhfU3BhY2VCdXR0b246Zm9jdXMtd2l0aGluLFxuICAgIC5teF9TcGFjZUJ1dHRvbl9oYXNNZW51T3BlbiB7XG4gICAgICAgICY6bm90KC5teF9TcGFjZUJ1dHRvbl9uYXJyb3cpOm5vdCgubXhfU3BhY2VCdXR0b25faW52aXRlKSAubXhfU3BhY2VCdXR0b25fbWVudUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW06bm90KC5teF9TcGFjZUl0ZW1fbmV3KSB7XG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbjpob3ZlcixcbiAgICAgICAgLm14X1NwYWNlQnV0dG9uOmZvY3VzLXdpdGhpbixcbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX2hhc01lbnVPcGVuIHtcbiAgICAgICAgICAgICY6bm90KC5teF9TcGFjZUJ1dHRvbl9uYXJyb3cpOm5vdCgubXhfU3BhY2VCdXR0b25faW52aXRlKSAubXhfU3BhY2VCdXR0b25fbmFtZSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA1NnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJvb3Qgc3BhY2UgYnV0dG9ucyBhcmUgYmlnZ2VyIGFuZCBub3QgaW5kZW50ZWQgKi9cbiAgICAmID4gLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogMCAwIDE2cHggMDtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuXG4gICAgICAgICYubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX3RvcE92ZXJmbG93IHtcbiAgICAgICAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCBibGFjayAxNnB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX2JvdHRvbU92ZXJmbG93IHtcbiAgICAgICAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICB0byB0b3AsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDMwJSkgNHB4LFxuICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA1NSUpIDhweCxcbiAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNzUlKSAxMnB4LFxuICAgICAgICAgICAgICAgIGJsYWNrIDE2cHhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl90b3BPdmVyZmxvdy5teF9JbmRpY2F0b3JTY3JvbGxiYXJfYm90dG9tT3ZlcmZsb3cge1xuICAgICAgICAgICAgLyogVGhpcyBzdGFja3MgdHdvIGdyYWRpZW50cyBvbiB0b3Agb2Ygb25lIGFub3RoZXIsIHdoaWNoIGxldHMgdXNcbiAgICAgICAgICAgICAgIGhhdmUgYSBmaXhlZCBwaXhlbCBvZmZzZXQgZnJvbSBib3RoIHRvcCBhbmQgYm90dG9tIGZvciB0aGUgY29sb3VyIHN0b3BzLlxuICAgICAgICAgICAgICAgTm90ZSB0aGUgdG9wIGZhZGUgaXMgbXVjaCBzbWFsbGVyIGJlY2F1c2UgdGhlIHNwYWNlcyBzdGFydCBjbG9zZSB0byB0aGUgdG9wLFxuICAgICAgICAgICAgICAgc28gb3RoZXJ3aXNlIGEgbGFyZ2UgZ3JhZGllbnQgc3VkZGVubHkgYXBwZWFycyB3aGVuIHlvdSBzY3JvbGwgZG93bi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbWFzay1pbWFnZTpcbiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgYmxhY2sgMTZweCksXG4gICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byB0b3AsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgMzAlKSA0cHgsXG4gICAgICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA1NSUpIDhweCxcbiAgICAgICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDc1JSkgMTJweCxcbiAgICAgICAgICAgICAgICAgICAgYmxhY2sgMTZweFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYXNrLXBvc2l0aW9uOlxuICAgICAgICAgICAgICAgIDAlIDAlLFxuICAgICAgICAgICAgICAgIDAlIDEwMCU7XG4gICAgICAgICAgICBtYXNrLXNpemU6XG4gICAgICAgICAgICAgICAgY2FsYygxMDAlIC0gMTBweCkgNTAlLFxuICAgICAgICAgICAgICAgIGNhbGMoMTAwJSAtIDEwcHgpIDUwJTtcbiAgICAgICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TcGFjZVBhbmVsX2NvbnRleHRNZW51IHtcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xuXG4gICAgLm14X1NwYWNlUGFuZWxfY29udGV4dE1lbnVfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDE2cHggMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZVBhbmVsX2NvbnRleHRNZW51X3NlcGFyYXRvckxhYmVsIHtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xMnB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9TcGFjZVBhbmVsX3NoYXJlUHVibGljU3BhY2Uge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X1NwYWNlUGFuZWxfVG9vbHRpcF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBrYmQge1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlUGlsbEJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDE2cHggMzJweCAxNnB4IDcycHg7XG4gICAgd2lkdGg6IDQzMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC0xN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGxlZnQ6IDIycHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVJvb21WaWV3IHtcbiAgICAtLWlubmVyV2lkdGg6IDQyOHB4O1xuXG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBmbGV4OiAxO1xuXG4gICAgLm14X01haW5TcGxpdCA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmc6IDgwcHggNjBweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWlubmVyV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWlubmVyV2lkdGgpO1xuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDM2MHB4KTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0NHB4O1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWlubmVyV2lkdGgpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IC8qIGJ1dHRvbiBhbGlnbm1lbnQgcmlnaHQgKi9cblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0Lm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgLyogb3ZlcnJpZGUgZGVmYXVsdCBzdHlsZXMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWlubmVyV2lkdGgpO1xuXG4gICAgICAgICAgICAmICsgLm14X0ZpZWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfZXJyb3JUZXh0IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaGVhZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfbmFtZSB7XG4gICAgICAgICAgICBtYXJnaW46IDI0cHggMCAxNnB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogMTJweCAwO1xuXG4gICAgICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW52aXRlciB7XG4gICAgICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2luZm9CYXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbmZvQmFyX2ludGVyYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogMTJweCAxMnB4O1xuXG4gICAgICAgICAgICAgICAgLm14X0ZhY2VQaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW52aXRlQnV0dG9uLFxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfc2V0dGluZ3NCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW52aXRlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDE4cHggNHB4IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19zZXR0aW5nc0J1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfdG9waWMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgICAgICAgICBmbGV4OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUm9vbVZpZXdfaW52aXRlVGVhbW1hdGVzIHtcbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfaW52aXRlVGVhbW1hdGVzX2J1dHRvbnMge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI4cHg7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDsgLyogdG8gY2VudGVyIGljb25zICovXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BsYXNoUGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgNTMuODUlIDY2Ljc1JSBhdCA4Ny41NSUgMCUsXG4gICAgICAgICAgICAgICAgaHNsKDI1MGRlZywgNzYlLCA3MSUsIDAuMjYxKSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDApIDEwMCVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoNDEuOTMlIDQxLjkzJSBhdCAwJSAwJSwgaHNsKDIyMmRlZywgMjklLCAyMCUsIDAuMjgpIDAlLCBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDApIDEwMCUpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDEwMCUgMTAwJSBhdCAwJSAwJSwgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwLjE3NCkgMCUsIGhzbCgwZGVnLCAxMDAlLCA4NiUsIDApIDEwMCUpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDEwNi4zNSUgOTYuMjYlIGF0IDEwMCUgMCUsIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMC40KSAwJSwgaHNsKDE2N2RlZywgNzYlLCA4MiUsIDApIDEwMCUpO1xuICAgICAgICAvKiBibHVyIHRvIHJlZHVjZSBjb2xvciBiYW5kaW5nIGlzc3VlcyBkdWUgdG8gYWxwaGEtYmxlbmRpbmcgbXVsdGlwbGUgZ3JhZGllbnRzICovXG4gICAgICAgIGZpbHRlcjogYmx1cig4cHgpO1xuICAgICAgICBpbnNldDogLTlweDtcbiAgICAgICAgbWFzazpcbiAgICAgICAgICAgIC8qIG1hc2sgdG8gZGl0aGVyIHJlc3VsdGluZyBjb21iaW5lZCBncmFkaWVudCAqL1xuICAgICAgICAgICAgdXJsKFwiL3Jlcy9pbWcvbm9pc2UucG5nXCIpLFxuICAgICAgICAgICAgLyogZ3JhZGllbnQgdG8gYXBwbHkgZGlmZmVyZW50IGFtb3VudHMgb2YgZGl0aGVyaW5nIHRvIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgZ3JhZGllbnQgKi9cbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICB0byBib3R0b20sXG4gICAgICAgICAgICAgICAgLyogMTAlIGRpdGhlcmluZyBhdCB0aGUgdG9wICovIHJnYigwLCAwLCAwLCAwLjkpIDIwJSxcbiAgICAgICAgICAgICAgICAvKiA4MCUgZGl0aGVyaW5nIGF0IHRoZSBib3R0b20gKi8gcmdiKDAsIDAsIDAsIDAuMikgMTAwJVxuICAgICAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcbkNvcHlyaWdodCAyMDE3IFRyYXZpcyBSYWxzdG9uXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UYWJiZWRWaWV3IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDAgdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaW5zZXQ6IDA7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJzT25MZWZ0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgICAgIHdpZHRoOiAyMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBtYXJnaW46IDA7IC8qIFJlbW92ZSB0aGUgZGVmYXVsdCB2YWx1ZSAqL1xuICAgICAgICBwYWRkaW5nOiAwOyAvKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUgKi9cbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyODBweDsgLyogMjIwcHggc2lkZWJhciArIDYwcHggcGFkZGluZyAqL1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsOmhvdmVyLFxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX2FjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkdGFiLWxhYmVsLWFjdGl2ZS1mZy1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF9hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1RhYmJlZFZpZXdfdGFic09uVG9wIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDUycHg7XG5cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgY29sb3I6ICR0YWItbGFiZWwtZmctY29sb3I7XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYkxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4tYmxvY2stc2l6ZTogNDBweDtcbiAgICBtaW4taW5saW5lLXNpemU6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGNvbG9yIDAuMXMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4xcztcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4taGVpZ2h0OiAwOyAvKiBmaXJlZm94ICovXG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYlBhbmVsQ29udGVudCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7IC8qIGZpcmVmb3ggKi9cbn1cblxuLyogSGlkZSB0aGUgbGFiZWxzIG9uIHRhYnMsIHNob3dpbmcgb25seSB0aGUgaWNvbnMsIG9uIG5hcnJvdyB2aWV3cG9ydHMuICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm14X1RhYmJlZFZpZXdfdGFic09uTGVmdC5teF9UYWJiZWRWaWV3X3Jlc3BvbnNpdmUge1xuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDcycHg7IC8qIDQwcHggc2lkZWJhciArIDMycHggcGFkZGluZyAqL1xuICAgICAgICB9XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMCAwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqIENvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlQnV0dG9uIHtcbiAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxOHB4IGF1dG8gYXV0byBhdXRvO1xuXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkZSBjb21wb3VuZCBkZWZhdWx0IGJhY2tncm91bmQgY29sb3Igd2hlbiBob3ZlcmVkXG4gICAgICAgICAqIHNob3VsZCBkaXNhcHBlYXIgd2hlbiB0aGUgc3BhY2UgcGFuZWwgd2lsbCBiZSBtaWdyYXRlZCB0byBjb21wb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGljb24gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIxcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogbW9kaWZ5IGludGVybmFsIGNzcyBvZiB0aGUgY29tcG91bmQgY29tcG9uZW50XG4gICAgICAgICAqIGRpcnR5IGJ1dCB3ZSBuZWVkIHRvIGFkZCB0aGUgYFRocmVhZHNgIGxhYmVsIGludG8gdGhlIGluZGljYXRvciBpY29uIGJ1dHRvblxuICAgICAgICAgKiovXG4gICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgaW5saW5lLXNpemU6IDhweDtcbiAgICAgICAgICAgICAgICBibG9jay1zaXplOiA4cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMTdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9JY29uIHtcbiAgICAgICAgICAgIC8qIGFsaWduIHdpdGggc2V0dGluZ3MgbGFiZWwgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcbiAgICAgICAgICAgIC8qIHJlcXVpcmVkIHRvIHNldCB0aGUgaWNvbiB3aWR0aCB3aGVuIGludG8gYSBmbGV4IGNvbnRhaW5lciAqL1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9UZXh0IHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIHtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpob3ZlciAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlQnV0dG9uX0ljb24ge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmlsbDogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9JY29uIHtcbiAgICAgICAgZmlsbDogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLyogQ29tcG91bmQgc3R5bGVzIGl0cyBNZW51L05hdkJhci9NZW51SXRlbSBpbnRlcm5hbHMgd2l0aCBzaW5nbGUtY2xhc3Mgc2VsZWN0b3JzLiBUaGVcbiAgIGBbcm9sZT1cIm1lbnVcIl1gIHF1YWxpZmllciBnaXZlcyBvdXIgcnVsZXMgYSBoaWdoZXIgc3BlY2lmaWNpdHkgc28gdGhleSB3aW4gd2l0aG91dFxuICAgYCFpbXBvcnRhbnRgLiAqL1xuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZV9tZW51W3JvbGU9XCJtZW51XCJdIHtcbiAgICAvKiBPdmVycmlkZSBjb21wb3VuZCdzIGRlZmF1bHQgMzQwcHggY2FwICovXG4gICAgbWF4LWlubGluZS1zaXplOiA0NDRweDtcbiAgICBpbmxpbmUtc2l6ZTogNDQ0cHg7XG4gICAgLypcbiAgICAgKiBBd2Z1bCwgYnJpdHRsZSBoYWNrIHRvIHJlbW92ZSBwYWRkaW5nIGZyb20gdGhlIG1lbnUgd2hpY2ggaXMgbm93IGFkZGVkIG9uIHRoZSBjb250ZW50IGNoaWxkXG4gICAgICogVGhpcyBwcm9iYWJseSBvdWdodCB0byBiZSBhIHBhcmFtZXRlciB0byB0aGUgY29tcG91bmQgY29tcG9uZW50IGlmIHdlIHNvbWV0aW1lcyBkb24ndCB3YW50IHBhZGRpbmcuXG4gICAgICovXG4gICAgPiBbcm9sZT1cIm5vbmVcIl0ge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuXG4gICAgICAgIC0tY3BkLW1lbnUtcGFkZGluZy1ibG9jay1lbmQ6IDA7XG4gICAgfVxuXG4gICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZV90YWJzIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgTmF2QmFyJ3MgZGVmYXVsdCBibG9jayBtYXJnaW4gdG8gbWF0Y2ggdGhlIEZpZ21hIGRlc2lnbiAqL1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIH1cblxuICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfcm93cyB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIC8qIEZpeGVkIHBhbmVsIGhlaWdodCBmcm9tIHRoZSBkZXNpZ24gKH42IHJvd3MpLCBzbyB0aGUgbWVudSBkb2Vzbid0IHJlc2l6ZSBhcyB0aGVcbiAgICAgICAgICAgbGlzdCBjaGFuZ2VzLiBSb3cgaGVpZ2h0cyB2YXJ5IHdpdGggdGhlIHByZXZpZXcsIGFuZCA0MzJweCBpc24ndCBvbiB0aGUgc3BhY2luZ1xuICAgICAgICAgICBzY2FsZSwgc28gdGhpcyBzdGF5cyBpbiBweC4gKi9cbiAgICAgICAgaGVpZ2h0OiA0MzJweDtcbiAgICAgICAgbWluLWhlaWdodDogNDMycHg7XG5cbiAgICAgICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVRocmVhZFJvdyB7XG4gICAgICAgICAgICAvKiBGbG9vciBmb3Igcm93cyB3aXRob3V0IGEgbWVzc2FnZSBwcmV2aWV3LCB3aGljaCB3b3VsZCBvdGhlcndpc2UgYmUgfjQ4cHggKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xNHgpO1xuXG4gICAgICAgICAgICAvKiBPdmVycmlkZSBjb21wb3VuZCdzIGRpc3BsYXk6IGdyaWQgd2l0aCBhIHNpbXBsZSBsZWZ0LXRvLXJpZ2h0IGZsZXggcm93OlxuICAgICAgICAgICAgICAgW2F2YXRhcl0gW2dhcF0gW3RleHQgY29udGVudF0gW2luZGljYXRvcl0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgICAgICAvKiBDb21wb3VuZCdzIC5pY29uIGNsYXNzIGFkZHMgbWFyZ2luLWlubGluZS1lbmQ7IHplcm8gaXQgc2luY2UgZ2FwIGhhbmRsZXMgc3BhY2luZyAqL1xuICAgICAgICAgICAgJiA+IC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogTm90aWZpY2F0aW9uIGRlY29yYXRpb24gKG1lbnRpb24gaWNvbiAvIGNvdW50ZXIgLyBhY3Rpdml0eSBkb3QpIGF0IHRoZSB0cmFpbGluZyBlZGdlICovXG4gICAgICAgICAgICAmID4gLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVRocmVhZFJvd19kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVUaHJlYWRSb3dfY29udGVudCB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlVGhyZWFkUm93X2hlYWRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogRm9udC9sZXR0ZXItc3BhY2luZyBjb21lIGZyb20gdGhlIENvbXBvdW5kIFRleHQgY29tcG9uZW50czsgb25seSBsYXlvdXQgKyBjb2xvdXIgaGVyZS4gKi9cbiAgICAgICAgICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVUaHJlYWRSb3dfcm9vbU5hbWUge1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVRocmVhZFJvd19wcmV2aWV3IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlVGhyZWFkUm93X3NlbmRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX2VtcHR5Q2FwdGlvbiB7XG4gICAgLyogVHlwb2dyYXBoeSBjb21lcyBmcm9tIHRoZSBDb21wb3VuZCBUZXh0IGNvbXBvbmVudC4gKi9cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICBsZWZ0OiA2MnB4O1xuICAgIHotaW5kZXg6IDEwMTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDI4cHggOHB4O1xuXG4gICAgJi5teF9Ub2FzdENvbnRhaW5lcl9zdGFja2VkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBncmlkLXJvdzogMiAvIC0xO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyMHB4IHJnYigwLCAwLCAwLCAwLjUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Ub2FzdF90b2FzdCB7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCAxZnIgYXV0bztcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcm93LWdhcDogNHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWNwZC1zcGFjZS01eCkgLSB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpKTtcblxuICAgICAgICAmLm14X1RvYXN0X2hhc0ljb24ge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF9jbG9zZWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLm14X1RvYXN0X2hhc0ljb24pIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfYm9keSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwbG9hZEJhciB7XG4gICAgLyogbGluZSB1cCB3aXRoIHRoZSBzaGllbGQgYXJlYSBpbiB0aGUgY29tcG9zZXIgKi9cbiAgICBwYWRkaW5nOiA1cHggMjFweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgXCJpY29uICAgICBmaWxlbmFtZSBjYW5jZWxcIiBhdXRvXG4gICAgICAgIFwicHJvZ3Jlc3MgcHJvZ3Jlc3MgcHJvZ3Jlc3NcIiBhdXRvXG4gICAgICAgIC8gbWluLWNvbnRlbnQgYXV0byBtaW4tY29udGVudDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBncmlkLWFyZWE6IGljb247XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfVXBsb2FkQmFyX2ZpbGVuYW1lIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlbmFtZTtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLm14X1VwbG9hZEJhcl9jYW5jZWwge1xuICAgICAgICBncmlkLWFyZWE6IGNhbmNlbDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgIGdyaWQtYXJlYTogcHJvZ3Jlc3M7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1RocmVhZFZpZXcge1xuICAgIC5teF9VcGxvYWRCYXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZpZXdTb3VyY2Uge1xuICAgIHByZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG4gICAgICAgIC5teF9Db3B5YWJsZVRleHQge1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfZGV0YWlscyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0UyRUljb24ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXJJY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXhfRTJFSWNvbi5teF9Db21wbGV0ZVNlY3VyaXR5X2hlcm9JY29uIHtcbiAgICB3aWR0aDogMTI4cHg7XG4gICAgaGVpZ2h0OiAxMjhweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfc2tpcCB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyNHB4O1xufVxuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9ib2R5IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X3dhaXRpbmcge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYWN0aW9uUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgbWFyZ2luLXRvcDogJGZvbnQtMjhweDtcblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMThweDtcblxuICAgICAgICAmLndhcm5pbmcge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0VmlldyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5fc3VibWl0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogOHB4O1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIC5teF9TcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIgLm14X1NwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5teF9Mb2dpbl9lcnJvciB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfTG9naW5fZXJyb3IubXhfTG9naW5fc2VydmVyRXJyb3Ige1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm14X0xvZ2luX2Vycm9yLm14X0xvZ2luX3NlcnZlckVycm9yLm14X0xvZ2luX3NlcnZlckVycm9yTm9uRmF0YWwge1xuICAgIGNvbG9yOiAjZmY4ZDEzOyAvKiBPbmx5IHVzZWQgaGVyZSAqL1xufVxuXG4ubXhfTG9naW5fdHlwZV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXhfTG9naW5fdHlwZV9sYWJlbCB7XG4gICAgZmxleDogMTtcbn1cblxuLm14X0xvZ2luX3VuZGVybGluZWRTZXJ2ZXJOYW1lIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkYWNjZW50O1xufVxuXG5kaXYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsubXhfTG9naW5fZm9yZ290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbl9zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDE0cHg7XG59XG5cbi5teF9Mb2dpbl9mdWxsV2lkdGhCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfc3BsYXNoQnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDMwcHg7XG59XG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfc3luY0Vycm9yIHtcbiAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYyYThiOyAvKiBPbmx5IHVzZWQgaGVyZSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Nb2JpbGVSZWdpc3Rlcl9ib2R5IHtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlZ2lzdGVyX21haW5Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDI3MHB4O1xuXG4gICAgcCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcblxuICAgICAgICAmLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaW1nOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbl9zdWJtaXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogTWVkaXVtIHJhdGhlciB0aGFuIHRoZSBib2xkIGV2ZXJ5IG90aGVyIGF1dGggZXJyb3IgdXNlczogdGhpcyBvbmUgc2l0cyBkaXJlY3RseSBhYm92ZSB0aGUgYnV0dG9uIGl0XG4gICBpcyBkaXNhYmxpbmcsIGFuZCBkb2VzIG5vdCBuZWVkIHRvIHNob3V0IG92ZXIgaXQuIFNjb3BlZCBzbyB0aGUgbG9naW4gZXJyb3JzIGtlZXAgdGhlaXIgd2VpZ2h0LiAqL1xuLm14X0xvZ2luX2Vycm9yLm14X1JlZ2lzdHJhdGlvbl9yYXRlTGltaXRFcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1tZWRpdW0pO1xufVxuXG4ubXhfUmVnaXN0ZXJfZm9vdGVyQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcblxuICAgID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Nlc3Npb25Mb2NrU3RvbGVuVmlldyB7XG4gICAgaDEge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0zMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR1cEVuY3J5cHRpb25Cb2R5IHtcbiAgICB3aWR0aDogNjAwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBEZXYgbm90ZTogdGhlcmUncyBubyBhY3R1YWwgY29tcG9uZW50IGNhbGxlZCA8UGxheWJhY2tDb250YWluZXIgLz4uIFRoZXNlIGNsYXNzZXMgKi9cbi8qIGFyZSBzaGFyZWQgYW1vbmdzdCBtdWx0aXBsZSB2b2ljZSBtZXNzYWdlIGNvbXBvbmVudHMuICovXG5cbi8qIENvbnRhaW5lciBmb3IgbGl2ZSByZWNvcmRpbmcgYW5kIHBsYXliYWNrIGNvbnRyb2xzICovXG4ubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTWF0Y2ggbXhfTWVkaWFCb2R5IHNwYWNpbmcsIG9mZnNldHRpbmcgdGhlIHdhdmVmb3JtJ3MgMXB4IGludGVybmFsIHJpZ2h0IHBhZGRpbmcuICovXG4gICAgcGFkZGluZzogNnB4IDExcHggNnB4IDEycHg7XG5cbiAgICAvKiBDaGVhdCBhdCBhbGlnbm1lbnQgYSBiaXQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBjb250YWluOiBjb250ZW50O1xuXG4gICAgLm14X1dhdmVmb3JtLFxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogUHJldmVudCBhIGJsb3dvdXQgKi9cbiAgICB9XG5cbiAgICAvKiBXYXZlZm9ybXMgYXJlIHByZXNlbnQgaW4gbGl2ZSByZWNvcmRpbmcgb25seSAqL1xuICAgIC5teF9XYXZlZm9ybSB7XG4gICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gaW4gSlMgKi9cbiAgICAgICAgLS1iYXJIZWlnaHQ6IDE7XG4gICAgICAgIC5teF9XYXZlZm9ybV9iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKG1heCgwLjA1LCB2YXIoLS1iYXJIZWlnaHQpKSk7XG5cbiAgICAgICAgICAgICYubXhfV2F2ZWZvcm1fYmFyXzEwMHBjdCB7XG4gICAgICAgICAgICAgICAgLyogU21hbGwgYW5pbWF0aW9uIHRvIHJlbW92ZSB0aGUgbWVjaGFuaWNhbCBmZWVsIG9mIHByb2dyZXNzICovXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9DbG9jayB7XG4gICAgICAgIHdpZHRoOiAkZm9udC00MnB4OyAvKiB3ZSdyZSBub3QgdXNpbmcgYSBtb25vc3BhY2UgZm9udCwgc28gZmFrZSBpdCAqL1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTQycHg7IC8qIGZvcmNlIHNlbnNpYmxlIGxheW91dHMgaW4gYXdrd2FyZCBmbGV4Ym94ZXMgKGZpbGUgcGFuZWwsIGZvciBleGFtcGxlKSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IC8qIHdpdGggdGhlIGZpeGVkIHdpZHRoIHRoaXMgZW5kcyB1cCBhcyBhIHZpc3VhbCA4cHggbW9zdCBvZiB0aGUgdGltZSwgYXMgaW50ZW5kZWQuICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4OyAvKiBpc29sYXRlIGZyb20gcmVjb3JkaW5nIGNpcmNsZSAvIHBsYXkgY29udHJvbCAqL1xuICAgIH1cblxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyAvKiBzYW1lIGhlaWdodCBhcyBteF9XYXZlZm9ybSwgbmVlZGVkIGZvciBhdXRvbWF0aWMgdmVydGljYWwgY2VudGVyaW5nICovXG5cbiAgICAgICAgLm14X1dhdmVmb3JtIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2Vla0JhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgdG9wOiAtMnB4OyAvKiB2aXN1YWxseSB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGhhaXJsaW5lIHByb2dyZXNzIGJhciBzaW5jZSB3ZSdyZSBhdCAxMDAlIGhlaWdodC4gTmVlZCB0byBoYXZlIGRpc3RpbmN0IHJ1bGVzICovXG4gICAgICAgICAgICAvKiBiZWNhdXNlIENTUyBpcyB3ZWlyZC4gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotbW96LXJhbmdlLXByb2dyZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBNYWtlIHRoZSB0aHVtYiBlYXNpZXIgdG8gc2VlLiBMaWtlIHRoZSBTZWVrQmFyIG9yaWdpbmFsIHN0eWxlcywgdGhlc2UgbmVlZCB0byBiZSAqL1xuICAgICAgICAgICAgLyogZGlzdGluY3QuIFdlIG1ha2UgaXQgdHJhbnNwYXJlbnQgc28gaXQgZG9lc24ndCBzaG93IHVwIG9uIHRoZSBVSSwgYnV0IGFsc28gbGFyZ2VyICovXG4gICAgICAgICAgICAvKiBzbyBpdCdzIGVhc2llciB0byBncmFiIGJ5IG1vdXNlIHVzZXJzIGluIHNvbWUgYnJvd3NlcnMuIE1vc3QgYnJvd3NlcnMgbGV0IHRoZSB1c2VyICovXG4gICAgICAgICAgICAvKiBtb3ZlIGFuZCBkcmFnIHRoZSB0aHVtYiByZWdhcmRsZXNzIG9mIGhpdHRpbmcgdGhlIHRodW1iLCBob3dldmVyLiAqL1xuICAgICAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEZvciB0aW1lbGluZS1yZW5kZXJlZCBwbGF5YmFjaywgdGhlIGNsb2NrIGlzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSB3YXZlZm9ybS4gKi9cbiAgICAgICAgJiArIC5teF9DbG9jayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgLyogVGFrZSB0aGUgcGFkZGluZyBvZmYgdGhlIGNsb2NrIGJlY2F1c2UgaXQncyBhY2NvdW50ZWQgZm9yIGJ5IHRoZSBgdGltZWxpbmVMYXlvdXRNaWRkbGVgICovXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogQ1NTIGluc3BpcmF0aW9uIGZyb206ICovXG4vKiAqIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vaG93dG9fanNfcmFuZ2VzbGlkZXIuYXNwICovXG4vKiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yODI4MzgwNiAqL1xuLyogKiBodHRwczovL2Nzcy10cmlja3MuY29tL3N0eWxpbmctY3Jvc3MtYnJvd3Nlci1jb21wYXRpYmxlLXJhbmdlLWlucHV0cy1jc3MvICovXG5cbi5teF9TZWVrQmFyIHtcbiAgICAvKiBkZWZhdWx0LCBvdmVycmlkZGVuIGluIEpTICovXG4gICAgLS1maWxsVG86IDE7XG5cbiAgICAvKiBEZXYgbm90ZTogd2UgZGVsaWJlcmF0ZWx5IGRvIG5vdCBoYXZlIHRoZSAtbXMtdHJhY2sgKGFuZCBmcmllbmRzKSBzZWxlY3RvcnMgYmVjYXVzZSB3ZSBkb24ndCAqL1xuICAgIC8qIG5lZWQgdG8gc3VwcG9ydCBJRS4gKi9cblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIGRlZmF1bHQgc3R5bGUgb3ZlcnJpZGUgKi9cblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgb3V0bGluZTogbm9uZTsgLyogcmVtb3ZlIGJsdWUgc2VsZWN0aW9uIGJvcmRlciAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogZm9yIGJlZm9yZSthZnRlciBwc2V1ZG8gZWxlbWVudHMgbGF0ZXIgb24gKi9cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsgLyogZGVmYXVsdCBzdHlsZSBvdmVycmlkZSAqL1xuXG4gICAgICAgIC8qIERldiBub3RlOiBUaGlzIG5lZWRzIHRvIGJlIGR1cGxpY2F0ZWQgd2l0aCB0aGUgLW1vei1yYW5nZS10aHVtYiBzZWxlY3RvciAqL1xuICAgICAgICAvKiBiZWNhdXNlIG90aGVyd2lzZSBFZGdlICh3ZWJraXQpIHdpbGwgZmFpbCB0byBzZWUgdGhlIHN0eWxlcyBhbmQganVzdCByZWZ1c2UgKi9cbiAgICAgICAgLyogdG8gYXBwbHkgdGhlbS4gKi9cbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAvKiBGaXJlZm94IGFkZHMgYSBib3JkZXIgb24gdGhlIHRodW1iICovXG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZvciB3ZWJraXQgc3VwcG9ydCwgYnV0IHdlIGNhbid0IGxpbWl0IHRoZSBmdW5jdGlvbmFsaXR5IG9mIGl0IHRvIGp1c3Qgd2Via2l0ICovXG4gICAgLyogYnJvd3NlcnMuIEZpcmVmb3ggcmVzcG9uZHMgdG8gd2Via2l0LXByZWZpeGVkIHZhbHVlcyBub3csIHdoaWNoIG1lYW5zIHdlIGNhbid0IHVzZSBtZWRpYSAqL1xuICAgIC8qIG9yIHN1cHBvcnQgcXVlcmllcyB0byBzZWxlY3RpdmVseSBhcHBseSB0aGUgcnVsZS4gQW4gdXBzaWRlIGlzIHRoYXQgdGhpcyBDU1MgZG9lc24ndCB3b3JrICovXG4gICAgLyogaW4gZmlyZWZveCwgc28gaXQncyBqdXN0IHdhc3RlZCBDUFUvR1BVIHRpbWUuICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLyogOjpiZWZvcmUgdG8gZW5zdXJlIGl0IGVuZHMgdXAgdW5kZXIgdGhlIHRodW1iICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4gICAgICAgIC8qIEFic29sdXRlIHBvc2l0aW9uaW5nIHRvIGVuc3VyZSBpdCBvdmVybGFwcyB3aXRoIHRoZSBleGlzdGluZyBiYXIgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyogU2l6aW5nIHRvIG1hdGNoIHRoZSBiYXIgKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuXG4gICAgICAgIC8qIEFuZCBmaW5hbGx5IGR5bmFtaWMgd2lkdGggd2l0aG91dCBvdmVybHkgaHVydGluZyB0aGUgcmVuZGVyaW5nIGVuZ2luZS4gKi9cbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCh2YXIoLS1maWxsVG8pKTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZpcmVmb3gncyBidWlsdC1pbiBzdXBwb3J0IGZvciB0aGUgYWJvdmUsIHdpdGggMTAwJSBsZXNzIGhhY2tzLiAqL1xuICAgICY6Oi1tb3otcmFuZ2UtcHJvZ3Jlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAvKiBJbmNyZWFzZSBjbGlja2FibGUgYXJlYSBmb3IgdGhlIHNsaWRlciAoYXBwcm94aW1hdGVseSBzYW1lIHNpemUgYXMgYnJvd3NlciBkZWZhdWx0KSAqL1xuICAgIC8qIFdlIGRvIGl0IHRoaXMgd2F5IHRvIGtlZXAgdGhlIHNhbWUgcGFkZGluZyBhbmQgbWFyZ2lucyBvZiB0aGUgZWxlbWVudCwgYXZvaWRpbmcgbWFyZ2luIG1hdGguICovXG4gICAgLyogU291cmNlOiBodHRwczovL2Zyb250LWJhY2suY29tL2V4cGFuZC1jbGlja2FibGUtYXJlYXMtZm9yLWEtYmV0dGVyLXRvdWNoLWV4cGVyaWVuY2UvICovXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2F2ZWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDMwcHg7IC8qIHRhbGxlc3QgYmFyIGNhbiBvbmx5IGJlIDMwcHggKi9cbiAgICB0b3A6IDFweDsgLyogYmVjYXVzZSBvZiBvdXIgYm9yZGVyIHRyaWNrIChzZWUgYmVsb3cpLCB3ZSdyZSBvZmYgYnkgMXB4IG9mIGFsaWdudG1lbnQgKi9cblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogc28gdGhlIGJhcnMgZ3JvdyBmcm9tIHRoZSBtaWRkbGUgKi9cblxuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRoaXMgaXMgY2hlYXBlciB0aGFuIGEgYG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDRweClgIGluIHRoZSBiYXIncyBDU1MuICovXG5cbiAgICAvKiBBIGJhciBpcyBtZWFudCB0byBiZSBhIDJ4MiBjaXJjbGUgd2hlbiBhdCB6ZXJvIGhlaWdodCwgYW5kIG90aGVyd2lzZSBhIDJweCB3aWRlIGxpbmUgKi9cbiAgICAvKiB3aXRoIHJvdW5kZWQgY2Fwcy4gKi9cbiAgICAubXhfV2F2ZWZvcm1fYmFyIHtcbiAgICAgICAgd2lkdGg6IDA7IC8qIDBweCB3aWR0aCBtZWFucyB3ZSdsbCBlbmQgdXAgdXNpbmcgdGhlIGJvcmRlciBhcyBvdXIgd2lkdGggKi9cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IC8qIHRyYW5zcGFyZW50IG1lYW5zIHdlJ2xsIHVzZSB0aGUgYmFja2dyb3VuZCBjb2xvdXIgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyAvKiByb3VuZGVkIGVuZCBjYXBzLCBiYXNlZCBvbiB0aGUgYm9yZGVyICovXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7IC8qIGxpa2UgdGhlIHdpZHRoLCB3ZSdsbCByZWx5IG9uIHRoZSBib3JkZXIgdG8gZ2l2ZSB1cyBoZWlnaHQgKi9cbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsgLyogdGhpcyBtYWtlcyB0aGUgYGhlaWdodDogNDIlYCB3b3JrIG9uIHRoZSBlbGVtZW50ICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7IC8qIHdlIHdhbnQgMnB4IGJldHdlZW4gZWFjaCBiYXIsIHNvIDFweCBvbiBlaXRoZXIgc2lkZSBmb3IgYmFsYW5jZSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcblxuICAgICAgICAvKiBiYWNrZ3JvdW5kIGNvbG9yIGlzIGhhbmRsZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnRzICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoQm9keSB7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWNwZC1zcGFjZS02eCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSAwO1xuICAgIHBhZGRpbmc6IDI1cHggNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgJi5teF9BdXRoQm9keV9mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMi5teF9BdXRoQm9keV9jZW50ZXJlZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhOmxpbmssXG4gICAgYTpob3ZlcixcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2ljb24ge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9sb2NrSWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmllbGQgbGFiZWwge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRmllbGQgaW5wdXQsXG4gICAgLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX2xhYmVsQWx3YXlzVG9wTGVmdCBsYWJlbCxcbiAgICAubXhfRmllbGQgc2VsZWN0ICsgbGFiZWwgLyogQWx3YXlzIHNob3cgYSBzZWxlY3QncyBsYWJlbCBvbiB0b3AgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGUgdmFsdWUgKi8sXG4gICAgLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvciB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfRXJyb3JNZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCBpbnB1dCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3NlbGVjdDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25fbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1mb2N1cy1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3BlY2lhbGlzYXRpb24gZm9yIHBhc3N3b3JkIHJlc2V0IHZpZXdzICovXG4ubXhfQXV0aEJvZHkubXhfQXV0aEJvZHlfZm9yZ290LXBhc3N3b3JkIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDUwcHggMzJweDtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDA7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfTG9naW5fc3VibWl0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfdGV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3NpZ24taW4taW5zdGVhZC1idXR0b24ge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfZmllbGRSb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9kaWQtbm90LXJlY2VpdmUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0F1dGhCb2R5X3Jlc2VuZC1idXR0b24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9lbWFpbFByb21wdEljb24ge1xuICAgIHdpZHRoOiA1N3B4O1xufVxuXG4ubXhfQXV0aEJvZHlfZW1haWxQcm9tcHRJY29uLS1zaGlmdGVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTdweDsgLyogUHJldmVudCBsYXlvdXQganVtcCBieSByZWxhdGl2ZSBwb3NpdGlvbmluZy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTdweDsgLyogVGhpcyBpY29uIGlzIGhpZ2hlciB0aGFuIHRoZSBvdGhlciBpY29ucy4gU2hpZnQgdXAgdG8gcHJldmVudCBpY29uIGp1bXBpbmcuICovXG4gICAgd2lkdGg6IDU3cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQge1xuICAgIG1hcmdpbjogMCA1cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9wYWRkZWRGb290ZXIge1xuICAgIGhlaWdodDogODBweDsgLyogaGVpZ2h0IG9mIHRoZSBzdWJtaXQgYnV0dG9uICsgcmVnaXN0ZXIgbGluayAqL1xuICAgIHBhZGRpbmctdG9wOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9BdXRoQm9keV9wYWRkZWRGb290ZXJfdGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgIC5teF9JbmxpbmVTcGlubmVyIHN2ZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9jaGFuZ2VGbG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IGEge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9TU09CdXR0b25zICsgLm14X0F1dGhCb2R5X2NoYW5nZUZsb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9BdXRoQm9keV9zcGlubmVyIHtcbiAgICBtYXJnaW46IDFlbSAwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhCb2R5IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhGb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2IoMCwgMCwgMCwgMCksIHJnYigwLCAwLCAwLCAwLjgpKTtcbn1cblxuLm14X0F1dGhGb290ZXIgYTpsaW5rLFxuLm14X0F1dGhGb290ZXIgYTpob3Zlcixcbi5teF9BdXRoRm9vdGVyIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgbWFyZ2luOiAwIDIycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgcGFkZGluZzogMjVweCAyNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoSGVhZGVyTG9nbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDAgMjVweDtcbn1cblxuLm14X0F1dGhIZWFkZXJMb2dvIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlckxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aFBhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1iZy1jb2xvcjtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubXhfQXV0aFBhZ2VfbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAxMDBweCBhdXRvIGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I7XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm14X0F1dGhQYWdlX21vZGFsX3dpdGhCbHVyIHtcbiAgICAgICAgLyogQXBwbHkgYSBibHVycmVkIHNoYWRvdyBhcm91bmQgdGhlIG1vZGFsICovXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYigwLCAwLCAwLCAwLjMzKTtcblxuICAgICAgICAubXhfQXV0aFBhZ2VfbW9kYWxDb250ZW50IHtcbiAgICAgICAgICAgIC8qIE1ha2UgdGhlIG1vZGFsJ3MgYmFja2dyb3VuZCBzZW1pdHJhbnNwYXJlbnQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eUJvZHkge1xuICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA2MHB4IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIGE6bGluayxcbiAgICBhOmhvdmVyLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3VudHJ5RHJvcGRvd24gLm14X0Ryb3Bkb3duX2lucHV0IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIHBhZGRpbmc6IDAgM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duX3Nob3J0T3B0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93bl9vcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWZhdWx0V2VsY29tZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm14X0RlZmF1bHRXZWxjb21lX2xvZ28gaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9EZWZhdWx0V2VsY29tZV9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3Itc2VwYXJhdG9yLXByaW1hcnkpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDM4MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAubXhfRGVmYXVsdFdlbGNvbWVfYnV0dG9uc19yZWdpc3RlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMge1xuICAgIC5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfdGVybXNTdWJtaXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBwcmV2ZW50IG92ZXJmbG93aW5nICovXG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbldyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5FbnRyeSB7XG4gICAgZm9udC1zaXplOiAyMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNmVtO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbkVudHJ5OmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkblN1Ym1pdCB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLyogWFhYOiBUaGlzIHNob3VsZCBiZSBhIGNvbW1vbiBidXR0b24gY2xhc3MgKi9cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfbXNpc2RuU3VibWl0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Rlcm1zUG9saWN5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfcGFzc3dvcmRTZWN0aW9uIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfc3NvX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX2VtYWlsV3JhcHBlciB7XG4gICAgLyogXCJSZXNlbmRcIiBidXR0b24vbGluayAqL1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAvKiBXZSBuZWVkIHRoaXMgdG8gYmUgYW4gaW5saW5lLWJsb2NrIHNvIHBvc2l0aW9uaW5nIHdvcmtzIGNvcnJlY3RseSAqL1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBTcGlubmVyIGFzIGVuZCBhZG9ybm1lbnQgb2YgdGhlIFwicmVzZW5kXCIgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYXJlIHVzdWFsbHkgYmxvY2sgZWxlbWVudHMsIGJ1dCB3ZSBuZWVkIGl0IGFzIGlubGluZSBlbGVtZW50ICovXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYnkgZGVmYXVsdCBmaWxsIGFsbCBhdmFpbGFibGUgd2lkdGgsIGJ1dCB3ZSBkb24ndCB3YW50IHRoYXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBXZSBuZWVkIHRvIGNlbnRlciB0aGUgc3Bpbm5lciByZWxhdGl2ZSB0byB0aGUgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgY29sb3I6ICRhdXRocGFnZS1sYW5nLWNvbG9yO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICBjb2xvcjogJGF1dGhwYWdlLWxhbmctY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5XaXRoUVJTZWN0aW9uIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiB7XG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5ICsgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiAubXhfQWNjZXNzaWJsZUJ1dHRvbiBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSX2RpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcblxuICAgIC5teF9Mb2dpbldpdGhRUiB7XG4gICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbldpdGhRUiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3FyV3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS03eCkgMDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICAvKiBNYXRjaCB0aGUgc2l6ZSBvZiB0aGUgUVIgY29kZSB0byBwcmV2ZW50IGp1bXBzICovXG4gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NvbmZpcm1hdGlvbkRpZ2l0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSBhdXRvO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfY29uZmlybWF0aW9uQWxlcnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgIH1cblxuICAgIG9sIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIGxpc3QgbWFya2VycyBkbyBub3Qgc3VwcG9ydCB0aGUgb3V0bGluZWQgbnVtYmVyIHN0eWxpbmcgd2UgbmVlZCAqL1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgICAgIGNvbG9yOiAxcHggc29saWQgJGlucHV0LXBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENpcmNsZWQgbnVtYmVyIGxpc3QgaXRlbSBtYXJrZXIgKi9cbiAgICAgICAgbGk6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpc3QtaXRlbSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3I9XCJteF9Mb2dpbldpdGhRUl9jaGVja0NvZGVcIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NoZWNrQ29kZV9pbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgLyogV29ya2Fyb3VuZCBmb3Igb25lIG9mIHRoZSBpbnB1dCBydWxlcyBpbiBfY29tbW9uLnBjc3MgYmVpbmcgbm90IHNwZWNpZmljIGVub3VnaCAqL1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDQwcHggLyAyIC0gKDFjaCAvIDIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9oZWFkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9CYWNrQnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfYnJlYWRjcnVtYnMge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUVJDb2RlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3NwaW5uZXIge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJFBhc3NwaHJhc2VTdHJlbmd0aEhpZ2g6ICRhY2NlbnQ7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTWVkaXVtOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTG93OiAkYWxlcnQ7XG5cbnByb2dyZXNzLm14X1Bhc3NwaHJhc2VGaWVsZF9wcm9ncmVzcyB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEwcHg7XG4gICAgbGVmdDogMDtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyBcIjJweFwiO1xuICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoTG93O1xuICAgICZbdmFsdWU9XCIyXCJdLFxuICAgICZbdmFsdWU9XCIzXCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhNZWRpdW07XG4gICAgfVxuICAgICZbdmFsdWU9XCI0XCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhIaWdoO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2VsY29tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMXgpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAmLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAgICAgLm14X0J1dHRvbkNyZWF0ZUFjY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWUgLm14X0F1dGhCb2R5X2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi8qIEludmVydCBpbWFnZSBjb2xvdXJzIGluIGRhcmsgbW9kZS4gKi9cbi5jcGQtdGhlbWUtZGFyayAubXhfV2VsY29tZVBhZ2VfbG9nbyB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5idXR0b24ubXhfQmFzZUF2YXRhciB7XG4gICAgLyogPGJ1dHRvbj4gaXMgYSBmb3JtIGVsZW1lbnQgYW5kIGJ5IGRlZmF1bHQgaXQgdXNlcyB0aGUgdXNlciBhZ2VudCAoYnJvd3Nlcikgc3R5bGluZy5cbiAgICAgICBXZSB3YW50IGl0IHRvIGluaGVyaXQgdGhlIGZvbnQtZmFtaWx5IGFuZCBsaW5lLWhlaWdodCBmcm9tIGl0cyBwYXJlbnQuXG4gICAgICovXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVjb3JhdGVkUm9vbUF2YXRhcixcbi5teF9FeHRyYVRpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb250YWluOiBjb250ZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgJi5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2N1dG91dCAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hc2staW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbWxpc3QvZGVjb3JhdGVkLWF2YXRhci1tYXNrLnN2Z1wiKTtcbiAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdGhlIGZvbGxvd2luZyBwZXJjZW50YWdlIGJhc2VkIHNpemluZ3MgYXJlIHRvIG1hdGNoIHRoZSBzY2FsYWJsZSBzdmcgbWFzayBmb3IgdGhlIGN1dG91dCAqL1xuICAgICAgICBib3R0b206IDYuMjUlOyAvKiAycHggZm9yIGEgMzJ4MzIgYXZhdGFyICovXG4gICAgICAgIHJpZ2h0OiA2LjI1JTtcbiAgICAgICAgd2lkdGg6IDI1JTsgLyogOHB4IGZvciBhIDMyeDMyIGF2YXRhciAqL1xuICAgICAgICBoZWlnaHQ6IDI1JTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2dsb2JlIHN2ZyB7XG4gICAgICAgIC8qIE92ZXJzaXplIHRoZSBpY29uIHRvIGFjY291bnQgZm9yIHRoZSBkZWFkIHNwYWNlIGFyb3VuZCB0aGUgaWNvbiB3aXRoaW4gdGhlIGNhbnZhcyAqL1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgaGVpZ2h0OiAxMjAlO1xuICAgICAgICBtYXJnaW46IC0xMCU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9vZmZsaW5lOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlc2VuY2Utb2ZmbGluZTtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX29ubGluZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2F3YXk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmVzZW5jZS1hd2F5O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb25fYnVzeTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByZXNlbmNlLWJ1c3k7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUm9vbUF2YXRhclZpZXcge1xuICAgIC0tcm9vbS1hdmF0YXItc2l6ZTogMzJweDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIEtlZXAgdGhlIGNvbnRhaW5lciB0byB0aGUgc2FtZSBzaXplIHRoYW4gdGhlIGF2YXRhciAqL1xuICAgIGlubGluZS1zaXplOiB2YXIoLS1yb29tLWF2YXRhci1zaXplKTtcbiAgICBibG9jay1zaXplOiB2YXIoLS1yb29tLWF2YXRhci1zaXplKTtcblxuICAgIC5teF9Sb29tQXZhdGFyVmlld19Sb29tQXZhdGFyIHtcbiAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5teF9Sb29tQXZhdGFyVmlld19Sb29tQXZhdGFyX2ljb24ge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L3Jvb20tYXZhdGFyLXZpZXctaWNvbi1tYXNrLnN2Z1wiKTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhcl9wcmVzZW5jZSB7XG4gICAgICAgIG1hc2staW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbWxpc3Qvcm9vbS1hdmF0YXItdmlldy1wcmVzZW5jZS1tYXNrLnN2Z1wiKTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAvKiBQbGFjZSBoYWxmIHRoZSBpY29uIGluc2lkZSB0aGUgYXZhdGFyICovXG4gICAgICAgIC8qIEF2YXRhciBzaXplIC0gKGljb24gc2l6ZSAoMTZweCkgLyAyKSAqL1xuICAgICAgICBsZWZ0OiBjYWxjKCh2YXIoLS1yb29tLWF2YXRhci1zaXplKSAtIDhweCkpO1xuICAgICAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUHJlc2VuY2VEZWNvcmF0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgIC8qIFBsYWNlIGhhbGYgdGhlIGljb24gaW5zaWRlIHRoZSBhdmF0YXIgKi9cbiAgICAgICAgLyogQXZhdGFyIHNpemUgLSAoaWNvbiBzaXplICg4cHgpIC8gMikgKi9cbiAgICAgICAgbGVmdDogY2FsYygodmFyKC0tcm9vbS1hdmF0YXItc2l6ZSkgLSA0cHgpKTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldEF2YXRhciB7XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCBhdmF0YXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaXRoUHJlc2VuY2VJbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb250YWluOiBjb250ZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgLm14X1dpdGhQcmVzZW5jZUluZGljYXRvcl9pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBib3R0b206IDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmV0YUNhcmQge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLm14X0JldGFDYXJkX2NvbHVtbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLm14X0JldGFDYXJkX2NvbHVtbnNfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX3RpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDAgMTRweDtcblxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNXgpIGF1dG8gMDtcblxuICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiB0ZXh0IG1pZ2h0IG92ZXJmbG93ICovXG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7IC8qIFBsYWNlIGZlZWRiYWNrIGJ1dHRvbiB0b3AgYW5kIHJpZ2h0ICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9yZWZyZXNoV2FybmluZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfZmFxIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHkteHMtcmVndWxhcik7XG5cbiAgICAgICAgICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0JldGFDYXJkX2NvbHVtbnNfaW1hZ2Vfd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDtcblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2NvbHVtbnNfaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0JldGFDYXJkX3JlbGF0ZWRTZXR0aW5ncyB7XG4gICAgICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIC5teF9TZXR0aW5nc0ZsYWdfbWljcm9jb3B5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1hbHQ7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgd29yZC1icmVhazoga2VlcC1hbGw7IC8qIGF2b2lkIG11bHRpcGxlIGxpbmVzIG9uIENKSyBsYW5ndWFnZSAqL1xuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZUNvbnRleHRNZW51IHtcbiAgICBtYXgtd2lkdGg6IDI1MnB4O1xuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMC0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIEEgY29udGV4dCBtZW51IHRoYXQgbGFyZ2VseSBmaXRzIHRoZSB8IFtpY29uXSAgICBbbGFiZWxdIHwgZm9ybWF0LiAqL1xuLm14X0ljb25pemVkQ29udGV4dE1lbnUge1xuICAgIG1pbi13aWR0aDogMTQ2cHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIC8qIG92ZXJyaWRlIGRlZmF1bHQgdWwgc3R5bGVzICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0IHtcbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbkxpc3RfbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgbm90Rmlyc3QgY2xhc3MgaXMgZm9yIGNhc2VzIHdoZXJlIHRoZSBvcHRpb25MaXN0IG1pZ2h0IGJlIHVuZGVyIGEgaGVhZGVyIG9mIHNvcnRzLiAqL1xuICAgICAgICAmOm50aC1jaGlsZChuICsgMiksXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbkxpc3Rfbm90Rmlyc3Qge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcm91bmQgdGhlIHRvcCBjb3JuZXJzIG9mIHRoZSB0b3AgYnV0dG9uIGZvciB0aGUgaG92ZXIgZWZmZWN0IHRvIGJlIGJvdW5kZWQgKi9cbiAgICAgICAgJjpmaXJzdC1jaGlsZCAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwOyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIHRoZSBib3R0b20gY29ybmVycyBvZiB0aGUgYm90dG9tIGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6bGFzdC1jaGlsZCAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7IC8qIHJhZGl1cyBtYXRjaGVzIC5teF9Db250ZXh0dWFsTWVudSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcm91bmQgYWxsIGNvcm5lcnMgb2YgdGhlIG9ubHkgYnV0dG9uIGZvciB0aGUgaG92ZXIgZWZmZWN0IHRvIGJlIGJvdW5kZWQgKi9cbiAgICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW06Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7IC8qIHJhZGl1cyBtYXRjaGVzIC5teF9Db250ZXh0dWFsTWVudSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbSB7XG4gICAgICAgICAgICAvKiBwYWQgdGhlIGluc2lkZSBvZiB0aGUgYnV0dG9uIHNvIHRoYXQgdGhlIGhvdmVyIGJhY2tncm91bmQgaXMgcGFkZGVkIHRvbyAqL1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgICAgICAgICAgLyogQ3JlYXRlIGEgZmxleGJveCB0byBtb3JlIGVhc2lseSBkZWZpbmUgdGhlIGxpc3QgaXRlbXMgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1ob3ZlcmVkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Bhbi5teF9JY29uaXplZENvbnRleHRNZW51X2xhYmVsIHtcbiAgICAgICAgICAgICAgICAvKiBsYWJlbHMgKi9cbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICAgICAgICAgLyogRWxsaXBzaXplIGFueSB0ZXh0IG92ZXJmbG93ICovXG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgICAgICYgKyAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X3JlZCB7XG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbl9yZWQge1xuICAgICAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9hY3RpdmUge1xuICAgICAgICAmLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbSxcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9JY29uaXplZENvbnRleHRNZW51X2NvbXBhY3Qge1xuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0ID4gKiB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN2Zy5teF9JY29uaXplZENvbnRleHRNZW51X2NoZWNrZWQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIH1cblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X3N1YmxhYmVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtRGVzdHJ1Y3RpdmUge1xuICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyMC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbENvbnRleHRNZW51X2l0ZW0ge1xuICAgIHdpZHRoOiAyMDVweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlIHtcbiAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Vfbm9SZXN1bHRzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBwcm92aWRlcyBzcGFjZSBmb3Igc2Nyb2xsYmFyIHNvIHRoYXQgY2hlY2tib3ggYW5kIHNjcm9sbGJhciBkbyBub3QgY29sbGlkZSAqL1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3Byb2dyZXNzVGV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9lcnJvciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG5cbiAgICAgICAgICAgID4gaW1nIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3JIZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9lcnJvckNhcHRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDM2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3JldHJ5QnV0dG9uIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nIHtcbiAgICB3aWR0aDogNDgwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA4MHZoO1xuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbn1cblxuLm14X1N1YnNwYWNlU2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hcmdpbjogYXV0byAxNnB4IGF1dG8gNXB4O1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgPiBoMSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgID4gLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBmbGV4OiB1bnNldDtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N1YnNwYWNlU2VsZWN0b3JfZHJvcGRvd25PcHRpb25BY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3Vic3BhY2VTZWxlY3Rvcl9vbmx5U3BhY2Uge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9lbnRyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gICAgZm9ybSB7XG4gICAgICAgIC8qIEFsaWduIGNoZWNrYm94ZXMuICovXG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgLyogd2UgY2FuJ3QgdGFyZ2V0IC5teF9CYXNlQXZhdGFyIGhlcmUgYXMgaXQnbGwgYnJlYWsgdGhlIGRlY29yYXRlZCBhdmF0YXIgc3R5bGluZyAqL1xuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZW50cnlfbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQW5hbHl0aWNzTGVhcm5Nb3JlRGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgIC5teF9BbmFseXRpY3NMZWFybk1vcmVfaW1hZ2VfaG9sZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvZWxlbWVudC1zaGlueS5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7XG4gICAgICAgIGhlaWdodDogMTEycHg7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMHB4O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2NvcHkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lbnUtYm9yZGVyLWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2J1bGxldHMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICB9XG5cbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2J1bGxldHMgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwIDAgMzJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBjb2xvcjogIzBkYmQ4YjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CdWdSZXBvcnREaWFsb2cge1xuICAgIC5teF9CdWdSZXBvcnREaWFsb2dfZG93bmxvYWQge1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyAvKiBTcGFjZSBiZXR3ZWVuIFwiRG93bmxvYWRpbmcgbG9ncy4uLlwiICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBBdmlyYWwgRGFzZ3VwdGFcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NoYW5nZWxvZ0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14X0NoYW5nZWxvZ0RpYWxvZ19saSB7XG4gICAgcGFkZGluZzogMC4yZW07XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogREVWIE5PVEU6IFRoaXMgc3R5bGVzaGVldCBjb3ZlcnMgZGlhbG9ncyBsaXN0ZWQgYnkgdGhlIGNvbXBvdW5kLCBpbmNsdWRpbmcgKi9cbi8qIG92ZXIgbXVsdGlwbGUgUmVhY3QgY29tcG9uZW50cy4gVGhlIGFjdHVhbCBpbm5lciBjb250ZW50cyBvZiB0aGUgZGlhbG9nIHNob3VsZCAqL1xuLyogYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBzdHlsZXNoZWV0cy4gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIE92ZXJyaWRlIGxlZ2FjeS9kZWZhdWx0IHN0eWxlcyBmb3IgZGlhbG9ncyAqL1xuLm14X0RpYWxvZ193cmFwcGVyLm14X0NvbXBvdW5kRGlhbG9nIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDA7IC8qIHdlJ2xsIG1hbmFnZSBpdCBvdXJzZWx2ZXMgKi9cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0NvbXBvdW5kRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMzJweCAzMnB4IDE2cHggMzJweDtcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDsgLyogbWFuYWdlZCBieSBoZWFkZXIgY2xhc3MgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICAgICAgLyogQWxpZ24gd2l0aCBjb3JuZXIgcmFkaXVzIG9mIGRpYWxvZyAqL1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2Zvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDhweCAzMnB4O1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDMycHg7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Njcm9sbGFibGVCYXNlRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICB3aWR0aDogNTQ0cHg7IC8qIGZpeGVkICovXG4gICAgaGVpZ2h0OiA1MTZweDsgLyogZml4ZWQgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiA4MCU7XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IC00cHggNHB4IHJnYigwLCAwLCAwLCAwLjA1KTsgLyogaGFyZGNvZGVkIGNvbG91ciBmb3IgYm90aCB0aGVtZXMgKi9cbiAgICAgICAgei1pbmRleDogMTsgLyogbmVlZGVkIHRvIG1ha2UgZm9vdGVyICYgc2hhZG93IGFwcGVhciBhYm92ZSBkaWFsb2cgY29udGVudCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICB9XG59XG5cbi5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nIHtcbiAgICB3aWR0aDogNDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd2FybmluZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ191c2VyIHtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19hdmF0YXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nX25hbWUge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfdXNlcklkIHtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19kZXRhaWxzIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLm14X0NyZWF0ZVJvb21EaWFsb2dfZGV0YWlsc19zdW1tYXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIC8qIGxpc3Qtc3R5bGUgZG9lc24ndCBkbyBpdCBmb3Igd2Via2l0ICovXG4gICAgICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcblxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfaW5wdXRfY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfYWxpYXNDb250YWluZXIge1xuICAgIC8qIG5lZWRlZCB0byBtYWtlIHRoZSBhbGlhcyBmaWVsZCBvbmx5IGdyb3cgYXMgd2lkZSBhcyBuZWVkZWQgYXMgb3Bwb3NlZCB0byBmdWxsIHdpZHRoICovXG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2cge1xuICAgICYubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG5cbiAgICBwLFxuICAgIC5teF9GaWVsZF9pbnB1dCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50ID4gLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMCA4NXB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfbGFiZWxsZWRDaGVja2JveCB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0NyZWF0ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcblxuICAgIC5teF9DcmVhdGVTZWN0aW9uRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIC8qIDU3NnB4IGNvbWluZyBmcm9tIEZpZ21hIGFuZCByZW1vdmUgZXh0ZXJuYWwgcGFkZGluZyAqL1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTc2cHggLSB2YXIoLS1jcGQtc3BhY2UtMjB4KSk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2JldGFOb3RpY2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2JldGFQaWxsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0pvaW5SdWxlRHJvcGRvd24gKyBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyX3Byb21wdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfQ3J5cHRvIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2dfaW5wdXRfc2VjdGlvbiAubXhfRmllbGQge1xuICAgIHdpZHRoOiAzMDBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2dG9vbHNEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfdG9nZ2xlRm9ybSB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc190b29sSGVhZGluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG59XG5cbi5teF9EZXZUb29sc19jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC8qIEdpdmUgcm9vbSBmb3IgZm9jdXMgb3V0bGluZXMgKi9cbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG59XG5cbi5teF9EZXZUb29sc19Sb29tU3RhdGVFeHBsb3Jlcl9xdWVyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2J1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2hhc1NwYWNlcyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9EZXZUb29sc19idXR0b24ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2VtcHR5U3RyaW5nIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X0RldlRvb2xzX2xhYmVsX3JpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9ib3R0b20ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuXG4ubXhfRGV2VG9vbHNfaW5wdXRSb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxuLm14X0RldlRvb2xzX2lucHV0TGFiZWxDZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG59XG5cbi5teF9EZXZUb29sc190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIG1heC13aWR0aDogNjg0cHg7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2V2ZW50VHlwZVN0YXRlS2V5R3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubXhfRGV2VG9vbHNfY29udGVudCAubXhfRmllbGRfaW5wdXQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MnB4O1xufVxuXG4ubXhfRGV2VG9vbHNfVmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHk7XG5cbiAgICBkbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgfVxuXG4gICAgZGQ6ZW1wdHkge1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIoZW1wdHkpXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICB9XG5cbiAgICBkdDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIjpcIjtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIC8qIENvbG91ciBjaG9pY2U6IGZpcnN0IG9uZSBhdXRvY29tcGxldGUgZ2F2ZSBtZS4gKi9cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICB3aWR0aDogMzYwcHg7IC8qIFwiZmVlbHMgcmlnaHRcIiBudW1iZXIgKi9cblxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkICsgdGQsXG4gICAgICAgIHRoICsgdGgge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICAvKiBDb2xvdXIgY2hvaWNlOiBmaXJzdCBvbmUgYXV0b2NvbXBsZXRlIGdhdmUgbWUuICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfbXV0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfaW1tdXRhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX2VkaXQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3Jlcl93YXJuaW5nIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGFsZXJ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbn1cblxuLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfc2V0dGluZyB7XG4gICAgLyogb3ZlcnJpZGUgZGVmYXVsdCBsaW5rIGJ1dHRvbiBjb2xvciAqL1xuICAgIC8qIGFzIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBiYWNrZ3JvdW5kIGhpZ2hsaWdodCAqL1xuICAgIC8qIHVzZWQgb24gZm9jdXMgKi9cbiAgICBjb2xvcjogJGxpbmtzICFpbXBvcnRhbnQ7XG59XG5cbi5teF9EZXZUb29sc19zdGlja3lfZXhwbG9yZXIge1xuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoI3VzZXJfaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgIH1cbiAgICAgICAgdGgjc3RpY2t5X2tleV9oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgICAgICB0aCNleHBpcmVzX2luX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTIpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItZm9jdXNlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQucmVtYWluaW5nX3RpbWVfY29sdW1uIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXhwb3J0RGlhbG9nIHtcbiAgICAubXhfRXhwb3J0RGlhbG9nX3N1YmhlYWRpbmcge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgJi5teF9FeHBvcnREaWFsb2dfRXhwb3J0aW5nIHtcbiAgICAgICAgLm14X0V4cG9ydERpYWxvZ19vcHRpb25zIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3NlbGVjdDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYgPiBkaXYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQgbGFiZWwsXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkLFxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FeHBvcnREaWFsb2dfcHJvZ3Jlc3Mge1xuICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgICBmbGV4OiB1bnNldDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uID4gLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICB3aWR0aDogMjU2cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICBwYWRkaW5nOiA5cHggMTBweDtcbiAgICB9XG59XG5cbi5teF9FeHBvcnREaWFsb2dfYXR0YWNobWVudHMtY2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmVlZGJhY2tEaWFsb2cge1xuICAgIGhyIHtcbiAgICAgICAgbWFyZ2luOiAyNHB4IDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9GZWVkYmFja0RpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDUycHggMTJweCA2OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJiArIC5teF9GZWVkYmFja0RpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GZWVkYmFja0RpYWxvZ19zZWN0aW9uX21pY3JvY29weSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTZweDtcbiAgICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYXZhdGFyLWluaXRpYWwtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmVlZGJhY2tEaWFsb2dfcmF0ZUFwcCB7XG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgZm9udC1zaXplIDFzLFxuICAgICAgICAgICAgICAgIGJvcmRlciAwLjVzO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGRpdiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9zcGFjZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NoZWNrZWQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBSb2JpbiBUb3duc2VuZCA8cm9iaW5Acm9iaW4udG93bj5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZvcndhcmREaWFsb2cge1xuICAgIHdpZHRoOiA1MjBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDgwdmg7XG5cbiAgICA+IGgzIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICA+IC5teF9Gb3J3YXJkRGlhbG9nX3ByZXZpZXcge1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFdoZW4gZm9yd2FyZGluZyBtZXNzYWdlcyBmcm9tIGVuY3J5cHRlZCByb29tcywgRXZlbnRUaWxlIHdpbGwgY29tcGxhaW4gKi9cbiAgICAgICAgLyogdGhhdCBvdXIgcHJldmlldyBpcyB1bmVuY3J5cHRlZCwgd2hpY2ggZG9lc24ndCBhY3R1YWxseSBtYXR0ZXIgKi9cbiAgICAgICAgLyogV2UgYWxzbyBoaWRlIGRvd25sb2FkIGxpbmtzIHRvIG5vdCBlbmNvdXJhZ2UgdXNlcnMgdG8gdHJ5IGludGVyYWN0aW5nICovXG4gICAgICAgIC8qIFRoZSBmaWxlIHRpbGUncyBpbmxpbmUgZG93bmxvYWQgYW5kIG9wZW4gYWN0aW9ucyBnbyBmb3IgdGhlIHNhbWUgcmVhc29uICovXG4gICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwLFxuICAgICAgICAubXhfRTJlUGFkbG9jayxcbiAgICAgICAgLm14X01GaWxlQm9keSBbZGF0YS10eXBlPVwiZG93bmxvYWRcIl0sXG4gICAgICAgIC5teF9NRmlsZUJvZHkgW2RhdGEtdHlwZT1cImFjdGlvbnNcIl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaHIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgfVxuXG4gICAgPiAubXhfRm9yd2FyZExpc3Qge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgICAgICY6bm90KDpmb2N1cy13aXRoaW4pICsgLm14X0ZvcndhcmRMaXN0X2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIC8qIEluaGliaXQgdGhlIHN0eWxpbmcgaWYgZm9jdXMgaXMgbm90IHdpdGhpbiB0aGUgaW5wdXQgd2hpY2ggaGFuZGxlcyBrZXlib2FyZCBhY2Nlc3NpYmlsaXR5ICovXG4gICAgICAgICAgICAgICAgLS1teF9Gb3J3YXJkTGlzdF9lbnRyeV9zZWxlY3RlZEJnQ29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZvcndhcmRMaXN0X2NvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZvcndhcmRMaXN0X25vUmVzdWx0cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3RfcmVzdWx0cyB7XG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfcmVzdWx0c0xpc3Qge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5teF9Gb3J3YXJkTGlzdF9lbnRyeV9hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1teF9Gb3J3YXJkTGlzdF9lbnRyeV9zZWxlY3RlZEJnQ29sb3IsICRzcGFjZVBhbmVsLWJnLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3Rfcm9vbUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnlfZGV0YWlsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9kZXRhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9zZW5kQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCgubXhfRm9yd2FyZExpc3RfY2FuU2VuZCkgLm14X0ZvcndhcmRMaXN0X3NlbmRMYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBIaWRlIHRoZSBcIlNlbmRcIiBsYWJlbCB3aGlsZSBwcmVzZXJ2aW5nIGJ1dHRvbiBzaXplICovXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZERpYWxvZ19ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBNYXRjaCB0aGUgZmFpbGVkIHRvIHNlbmQgaW5kaWNhdG9yJ3MgY29sb3Igd2l0aCB0aGUgZGlzYWJsZWQgYnV0dG9uICovXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nIHtcbiAgICAubXhfR2VuZXJpY0ZlYXR1cmVGZWVkYmFja0RpYWxvZ19zdWJoZWFkaW5nIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdTYXNEaWFsb2dfb3Bwb25lbnRQcm9maWxlX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9JbmNvbWluZ1Nhc0RpYWxvZ19vcHBvbmVudFByb2ZpbGUgaDIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVEaWFsb2dfZmxleFdyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyV3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLyogUmlnaHQgbWFyZ2luIGZvciB0aGUgZGVzaWduLiBXZSBjb3VsZCBhcHBseSB0aGlzIHRvIHRoZSB3aG9sZSBkaWFsb2csIGJ1dCB0aGVuIHRoZSBzY3JvbGxiYXIgKi9cbiAgICAvKiBmb3IgdGhlIHVzZXIgc2VjdGlvbiBnZXRzIHdlaXJkLiAqL1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSA0NXB4IDAgMDtcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfZWRpdG9yIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2dvQnV0dG9uIHtcbiAgICAgICAgbWluLXdpZHRoOiA4NnB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDQxcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbl9zaG93TW9yZSB7XG4gICAgICAgIG1hcmdpbjogN3B4IDE4cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19zZWN0aW9uX2hpZGRlbl9zdWdnZXN0aW9uc19kaXNjbGFpbWVyIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4gICAgPiBoMyB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5teF9Db3B5YWJsZVRleHQubXhfQ29weWFibGVUZXh0X2JvcmRlciB7XG4gICAgICAgIHdpZHRoOiB1bnNldDsgLyogZnVsbCB3aWR0aCAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19vdGhlciB7XG4gICAgLyogUHJldmVudCB0aGUgZGlhbG9nIGZyb20ganVtcGluZyBhcm91bmQgcmFuZG9tbHkgd2hlbiBlbGVtZW50cyBjaGFuZ2UuICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogNjAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGgyIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfYWRkcmVzc0JhciB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdXNlclNlY3Rpb25zIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0ludml0ZVByb2dyZXNzQm9keSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xMngpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlciB7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogNDk2cHg7XG4gICAgICAgIGhlaWdodDogNDMwcHg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgICAgICAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsQ29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdXNlclNlY3Rpb25zIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgNDVweCB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfaGVscFRleHQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X0ludml0ZURpYWxvZ19kaWFsUGFkIHtcbiAgICB3aWR0aDogMjI0cHg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19kaWFsUGFkRmllbGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgICAgIC8qIFJlbW92ZSBib3JkZXIgc2VwYXJhdG9yIGJldHdlZW4gcG9zdGZpeCBhbmQgZmllbGQgY29udGVudCAqL1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGlhbFBhZCB7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGNvbHVtbi1nYXA6IDQ4cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyQ29uc3VsdENvbm5lY3Qge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIFRoaXMgd2FudHMgYSBkcm9wIHNoYWRvdyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgZGlhbG9nLCBzbyB1c2UgbmVnYXRpdmUgbWFyZ2luIHRvIG1ha2UgaXQgZnVsbCB3aWR0aCxcbiAgICAgKiB0aGVuIGNvbXBlbnNhdGUgd2l0aCBwYWRkaW5nXG4gICAgICovXG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgbWFyZ2luLWlubGluZTogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS02eCkpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJDb25zdWx0Q29ubmVjdF9wdXNoUmlnaHQge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdGlsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYubXhfSW52aXRlRGlhbG9nX3RpbGUtLWludml0ZXJFcnJvciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgYXV0bzsgLyogbWF4LWNvbnRlbnQgPSBhdmF0YXIgd2lkdGggKi9cbiAgICB9XG5cbiAgICAqIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfYXZhdGFyU3RhY2sge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrIHtcbiAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgZ2FwOiAycHggMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX25hbWUsXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfdXNlcklkIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX25hbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfdXNlcklkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3JXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3Ige1xuICAgID4gaDQge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yX2dyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvcl9yZWFzb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19pZGVudGl0eVNlcnZlciB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX29uZVRocmVlcGlkIHtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVQcm9ncmVzc0JvZHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXJlZ3VsYXIpO1xuXG4gICAgaDEge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Kb2luUnVsZURyb3Bkb3duIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0pvaW5SdWxlRHJvcGRvd25fa25vY2s6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0pvaW5SdWxlRHJvcGRvd25faWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICB0b3A6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgaGF5YWtzaTFcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlYXZlUm9vbURpYWxvZyB7XG4gICAgLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50Om5vdCg6ZW1wdHkpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50OmVtcHR5IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWF2ZVNwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG5cbiAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2cge1xuICAgICAgICAgICAgd2lkdGg6IDQ0MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAgICAgICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2dfc2VjdGlvbl93YXJuaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEycHggMCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICB6LWluZGV4OiA0MDEwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTWFuYW4gU2FkYW5hIDxtYW5hbmNvZGVzLmRldkBnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dvdXREaWFsb2cge1xuICAgIHdpZHRoOiAyNnJlbTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZCB7XG4gICAgICAgIC8qIFRoZSBkaWFsb2ctYmFzZWQgcmVjb3Zlcnkga2V5IGZsb3cgcHJlc2VydmVzIHRoZSBjYXJkJ3MgZ2FwLCBidXQgZW1waGFzaXNlZCBjb250ZW50IHNldHMgaXRzIG93bi4gKi9cbiAgICAgICAgJjpoYXMoPiAubXhfRW5jcnlwdGlvbkNhcmRfZW1waGFzaXNlZENvbnRlbnQpIHtcbiAgICAgICAgICAgIGdhcDogMDtcbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgICAgLm14X0VuY3J5cHRpb25DYXJkX2VtcGhhc2lzZWRDb250ZW50IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KTtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2cge1xuICAgIHdpZHRoOiA0ODBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDYwdmg7XG5cbiAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfbm9SZXN1bHRzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZW50cnkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG5cbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZW50cnlfbmFtZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19lbnRyeV9kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX3NlY3Rpb25fc3BhY2VzIHtcbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19zZWN0aW9uX2luZm8ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19mb290ZXJfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbn1cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZ19zY3JvbGxQYW5lbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2dfZXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nX2VkaXRzIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9lbW90ZVNlbmRlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICBzcGFuLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9kZWxldGlvbixcbiAgICBzcGFuLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9pbnNlcnRpb24ge1xuICAgICAgICBwYWRkaW5nOiAwcHggMnB4O1xuICAgIH1cblxuICAgIC5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZGVsZXRpb24ge1xuICAgICAgICBjb2xvcjogcmdiKDI1NSwgNzYsIDg1KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgNzYsIDg1LCAwLjEpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG5cbiAgICAubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2luc2VydGlvbiB7XG4gICAgICAgIGNvbG9yOiByZ2IoMjYsIDE2OSwgMTIzKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LCAxNjksIDEyMywgMC4xKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgLyogRW11bGF0ZSBteF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLWVuZCk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodCk7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTBweDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1iZy1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9IaXN0b3J5QWN0aW9uQmFyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9IaXN0b3J5QWN0aW9uQmFyIFtkYXRhLXByZXNlbnRhdGlvbj1cImxhYmVsXCJdIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTW9kYWxXaWRnZXREaWFsb2cge1xuICAgIC5teF9Nb2RhbFdpZGdldERpYWxvZ193YXJuaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcblxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTW9kYWxXaWRnZXREaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0NTBweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BvbGxDcmVhdGVEaWFsb2cge1xuICAgIGgyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgICAmOm50aC1jaGlsZChuICsgMikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX29wdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDExcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IC8qIDExcHggZnJvbSB0aGUgdG9wIHdpbGwgY29sbGFwc2UsIHNvIHRoaXMgY3JlYXRlcyBhIDE2cHggZ2FwIGJldHdlZW4gb3B0aW9ucyAqL1xuXG4gICAgICAgIC5teF9GaWVsZCB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1BvbGxDcmVhdGVEaWFsb2dfcmVtb3ZlT3B0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1BvbGxDcmVhdGVEaWFsb2dfYWRkT3B0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsgLyogYXJiaXRyYXJ5IHRvIGNyZWF0ZSBzY3JvbGxhYmxlIGFyZWEgdW5kZXIgdGhlIHBvbGwgKi9cbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVnaXN0cmF0aW9uRW1haWxQcm9tcHREaWFsb2cge1xuICAgIHdpZHRoOiA0MTdweDtcblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX3ByaW1hcnkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUmVtb3ZlU2VjdGlvbkRpYWxvZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVwb3J0Um9vbURpYWxvZyxcbi5teF9EZWNsaW5lQW5kQmxvY2tJbnZpdGVEaWFsb2cge1xuICAgIHRleHRhcmVhIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgIFdvcmthcm91bmQgdG8gZml4IGxhYmVscyBhcHBlYXJpbmcgd2l0aCB0aGUgd3JvbmcgY29sb3IuXG5cbiAgICAgIC5teF9EaWFsb2cgKGluIHJlcy9jc3MvX2NvbW1vbi5wY3NzKSByZWRlZmluZXMgdGhlIGJvZHkgY29sb3JcbiAgICAgIGFzICRsaWdodC1mZy1jb2xvciByYXRoZXIgdGhhbiB0aGUgc3RhbmRhcmQgcHJpbWFyeSBjb2xvci5cblxuICAgICAgVGhpcyBmb3JjZXMgdGhlIGNvbG91ciB0byBtYXRjaCB0aGUgQ29tcG91bmQgc3R5bGUsIGJ1dFxuICAgICAgaW4gdGhlIGZ1dHVyZSB0aGUgRGlhbG9ncyBzaG91bGQgbm90IGZvcmNlIGEgY29sb3IuXG4gICAgKi9cbiAgICBmb3JtIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X0RlY2xpbmVBbmRCbG9ja0ludml0ZURpYWxvZyB7XG4gICAgZGl2W2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdID4gbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAtbXMtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVNldHRpbmdzRGlhbG9nX0JyaWRnZUxpc3Qge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgICAmLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19CcmlkZ2VMaXN0X2xpc3RJdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAvKiBib3JkZXItc3R5bGUgYXJvdW5kIGVhY2ggYnJpZGdlIGxpc3QgaXRlbSAqL1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG5cbiAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2ljb24ge1xuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfcHJvdG9jb2xJY29uLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfcHJvdG9jb2xJY29uIHNwYW4sXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWRhcmtlci1iZy1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX25vUHJvdG9jb2xJY29uLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfcHJvdG9jb2xJY29uIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX25vUHJvdG9jb2xJY29uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGlucHV0LWRhcmtlci1iZy1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBDb3JyZWN0IGxldHRlciBwbGFjZW1lbnQgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogODUlO1xuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9kZXRhaWxzLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9tZXRhZGF0YSBsaSxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX3Byb3RvY29sTmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9kZXRhaWxzLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfcHJvdG9jb2xOYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3dvcmtzcGFjZV9jaGFubmVsX2RldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jaGFubmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbWV0YWRhdGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlRGlhbG9nIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6IDM4dnc7XG4gICAgd2lkdGg6IDM4dnc7XG5cbiAgICAubXhfUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nX3Byb2dyZXNzIHtcbiAgICAgICAgLm14X1Byb2dyZXNzQmFyIHtcbiAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nX3Byb2dyZXNzVGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VydmVyT2ZmbGluZURpYWxvZyB7XG4gICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDg1cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgICAgICAgICBsaTpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0IHtcbiAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90aW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDsgLyogc2FtZSBhcyBhdmF0YXIgKi9cbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTU1cHgpOyAvKiAxMTVweCB0aW1lc3RhbXAgd2lkdGggKyA0MHB4IHJpZ2h0IG1hcmdpbiAqL1xuXG4gICAgICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVsaW5lX2hlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdHhuIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3R4bl9kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7IC8qIDEwMHB4IGlzIGFuIGFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBidXR0b24gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXJ2ZXJQaWNrZXJEaWFsb2cge1xuICAgIHdpZHRoOiA0NjhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICA+IHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMTZweCAwO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMjRweCAyNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW46IDE2cHggMCAxNnB4IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyRGlhbG9nX290aGVySG9tZXNlcnZlclJhZGlvIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlckRpYWxvZ19vdGhlckhvbWVzZXJ2ZXIge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB1bnNldDtcblxuICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjZweCk7XG4gICAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMThweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0RW1haWxEaWFsb2dfZW1haWxfaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJGlucHV0LWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5teF9TZXRFbWFpbERpYWxvZ19lbWFpbF9pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogTm90IGFjdHVhbGx5IGEgY29tcG9uZW50IGJ1dCB0aGluZ3Mgc2hhcmVkIGJ5IHNldHRpbmdzIGNvbXBvbmVudHMgKi9cbi5teF9Vc2VyU2V0dGluZ3NEaWFsb2csXG4ubXhfUm9vbVNldHRpbmdzRGlhbG9nLFxuLm14X1NwYWNlU2V0dGluZ3NEaWFsb2csXG4ubXhfU3BhY2VQcmVmZXJlbmNlc0RpYWxvZyB7XG4gICAgd2lkdGg6IDkwdnc7XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbiAgICAvKiBzZXQgdGhlIGhlaWdodCB0b28gc2luY2UgdGFiYmVkIHZpZXcgc2Nyb2xscyBpdHNlbGYuICovXG4gICAgaGVpZ2h0OiA4MHZoO1xuXG4gICAgLm14X1RhYmJlZFZpZXcge1xuICAgICAgICB0b3A6IDkwcHg7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXcgLm14X1NldHRpbmdzVGFiIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLXdpZHRoOiA1ODBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLyogUHV0IHNvbWUgcGFkZGluZyBvbiB0aGUgYm90dG9tIHRvIGF2b2lkIHRoZSBzZXR0aW5ncyB0YWIgZnJvbSAqL1xuICAgICAgICAvKiBjb2xsaWRpbmcgaGFyc2hseSB3aXRoIHRoZSBkaWFsb2cgd2hlbiBzY3JvbGxlZCBkb3duLiAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRGlhbG9nX3RhYkxhYmVsc0FsZXJ0OjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBjbGlwLXBhdGg6IGNpcmNsZSg0cHgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cbn1cblxuLyogT24gbmFycm93IHZpZXdwb3J0cywgdGhlIHRhYiBsYWJlbHMgYXJlIGhpZGRlbiwgc28gd2UgbmVlZCB0byBzaGlmdCB0aGUgaW5kaWNhdG9yIHNvIGl0IGlzbid0IG92ZXIgdGhlIHRhYiBpY29uLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5teF9Vc2VyU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZyxcbiAgICAubXhfU3BhY2VTZXR0aW5nc0RpYWxvZyxcbiAgICAubXhfU3BhY2VQcmVmZXJlbmNlc0RpYWxvZyB7XG4gICAgICAgIC5teF9TZXR0aW5nc0RpYWxvZ190YWJMYWJlbHNBbGVydDo6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlRGlhbG9nIHtcbiAgICAvKiBWYWx1ZSBmcm9tIGZpZ21hIGRlc2lnbiAqL1xuICAgIHdpZHRoOiA0MTZweDtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAvKiBPdmVycmlkZSBkaWFsb2cgaGVhZGVyIHBhZGRpbmcgdG8gYWJsZSB0byBjZW50ZXIgaXQgKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgIH1cblxuICAgIC5teF9TaGFyZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9TaGFyZURpYWxvZ190b3Age1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TaGFyZURpYWxvZ19zb2NpYWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOTlweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NsYXNoQ29tbWFuZEhlbHBEaWFsb2cgLm14X1NsYXNoQ29tbWFuZEhlbHBEaWFsb2dfaGVhZGVyUm93IGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgIHdpZHRoOiA3MDBweDtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuXG4gICAgPiBoNCB7XG4gICAgICAgIG1hcmdpbjogLTEycHggMCAwO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgdG9wOiA4MHB4O1xuXG4gICAgICAgIC5teF9TZXR0aW5nc1RhYiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlU2V0dGluZ3NEaWFsb2cge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X1NwYWNlU2V0dGluZ3NfZXJyb3JUZXh0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgfVxuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzVGFiX3NlY3Rpb24ge1xuICAgICAgICAubXhfU2V0dGluZ3NUYWJfc2VjdGlvbl9jYXB0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcblxuICAgICAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VTZXR0aW5nc0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogNjRweDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgICAgIG1hcmdpbjogN3B4IDE4cHg7XG5cbiAgICAgICAgICAgICYubXhfU2V0dGluZ3NUYWJfc2hvd0FkdmFuY2VkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDE4cHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcG90bGlnaHREaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICAvKiBEaXNhYmxlIHRoZSBnbGFzcyBib3JkZXIgYXMgdGhpcyBkaWFsb2cgd2Fzbid0IGRlc2lnbmVkIHdpdGggaXQgaW4gbWluZCAqL1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgLyogIWltcG9ydGFudCBiZWNhdXNlIGl0J3Mgb3ZlcnJpZGluZyBjb21wb3VuZCAgKi9cbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDYwJSAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdy15OiBpbml0aWFsO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbnRhaW46IHVuc2V0OyAvKiBuZWVkZWQgZm9yICNteF9TcG90bGlnaHREaWFsb2dfa2V5Ym9hcmRQcm9tcHQgdG8gbm90IGJlIGN1bGxlZCAqL1xuXG4gICAgICAgICNteF9TcG90bGlnaHREaWFsb2dfa2V5Ym9hcmRQcm9tcHQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdG9wOiAtNjBweDsgLyogcmVsYXRpdmUgdG8gdGhlIHRvcCBvZiB0aGUgbW9kYWwgKi9cbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAga2JkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgLyogVG8gYXZvaWQgYW55IHN0eWxpbmcgaW5oZXJlbnQgd2l0aCA8a2JkPiBlbGVtZW50cyAqL1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Nwb3RsaWdodERpYWxvZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlYXJjaEJveCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN5c3RlbTtcblxuICAgICAgICA+IC5teF9TcG90bGlnaHREaWFsb2dfZmlsdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMXgpIDM3cHg7XG5cbiAgICAgICAgICAgID4gc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZmlsdGVyLS1jbG9zZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN5c3RlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmb2N1cy13aXRoaW4pICsgI214X1Nwb3RsaWdodERpYWxvZ19jb250ZW50IHtcbiAgICAgICAgICAgIC8qIEluaGliaXQgdGhlIHN0eWxpbmcgaWYgZm9jdXMgaXMgbm90IHdpdGhpbiB0aGUgaW5wdXQgd2hpY2ggaGFuZGxlcyBrZXlib2FyZCBhY2Nlc3NpYmlsaXR5ICovXG4gICAgICAgICAgICAtLW14X1Nwb3RsaWdodERpYWxvZ19vcHRpb25fc2VsZWN0ZWRCZ0NvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgLyogSGlkZSB0aGUgZW50ZXIgcHJvbXB0IGFzIGluIHRoaXMgc3RhdGUgcHJlc3NpbmcgZW50ZXIgd291bGQgbm90IGFjdHVhdGUgdGhhdCBvcHRpb24gKi9cbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNteF9TcG90bGlnaHREaWFsb2dfY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgICAgID4gaDQsXG4gICAgICAgICAgICA+IC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbkhlYWRlciA+IGg0IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gaDQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbkhlYWRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW14X1Nwb3RsaWdodERpYWxvZ19vcHRpb25fc2VsZWN0ZWRCZ0NvbG9yLCAkcXVpbmFyeS1jb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVjZW50bHlWaWV3ZWQge1xuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IC8qIG9jY2x1ZGUgdGhlIDFweCB2aXNpYmxlIG9mIHRoZSB2ZXJ5IG5leHQgdGlsZSB0byBwcmV2ZW50IGl0IGxvb2tpbmcgYnJva2VuICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDU4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1OHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNThweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDlweCB2YXIoLS1jcGQtc3BhY2UtMXgpOyAvKiBtYWludGFpbiBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdHMsXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVjZW50U2VhcmNoZXMsXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3RoZXJTZWFyY2hlcyxcbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19oaWRkZW5SZXN1bHRzIHtcbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICAtLW14X1Nwb3RsaWdodERpYWxvZ19vcHRpb25fc2VsZWN0ZWRCZ0NvbG9yOiAkc3lzdGVtO1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uLS1lbmRBZG9ybm1lbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9tdWx0aWxpbmUge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IC5teF9TcG90bGlnaHREaWFsb2dfbWV0YXNwYWNlUmVzdWx0LFxuICAgICAgICAgICAgICAgID4gLm14X0RlY29yYXRlZFJvb21BdmF0YXIsXG4gICAgICAgICAgICAgICAgPiAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21IZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbU5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbUFsaWFzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAkc2Vjb25kYXJ5LWNvbnRlbnQsIG5vdCAkdGVydGlhcnktY29udGVudDogYXQgMTJweCB0aGlzIGhhcyB0byBtZWV0IFdDQUcgQUFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNC41OjEpIGFnYWluc3QgdGhlIGRpYWxvZyBiYWNrZ3JvdW5kLCBhbmQgdGVydGlhcnkgaXMgMy41OjEgaW4gdGhlIGxpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRhcmsgdGhlbWVzLiAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uLS1tZW51LFxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uLS1ub3RpZmljYXRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciBzdmcsXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uLS1tZW51LFxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbm90aWZpY2F0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qICRzZWNvbmRhcnktY29udGVudCBpcyBsZWdpYmxlIGF0IHJlc3QgYnV0IG9ubHkgNC4yOjEgYWdhaW5zdCB0aGUgaG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZCAoJHF1aW5hcnktY29udGVudCksIHNvIHN0ZXAgdXAgdG8gJHByaW1hcnktY29udGVudCB0byBrZWVwIFdDQUcgQUEuICovXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21IZWFkZXIgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbUFsaWFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0gLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2ludml0ZUxpbmssXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfY3JlYXRlUm9vbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggdmFyKC0tY3BkLXNwYWNlLTJ4KSAzcHggdmFyKC0tY3BkLXNwYWNlLTd4KTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX290aGVyU2VhcmNoZXMge1xuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX290aGVyU2VhcmNoZXNfbWVzc2FnZVNlYXJjaFRleHQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X2RldGFpbHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAvKiBTZWUgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbUFsaWFzOiAxMnB4IHRleHQgbmVlZHMgNC41OjEgYXQgcmVzdCB0b28uICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzID4gaDQgPiAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19tZXRhc3BhY2VSZXN1bHQgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBUbyBhdm9pZCB2aXN1YWwgZ2xpdGNoaW5nIG9mIHR3byBtb2RhbHMgc3RhY2tpbmcgYnJpZWZseSwgd2UgY3VzdG9taXNlIHRoZVxuICogdGVybXMgZGlhbG9nIHNpemluZyB3aGVuIGl0IHdpbGwgYXBwZWFyIGZvciB0aGUgaW50ZWdyYXRpb24gbWFuYWdlciBzbyB0aGF0XG4gKiBpdCBnZXRzIHRoZSBzYW1lIGJhc2ljIHNpemUgYXMgdGhlIElNJ3Mgb3duIG1vZGFsLlxuICovXG4ubXhfVGVybXNEaWFsb2dfZm9ySW50ZWdyYXRpb25NYW5hZ2VyIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNzAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5teF9UZXJtc0RpYWxvZ190ZXJtc1RhYmxlSGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubXhfVGVybXNEaWFsb2dfdGVybXNUYWJsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfVGVybXNEaWFsb2dfc2VydmljZSxcbi5teF9UZXJtc0RpYWxvZ19zdW1tYXJ5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1VucGluQWxsRGlhbG9nIHtcbiAgICAvKiAzOTYgaXMgY29taW5nIGZyb20gZmlnbWEgYW5kIHdlIHJlbW92ZSB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZ3Mgb2YgdGhlIGRpYWxvZyAqL1xuICAgIHdpZHRoOiBjYWxjKDM5NnB4IC0gKHZhcigtLWNwZC1zcGFjZS0xMHgpICogMikpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1VucGluQWxsRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgaGVhZGluZyBzdHlsZSAqL1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9VbnBpbkFsbERpYWxvZ19idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ZpbGVJY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X1VwbG9hZENvbmZpcm1EaWFsb2dfcHJldmlld091dGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX3ByZXZpZXdJbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IHZhcigtLU1lZGlhUHJldmlldy13aWR0aCk7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ltYWdlUHJldmlldyB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZGlhbG9nLWNsb3NlLWZnLWNvbG9yO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0RpYWxvZ190b2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X1VzZXJTZXR0aW5nc0RpYWxvZ190aXRsZSB7XG4gICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBkaWFsb2cgZm9udCBzdHlsZSAqL1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtcmVndWxhcikgIWltcG9ydGFudDtcblxuICAgIC5teF9Vc2VyU2V0dGluZ3NEaWFsb2dfdGl0bGVfc3Ryb25nIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmeUVNYWlsRGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdG9wOiAzMDBweDtcblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KSB2YXIoLS1jcGQtc3BhY2UtNngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAgKi9cbiAgICAgICAgd2lkdGg6IDQ4NXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZ5RU1haWxEaWFsb2dfdGV4dC1saWdodCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQXV0aEJvZHlfZGlkLW5vdC1yZWNlaXZlIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nIHtcbiAgICAudGV4dC1tdXRlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2dfY2FwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OyAvKiBkb3VibGUgbm9ybWFsICovXG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCRmb250LTE0cHggKyA3cHggKyA3cHgpOyAvKiA3cHggdG9wICYgYm90dG9tIHBhZGRpbmcgKi9cbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuXG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgLyogZG93bnNpemUgdGhlIHN3aXRjaCArIGJhbGwgKi9cbiAgICAgICAgICAgIHdpZHRoOiAkZm9udC0zMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuXG4gICAgICAgICAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gJGZvbnQtMTVweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiA2MDBweDsgLyogQ29uc2lzdGVuY3kgd2l0aCBJbnZpdGVEaWFsb2cgKi9cbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19oZWFkZXJDb250YWluZXIge1xuICAgIC8qIENlbnRyZSB0aGUgUGFnZUhlYWRlciBjb21wb25lbnQgaG9yaXpvbnRhbGx5ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC8qIFN0eWxpbmcgZm9yIHRoZSByZWd1bGFyIHRleHQgaW5zaWRlIHRoZSBoZWFkZXIgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXJlZ3VsYXIpO1xuXG4gICAgLyogU3BhY2UgYmVmb3JlIHRoZSBsaXN0ICovXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfdXNlckxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLyogRmlsbCBhdmFpbGFibGUgdmVydGljYWwgc3BhY2UsIGJ1dCBkb24ndCBhbGxvdyBpdCB0byBzaHJpbmsgdG8gbGVzcyB0aGFuIDYwcHggKGFib3V0IHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgdGlsZSkgKi9cbiAgICBmbGV4OiAxIDAgNjBweDtcblxuICAgIC8qIFJlbW92ZSBicm93c2VyIGRlZmF1bHQgdWwgcGFkZGluZy9tYXJnaW4gKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgID4gYnV0dG9uIHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOCwgMjAxOSAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cge1xuICAgICYubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICAvKiBvdmVycmlkZSBzb21lIHN0eWxlcyB0aGF0IHdlIGRvbid0IG5lZWQgKi9cbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgICAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUVudHJ5IHtcbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICogRnJvbSBmaWdtYTogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9ab2RCTHRHbkttUlRHSm81U0dMbkgzL0VSLTEzNy0tRXhjbHVkaW5nLUluc2VjdXJlLURldmljZXM/bm9kZS1pZD0xMDItNDM3MjkmdD1RbWV3RU5VZDdmNlRtdzlVLTFcbiAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0NDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5RmVlZGJhY2sge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFzay1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUZlZWRiYWNrLS1pbnZhbGlkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmRfYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yMHgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cge1xuICAgIC8qIFdoeSB5b3UgYXNrPyBCZWNhdXNlIENvbXBsZXRlU2VjdXJpdHlCb2R5IGlzIDYwMHB4IHNvIHRoaXMgaXMgdGhlIHdpZHRoICovXG4gICAgLyogd2UgZW5kIHVwIHdoZW4gaW4gdGhlcmUsIGJ1dCB3aGVuIGluIG91ciBvd24gZGlhbG9nIHdlIHNldCBvdXIgb3duIHdpZHRoICovXG4gICAgLyogc28gbmVlZCB0byBmaXggaXQgdG8gc29tZXRoaW5nIHNlbnNpYmxlIGFzIG90aGVyd2lzZSB3ZSdkIGVuZCB1cCBlaXRoZXIgKi9cbiAgICAvKiByZWFsbHkgd2lkZSBvciByZWFsbHkgbmFycm93IGRlcGVuZGluZyBvbiB0aGUgcGhhc2UuIEkgYmV0IHlvdSB3aXNoIHlvdSAqL1xuICAgIC8qIG5ldmVyIGFza2VkLiAqL1xuICAgIHdpZHRoOiA1NjBweDtcblxuICAgIGRldGFpbHMgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW46IDFlbSAwOyAvKiBlbXVsYXRlIHBhcmFncmFwaCBzcGFjaW5nIGJlY2F1c2Ugd2UgY2FuJ3QgcHV0IHRoaXMgYnV0dG9uIGluIGEgcGFyYWdyYXBoIGR1ZSB0byBIVE1MIHJ1bGVzICovXG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC8qIFRPRE86IENvbnNpZGVyIHNldHRpbmcgdGhpcyBmb3IgYWxsIGRpYWxvZyB0aXRsZXMuICovXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nIHtcbiAgICAvKiBXaHkgeW91IGFzaz8gQmVjYXVzZSBDb21wbGV0ZVNlY3VyaXR5Qm9keSBpcyA2MDBweCBzbyB0aGlzIGlzIHRoZSB3aWR0aCAqL1xuICAgIC8qIHdlIGVuZCB1cCB3aGVuIGluIHRoZXJlLCBidXQgd2hlbiBpbiBvdXIgb3duIGRpYWxvZyB3ZSBzZXQgb3VyIG93biB3aWR0aCAqL1xuICAgIC8qIHNvIG5lZWQgdG8gZml4IGl0IHRvIHNvbWV0aGluZyBzZW5zaWJsZSBhcyBvdGhlcndpc2Ugd2UnZCBlbmQgdXAgZWl0aGVyICovXG4gICAgLyogcmVhbGx5IHdpZGUgb3IgcmVhbGx5IG5hcnJvdyBkZXBlbmRpbmcgb24gdGhlIHBoYXNlLiBJIGJldCB5b3Ugd2lzaCB5b3UgKi9cbiAgICAvKiBuZXZlciBhc2tlZC4gKi9cbiAgICB3aWR0aDogNTYwcHg7XG5cbiAgICAmLm14X1N1Y2Nlc3NEaWFsb2cge1xuICAgICAgICBwYWRkaW5nOiA1NnB4OyAvKiA4MHB4IGZyb20gZGVzaWduIC0gMjRweCB3cmFwcGVyIHBhZGRpbmcgKi9cblxuICAgICAgICAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICBkZXRhaWxzIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDsgLyogZW11bGF0ZSBwYXJhZ3JhcGggc3BhY2luZyBiZWNhdXNlIHdlIGNhbid0IHB1dCB0aGlzIGJ1dHRvbiBpbiBhIHBhcmFncmFwaCBkdWUgdG8gSFRNTCBydWxlcyAqL1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLyogVE9ETzogQ29uc2lkZXIgc2V0dGluZyB0aGlzIGZvciBhbGwgZGlhbG9nIHRpdGxlcy4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX2NlbnRlcmVkVGl0bGUsXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jZW50ZXJlZEJvZHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogRklYTUU6IHBsaW50aCBjb2xvdXIgaW4gbmV3IHRoZW1lKHMpLiBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50OyAqL1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgJi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5UHJpbWFyeWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDExcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX29wdGlvblRpdGxlIHtcbiAgICBjb2xvcjogJGRpYWxvZy10aXRsZS1mZy1jb2xvcjtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9GaWVsZC5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VGaWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlTWF0Y2gge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXkge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGluZm8tcGxpbnRoLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICB3b3JkLXNwYWNpbmc6IDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgY29kZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcmVtO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUJ1dHRvbnNfY29weUJ0biB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY29udGludWVTcGlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzM3B4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jb250aW51ZVNwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4ubXhfS2V5QmFja3VwRmFpbGVkRGlhbG9nX3RpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDM2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTggTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfa2V5U3RhdHVzIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgIC8qIEZJWE1FOiBwbGludGggY29sb3VyIGluIG5ldyB0aGVtZShzKS4gYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDsgKi9cbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQsXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19yZWNvdmVyeUtleUlucHV0IHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfY29udGVudCA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtaW4taGVpZ2h0OiAxMTBweDsgLyogRW1waXJpY2FsbHkgbWVhc3VyZWQgKi9cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9OZXR3b3JrRHJvcGRvd25fd3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiB7XG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIHNwYW46bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAmICsgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX3JlbW92ZVNlcnZlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcGFkZGluZzogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9OZXR3b3JrRHJvcGRvd25fZGlhbG9nIC5teF9EaWFsb2cge1xuICAgIHdpZHRoOiA0NXZ3O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6d2hlcmUoYnV0dG9uKSB7XG4gICAgICAgIC8qIENsZWFyIGRlZmF1bHQgYnV0dG9uIHN0eWxpbmcgKi9cbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19hY2NlbnQsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgLyogb3ZlcnJpZGUgZGVmYXVsdCA8YnV0dG9uIC8+IHN0eWxlcyAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDsgLyogcHJldmVudCBidXR0b24gdGV4dCBpbiBDaGluZXNlL0phcGFuZXNlL0tvcmVhbiAoQ0pLKSBmcm9tIGJlaW5nIGNvbGxhcHNlZCAqL1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb24sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5LFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2RhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1jcml0aWNhbC1zdWJ0bGUpO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmssXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9pbmxpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2NvbnRlbnRfaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3B5YWJsZVRleHQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICYubXhfQ29weWFibGVUZXh0X2JvcmRlciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICRsaWdodC1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8qIElmIHRoZSBjb3B5IGJ1dHRvbiBpcyB1c2VkIHdpdGhpbiBhIHNjcm9sbGFibGUgZGl2LCBtYWtlIGl0IHN0aWNrIHRvIHRoZSByaWdodCB3aGlsZSBzY3JvbGxpbmcgKi9cbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3RhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICBvdmVyZmxvdzogb3ZlcmxheTtcblxuICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAmLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl9zb3VyY2VfdGh1bWJuYWlsX3NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICM4ZDk3YTU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX2Rpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi8qIERpc2FibGUgZHJvcGRvd24gaGlnaGxpZ2h0IG9uIGZvY3VzICovXG4ubXhfRHJvcGRvd25faW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbjpmb2N1cyB7XG4gICAgZmlsdGVyOiBub25lO1xufVxuXG5zdmcubXhfRHJvcGRvd25fYXJyb3cge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zNXB4O1xuICAgIC8qIE92ZXJ3cml0ZXMgdGhlIGRlZmF1bHQgcGFkZGluZyBmb3IgYW55IGxpIGVsZW1lbnRzICovXG4gICAgcGFkZGluZzogMCA4cHg7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gZGl2IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gaW1nLFxuLm14X0Ryb3Bkb3duX29wdGlvbiAubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG59XG5cbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbixcbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbjpmb2N1cyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLyogWFhYOiBoYWNrIHRvIHByZXZlbnQgdGV4dCBib3ggYmVpbmcgdG9vIGJpZyBhbmQgcHVzaGluZyAqL1xuICAgIC8qIGl0cyBwYXJlbnQgb3V0IC8gb3ZlcmxhcHBpbmcgdGhlIGRyb3Bkb3duIGFycm93LiBPbmx5IHJlYWxseSAqL1xuICAgIC8qIHdvcmtzIGluIHRoZSBDb3VudHJ5IGRyb3Bkb3duLiAqL1xuICAgIHdpZHRoOiA2MCU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFweDtcbiAgICByaWdodDogLTFweDtcbiAgICB0b3A6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWFsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMzVweDtcbn1cblxudWwubXhfRHJvcGRvd25fbWVudSBsaS5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG59XG5cbi5teF9Ecm9wZG93bl9zZWFyY2hQcm9tcHQge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTctMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VkaXRhYmxlSXRlbUxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0VkaXRhYmxlSXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZGVsZXRlIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBvcmRlcjogMztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXNrLXNpemU6IDEwMCU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZW1haWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fcHJvbXB0VGV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG9yZGVyOiAyO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2NvbmZpcm1CdG4ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2l0ZW0ge1xuICAgIGZsZXg6IGF1dG8gMSAwO1xuICAgIG9yZGVyOiAxO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyOHB4KTsgLyogbGVhdmUgc3BhY2UgZm9yIHRoZSByZW1vdmUgYnV0dG9uICovXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtTGlzdF9sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Vycm9yQm91bmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9FcnJvckJvdW5kYXJ5X2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXh0ZXJuYWxMaW5rIHtcbiAgICBjb2xvcjogJGxpbmtzO1xufVxuXG4ubXhfRXh0ZXJuYWxMaW5rX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJGZvbnQtMTFweDtcbiAgICBoZWlnaHQ6ICRmb250LTExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZhY2VQaWxlX21vcmUge1xuICAgIC8qIE5lZWRlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBvbiB0aGUgZmFjZSBwaWxlICovXG4gICAgLS1jcGQtYXZhdGFyLXNpemU6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgei1pbmRleDogMTtcbiAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfRmFjZVBpbGVfc3VtbWFyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogVE9ETzogQ29uc2lkZXIgdW5pZnlpbmcgd2l0aCBnZW5lcmFsIGlucHV0IHN0eWxlcyBpbiBfbGlnaHQucGNzcyAqL1xuXG4ubXhfRmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG59XG5cbi5teF9GaWVsZF9wcmVmaXgge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRmllbGQgaW5wdXQsXG4ubXhfRmllbGQgc2VsZWN0LFxuLm14X0ZpZWxkIHRleHRhcmVhIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiBFdmVuIHdpdGhvdXQgYSBib3JkZXIgaGVyZSwgd2Ugc3RpbGwgbmVlZCB0aGlzIGF2b2lkIG92ZXJsYXBwaW5nIHRoZSByb3VuZGVkICovXG4gICAgLyogY29ybmVycyBvbiB0aGUgZmllbGQgYWJvdmUuICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDhweCA5cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X0ZpZWxkX3NlbGVjdF9jaGV2cm9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9GaWVsZDpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpmb2N1cyxcbi5teF9GaWVsZCBzZWxlY3Q6Zm9jdXMsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDBzO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OnBsYWNlaG9sZGVyLXNob3duOmZvY3VzOjpwbGFjZWhvbGRlcixcbi5teF9GaWVsZCB0ZXh0YXJlYTpwbGFjZWhvbGRlci1zaG93bjpmb2N1czo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQubXhfRmllbGRfcGxhY2Vob2xkZXJJc0hpbnQgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDAuMXM7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkIGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBmb250LXNpemUgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIG1hcmdpbjogN3B4IDhweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIEFsbG93IGNsaWNrcyB0byBmYWxsIHRocm91Z2ggdG8gdGhlIGlucHV0ICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjBweCk7IC8qIDEwMCUgb2YgcGFyZW50IG1pbnVzIG1hcmdpbiBhbmQgcGFkZGluZyAqL1xufVxuXG4ubXhfRmllbGRfbGFiZWxBbHdheXNUb3BMZWZ0IGxhYmVsLFxuLm14X0ZpZWxkIHNlbGVjdCArIGxhYmVsIC8qIEFsd2F5cyBzaG93IGEgc2VsZWN0J3MgbGFiZWwgb24gdG9wIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlIHZhbHVlICovLFxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgKyBsYWJlbCxcbi5teF9GaWVsZCB0ZXh0YXJlYTpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGZvbnQtc2l6ZSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCAwcztcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xM3B4KTtcbiAgICBwYWRkaW5nOiAwIDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgc2VsZWN0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCB7XG4gICAgY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4ubXhfRmllbGQgc2VsZWN0OmRpc2FibGVkLFxuLm14X0ZpZWxkIHNlbGVjdDpkaXNhYmxlZCArIGxhYmVsLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQgKyBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkX3ZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfRmllbGQgbGFiZWwsXG4gICAgJi5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG59XG5cbi5teF9GaWVsZF9pbnZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgJi5teF9GaWVsZCBsYWJlbCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG4vKiBDdXN0b21pc2Ugb3RoZXIgY29tcG9uZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgYSBGaWVsZCAqL1xuXG4ubXhfRmllbGQgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIC5teF9Db3VudHJ5RHJvcGRvd24ge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zMHB4OyAvKiBUT0RPOiBVc2UgYSB2YXJpYWJsZSAqL1xuXG4gICAgICAgIC5teF9JUkNMYXlvdXQgJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB7XG4gICAgICAgIC8qIFdlIHJldXNlIGEgdGl0bGUgY2FzZWQgdHJhbnNsYXRpb24gKi9cbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZTogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgLS1tYXhXaWR0aDogNzAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1hdmF0YXJTaXplKSArIHZhcigtLWd1dHRlclNpemUpKTtcblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMDtcblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA5OyAvKiBUT0RPOiBSZW1vdmUgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bzsgLyogcmVkdWNlIGNsaWNrYWJsZSBhcmVhICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpOyAvKiBhcyB0aGUgcGFyZW50IGhhcyB6ZXJvIG1hcmdpbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlkZWFsbHkgd2UnZCB1c2UgZGlzcGxheT1jb250ZW50cyBoZXJlIGZvciB0aGUgbGF5b3V0IHRvIGFsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlICpFTFMgYnV0ICovXG4gICAgICAgIC8qIHRoYXQgYnJlYWtzIFNjcm9sbFBhbmVsJ3MgcmVsaWFuY2UgdXBvbiBvZmZzZXRUb3Agc28gd2UgaGF2ZSB0byBoYXZlIGEgYml0IG1vcmUgZmluZXNzZS4gKi9cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCAmIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RleHR1YWxFdmVudC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zdW1tYXJ5IHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBNYWtlIGFsbCBzdGF0ZSBldmVudHMgb25lIG9yZGVyIHNtYWxsZXIgdGhhbiB0aGUgb3RoZXIgZXZlbnRzICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5teF9UZXh0dWFsRXZlbnQubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcblxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJGJ1dHRvbi1zaXplOiAzMnB4O1xuJGJ1dHRvbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbjpyb290IHtcbiAgICAtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0OiA2OHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2ltYWdlX3dyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X0ltYWdlVmlld19pbWFnZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwcztcbiAgICB9XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UgMHM7XG4gICAgfVxufVxuXG4ubXhfSW1hZ2VWaWV3X3BhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHZhcigtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzAwbXM7XG59XG5cbi5teF9JbWFnZVZpZXdfaW5mb193cmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1iYXNpczogMDtcbn1cblxuLm14X0ltYWdlVmlld19pbmZvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2luZm9fc2VuZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X0ltYWdlVmlld190aXRsZSB7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfSW1hZ2VWaWV3X3Rvb2xiYXIge1xuICAgIC0taWNvbi1zaXplOiAyNHB4O1xuXG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6ICRidXR0b24tZ2FwO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbiB7XG4gICAgcGFkZGluZzogY2FsYygoJGJ1dHRvbi1zaXplIC0gdmFyKC0taWNvbi1zaXplKSkgLyAyKTtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbWFnZVZpZXdfYnV0dG9uX21vcmUge1xuICAgIC0taWNvbi1zaXplOiAyOHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbl9jbG9zZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMjEyNjJjOyAvKiBzYW1lIG9uIGFsbCB0aGVtZXMgKi9cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmZvVG9vbHRpcF9pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbmZvVG9vbHRpcF9pY29uOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE3LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmxpbmVTcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW46IDBweCA2cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZVJlYXNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgIC5teF9JbnZpdGVSZWFzb25fcmVhc29uIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3ZpZXcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZVJlYXNvbl9oaWRkZW4ge1xuICAgIC5teF9JbnZpdGVSZWFzb25fcmVhc29uIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVSZWFzb25fdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFiZWxsZWRDaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MYW5ndWFnZURyb3Bkb3duIHtcbiAgICAubXhfRHJvcGRvd25fb3B0aW9uID4gZGl2IHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01pbmlBdmF0YXJVcGxvYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBtaW4tY29udGVudDtcblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5kaWNhdG9yIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcblxuICAgICAgICByaWdodDogLTZweDtcbiAgICAgICAgYm90dG9tOiAtNnB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgLm14X01pbmlBdmF0YXJVcGxvYWRlcl9jYW1lcmFJY29uIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01pbmlBdmF0YXJVcGxvYWRlcl9pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BpbGwge1xuICAgIHBhZGRpbmc6ICRmb250LTFweCAwLjRlbSAkZm9udC0xcHggMC40ZW07XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtYmctY29sb3IgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgPiAqIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5teF9Vc2VyUGlsbF9tZSxcbiAgICAmLm14X0F0Um9vbVBpbGwsXG4gICAgJi5teF9LZXl3b3JkUGlsbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1ob3Zlci1iZy1jb2xvciAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtcHJlc3MtYmctY29sb3IgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmLm14X1VzZXJQaWxsX21lOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKFxuICAgICAgICAgICAgLS1jcGQtY29sb3ItYmctY3JpdGljYWwtaG92ZXJlZFxuICAgICAgICApICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5IHwgc2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgIH1cblxuICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5kaWNhdGUgY2xpY2thYmlsaXR5ICovXG4gICAgJi5teF9BdFJvb21QaWxsOmhvdmVyLFxuICAgICYubXhfS2V5d29yZFBpbGw6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICAgICAgY3Vyc29yOiB1bnNldDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMC4zZW07IC8qIE90aGVyd2lzZSB0aGUgZ2FwIGlzIHRvbyBsYXJnZSAqL1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yZW07XG4gICAgICAgIG1pbi13aWR0aDogJGZvbnQtMTZweDsgLyogZW5zdXJlIHRoZSBhdmF0YXIgaXMgbm90IGNvbXByZXNzZWQgKi9cbiAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgLm14X1BpbGxfdGV4dCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLm14X1BpbGxfdXNlclN0YXR1cyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC8qIFBpbGxzIHdpdGggdXNlciBzdGF0dXMgYXJlIGZsZXggc28gdGhlIHN0YXR1cyBlbW9qaSBzdGF5cyB2aXNpYmxlIGlmIHRoZVxuICAgICAgIGRpc3BsYXkgbmFtZSBnZXRzIHRydW5jYXRlZC4gKi9cbiAgICAmLm14X1BpbGxfd2l0aFN0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIGEmIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIH1cblxuICAgIC5teF9QaWxsX0xpbmtJY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmstZXh0ZXJuYWw7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuXG4gICAgLm14X1BpbGxfVXNlckljb24ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgIH1cblxuICAgICYubXhfU3BhY2VQaWxsIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG93ZXJTZWxlY3RvciB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9Qb3dlclNlbGVjdG9yIC5teF9GaWVsZCBzZWxlY3QsXG4ubXhfUG93ZXJTZWxlY3RvciAubXhfRmllbGQgaW5wdXQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5wcm9ncmVzcy5teF9Qcm9ncmVzc0JhciB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDZweDtcbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJDb2xvdXIgdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCZ0NvbG91ciAkcHJvZ3Jlc3NiYXItYmctY29sb3I7XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDFzO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RUkNvZGUge1xuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOCBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVwbHlDaGFpbiB7XG4gICAgbWFyZ2luLWJsb2NrOiAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLWlubGluZTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS11c2VybmFtZS1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgLm14X1JlcGx5Q2hhaW5fY29tcGFjdCAmIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfUmVwbHlDaGFpbl9zaG93IHtcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogRW5mb3JjZSAnSW4gcmVwbHkgdG8nIHRvIGJlIGEgc2luZ2xlIGxpbmUgKi9cbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlIDAuMTVzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1yZWd1bGFyKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3IxIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQxLWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjIge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDItY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yMyB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3I0IHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQ0LWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjUge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yNiB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbiAgICB9XG59XG5cbi8qXG4gKiBSZXBseSBwcmV2aWV3cyBpbiB0aGUgbmV3IHRpbWVsaW5lIChgY29tcGFjdFByZXZpZXdgIGluIFJlcGx5Q2hhaW4udHN4KS5cbiAqXG4gKiBUaGUgcHJldmlldyBpdHNlbGYgaXMgdGhlIHNoYXJlZCBSZXBseVRpbGVWaWV3LCBkcmF3biBhdCBpdHMgbmF0dXJhbCBzaXplOiBhXG4gKiBxdW90ZSBhbHJlYWR5IGluIHRoZSByb29tIHJlbmRlcnMgYXQgaXRzIGZpbmFsIGhlaWdodCBvbiB0aGUgZmlyc3QgcGFzcywgYW5kXG4gKiBncm93dGggYWJvdmUgdGhlIHZpZXdwb3J0IGlzIGNvbXBlbnNhdGVkIGJ5IHRoZSB0aW1lbGluZS4gVGhlIHJ1bGVzIGhlcmUgY292ZXJcbiAqIHRoZSB0d28gc3RhdGVzIHRoYXQgc3RhbmQgaW4gZm9yIGEgcHJldmlldyB3aGlsZSBpdCBpcyBmZXRjaGVkLCBvciBpZiB0aGVcbiAqIGZldGNoIGZhaWxzLCBzbyBhIHJvdyBob2xkcyBhIHNlbnNpYmxlIGhlaWdodCBpbnN0ZWFkIG9mIGNvbGxhcHNpbmcuXG4gKi9cbi5teF9OZXdUaW1lbGluZVBhbmVsIHtcbiAgICAvKiBBYm91dCB0aGUgaGVpZ2h0IG9mIHRoZSBzZW5kZXIgcm93IGFuZCBvbmUgbGluZSBvZiBxdW90ZWQgdGV4dC4gKi9cbiAgICAtLW14LXJlcGx5LXJvdy1oZWlnaHQ6IDIwcHg7XG5cbiAgICAvKiBUaGUgc2tlbGV0b24gc2hvd24gd2hpbGUgdGhlIHF1b3RlZCBtZXNzYWdlIGlzIGJlaW5nIGZldGNoZWQ6IGEgc2VuZGVyIHJvd1xuICAgICAgIGFuZCBhIG1lc3NhZ2Ugcm93LCBzcGFjZWQgbGlrZSB0aGUgcmVhbCBwcmV2aWV3LiAqL1xuICAgIC5teF9SZXBseUNoYWluX3BsYWNlaG9sZGVyIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgfVxuXG4gICAgLm14X1JlcGx5Q2hhaW5fcGxhY2Vob2xkZXJSb3cge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLW14LXJlcGx5LXJvdy1oZWlnaHQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBUaGUgbWVzc2FnZSBsaW5lIHJlYWRzIGxvbmdlciB0aGFuIHRoZSBuYW1lIGFib3ZlIGl0LiAqL1xuICAgICAgICAmOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogSWYgdGhlIGZldGNoIGZhaWxzIHRoZSBwcmV2aWV3IGJlY29tZXMgYSBvbmUtbGluZSBlcnJvciwgc28gaG9sZCBpdCBhdCB0aGVcbiAgICAgICBoZWlnaHQgb2YgdGhlIHNrZWxldG9uIGl0IHJlcGxhY2VzLiAqL1xuICAgIC5teF9SZXBseUNoYWluX2Vycm9yIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygyICogdmFyKC0tbXgtcmVwbHktcm93LWhlaWdodCkgKyAycHggKyA0cHgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVzaXplSGFuZGxlIHtcbiAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgei1pbmRleDogMTAwO1xuXG4gICAgJi5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWwge1xuICAgICAgICBtYXJnaW46IDAgLTVweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9SZXNpemVIYW5kbGUtLXZlcnRpY2FsIHtcbiAgICAgICAgbWFyZ2luOiAtNXB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm14X0Vtb2ppIHtcbiAgICAvKiBTaG91bGQgYmUgMS44cmVtIGZvciBvdXIgZGVmYXVsdCBtZXNzYWdlIGJvZGllcywgYW5kIHNjYWxlIHdpdGggdGhlICovXG4gICAgLyogc3Vycm91bmRpbmcgdGV4dCAqL1xuICAgIGZvbnQtc2l6ZTogbWF4KCRmb250LTE4cHgsIDFlbSk7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tQWxpYXNGaWVsZCB7XG4gICAgLyogaWYgcGFyZW50IGlzIGEgZmxleCBjb250YWluZXIsIHRoaXMgYWxsb3dzIHRoZSAqL1xuICAgIC8qIHdpZHRoIHRvIGJlIGFzIHdpZGUgYXMgbmVlZGVkLCBhbmQgbm90IDEwMCUgKi9cbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3ByZWZpeCxcbiAgICAubXhfRmllbGRfcG9zdGZpeCB7XG4gICAgICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBwYWRkaW5nOiA5cHggMTBweDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLyogdGhpcyBhbGxvd3MgdGhlIGRvbWFpbiBuYW1lIHRvIHNob3cgKi9cbiAgICAgICAgLyogYXMgbG9uZyBhcyBpdCBkb2Vzbid0IG1ha2UgdGhlIGlucHV0IHNocmluayAqL1xuICAgICAgICAvKiBpZiBpdCdzIHRvbyBiaWcsIGl0IHNob3dzIGFuIGVsbGlwc2lzICovXG4gICAgICAgIC8qIDE4MDogMjggZm9yIHByZWZpeCwgMTUyIGZvciBpbnB1dCAqL1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDE4MHB4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU1NPQnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAubXhfU1NPQnV0dG9uc19yb3cgKyAubXhfU1NPQnV0dG9uc19yb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TU09CdXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgc3ZnLFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogOHB4O1xuICAgICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU1NPQnV0dG9uX21pbmkge1xuICAgICAgICBzdmcsXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICAvKiAzMHB4IHBhcmVudCwgMjRweCBzZWxmICovXG4gICAgICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgLm14X1NTT0J1dHRvbl9taW5pIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlYXJjaFdhcm5pbmcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG5cbiAgICA+ICoge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgID4gaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlcnZlclBpY2tlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWluLWNvbnRlbnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgPiBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9oZWxwIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyX3NlcnZlciB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9jaGFuZ2Uge1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9kZXNjIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gMjtcbiAgICAgICAgZ3JpZC1yb3c6IDM7XG4gICAgfVxufVxuXG4ubXhfU2VydmVyUGlja2VyX2hlbHBEaWFsb2cge1xuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA0NTZweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0Ryb3Bkb3duIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm14X1NldHRpbmdzRHJvcGRvd25fbGFiZWwge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICAgICAgd2lkdGg6IDM2MHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0ZsYWcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NGbGFnX3RvZ2dsZUluRnJvbnQge1xuICAgICAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xufVxuXG4ubXhfU2V0dGluZ3NGbGFnX21pY3JvY29weSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC8qIFN1cHBvcnQgY29kZS9wcmUgZWxlbWVudHMgaW4gc2V0dGluZ3MgZmxhZyBkZXNjcmlwdGlvbnMgKi9cbiAgICBwcmUsXG4gICAgY29kZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydGUtY29kZS1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NUYWJfbWljcm9jb3B5X3dhcm5pbmc6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi4pqg77iPIFwiO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9NYXRyaXhDaGF0X21pZGRsZVBhbmVsIC5teF9TcGlubmVyIHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKipcbiogVGhpcyBjb21wb25lbnQgZXhwZWN0cyB0aGUgcGFyZW50IHRvIHNwZWNpZnkgYSBwb3NpdGl2ZSBwYWRkaW5nIGFuZFxuKiB3aWR0aFxuKi9cblxuLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAkcmFkaW8tY2lyY2xlLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICRhY3RpdmUtcmFkaW8tY2lyY2xlLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWNjZW50LXJlc3QpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgID4gLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcblxuICAgICAgICBoZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgIHdpZHRoOiAkZm9udC0xNnB4O1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIC8qIFJlbW92ZSB0aGUgT1MncyByZXByZXNlbnRhdGlvbiAqL1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgKyBkaXYge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7IC8qIEZvciB0aGUgaGlnaGxpZ2h0IG9uIGZvY3VzICovXG5cbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRyYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogJGZvbnQtOHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkZm9udC04cHg7XG5cbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC04cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgQG1peGluIHVucmVhbC1mb2N1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtcmFkaW8tY2lyY2xlLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgICYgKyBkaXYsXG4gICAgICAgICAgICAmICsgZGl2ICsgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZDpkaXNhYmxlZCB7XG4gICAgICAgICAgICAmICsgZGl2ID4gZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2lubmVyTGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNHB4O1xuICAgIH1cbn1cblxuLm14X1N0eWxlZFJhZGlvQnV0dG9uX291dGxpbmVkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtZGFya2VyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NoZWNrZWQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3ludGF4SGlnaGxpZ2h0IHtcbiAgICAvKiBpbmhpYml0IGhsanMgc3R5bGluZyAqL1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGxpZ2h0LWZnLWNvbG9yICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGFnQ29tcG9zZXIge1xuICAgIC5teF9UYWdDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCA4cHg7IC8qIG92ZXJyaWRlIGZyb20gYnV0dG9uIHN0eWxlcyAqL1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsgLyogb3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nc3RhYiBzdHlsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkLFxuICAgICAgICAubXhfRmllbGQgaW5wdXQsXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIC8qIFNvIHRoZXkgbG9vayByZWxhdGVkIHRvIGVhY2ggb3RoZXIgYnkgZmVlbGluZyB0aGUgc2FtZSAqL1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1RhZ0NvbXBvc2VyX3RhZ3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7IC8qIHRoaXMgcGx1cyAxMnB4IGZyb20gdGhlIHRhZ3MgbWFrZXMgMjRweCBmcm9tIHRoZSBpbnB1dCAqL1xuICAgIH1cblxuICAgIC5teF9UYWcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgfVxufVxuXG4ubXhfVGFnIHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICA+IHN2ZzpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfVGFnX2RlbGV0ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS4wNjY2NjZlbTsgLyogMTZweDsgKi9cbiAgICAgICAgaGVpZ2h0OiAxLjA2NjY2NmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG4ubXhfVGV4dFdpdGhUb29sdGlwX3RhcmdldCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ubXhfVGV4dFdpdGhUb29sdGlwX3Rvb2x0aXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgLS1Ub2dnbGVTd2l0Y2gtbWluLXdpZHRoOiAkZm9udC00NHB4O1xuXG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGJvcmRlci1jb2xvciAwLjJzIGVhc2Utb3V0IDAuMXM7XG5cbiAgICB3aWR0aDogJGZvbnQtNDRweDtcbiAgICBoZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMS41cmVtO1xuICAgIHBhZGRpbmc6IDJweDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGlzYWJsZWQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAmLm14X1RvZ2dsZVN3aXRjaF9lbmFibGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcblxuICAgICAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWNjZW50LXJlc3QpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWNjZW50LXJlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfVG9nZ2xlU3dpdGNoX29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWRpc2FibGVkKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktZGlzYWJsZWQpO1xuXG4gICAgICAgID4gLm14X1RvZ2dsZVN3aXRjaF9iYWxsIHtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtICRmb250LTIwcHgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAkZm9udC0yMHB4O1xuICAgIGhlaWdodDogJGZvbnQtMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9udC0yMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1kaXNhYmxlZCk7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgbGVmdCAwLjE1cyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2Utb3V0IDAuMXM7XG4gICAgbGVmdDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVmFsaWRhdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG59XG5cbi5teF9WYWxpZGF0aW9uX2RldGFpbHMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9WYWxpZGF0aW9uX2Rlc2NyaXB0aW9uICsgLm14X1ZhbGlkYXRpb25fZGV0YWlscyB7XG4gICAgbWFyZ2luOiAxZW0gMCAwO1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXRhaWwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgfVxuXG4gICAgJi5teF9WYWxpZGF0aW9uX3ZhbGlkIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5teF9WYWxpZGF0aW9uX2ludmFsaWQge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvY2F0aW9uUGlja2VyIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8qIHdoZW4gdGhlcmUgYXJlIGVycm9ycyBsb2FkaW5nIHRoZSBtYXAgKi9cbiAgICAvKiB0aGUgY2FudmFzIGlzIHN0aWxsIGluc2VydGVkICovXG4gICAgLyogYW5kIGNhbiBvdmVybGFwIGVycm9yIG1lc3NhZ2UvY2xvc2UgYnV0dG9ucyAqL1xuICAgIC8qIGhpZGUgaXQgKi9cbiAgICAmLm14X0xvY2F0aW9uUGlja2VyX2hhc0Vycm9yIHtcbiAgICAgICAgLm1hcGxpYnJlZ2wtY2FudmFzLWNvbnRhaW5lcixcbiAgICAgICAgLm1hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNteF9Mb2NhdGlvblBpY2tlcl9tYXAge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICAubWFwbGlicmVnbC1jdHJsLm1hcGxpYnJlZ2wtY3RybC1ncm91cCxcbiAgICAgICAgLm1hcGxpYnJlZ2wtY3RybC5tYXBsaWJyZWdsLWN0cmwtYXR0cmliIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXBsaWJyZWdsLWN0cmwubWFwbGlicmVnbC1jdHJsLWdyb3VwIHtcbiAgICAgICAgICAgIC8qIHBsYWNlIGJlbG93IHRoZSBjbG9zZSBidXR0b24gKi9cbiAgICAgICAgICAgIC8qIHBhZGRpbmctMTYgKyAyNHB4IGNsb3NlIGJ1dHRvbiArIHBhZGRpbmctMTAgKi9cbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWFwbGlicmVnbC11c2VyLWxvY2F0aW9uLWFjY3VyYWN5LWNpcmNsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtdXNlci1sb2NhdGlvbi1kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2NhdGlvblBpY2tlcl9mb290ZXIge1xuICAgICAgICBmbGV4OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuXG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4gICAgfVxufVxuXG4ubXhfTG9jYXRpb25QaWNrZXJfcGluVGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxNXB4IHJnYigwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cbn1cblxuLm14X0xvY2F0aW9uUGlja2VyX3N1Ym1pdEJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0OHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NhbGxFdmVudF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfQ2FsbEV2ZW50IHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICA+IC5teF9CYXNlQXZhdGFyLFxuICAgID4gLm14X0ljb24ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgID4gLm14X0ljb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5IHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cblxuICAgIC0tZmFjZXBpbGUtYmFja2dyb3VuZDogJHN5c3RlbTtcbn1cblxuLm14X0NhbGxFdmVudF90aXRsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyAvKiBpbiBweCB0byBtYXRjaCB0aGUgYXZhdGFyICovXG59XG5cbi5teF9DYWxsRXZlbnRfaW5hY3RpdmUgLm14X0NhbGxFdmVudF90aXRsZSBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0NhbGxFdmVudF9hY3RpdmUgLm14X0NhbGxFdmVudF90aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9DYWxsRXZlbnRfY29sdW1ucyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubXhfVGltZWxpbmVDYXJkIC5teF9DYWxsRXZlbnRfY29sdW1ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9DYWxsRXZlbnRfZGV0YWlscyB7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4ubXhfQ2FsbEV2ZW50X2J1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTgtMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X0NyZWF0ZUV2ZW50IHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqIERpc2FtYmlndWF0ZWQgcHJvZmlsZSBuZWVkcyB0byBoYXZlIGEgZGlmZmVyZW50IGxheW91dCBpbiB0aGUgbWVtYmVyIHRpbGUgKi9cbi5teF9NZW1iZXJUaWxlVmlldyAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgIC8qIE5hbWUgYW5kIHRoZSB1c2VyIHN0YXR1cyBlbW9qaSBzaGFyZSB0aGUgZmlyc3Qgcm93ICh3aXRoIHRoZSBuYW1lIHRydW5jYXRpbmcgYW5kIHRoZSBlbW9qaSBhbHdheXMgdmlzaWJsZSlcbiAgICAgICBEaXNhbWJpZ3VhdGVkIE1YSUQgZ2V0cyBhIGZ1bGwgcm93IGJlbG93LiAqL1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW4tY29udGVudCAxZnI7XG5cbiAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfdXNlclN0YXR1cyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICB9XG5cbiAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfbXhpZCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIHNwYW46bm90KC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9teGlkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICBJbiBhIG1lbWJlciB0aWxlLCB0aGlzIHNwYW4gZWxlbWVudCBpcyBhIGdyaWQgY2hpbGQgYW5kIHNvXG4gICAgICAgIHdlIG5lZWQgdGhlIGZvbGxvd2luZyBmb3IgdGV4dCBvdmVyZmxvdyB0byB3b3JrLlxuICAgICAgICAqKi9cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcGFuZWwtYmctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2ljb25CdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2luZm8ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2luZm9fYmFzaWMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7IC8qIFRvIG1hdGNoIG14X0xlZ2FjeUNhbGxFdmVudCAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3NlbmRlciB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTsgLyogU2VlIG14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2J1dHRvbnMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQycHg7IC8qIGF2YXRhciAoMzJweCkgKyBteF9MZWdhY3lDYWxsRXZlbnRfaW5mb19iYXNpYyBtYXJnaW4gKDEwcHgpICovXG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9jb250ZW50X2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgQG1peGluIExlZ2FjeUNhbGxCdXR0b247XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9jb250ZW50X3Rvb2x0aXAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsRXZlbnRfbmFycm93IHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogdW5zZXQ7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDI5MHB4O1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2ljb25CdXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2luZm8ge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9MZWdhY3lDYWxsRXZlbnRfdHlwZV9pY29uIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlOmhhcyg+IFtkYXRhLXRlc3RpZD1cImV2ZW50LXRpbGUtbGluZVwiXSA+IFtkYXRhLXRlc3RpZD1cImV2ZW50LXRpbGUtc2xvdC1ib2R5XCJdIC5teF9MZWdhY3lDYWxsRXZlbnQpIHtcbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JUkNMYXlvdXQge1xuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogZGlzcGxheSBncmVlbiBsaW5lICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUdWxpciBBc29rYW4gPHR1bGlyQG1hdW5pdW0ubmV0PlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTUltYWdlUmVwbHlCb2R5LFxuLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICAubXhfTUltYWdlQm9keV9iYW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCAzNTBweCk7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfcGxhY2Vob2xkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAgICAgLm14X0JsdXJoYXNoID4gY2FudmFzIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbXgtLWFuaW0tcHVsc2UgMS43NXMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3RodW1ibmFpbF9jb250YWluZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29udGFpbjogcGFpbnQ7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfdGh1bWJuYWlsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfZ2lmTGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMTRweDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpbWFnZWJvZHktZ2lmbGFiZWw7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRpbWFnZWJvZHktZ2lmbGFiZWwtYm9yZGVyO1xuICAgICAgICBjb2xvcjogJGltYWdlYm9keS1naWZsYWJlbC1jb2xvcjtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfTUltYWdlUmVwbHlCb2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAubXhfTUltYWdlQm9keV90aHVtYm5haWxfY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBQcmV2ZW50IGEgYmxvd291dCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiA0NTBweDtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgei1pbmRleDogMDsgLyoga2VlcHMgdGhlIGVudGlyZSBtYXAgdW5kZXIgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhciAqL1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4vKiBMb2NhdGlvbiBtYXBzIHVzZSB0aGUgZnVsbCBldmVudC1saW5lIHdpZHRoIGluc3RlYWQgb2YgdGhlIHRleHQtYm9keSBndXR0ZXIuICovXG4ubXhfRXZlbnRUaWxlX2xpbmUgLm14X01Mb2NhdGlvbkJvZHkge1xuICAgIC0tZXZlbnQtdGlsZS1jb250ZW50LWlubGluZS1lbmQ6IDA7XG59XG5cbi8qIEluIHRoZSB0aW1lbGluZSwgd2UgZml0IHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyICovXG4ubXhfRXZlbnRUaWxlX2xpbmUgLm14X01Mb2NhdGlvbkJvZHkgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBCdWJibGUgbGluZXMgdXNlIHNocmluay10by1maXQgc2l6aW5nLiBHaXZlIHRoZSBtYXAgYW4gaW50cmluc2ljIHdpZHRoXG4gICBiZWZvcmUgY29uc3RyYWluaW5nIGl0IHRvIHRoZSBhdmFpbGFibGUgYnViYmxlIHdpZHRoLiAqL1xuLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5X2J1YmJsZSAubXhfTUxvY2F0aW9uQm9keV9tYXAge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogNDUwcHg7XG59XG5cbi8qIEV2ZW50VGlsZVZpZXcgcGxhY2VzIHRoZSBzZW5kZXIgYW5kIGJvZHkgaW4gc2VwYXJhdGUgc2xvdCBib3VuZGFyaWVzLiAqL1xuLm14X0V2ZW50VGlsZSA+IDpoYXMoPiAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUpIH4gLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7IC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21hdHJpeC1vcmcvbWF0cml4LXJlYWN0LXNkay9wdWxsLzg0NDIgKi9cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRwb2xsLW1heC13aWR0aDogNTUwcHg7XG5cbi5teF9NUG9sbEJvZHkge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWluLXdpZHRoOiAwOyAvKiBPdmVycmlkZSBmaWVsZHNldCBkZWZhdWx0IG1pbi13aWR0aDogbWluLWNvbnRlbnQgKi9cbiAgICB3aWR0aDogMTAwJTsgLyogRW5zdXJlIGZpZWxkc2V0IHRha2VzIGZ1bGwgYXZhaWxhYmxlIHdpZHRoICovXG4gICAgYm9yZGVyOiBub25lOyAvKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBib3JkZXIgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBwYWRkaW5nICovXG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IG1hcmdpbiAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogUHJlc2VydmUgdGhlIGZpZWxkc2V0IGRpc3BsYXkgdmFsdWUgd2UgdXNlZCB0byBzZXQgZ2xvYmFsbHkgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDsgLyogUmVtb3ZlIGRlZmF1bHQgbGVnZW5kIHBhZGRpbmcgKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1oZWFkaW5nLWxnKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9NUG9sbEJvZHlfZWRpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcm9vbXRvcGljLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01Qb2xsQm9keV90b3RhbFZvdGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGlubGluZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTVBvbGxCb2R5X2J1YmJsZSB7XG4gICAgICAgIHdpZHRoOiA1NTBweDsgLyogdG8gcHJldmVudCB0aW1lc3RhbXAgb3ZlcmxhcHBpbmcgc3VtbWFyeSB0ZXh0ICovXG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogcHJldmVudCBvdmVyZmxvd2luZyBhIHJlcGx5IHRpbGUgKi9cblxuICAgICAgICAubXhfTVBvbGxCb2R5X3RvdGFsVm90ZXMge1xuICAgICAgICAgICAgLyogYWxpZ24gc3VtbWFyeSB0ZXh0IHdpdGggY29ybmVyIHRpbWVzdGFtcCAqL1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NUG9sbEJvZHlfYWxsT3B0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXgtd2lkdGg6ICRwb2xsLW1heC13aWR0aDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTVN0aWNrZXJCb2R5X3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDEycHggMHB4O1xufVxuXG4ubXhfTVN0aWNrZXJCb2R5X2hpZGRlbiB7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLyogVG8gY2VudGVyIHRoZSB0ZXh0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGZyYW1lICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfTVN0aWNrZXJCb2R5X3BsYWNlaG9sZGVyIHtcbiAgICAvKiBjZW50ZXJpbmcgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA0MHB4KTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNDBweCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBFdmVudFRpbGVWaWV3IG93bnMgdGhlIGdlbmVyaWMgYWN0aW9uLWJhciBnZW9tZXRyeS4gVGhlc2UgYXJlIGFwcGxpY2F0aW9uXG4gICBjb250ZXh0IGV4Y2VwdGlvbnMgYW5kIGludGVudGlvbmFsbHkgdGFyZ2V0IG9ubHkgdGhlIG91dGVyIHNsb3Qgd3JhcHBlci4gKi9cbi5teF9FdmVudFRpbGVfbGluZSA+IDpoYXMoPiAubXhfTWVzc2FnZUFjdGlvbkJhcik6OmJlZm9yZSB7XG4gICAgLyogSW1wcm92ZSBjbGlja2FiaWxpdHkgb2YgdGhlIGZpcnN0IGV2ZW50IGJlbG93IGEgY29sbGFwc2VkIGJ1YmJsZSBzdW1tYXJ5LiAqL1xuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlXG4gICAgICAgIH4gLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdFxuICAgICAgICAubXhfRXZlbnRUaWxlOmZpcnN0LW9mLXR5cGVcbiAgICAgICAgJiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgIH1cblxuICAgIC8qIFJlbW92ZSB0aGUgdmVydGljYWwgc2FmZSBhcmVhIGZvciB2aWV3LXNvdXJjZSBldmVudHMuICovXG4gICAgLm14X0V2ZW50VGlsZTpoYXMoPiAubXhfRXZlbnRUaWxlX2xpbmUgLm14X1ZpZXdTb3VyY2VFdmVudCkgJiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgIH1cbn1cblxuLyogQWxpZ24gZXZlbnQgYWN0aW9uIGJhcnMgd2l0aCByaWdodC1jb2x1bW4gYnViYmxlcyBpbiBhbiBleHBhbmRlZCBidWJibGVcbiAgIHN1bW1hcnkuICovXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1bZGF0YS1leHBhbmRlZD1cInRydWVcIl1cbiAgICA+IC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3RcbiAgICA+IC5teF9FdmVudFRpbGVcbiAgICA+IC5teF9FdmVudFRpbGVfbGluZVxuICAgID4gOmhhcyg+IC5teF9NZXNzYWdlQWN0aW9uQmFyKSB7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICAgIGluc2V0LWlubGluZS1lbmQ6IDQ4cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGV4dHVhbEJvZHlfdXJsUHJldmlld3Mge1xuICAgIC8qIFNlcGFyYXRlIHRoZSBwcmV2aWV3IGdyb3VwIGZyb20gdGhlIG1lc3NhZ2UgdGV4dCBhYm92ZSBpdC4gKi9cbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgLyogTGV0IHNoYXJlZC1jb21wb25lbnRzIG93biBwcmV2aWV3IGxpbmsgY29sb3VycyBpbnN0ZWFkIG9mIHRoZSBhcHAtd2lkZSBhbmNob3IgY29sb3VyLiAqL1xuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmhvdmVyLFxuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmxpbmssXG4gICAgYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKSk6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiByZXZlcnQtbGF5ZXI7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1RocmVhZEFjdGlvbkJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0b3A6IGNhbGMoLTEgKiAoMjhweCArIDIgKiAoM3B4ICsgdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSkpKTtcbiAgICByaWdodDogOHB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIEVuc3VyZSB0aGUgYWN0aW9uIGJhciBhcHBlYXJzIGFib3ZlIG90aGVyIHRoaW5ncyBsaWtlIHRoZSByZWFkIG1hcmtlciAqL1xuICAgIC8qIGFuZCBzZW5kZXIgYXZhdGFyIChmb3Igc21hbGwgc2NyZWVucykgKi9cbiAgICB6LWluZGV4OiAxMDtcblxuICAgIC8qIEFkZHMgYSBwcmV2aW91cyBldmVudCBzYWZlIGFyZWEgc28gdGhhdCB5b3UgY2FuJ3QgYWNjaWRlbnRhbGx5IGhvdmVyIHRoZSAqL1xuICAgIC8qIHByZXZpb3VzIGV2ZW50IHdoaWxlIHRyeWluZyB0byBtb3VzZSBpbnRvIHRoZSBhY3Rpb24gYmFyIG9yIGZyb20gdGhlICovXG4gICAgLyogcmVhY3QgYnV0dG9uIHRvIGl0cyB0b29sdGlwLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdG9vbHRpcCBzYWZlIG1vdXNpbmcgYXJlYSArIHRvb2x0aXAgb3ZlcmhhbmcgKyAqL1xuICAgICAgICAvKiBhY3Rpb24gYmFyICsgYWN0aW9uIGJhciBvZmZzZXQgZnJvbSBldmVudCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMHB4ICsgNDhweCArIDEwMCUgKyA4cHgpO1xuICAgICAgICAvKiBzYWZlIGFyZWEgKyBhY3Rpb24gYmFyICovXG4gICAgICAgIGhlaWdodDogY2FsYygyMHB4ICsgMTAwJSk7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIGxlZnQ6IC01OHB4O1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FdmVudFRpbGVCdWJibGUubXhfY3J5cHRvRXZlbnQge1xuICAgIG1hcmdpbjogdmFyKC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jaykgYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsSGlzdG9yeV9jb250ZW50IHtcbiAgICBoZWlnaHQ6IDYwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfUG9sbEhpc3RvcnlfaGVhZGVyLm14X0hlYWRpbmdfaDIge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbEhpc3RvcnlMaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLm14X1BvbGxIaXN0b3J5TGlzdF9saXN0IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ibG9jazogMDtcbiAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xNngpO1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTh4KSAwO1xuXG4gICAgJi5teF9Qb2xsSGlzdG9yeUxpc3RfbGlzdF9FTkRFRCB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICB9XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3Rfbm9SZXN1bHRzIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0xNngpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfUG9sbEhpc3RvcnlMaXN0X2xvYWRNb3JlUG9sbHMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cbn1cblxuLm14X1BvbGxIaXN0b3J5TGlzdF9sb2FkaW5nIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8qIGNlbnRlciBpbiBhbGwgZnJlZSBzcGFjZVxuICAgIHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHMgKi9cbiAgICAmLm14X1BvbGxIaXN0b3J5TGlzdF9ub1Jlc3VsdHNZZXQge1xuICAgICAgICBtYXJnaW46IGF1dG8gYXV0bztcbiAgICB9XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbG9hZE1vcmVQb2xscyB7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Jhc2VDYXJkIHtcbiAgICAtLUJhc2VDYXJkX0V2ZW50VGlsZV9saW5lLXBhZGRpbmctYmxvY2s6IDJweDtcbiAgICAtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZTogMzZweDtcbiAgICAtLUJhc2VDYXJkX2hlYWRlci1idXR0b24tc2l6ZTogMjhweDtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktbWQpO1xuXG4gICAgLm14X0Jhc2VDYXJkX2hlYWRlciB7XG4gICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLyogY2hhbmdpbmcgdGhlIGNvbG9yIGZyb20gJHNlcGFyYXRvciB0byB0cmFuc3BhcmVudCBhcyBpdCBpc1xuICAgICAgICAgICB0aGUgYmVzdCB2aXN1YWwgb3V0cHV0IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2QuIFRoaXMgd2lsbCBiZVxuICAgICAgICAgICByZWludHJvZHVjZWQgYXQgYSBsYXRlciBzdGFnZS4gKi9cbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgJHNlcGFyYXRvcjtcblxuICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3NwYWNlciB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgNDRweDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CYXNlQ2FyZF9oZWFkZXJfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQ2FyZF9oZWFkZXJfdGl0bGVfYnV0dG9uLS1vcHRpb24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1CYXNlQ2FyZF9oZWFkZXItYnV0dG9uLXNpemUpIC0gNHB4KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tQmFzZUNhcmRfaGVhZGVyLWJ1dHRvbi1zaXplKSAtIDRweCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgfVxuXG4gICAgLm14X0Jhc2VDYXJkX2Zvb3RlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlIHtcbiAgICAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcblxuICAgICAgICBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIH1cblxuICAgIC5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX3RvcCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAyMnB4O1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJvcmRlcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IC04cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW1wdHlTdGF0ZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogNTZweDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIC8qIEJsb29tIHVzaW5nIG1hZ2ljIG51bWJlcnMgZGlyZWN0bHkgb3V0IG9mIEZpZ21hICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHdpZHRoOiA2NDJweDtcbiAgICAgICAgaGVpZ2h0OiA3NzVweDtcbiAgICAgICAgcmlnaHQ6IC0yNTMuNzdweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNDkuOTUlIDQ5Ljk1JSBhdCA1MCUgNTAlLCByZ2IoMTMsIDE4OSwgMTM5LCAwLjEyKSAwJSwgcmdiKDE4LCAxMTUsIDIzNSwgMCkgMTAwJSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC04OS42OWRlZyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VuY3J5cHRpb25JbmZvX3NwaW5uZXIge1xuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICB9XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXh0ZW5zaW9uc0NhcmQge1xuICAgIC0tY3BkLXNlcGFyYXRvci1zcGFjaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIC0tQWRkRXh0ZW5zaW9uLW92ZXJsYXA6IC03NnB4O1xuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAvKiBTdHlsaW5nIGZvciB0aGUgXCJBZGQgZXh0ZW5zaW9uc1wiIGJ1dHRvbiAqL1xuICAgICAgICAmID4gYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V4dGVuc2lvbnNDYXJkX2NvbnRhaW5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNXgpIHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfRXh0ZW5zaW9uc0NhcmRfQnV0dG9uIHtcbiAgICAgICAgLyogdGhpcyBidXR0b24gaXMgc3BlY2lhbCBzbyB3ZSBoYXZlIHRvIG92ZXJyaWRlIHNvbWUgb2YgdGhlIG9yaWdpbmFsIHN0eWxpbmcgKi9cbiAgICAgICAgLyogYXMgd2Ugd2lsbCBiZSBhcHBseWluZyBpdCBpbiBpdHMgY2hpbGRyZW4gKi9cbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubXhfV2lkZ2V0QXZhdGFyIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2ljb25fYXBwIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2FwcF9waW5Ub2dnbGUsXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfb3B0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8qIHRvIGdpdmUgYmlnZ2VyIGludGVyYWN0aXZlIHpvbmUgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpOyAvKiBlcXVhbCB0byBwYWRkaW5nLXRvcCBvZiBwYXJlbnQgKi9cbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwgMTUxLCAxNjUsIDAuMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2FwcF9waW5Ub2dnbGUge1xuICAgICAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfb3B0aW9ucyB7XG4gICAgICAgICAgICByaWdodDogMzJweDsgLyogMjQgKyA4ICovXG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V4dGVuc2lvbnNDYXJkX0J1dHRvbl9waW5uZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2FwcF9waW5Ub2dnbGUgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogcmUtYWxpZ24gYmFzZWQgb24gdGhlIGhlaWdodCBjaGFuZ2UgKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBwYXNzIHRocm91Z2ggdG8gdGhlIHJlYWwgYnV0dG9uICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBTZXQgbGF5b3V0IGZvciBldmVyeW9uZSBidXR0b24gKi9cbiAgICBhW2RhdGEta2luZD1cInByaW1hcnlcIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcbiAgICB9XG5cbiAgICAubXhfRW1wdHlTdGF0ZTo6YmVmb3JlIHtcbiAgICAgICAgLyogT3ZlcmxhcCB0aGUgQWRkIGV4dGVuc2lvbnMgYnV0dG9uICovXG4gICAgICAgIHRvcDogdmFyKC0tQWRkRXh0ZW5zaW9uLW92ZXJsYXApO1xuICAgIH1cblxuICAgIC5teF9FbXB0eVN0YXRlIHtcbiAgICAgICAgLyogU3RvcCBlbXB0eSBzdGF0ZSBzY3JvbGxpbmcgKi9cbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1BZGRFeHRlbnNpb24tb3ZlcmxhcCkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIFRoZSB1c2VyY29udGVudCBpZnJhbWUgdGhlIGRvY3VtZW50IGlzIHJlbmRlcmVkIGluLiAqL1xuLm14X1BkZlZpZXdlcl9pZnJhbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMDtcbiAgICAvKiBMZXRzIHRoZSBwYW5lbCdzIGJhY2tncm91bmQgc2hvdyB0aHJvdWdoIGFyb3VuZCB0aGUgcGFnZXMuICovXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlubmVkTWVzc2FnZXNDYXJkIHtcbiAgICAtLXVucGluLWhlaWdodDogNzZweDtcblxuICAgIC5teF9QaW5uZWRNZXNzYWdlc0NhcmRfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX1NlcGFyYXRvciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAvKiBPdmVycmlkZSBkZWZhdWx0IGNvbXBvdW5kIHZhbHVlICovXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3dyYXBwZXJfdW5waW5fYWxsIHtcbiAgICAgICAgLyogUmVtb3ZlIHRoZSB1bnBpbiBhbGwgYnV0dG9uIGhlaWdodCBhbmQgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tdW5waW4taGVpZ2h0KSAtIGNhbGModmFyKC0tY3BkLXNwYWNlLTR4KSAqIDIpKTtcbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3VucGluIHtcbiAgICAgICAgLyogTWFrZSBpdCBmbG9hdCBhdCB0aGUgYm90dG9tIG9mIHRoZSB1bnBpbiBwYW5lbCAqL1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogdmFyKC0tdW5waW4taGVpZ2h0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU3VtbWFyeUNhcmQge1xuICAgIC0tY3BkLXNlcGFyYXRvci1pbnNldDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfY29udGFpbmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIH1cblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfcm9vbU5hbWUsXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF9hbGlhcyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX2FsaWFzIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpYyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2NvbnRhaW5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2VkaXQge1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY29sbGFwc2VkIHtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9Sb29tU3VtbWFyeUNhcmRfYmFkZ2VzIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9zZWFyY2gge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdW5zZXQ7IC8qIG92ZXJyaWRlIF9jb21tb24ucGNzcyB3aGljaCBpbmhpYml0cyB0aGlzICovXG4gICAgfVxufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX3Jvb21OYW1lIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX2JvdHRvbU9wdGlvbnMge1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaHJlYWRQYW5lbCB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIC5teF9UaHJlYWRQYW5lbEhlYWRlciB7XG4gICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRQYW5lbF92ZXJ0aWNhbF9zZXBhcmF0b3Ige1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfZHJvcGRvd24ge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCB2YXIoLS1jcGQtc3BhY2UtMXgpIDNweCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOyAvKiBzZXQgZ2FwIGJldHdlZW4gdGhlIHRocmVhZCB0aWxlIGFuZCB0aGUgcmlnaHQgYm9yZGVyICovXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiBGb3Igc3R5bGUgcnVsZXMgb2YgRXZlbnRUaWxlIGluIGEgdGhyZWFkLCBzZWUgX0V2ZW50VGlsZS5wY3NzICovXG4gICAgJi5teF9UaHJlYWRWaWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfVGhyZWFkVmlld190aW1lbGluZVBhbmVsV3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwOyAvKiBkb24ndCBkaXNwbGFjZSB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgLm14X0ZpbGVEcm9wVGFyZ2V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3NlbmRNZXNzYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgdXNlIG9mIHRoZSBzcGFjZSBhYm92ZSB0aGUgY29tcG9zZXIgYnV0dG9ucyB0b28gKi9cbiAgICAgICAgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTQwcHgpO1xuICAgICAgICB9XG4gICAgICAgICYubXhfVGhyZWFkVmlld19uYXJyb3cgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTA4cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCB7XG4gICAgICAgICYubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgNnB4KTsgLyogOHB4IC0gMnB4ICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVZpZXdfZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgLyogQWNjb3VudCBmb3Igc2Nyb2xsYmFyIHdoZW4gaG92ZXJpbmcgKi9cbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X1RpbWVsaW5lU2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubXhfQmFzZUNhcmRfZm9vdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIge1xuICAgIC5teF9UaHJlYWRQYW5lbF9IZWFkZXJfRmlsdGVyT3B0aW9uSXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtY2hlY2tlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaW1lbGluZUNhcmQge1xuICAgIC5teF9UaW1lbGluZUNhcmRfdGltZWxpbmUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIG9mZnNldCBwYXJlbnQgZm9yIGp1bXAgdG8gYm90dG9tIGJ1dHRvbiAqL1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X05ld1Jvb21JbnRybyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG8gNXB4O1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3QgPiAubXhfRXZlbnRUaWxlID4gOmhhcyg+IC5teF9CYXNlQXZhdGFyKSB+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTsgLyogZW5zdXJlIHRpbWVzdGFtcCBpcyBub3QgaGlkZGVuICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4OyAvKiB1bmRvIHBhZGRpbmcgb24gdGhlIG1lc3NhZ2UgbGlzdCAqL1xuICAgIH1cblxuICAgIC5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDQ4cHg7IC8qIDEyIChwYWRkaW5nIG9uIG1lc3NhZ2UgbGlzdCkgKyAzNiAocGFkZGluZyBvbiBldmVudCBsaW5lcykgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJJbmZvLm14X0Jhc2VDYXJkIHtcbiAgICAvKiBVc2VySW5mbyBoYXMgYSBjaXJjdWxhciBpbWFnZSBhdCB0aGUgdG9wIHNvIGl0IGZpdHMgYmV0d2VlbiB0aGUgYmFjayAmIGNsb3NlIGJ1dHRvbnMgKi9cbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcblxuICAgIC5teF9Vc2VySW5mb19jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgJiArIC5teF9Vc2VySW5mb19jb250YWluZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXBhcmF0b3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXM7XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAvKiBPdmVycmlkZSB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUgc28gdGhhdCB0aGUgbGV0dGVyIGlzbid0IHRpbnkgKi9cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyLFxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3Byb2ZpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZV9uYW1lIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgICAgIC8qIGxpbWl0IHRvIDIgbGluZXMsIHNob3cgYW4gZWxsaXBzaXMgaWYgaXQgb3ZlcmZsb3dzICovXG4gICAgICAgICAgICAvKiB0aGlzIGxvb2tzIHdlYmtpdCBzcGVjaWZpYyBidXQgaXMgc3VwcG9ydGVkIGJ5IEZpcmVmb3ggNjgrICovXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Vc2VySW5mb19wcm9maWxlX214aWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZVN0YXR1cyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdGltZXpvbmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogT3ZlcnJpZGVzIGZvciB0aGUgY29weSB0byBjbGlwYm9hcmQgYnV0dG9uICoqL1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb190aW1lem9uZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUxhYmVsIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9iYWRnZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDY4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9pY29uIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1VzZXJJbmZvX3ZlcmlmaWVkX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uX3VuYXZhaWxhYmxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX2ZpZWxkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3N0YXR1c01lc3NhZ2Uge1xuICAgICAgICAkc3RhdHVzTnVtYmVyT2ZMaW5lczogMztcblxuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxcmVtICogJHN0YXR1c051bWJlck9mTGluZXMpO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRzdGF0dXNOdW1iZXJPZkxpbmVzO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cblxuICAgICYubXhfVXNlckluZm9fc21hbGxBdmF0YXIge1xuICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyIHtcbiAgICAgICAgICAgIC5teF9Vc2VySW5mb19hdmF0YXJfdHJhbnNpdGlvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGNhbGN1bGF0ZWQgZm9udC1zaXplIHNvIHRoYXQgdGhlIGxldHRlciBpc24ndCB0aW55ICovXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmaWNhdGlvblBhbmVsX3ZlcmlmaWVkX3NlY3Rpb24sXG4ubXhfVmVyaWZpY2F0aW9uUGFuZWxfcmVjaXByb2NhdGVfc2VjdGlvbiB7XG4gICAgLyogY2VudGVyIHRoZSBiaWcgc2hpZWxkIGljb24gKi9cbiAgICAubXhfRTJFSWNvbiB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGdlbmVyYWwgdXNlciBpbmZvIG1hcmdpbiAqL1xuICAgICAgICBtYXJnaW46IDIwcHggYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X1VzZXJJbmZvLm14X0Jhc2VDYXJkIHtcbiAgICAubXhfVXNlckluZm9fY29udGFpbmVyOm5vdCgubXhfVXNlckluZm9fc2VwYXJhdG9yKSB7XG4gICAgICAgID4gZGl2ID4gcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZnlCeUVtb2ppQnV0dG9uLFxuICAgICAgICAubXhfVXNlckluZm9fd2lkZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRW5jcnlwdGlvbkluZm9fc3Bpbm5lcixcbiAgICAgICAgLm14X1ZlcmlmaWNhdGlvblNob3dTYXMge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwaW5uZXIsXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25TaG93U2FzIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfcXJDb2RlIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDRweCAwIDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIC8qIE92ZXJyaWRlIGdlbmVyYWwgdXNlciBpbmZvIG1hcmdpbiAqL1xuICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuXG4gICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgICAvKiBvdmVycmlkZSBoZWlnaHQgYW5kIHdpZHRoIHdoaWNoIGFyZSBzZXQgb24gdGhlIGVsZW1lbnQgZGlyZWN0bHkgKi9cbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfcmVjaXByb2NhdGVfc2VjdGlvbiB7XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBTcGVjaWFsIGNhc2Ugc3R5bGluZyBmb3IgRW5jcnlwdGlvblBhbmVsIGluIGEgTW9kYWwgZGlhbG9nICovXG4ubXhfRGlhbG9nLFxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYm9keSB7XG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2Vfc3RhcnRPcHRpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgID4gLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2VfYmV0d2VlblRleHQge1xuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX3N0YXJ0T3B0aW9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMxMHB4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICBjYW52YXMsXG4gICAgICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9ub1FSIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjIwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX2hlbHBUZXh0IHtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMzBweCAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIEVuY3J5cHRpb25QYW5lbCB3aGVuIHZlcmlmaWNhdGlvbiBpcyBkb25lICovXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3ZlcmlmaWVkX3NlY3Rpb24ge1xuICAgICAgICAvKiByaWdodCBhbGlnbiB0aGUgXCJHb3QgaXRcIiBidXR0b24gKi9cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlQnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2lkZ2V0Q2FyZCB7XG4gICAgLm14X0FwcFRpbGVGdWxsV2lkdGgge1xuICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FsaWFzU2V0dGluZ3NfbG9jYWxBZGRyZXNzZXMge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAvKiBsaXN0LXN0eWxlIGRvZXNuJ3QgZG8gaXQgZm9yIHdlYmtpdCAqL1xuICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Jvb21MaXN0UGFuZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BcHBzRHJhd2VyIHtcbiAgICAtLW1pbldpZHRoOiAyNDBweDsgLyogVE9ETyB0aGlzIHNob3VsZCBiZSAzMDBweCBidXQgdGhhdCdzIHRvbyBsYXJnZSAqL1xuXG4gICAgbWFyZ2luOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICAvKiBUaGUgbGVmdCBzaWRlIGdhcCBpcyBmdWxseSBoYW5kbGVkIGJ5IHRoaXMgbWFyZ2luLiBUbyBwcm9oaWJpdCBibGVlZGluZyBvbiB3ZWJraXQgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBObyBib3R0b20gbWFyZ2luIGZvciB0aGUgY29ycmVjdCBnYXAgdG8gdGhlIENhbGxWaWV3IGJlbG93LiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgfVxuXG4gICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplcl9jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXJfY29udGFpbmVyX2hhbmRsZSB7XG4gICAgICAgICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcblxuICAgICAgICAgICAgLyogT3ZlcnJpZGUgc3R5bGVzIGZyb20gbGlicmFyeSwgbWFraW5nIHRoZSB3aG9sZSBhcmVhIHRoZSB0YXJnZXQgYXJlYSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAvKiBUaGlzIGlzIHBvc2l0aW9uZWQgZGlyZWN0bHkgYmVsb3cgZnJhbWUgKi9cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogNTAlICFpbXBvcnRhbnQ7IC8qIG92ZXJyaWRlIGZyb20gbGlicmFyeSAqL1xuXG4gICAgICAgICAgICAvKiBXZSB0aGVuIHJlbmRlciB0aGUgcGlsbCBoYW5kbGUgaW4gYW4gOjphZnRlciB0byBrZWVwIGl0IGluIHRoZSBoYW5kbGUncyAqL1xuICAgICAgICAgICAgLyogYXJlYSB3aXRob3V0IGJlaW5nIGEgbWFzc2l2ZSBsaW5lIGFjcm9zcyB0aGUgc2NyZWVuICovXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAgICAgLyogVG9nZXRoZXIsIHRoZXNlIG1ha2UgdGhlIGJhciA2NHB4IHdpZGUgKi9cbiAgICAgICAgICAgICAgICAvKiBUaGVzZSBhcmUgYWxzbyBvdmVycmlkZGVuIGZyb20gdGhlIGxpYnJhcnkgKi9cbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDMycHgpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDUwJSAtIDMycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXJfY29udGFpbmVyX2hhbmRsZTo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWw6OmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAzcHg7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuXG4gICAgICAgICAgICBoZWlnaHQ6IDY0cHg7IC8qIHRvIG1hdGNoIHdpZHRoIG9mIHRoZSBvbmVzIG9uIHJvb21saXN0ICovXG4gICAgICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKTtcbiAgICB9XG5cbiAgICAmLm14X0FwcHNEcmF3ZXItLW1heGltaXNlZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgIH1cblxuICAgICYubXhfQXBwc0RyYXdlci0tcmVzaXppbmcgLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlciB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJi5teF9BcHBzRHJhd2VyLS0yYXBwcyAubXhfQXBwVGlsZSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tbWluV2lkdGgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5teF9BcHBzRHJhd2VyLS0zYXBwcyAubXhfQXBwVGlsZSB7XG4gICAgICAgIHdpZHRoOiAzMyU7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tbWluV2lkdGgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BcHBzQ29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgIC5teF9BcHBUaWxlOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogdmFyKC0tY29udGFpbmVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XG4gICAgfVxuICAgIC5teF9BcHBUaWxlOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogdmFyKC0tY29udGFpbmVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG4gICAgfVxuXG4gICAgLm14X1Jlc2l6ZUhhbmRsZS0taG9yaXpvbnRhbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0FwcFRpbGUge1xuICAgIGJvcmRlcjogdmFyKC0tY29udGFpbmVyLWJvcmRlci13aWR0aCkgc29saWQgJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xufVxuXG4ubXhfQXBwVGlsZUZ1bGxXaWR0aCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLyogdG8gb3ZlcnJpZGUgdGhlIGlubGluZSBzdHlsZSBzZXQgYnkgdGhlIHJlc2l6ZXIgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpIHNvbGlkICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xufVxuXG4ubXhfQXBwVGlsZV9taW5pIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfQXBwVGlsZSAubXhfQXBwVGlsZV9wZXJzaXN0ZWRXcmFwcGVyLFxuLm14X0FwcFRpbGVGdWxsV2lkdGggLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlcixcbi5teF9BcHBUaWxlX21pbmkgLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlciB7XG4gICAgZmxleDogMTtcbn1cblxuLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlciBkaXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X0FwcFRpbGVNZW51QmFyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcblxuICAgIC5teF9BcHBUaWxlTWVudUJhcl90aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgICAubXhfV2lkZ2V0QXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDlweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXJfd2lkZ2V0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X0FwcFRpbGVNZW51QmFyX3dpZGdldHNfYnV0dG9uIHtcbiAgICAgICAgICAgIC0tc2l6ZTogMjRweDsgLyogU2l6ZSBvZiB0aGUgYnV0dG9uLiBJdHMgaGVpZ2h0IGFuZCB3aWR0aCB2YWx1ZXMgc2hvdWxkIGJlIHNhbWUgKi9cblxuICAgICAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogUnVsZXMgYWRkZWQgdG8gdGhpcyBzZWxlY3RvciBzdHlsZSBhcHBUaWxlQm9keSBnZW5lcmFsbHkgKi9cbi5teF9BcHBUaWxlQm9keSB7XG4gICAgLyogQXBwbHkgdG8gZXZlcnkgdmFyaWFudCBvZiBhcHBUaWxlQm9keSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIC8qIGNvbnN0IGxvYWRpbmdFbGVtZW50ICovXG4gICAgLyogTm90ZSB0aGUgbG9hZGluZyBzcGlubmVyIGFuZCB0aGUgbWVzc2FnZSBuZXh0IHRvIGl0IGFyZSBub3QgYWx3YXlzIGluY2x1ZGVkIGluIG14X0FwcFRpbGVCb2R5LS1sb2FkaW5nICovXG4gICAgLm14X0FwcFRpbGVCb2R5X2ZhZGVJblNwaW5uZXIge1xuICAgICAgICAvKiBwbGFjZSBzcGlubmVyIGFuZCB0aGUgbWVzc2FnZSBhdCB0aGUgY2VudGVyIG9mIG14X0FwcFRpbGVCb2R5ICovXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IC8qIG1lc3NhZ2UgbmV4dCB0byB0aGUgc3Bpbm5lciAqL1xuICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjAwbXM7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogNTAwbXM7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBteF9BcHBUaWxlQm9keV9mYWRlSW5TcGlubmVyQW5pbWF0aW9uO1xuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWxhcmdlLFxuICAgICYubXhfQXBwVGlsZUJvZHktLW1pbmkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWxhcmdlIHtcbiAgICAgICAgLS1BcHBUaWxlQm9keS1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1ib2R5LWJnLWNvbG9yO1xuXG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BcHBUaWxlQm9keS0tbG9hZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAvKiBtYXRjaCBiZyBvZiBib3JkZXIgc28gdGhhdCB0aGUgY3V0IGNvcm5lcnMgaGF2ZSB0aGUgcmlnaHQgZmlsbCAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LWJvZHktYmctY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWNhbGwge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgfVxuICAgICYubXhfQXBwVGlsZUJvZHktLWNhbGwubXhfQXBwVGlsZUJvZHktLW1pbmkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuXG4vKiBhcHBUaWxlQm9keSBpcyBlbWJlZGRlZCB0byBQZXJzaXN0ZWRFbGVtZW50IG91dHNpZGUgb2YgbXhfQXBwVGlsZSxcbiAgIHNvIHJ1bGVzIHRvIHN0eWxlIGFwcFRpbGVCb2R5IGdlbmVyYWxseSBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGhlcmUuICovXG4ubXhfQXBwVGlsZSAubXhfQXBwVGlsZUJvZHktLWxhcmdlLFxuLm14X0FwcFRpbGVGdWxsV2lkdGggLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbi5teF9BcHBUaWxlX21pbmkgLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgZmxleDogMTtcbn1cblxuQGtleWZyYW1lcyBteF9BcHBUaWxlQm9keV9mYWRlSW5TcGlubmVyQW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbiIsIi5teF9BdXRvY29tcGxldGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTAwMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuICAgIG92ZXJmbG93OiBjbGlwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3gtc2hhZG93OiAwcHggLTE2cHggMzJweCAkY29tcG9zZXItc2hhZG93LWNvbG9yO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX1Byb3ZpZGVyU2VjdGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBhIFwiYmxvY2tcIiBjb21wbGV0aW9uIHRha2VzIHVwIGEgd2hvbGUgbGluZSAqL1xuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2Jsb2NrIHtcbiAgICBtaW4taGVpZ2h0OiAzNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2Jsb2NrICoge1xuICAgIG1hcmdpbjogMCAzcHg7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9waWxsIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgaGVpZ2h0OiAkZm9udC0zNHB4O1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fcGlsbCA+ICoge1xuICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xufVxuXG4vKiBzdHlsaW5nIGZvciBjb21tb24gY29tcGxldGlvbiBlbGVtZW50cyAqL1xuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3N1YnRpdGxlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZmxleDogMTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2Rlc2NyaXB0aW9uIHtcbiAgICBjb2xvcjogZ3JheTtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fY29udGFpbmVyX3BpbGwge1xuICAgIG1hcmdpbjogMTJweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG5AY29udGFpbmVyIHJvb212aWV3IChoZWlnaHQgPj0gMHB4KSB7XG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl9waWxsIHtcbiAgICAgICAgbWF4LWhlaWdodDogNDBjcWg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fY29udGFpbmVyX3RydW5jYXRlIHtcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fdGl0bGUsXG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3N1YnRpdGxlLFxuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgICAgIC8qIEVsbGlwc2lzIGZvciBsb25nIG5hbWVzL3N1YnRpdGxlcy9kZXNjcmlwdGlvbnMgKi9cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb24uc2VsZWN0ZWQsXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRzZWxlY3RlZC1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX3Byb3ZpZGVyX25hbWUge1xuICAgIG1hcmdpbjogMTJweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG9wYWNpdHk6IDAuNDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV4UGFuZWwge1xuICAgIG1pbi13aWR0aDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMHB4IGF1dG87XG5cbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAvKiBUaGVzZSBhcmUgc2V0IGluIEphdmFzY3JpcHQgKi9cbiAgICAtLWF2YXRhci1sZXR0ZXI6IFwiXCI7XG4gICAgLS1hdmF0YXItYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgLS1hdmF0YXItY29sb3I6IHVuc2V0O1xuICAgIC0tcGxhY2Vob2xkZXI6IFwiXCI7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRFbXB0eSA+IDpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdmFyKC0tcGxhY2Vob2xkZXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyB2aXN1YWxiZWxsIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmlzdWFsLWJlbGwtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0X2Vycm9yIHtcbiAgICAgICAgYW5pbWF0aW9uOiAwLjJzIHZpc3VhbGJlbGw7XG4gICAgfVxuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAvKiBGb3JjZSBjYXJldCBub2RlcyB0byBiZSBzZWxlY3RlZCBpbiBmdWxsIHNvIHRoYXQgdGhleSBjYW4gYmUgKi9cbiAgICAgICAgLyogbmF2aWdhdGVkIHRocm91Z2ggaW4gYSBzaW5nbGUga2V5cHJlc3MgKi9cbiAgICAgICAgLmNhcmV0Tm9kZSB7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dF9zaG91bGRTaG93UGlsbEF2YXRhciB7XG4gICAgICAgICAgICBzcGFuLm14X1VzZXJQaWxsLFxuICAgICAgICAgICAgc3Bhbi5teF9Sb29tUGlsbCxcbiAgICAgICAgICAgIHNwYW4ubXhfU3BhY2VQaWxsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogdW5zZXQ7IC8qIFdlIGRvbid0IHdhbnQgaW5kaWNhdGUgY2xpY2thYmlsaXR5ICovXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIC8qIFdlIGRvbid0IHdhbnQgaW5kaWNhdGUgY2xpY2thYmlsaXR5IHwgVG8gb3ZlcnJpZGUgdGhlIG92ZXJyaWRpbmcgb2YgLm1hcmtkb3duLWJvZHkgKi9cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtYmctY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBhdmF0YXIgcHN1ZWRvIGVsZW1lbnQgKi9cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLWF2YXRhci1sZXR0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkZm9udC0xNnB4OyAvKiBlbnN1cmUgdGhlIGF2YXRhciBpcyBub3QgY29tcHJlc3NlZCAqL1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjI0cmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdmF0YXItYmFja2dyb3VuZCksICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYXZhdGFyLWNvbG9yLCAkYXZhdGFyLWluaXRpYWwtY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTAtNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRfZGlzYWJsZWQge1xuICAgICAgICAgICAgLyogSWdub3JlIGFsbCB1c2VyIGlucHV0IHRvIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIHRoZSBjb21wb3NlciAqL1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfQXV0b0NvbXBsZXRlV3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi5teF9Kb2luUnVsZURpYWxvZyB7XG4gICAgLm14X0pvaW5SdWxlRGlhbG9nQnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FMkVJY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwIDlweDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLm14X0UyRUljb24ubXhfRTJFSWNvbl9pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0UyRUljb25WaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9FMkVJY29uVmlld193YXJuaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9FMkVJY29uVmlld192ZXJpZmllZCB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXN1Y2Nlc3MtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0TWVzc2FnZUNvbXBvc2VyIHtcbiAgICAtLUVkaXRNZXNzYWdlQ29tcG9zZXItcGFkZGluZy1pbmxpbmU6IDNweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIGRpc2FibGUgb3ZlcmZsb3cgKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICBnYXA6IDVweDtcbiAgICBwYWRkaW5nOiAzcHggdmFyKC0tRWRpdE1lc3NhZ2VDb21wb3Nlci1wYWRkaW5nLWlubGluZSk7XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRWRpdE1lc3NhZ2VDb21wb3Nlcl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcC1yZXZlcnNlOyAvKiBkaXNwbGF5IFwiU2F2ZVwiIG92ZXIgXCJDYW5jZWxcIiAqL1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDVweDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7IC8qIG1hZ2ljIG51bWJlciB0byBhbGlnbiB0aGUgZWRnZSBvZiB0aGUgYnV0dG9uIHdpdGggdGhlIGlucHV0IGFyZWEgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FbW9qaUJ1dHRvbiB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDUwJSwgdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KSwgdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRW1vamlCdXR0b25faGlnaGxpZ2h0IHtcbiAgICBAbWl4aW4gY29tcG9zZXJCdXR0b25IaWdoTGlnaHQ7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfd3lzaXd5ZyB7XG4gICAgLm14X0Vtb2ppQnV0dG9uIHtcbiAgICAgICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDVweCwgJHRlcnRpYXJ5LWNvbnRlbnQsICRwYW5lbHM7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21WaWV3X2JvZHlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC5teF9Sb29tVmlld190aW1lbGluZSxcbiAgICAubXhfUm9vbVZpZXdfc3RhdHVzQXJlYSxcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLS1hdmF0YXJTaXplOiAzMnB4O1xuICAgIC0tZ3V0dGVyU2l6ZTogMTFweDtcbiAgICAtLWNvcm5lclJhZGl1czogMTJweDtcbiAgICAtLW1heFdpZHRoOiA3MCU7XG5cbiAgICAvKiBHZW5lcmljIGV2ZW50IGxpc3Qgc3VtbWFyaWVzIHN0aWxsIHVzZSB0aGUgbGVnYWN5IGJ1YmJsZSB2YXJpYWJsZXMuICovXG4gICAgLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQ5cHg7XG4gICAgLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtZW5kOiA2MHB4O1xuXG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZCk7XG5cbiAgICAvKiBLZWVwIHRoZSBmb2xsb3dpbmcgZXZlbnQgY2xlYXIgb2YgdGhlIGV4cGFuZC9jb2xsYXBzZSBjb250cm9sIHdoZW4gdGhlXG4gICAgICAgc3VtbWFyeSBpcyBjb2xsYXBzZWQuICovXG4gICAgJltkYXRhLWV4cGFuZGVkPVwiZmFsc2VcIl0gKyAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAyMHB4O1xuICAgIH1cblxuICAgIC8qIEtlZXAgZXhwYW5kZWQgaW5mb3JtYXRpb25hbCByb3dzIGFsaWduZWQgd2l0aCB0aGUgbGVnYWN5IHN1bW1hcnkgbGF5b3V0LiAqL1xuICAgICZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0gLm14X0V2ZW50VGlsZTpoYXMoPiAubXhfRXZlbnRUaWxlX2xpbmUgOmlzKC5teF9UZXh0dWFsRXZlbnQsIC5teF9WaWV3U291cmNlRXZlbnQpKSB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IDJweDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG5cbiAgICAgICAgLyogRXZlbnRUaWxlVmlldyBvd25zIHRoZSBsaW5lLWhlaWdodCBmb3IgaW5mb3JtYXRpb25hbCByb3dzLiAqL1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAvKiBFdmVudFRpbGVWaWV3IGtlZXBzIHRoZSBzdGF0ZS1pbmZvIGxpbmUgYXQgbWluLXdpZHRoOiAxMDAlIGZvclxuICAgICAgICAgICAgICAgb3JkaW5hcnkgYnViYmxlIHJvd3MuIEV4cGFuZGVkIHN1bW1hcmllcyBtdXN0IGJlIGFsbG93ZWQgdG9cbiAgICAgICAgICAgICAgIHNocmluayBhcm91bmQgdGhlIHNlbmRlciBhdmF0YXIsIGFzIGluIHRoZSBsZWdhY3kgdGlsZS4gKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgLyogbWF0Y2ggYWxpZ25tZW50IHRvIFJScyBvZiBjaGF0IGJ1YmJsZXMgKi9cbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkgKyA2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwOyAvKiBtYXRjaCBhbGlnbm1lbnQgb2YgdGhlIGhvdmVyIGJhY2tncm91bmQgdG8gdGhhdCBvZiBjaGF0IGJ1YmJsZXMgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogUHJlc2VydmUgdGhlIGxlZ2FjeSBleHBhbmRlZC1zdW1tYXJ5IG1ldHJpY3MgaW4gUm9vbVZpZXcuIFRocmVhZFZpZXcgb3duc1xuICAgaXRzIGluZm9ybWF0aW9uYWwgcm93IG1ldHJpY3MgdGhyb3VnaCBFdmVudFRpbGVWaWV3LiAqL1xuLm14X1Jvb21WaWV3X3RpbWVsaW5lIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgJltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSAubXhfRXZlbnRUaWxlOmhhcyg+IC5teF9FdmVudFRpbGVfbGluZSA6aXMoLm14X1RleHR1YWxFdmVudCwgLm14X1ZpZXdTb3VyY2VFdmVudCkpIHtcbiAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9saW5lIDppcygubXhfVGV4dHVhbEV2ZW50LCAubXhfVmlld1NvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRsZWZ0LWd1dHRlcjogNjRweDtcblxuLm14X0V2ZW50VGlsZSB7XG4gICAgLyogUGFzcyB0aGUgYXBwbGljYXRpb24vdGhlbWUtc3BlY2lmaWMgaGlnaGxpZ2h0IGNvbG91ciB0byB0aGUgc2hhcmVkXG4gICAgICAgRXZlbnRUaWxlVmlldyBpbnRlcmFjdGlvbiBzdHlsZXMuICovXG4gICAgLS1ldmVudC10aWxlLXN0YXRlLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOiAkZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yO1xuICAgIC0tZXZlbnQtdGlsZS1zdGF0ZS1ob3Zlci1iYWNrZ3JvdW5kOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgLS1ldmVudC10aWxlLXN0YXRlLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAtLWV2ZW50LXRpbGUtYnViYmxlLWhvdmVyLWJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1iZy1ob3ZlcjtcbiAgICAtLWV2ZW50LXRpbGUtYnViYmxlLW90aGVyLWJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1vdGhlcnMtYmc7XG4gICAgLS1ldmVudC10aWxlLWJ1YmJsZS1zZWxmLWJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1zZWxmLWJnO1xuICAgIC0tZXZlbnQtdGlsZS1wcmV2aWV3LWhvdmVyLWJhY2tncm91bmQ6ICRwYW5lbHM7XG4gICAgLS1ldmVudC10aWxlLXByZXZpZXctc2VwYXJhdG9yLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1zdGFydDogMXB4O1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1lbmQ6IDNweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAtLUV2ZW50VGlsZV9UaHJlYWRTdW1tYXJ5LWxpbmUtaGVpZ2h0OiBjYWxjKDIgKiAkZm9udC0xMnB4KTtcblxuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDsgLyogVE9ETzogY2hlY2sgaWYgdGhpcyBpcyBuZWNlc3NhcnkgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBSZXRhaW5lZCBmb3IgbGVnYWN5IGVycm9yL2ZhbGxiYWNrIG1hcmt1cCB0aGF0IGRvZXMgbm90IHVzZSBFdmVudFRpbGVWaWV3LiAqL1xuICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgJi5teF9FZGl0TWVzc2FnZUNvbXBvc2VyLFxuICAgICAgICAmLm14X0VkaXRXeXNpd3lnQ29tcG9zZXIge1xuICAgICAgICAgICAgLyogTWFrZSBzdXJlIHRoZSBmb3JtYXR0aW5nIGJhciBpcyB2aXNpYmxlICovXG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FZGl0TWVzc2FnZUNvbXBvc2VyV3JhcHBlciB7XG4gICAgICAgIC8qIFRoaXMga2VlcHMgdGhlIGF1dG9jb21wbGV0ZSAvIGZvcm1hdCBiYXIgdmlzaWJsZSBhYm92ZSB0aGUgZWRpdCBjb21wb3Nlci4gKi9cbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9zZWFyY2hIaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICAubXhfSW1hZ2VCb2R5IHtcbiAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIG9uIGV2ZXJ5IGxheW91dCAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluLS1leHBhbmRlZCB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCAubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIHJlcGx5LXRpbGUgY29udGVudCBjbGFtcC4gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbGxhcHNlZENvZGVCbG9jayB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG5lZWRlZCBkdWUgdG8gLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyID4gcHJlICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBUaGVhZHMgZG8gbm90IHNldCBhIGJhY2tncm91bmQgb24gbWVudGlvbmVkIGV2ZW50cyBhcyB0aGV5IHVzZSBhbiBpbmRpY2F0b3IgZG90ICovXG4ubXhfVGhyZWFkUGFuZWwgLm14X0V2ZW50VGlsZSB7XG4gICAgLS1ldmVudC10aWxlLXByZXZpZXctaGlnaGxpZ2h0LWJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTsgLyogcmVtb3ZlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSB7XG4gICAgICAgIC8qIEFwcGx5IG9ubHkgY29sbGFwc2VkIGV2ZW50cyBibG9jayAqL1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAvKiBhZGQgLS1yaWdodC1wYWRkaW5nIHZhbHVlIG9mIE1lc3NhZ2VUaW1lc3RhbXAgYW5kIGF2YXRhciBvbmx5ICovXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICsgdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyAyICogdmFyKC0tcmlnaHQtcGFkZGluZylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAvKiBUaGUgY29sbGFwc2VkIHN1bW1hcnkgaGFzIGEgbGVnYWN5IGxpbmUgb3V0c2lkZSBFdmVudFRpbGVWaWV3LiAqL1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogJGxlZnQtZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgIC8qXG4gICAgYWxsIHRoZSBvdmVyZmxvdy15OiBoaWRkZW47IGFyZSB0byB0cmFwIFphbGdvcyAtXG4gICAgYnV0IHRoZXkgaW50cm9kdWNlIGFuIGltcGxpY2l0IG92ZXJmbG93LXg6IGF1dG8uXG4gICAgc28gbWFrZSB0aGF0IGV4cGxpY2l0bHkgaGlkZGVuIHRvbyB0byBhdm9pZCByYW5kb21cbiAgICBob3Jpem9udGFsIHNjcm9sbGJhcnMgb2NjYXNpb25hbGx5IGFwcGVhcmluZywgbGlrZSBpblxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vdmVjdG9yLXdlYi9pc3N1ZXMvMTE1NFxuICAgICovXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAubWFya2Rvd24tYm9keSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcikgIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBpbmhlcml0IHRoZSBjb2xvdXIgZnJvbSB0aGUgZGFyayBvciBsaWdodCB0aGVtZSBieSBkZWZhdWx0IChidXQgbm90IGZvciBjb2RlIGJsb2NrcykgKi9cbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBwcmUsXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlOm5vdChwcmUgKikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbmxpbmVjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIC8qIFRoZSBob3Jpem9udGFsIHBhZGRpbmcgaXMgYWRkZWQgYnkgZ2l0aHViLW1hcmtkb3duLWNzcyAubWFya2Rvd24tYm9keSAqL1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpIDA7XG4gICAgICAgICAgICAvKiBBdm9pZCBpbmxpbmUgY29kZSBibG9ja3MgdG8gYmUgc3RpY2tlZCB3aGVuIG9uIG11bHRpcGxlIGxpbmVzICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIC8qIEF2b2lkIHRoZSBib3JkZXIgdG8gYmUgZ2x1ZWQgdG8gdGhlIG90aGVyIHdvcmRzICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvKiBkb24ndCBjb2xsYXBzZSBzcGFjZXMgaW4gaW5saW5lIGNvZGUgYmxvY2tzICovXG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgICAgLyogaGF2ZSB0byB1c2Ugb3ZlcmxheSByYXRoZXIgdGhhbiBhdXRvIG90aGVyd2lzZSBMaW51eCBhbmQgV2luZG93cyAqL1xuICAgICAgICAgICAgLyogQ2hyb21lIGdldHMgdmVyeSBjb25mdXNlZCBhYm91dCB2ZXJ0aWNhbCBzcGFjaW5nOiAqL1xuICAgICAgICAgICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS92ZWN0b3Itd2ViL2lzc3Vlcy83NTQgKi9cbiAgICAgICAgICAgIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOyAvKiB3ZSB3YW50IGNvZGUgYmxvY2tzIHRvIGJlIHNjcm9sbGFibGUgYW5kIG5vdCB3cmFwICovXG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGgxIGFuZCBoMiB0aGUgc2FtZSBzaXplIGFzIGgzLiAqL1xuICAgICAgICBoMSxcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgR0ZNICovXG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgLy8gYWN0dWFsbHksIHJlbW92aW5nIHRoZSBJdGFsaWMgVFRGIHByb3ZpZGVzXG4gICAgICAgIC8vIGJldHRlciByZXN1bHRzIHNlZW1pbmdseVxuXG4gICAgICAgIC8vIGNvbXBlbnNhdGUgZm9yIE51bml0byBpdGFsaWNzIGJlaW5nIHRlcnJpYmxlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZm9udHMvaXNzdWVzLzE3MjZcbiAgICAgICAgZW0ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMTRkZWcpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICAgICovXG5cbiAgICAgICAgLyogU3VwcG9ydCBhcmJpdHJhcmlseSBsYXJnZSBtYXJrZXIgbnVtYmVycyAqL1xuICAgICAgICBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMC41ZW07XG4gICAgICAgIH1cblxuICAgICAgICAvKiBPdmVycmlkZSBuZXN0ZWQgbGlzdHMgYmVpbmcgbG93ZXItcm9tYW4gKi9cbiAgICAgICAgb2wgb2wsXG4gICAgICAgIHVsIG9sIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogcmV2ZXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTWFrZSBsaXN0IHR5cGUgZGlzYyB0byBtYXRjaCByaWNoIHRleHQgZWRpdG9yICovXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG92ZXJyaWRlIHN0eWxlcyBmcm9tIHRoZSBiYXNlIG1hcmtkb3duIENTUyB0aGF0IHB1dCBtYXJrZG93biBjb250ZW50IG9uIGl0cyBvd24gbGluZSxcbiAgICAgICAgICAgYXMgdGhpcyBpc24ndCB3aGF0IHdlIHdhbnQgZm9yIHJpY2h0ZXh0IGVtb3RlIGNvbnRlbnQuXG4gICAgICAgICAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFNwb2lsZXIgc3R1ZmYgKi9cbi5teF9FdmVudFRpbGVfc3BvaWxlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLyogY2xlYXIgYnV0dG9uIHN0eWxlcyAqL1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG5cbiAgICAubXhfRXZlbnRUaWxlX3Nwb2lsZXJfcmVhc29uIHtcbiAgICAgICAgY29sb3I6ICRldmVudC10aW1lc3RhbXAtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3Nwb2lsZXJfY29udGVudCB7XG4gICAgICAgIGZpbHRlcjogYmx1cig1cHgpIHNhdHVyYXRlKDAuMSkgc2VwaWEoMSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYudmlzaWJsZSA+IC5teF9FdmVudFRpbGVfc3BvaWxlcl9jb250ZW50IHtcbiAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogYXV0bztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2JpZ0Vtb2ppIHtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDU3cHg7XG5cbiAgICAubXhfRW1vamkge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfYm9keSB7XG4gICAgcHJlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZTpob3ZlciAmLFxuICAgICAgICAubXhfRXZlbnRUaWxlOmZvY3VzLXZpc2libGU6Zm9jdXMtd2l0aGluICYge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzZWxlY3RvciB3cm9uZ2x5IGFwcGxpZXMgdG8gcGlsbCBhdmF0YXJzIGJ1dCB0aG9zZSBoYXZlIGV4cGxpY2l0IHdpZHRoL2hlaWdodCBwYXNzZWQgYXQgYSBoaWdoZXIgc3BlY2lmaWNpdHkgKi9cbiAgICAmLm1hcmtkb3duLWJvZHkgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBsZWZ0IHRvcDtcblxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgZGVmYXVsdCBjb2xvcnMgb2YgdGhlICdnaXRodWItbWFya2Rvd24tY3NzJyBsaWJyYXJ5XG4gICAgICAgICgjZmZmIGZvciBsaWdodCB0aGVtZSwgIzAwMCBmb3IgZGFyayB0aGVtZSkgdG8gbWF0Y2ggdGhlIGluaGVyaXRlZCB0aGVtZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyIHtcbiAgICAgICAgLyogRm9yIGNvcnJlY3QgcG9zaXRpb25pbmcgb2YgX2NvcHlCdXR0b24gKFNlZSBUZXh0dWFsQm9keSkgKi9cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8qIEVtb2ppIGFyZSBlbmxhcmdlZCBpbiBwcm9zZSwgYnV0IGEgY29kZSBibG9jaydzIGxpbmUgbnVtYmVycyBhcmUgb25lIGZpeGVkLWhlaWdodCBibG9ja1xuICAgICAgICAgICBwZXIgbGluZSBhbmQgY2Fubm90IGZvbGxvdyBhIGxpbmUgdGhhdCBhbiBlbmxhcmdlZCBlbW9qaSBoYXMgbWFkZSB0YWxsZXIuICovXG4gICAgICAgIC5teF9FbW9qaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbixcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfY29sbGFwc2VkQ29kZUJsb2NrIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwdmg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSW5zZXJ0ZWQgYWRqYWNlbnQgdG8gPHByZT4gYmxvY2tzLCAoU2VlIFRleHR1YWxCb2R5KSAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfYnV0dG9uQm90dG9tIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMzcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2xpbmVOdW1iZXJzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMC41ZW0gMCAtMS41ZW07XG4gICAgY29sb3I6IGdyYXk7XG5cbiAgICAmIHNwYW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9FdmVudFRpbGVfdGlsZUVycm9yIHtcbiAgICBjb2xvcjogcmVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8qIFJlbW92ZSBzb21lIG9mIHRoZSBkZWZhdWx0IHRpbGUgcGFkZGluZyBzbyB0aGF0IHRoZSBlcnJvciBpcyBjZW50ZXJlZCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlOmhvdmVyIC5teF9UaHJlYWRBY3Rpb25CYXIsXG5bZGF0YS13aGF0aW5wdXQ9XCJrZXlib2FyZFwiXSAubXhfRXZlbnRUaWxlOmZvY3VzLXdpdGhpbiAubXhfVGhyZWFkQWN0aW9uQmFyLFxuLm14X0V2ZW50VGlsZTpmb2N1cy12aXNpYmxlOmZvY3VzLXdpdGhpbiAubXhfVGhyZWFkQWN0aW9uQmFyIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4vKiBUaHJlYWQtbGlzdCByZXBseSBzdW1tYXJpZXMgcmV0YWluIHRoZSBsZWdhY3kgYXBwbGljYXRpb24gc3R5bGluZyB3aGlsZVxuICAgcmVtYWluaW5nIGluZGVwZW5kZW50IG9mIHRoZSBFdmVudFRpbGVWaWV3IHJvb3QgRE9NIGNvbnRyYWN0LiAqL1xuLm14X0V2ZW50VGlsZSAubXhfVGhyZWFkUGFuZWxfcmVwbGllcyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICA+IHN2ZyB7XG4gICAgICAgIEBtaXhpbiBUaHJlYWRTdW1tYXJ5SWNvbjtcbiAgICB9XG5cbiAgICAubXhfVGhyZWFkUGFuZWxfcmVwbGllc19hbW91bnQge1xuICAgICAgICBAbWl4aW4gVGhyZWFkUmVwbGllc0Ftb3VudDtcbiAgICB9XG59XG5cbi5teF9UaHJlYWRTdW1tYXJ5X2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICA+IHN2ZyB7XG4gICAgICAgIEBtaXhpbiBUaHJlYWRTdW1tYXJ5SWNvbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgfVxuXG4gICAgYSYge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLyogRm9yIHN0eWxlIHJ1bGVzIG9mIFRocmVhZFZpZXcsIHNlZSBfVGhyZWFkUGFuZWwucGNzcyAqL1xuLm14X1RocmVhZFZpZXcge1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0OiA1NnB4OyAvKiA1NnB4OiA2NHB4IC0gOHB4IChwYWRkaW5nKSAqL1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZDogOHB4OyAvKiBzYW1lIGFzIHBhZGRpbmcgKi9cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydCk7IC8qIGFsaWduIHN1bW1hcnkgdGV4dCB3aXRoIG1lc3NhZ2UgdGV4dCAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZCk7IC8qIGFsaWduIHN1bW1hcnkgdGV4dCB3aXRoIG1lc3NhZ2UgdGV4dCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogVmlld1NvdXJjZUV2ZW50IGV4cGxpY2l0bHkgdXNlcyBDb21wb3VuZCdzIDExcHggYm9keS14cyB0b2tlbi4gTGVnYWN5XG4gICAgICAgdGhyZWFkIGluZm8gdGlsZXMgYXBwbGllZCB0aGVpciAxMnB4IHNpemUgZGlyZWN0bHkgdG8gZXZlbnQgY29udGVudDtcbiAgICAgICBrZWVwIHRoYXQgb3ZlcnJpZGUgb24gdGhlIGJvZHkgY29tcG9uZW50IGFmdGVyIGl0cyBzbG90IGJvdW5kYXJ5LiAqL1xuICAgIC5teF9FdmVudFRpbGUgLm14X0V2ZW50VGlsZV9saW5lIC5teF9WaWV3U291cmNlRXZlbnQge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgfVxufVxuXG4vKiBCb2R5LW9ubHkgY29tcGFjdCBtYXJrZG93biBzcGFjaW5nIHJlbWFpbnMgYXBwbGljYXRpb24tb3duZWQuICovXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IC5tYXJrZG93bi1ib2R5IHtcbiAgICAgICAgICAgIHAsXG4gICAgICAgICAgICB1bCxcbiAgICAgICAgICAgIG9sLFxuICAgICAgICAgICAgZGwsXG4gICAgICAgICAgICBibG9ja3F1b3RlLFxuICAgICAgICAgICAgcHJlLFxuICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7IC8qIDEvNCBvZiB0aGUgbm9uLWNvbXBhY3QgbWFyZ2luLWJvdHRvbSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBNZWRpYSBxdWVyeSBmb3IgbW9iaWxlIFVJICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFJvYmluIFRvd25zZW5kIDxyb2JpbkByb2Jpbi50b3duPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X0hpc3RvcnlUaWxlIHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuOnJvb3Qge1xuICAgIC0taXJjLWxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xufVxuXG4ubXhfSVJDTGF5b3V0IHtcbiAgICAtLW5hbWUtd2lkdGg6IDgwcHg7IC8qIGNmLiBpcmNEaXNwbGF5TmFtZVdpZHRoIG9uIFNldHRpbmdzLnRzeCAqL1xuICAgIC0taWNvbi13aWR0aDogMTRweDtcbiAgICAtLWxpbmUtaGVpZ2h0OiB2YXIoLS1pcmMtbGluZS1oZWlnaHQpO1xuICAgIC0tcmlnaHQtcGFkZGluZzogNXB4O1xuICAgIC8qIE1hcCBhcHBsaWNhdGlvbiBJUkMgZ2VvbWV0cnkgb250byB0aGUgc2hhcmVkIEV2ZW50VGlsZVZpZXcgQVBJLiAqL1xuICAgIC0tZXZlbnQtdGlsZS1pcmMtbmFtZS13aWR0aDogdmFyKC0tbmFtZS13aWR0aCk7XG4gICAgLS1ldmVudC10aWxlLWlyYy10aW1lc3RhbXAtd2lkdGg6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpO1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KSAhaW1wb3J0YW50O1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvIHtcbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5pdGlhbDsgLyogQ2FuY2VsIHZhcigtLWlyYy1saW5lLWhlaWdodCkgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluIHtcbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIG9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiB1bnNldDsgLyogVW5zZXQgZmxleC1zaHJpbmsgdG8gcHJldmVudCBsb25nIGRpc3BsYXkgbmFtZSBibG93b3V0ICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUHJvZmlsZVJlc2l6ZXIge1xuICAgICAgICAtLXJlc2l6ZXItd2lkdGg6IDE1cHg7XG4gICAgICAgIC0tcmVzaXplci1hMTF5OiAzcHg7IC8qIE1hZ2ljIG51bWJlciwgdG8gYmUgcmVwbGFjZWQgd2l0aCBzb21ldGhpbmcgbW9yZSBwcm9wZXIgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgYTExeSAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogdmFyKC0tcmVzaXplci13aWR0aCk7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8qIEFkZCB3aWR0aCBvZiBldmVyeSBlbGVtZW50IHJlbmRlcmVkIGJlZm9yZSB0aGUgcmVzaXplciAoaW5jbHVkaW5nIHBhZGRpbmcgZm9yIHRoZSBhdmF0YXIgYW5kIHRoZSBkaXNwbGF5XG4gICAgICAgICAgIG5hbWUpLCBzdWJ0cmFjdGluZyB0aGUgcmVzaXplciB3aWR0aCBpdHNlbGYgdG8gcHJldmVudCB0aGUgcmVzaXplciBmcm9tIG92ZXJsYXBwaW5nIHRoZSB0ZXh0IGFuZCBtb3ZpbmdcbiAgICAgICAgICAgdGhlIHJlc2l6ZXIgYSBiaXQgdG8gdGhlIGxlZnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYXZvaWQgc2VsZWN0aW5nIHRoZSByZXNpemVyIHdoZW4gaGlnaGxpZ2h0aW5nIHRleHQuXG4gICAgICAgICAgIFBsZWFzZSBub3RlIHRoYXQgTWVzc2FnZVRpbWVzdGFtcCBkb2VzIG5vdCBoYXZlIGlubGluZSBwYWRkaW5nLiAqL1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKSArIHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpICsgdmFyKC0taWNvbi13aWR0aCkgK1xuICAgICAgICAgICAgICAgIHZhcigtLXJpZ2h0LXBhZGRpbmcpICsgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1yaWdodC1wYWRkaW5nKSAtIHZhcigtLXJlc2l6ZXItd2lkdGgpIC1cbiAgICAgICAgICAgICAgICB2YXIoLS1yZXNpemVyLWExMXkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW52aXRlZEljb25WaWV3IHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b24ge1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIDEyIGJlY2F1c2UgaGVpZ2h0IGlzIDUwIGJ1dCBidXR0b24gaXMgb25seSAzOCA9IDEyKyg1MC0zOCkgPSAyNCAqL1xuICAgIGJvdHRvbTogMTJweDtcbiAgICByaWdodDogMjRweDtcbiAgICB3aWR0aDogMzhweDtcbiAgICAvKiBnaXZlIGl0IGEgZml4ZWQgaGVpZ2h0IHNvIHRoZSBiYWRnZSBkb2Vzbid0IG1ha2UgKi9cbiAgICAvKiBpdCB0YWxsZXIgYW5kIHBvcCB1cHdhcmRzIHdoZW4gdmlzaWJsZSAqL1xuICAgIGhlaWdodDogNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25fYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvKiB0byBiZSBhYmxlIHRvIGdldCBpdCBjZW50ZXJlZCAqL1xuICAgIC8qIHdpdGggdGV4dC1hbGlnbiBpbiBwYXJlbnQgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMCA0cHg7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25faGlnaGxpZ2h0IC5teF9KdW1wVG9Cb3R0b21CdXR0b25fYmFkZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfSnVtcFRvQm90dG9tQnV0dG9uX3Njcm9sbERvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogN3B4IDhweCA3cHggNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlQ29udGVudFN1bW1hcnkge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5X3RleHQge1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xpdmVDb250ZW50U3VtbWFyeV90ZXh0X2FjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MaXZlQ29udGVudFN1bW1hcnlfcGFydGljaXBhbnRzIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyTGlzdEhlYWRlclZpZXcge1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLm14X01lbWJlckxpc3RIZWFkZXJWaWV3X2ludml0ZUJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQyOHB4O1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X01lbWJlckxpc3RIZWFkZXJWaWV3X3NlYXJjaCB7XG4gICAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lbWJlckxpc3RWaWV3IHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X01lbWJlckxpc3RWaWV3X2NvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdFZpZXdfc2VwYXJhdG9yIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lbWJlclRpbGVWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS0zMDApO1xuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2xlZnQsXG4gICAgLm14X01lbWJlclRpbGVWaWV3X3JpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19sZWZ0IHtcbiAgICAgICAgZmxleC1iYXNpczogMjA5cHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19uYW1lIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfdXNlckxhYmVsIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X3ByZXNlbmNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTJweDtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiA0MnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcmVwbGFjZWRfd3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JlcGxhY2VkX3ZhbGlnbiB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb29tUmVwbGFjZWRfaWNvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB3aWR0aDogMzFweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcm9vbVJlcGxhY2VkX2hlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYXZhdGFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAyNnB4O1xuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb25XcmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEycHg7IC8qIE1hdGNoIHRoZSBoZWlnaHQgb2YgdGhlIEUyRSBpY29uIGZvciBhbGlnbm1lbnQgKi9cbiAgICB3aWR0aDogMTJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMjBweDtcbiAgICB0b3A6IDIycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyAvKiBDb3VudGVyYWN0IHRoZSBFMkVJY29uIGNsYXNzICovXG4gICAgbWFyZ2luLWxlZnQ6IDNweDsgLyogQ291bnRlcmFjdCB0aGUgRTJFSWNvbiBjbGFzcyAqL1xuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9ub3Blcm1fZXJyb3Ige1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgIGZsZXg6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgIHByZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydGUtY29kZS1iZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAvKiBoYWNrIGZvciBGRiBhcyB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgY3VzdG9tIHBsYWNlaG9sZGVyIHRleHQgaXMgYnJva2VuICovXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbl9oaWdobGlnaHQge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbkhpZ2hMaWdodDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b24ge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1MCUsIHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpLCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5teF9NZXNzYWdlQ29tcG9zZXJfY2xvc2VCdXR0b25NZW51IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbn1cbi5teF9NZXNzYWdlQ29tcG9zZXJfd3lzaXd5ZyB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9hY3Rpb25zIHtcbiAgICAgICAgLyogSGVpZ2h0IG9mIHRoZSBjb21wb3NlciBlZGl0b3IgKi9cbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgIC5teF9NZWRpYUJvZHkge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uIHtcbiAgICAgICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDVweCwgJHRlcnRpYXJ5LWNvbnRlbnQsICRwYW5lbHM7XG5cbiAgICAgICAgJi5teF9NZXNzYWdlQ29tcG9zZXJfY2xvc2VCdXR0b25NZW51IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uTWVudSB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmc6IDFweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3NlbmRNZXNzYWdlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9ub3Blcm1fZXJyb3Ige1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgfVxufVxuXG4vKipcbiAqIFVuc3RhYmxlIGNvbXBhY3QgbW9kZVxuICovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXIubXhfTWVzc2FnZUNvbXBvc2VyLS1jb21wYWN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbldyYXBwZXIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICY6bm90KC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlU3RhdHVzKSB7XG4gICAgICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb24ge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IGNhbGMoMzJweCAqIDYpO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogZXF1YWwgdG8gei1pbmRleCBvZiBteF9SZXBseVByZXZpZXcgYW5kIG14X1Jvb21WaWV3X3N0YXR1c0FyZWEgKDEwMDApICovXG4gICAgLyogYnV0IGFzIGl0IGFwcGVhcnMgYWZ0ZXIgdGhlbSBpbiB0aGUgRE9NLCB3aWxsIGFwcGVhciBvbiB0b3AuICovXG4gICAgei1pbmRleDogMTAwMDtcblxuICAgICYubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyX3Nob3duIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMnB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyX2J1dHRvblRvb2x0aXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG1pbi13aWR0aDogNTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTmV3Um9vbUludHJvIHtcbiAgICBtYXJnaW46IDQwcHggMCA0OHB4IDY0cHg7XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2hhc0F2YXRhcjpub3QoLm14X01pbmlBdmF0YXJVcGxvYWRlcl9idXN5KTpub3QoOmhvdmVyKSB7XG4gICAgICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGdhcDogMTRweCAxMnB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBoMiB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfT3ZlcmZsb3dUaWxlVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfdGV4dCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlldzpob3ZlciB7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIHRvIGtlZXAgdGhlIGNoZXZyb24gYWxpZ25lZCAqL1xuXG4gICAgLm14X092ZXJmbG93VGlsZVZpZXdfY2hldnJvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3X2NoZXZyb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTJweCk7IC8qIGNlbnRlciAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfaWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVHJhdmlzIFJhbHN0b25cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bpbm5lZEV2ZW50VGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAubXhfUGlubmVkRXZlbnRUaWxlX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIC8qIFJlbW92ZSBhdmF0YXIgd2lkdGggYW5kIHNwYWNlIGJldHdlZW4gdGhlIGF2YXRhciBhbmQgdGhlIHdyYXBwZXIgKi9cbiAgICAgICAgLyogV2UgbmVlZCBpdCB0byBtYWtlIHRoZSBsb2NhdGlvbiBmaXQgKi9cbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWNwZC1zcGFjZS00eCkgLSAzMnB4KTtcbiAgICAgICAgLyogUHJldmVudCBhIGxvbmcgc2VuZGVyIG5hbWUgdG8gb3ZlcmZsb3cgdGhlIHRpbGUgKi9cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfUGlubmVkRXZlbnRUaWxlX3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZEV2ZW50VGlsZV9zZW5kZXIge1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRFdmVudFRpbGVfdGhyZWFkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGZpbGw6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIDY0cHggPSA2M3B4ICsgMXB4IGZyb20gdGhlIGJvdHRvbSBib3JkZXIgKi9cbiAgICBoZWlnaHQ6IDYzcHg7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC8qIEZyb20gZmlnbWEgKi9cbiAgICBib3gtc2hhZG93OiAwIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSBjYWxjKHZhcigtLWNwZC1zcGFjZS0yeCkgKiAtMSkgcmdiKDI3LCAyOSwgMzQsIDAuMSk7XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9tYWluIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgICAgICBcImluZGljYXRvcnMgcGluSWNvbiB0aXRsZVwiIGF1dG9cbiAgICAgICAgICAgICAgICBcImluZGljYXRvcnMgcGluSWNvbiBtZXNzYWdlXCIgYXV0bztcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3JzIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogaW5kaWNhdG9ycztcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS02MDApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfUGluSWNvbiB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IHBpbkljb247XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnktYWxwaGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfdGl0bGUge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiB0aXRsZTtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfdGl0bGVfY291bnRlciB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9tZXNzYWdlIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfcmVkYWN0ZWRNZXNzYWdlIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfYWN0aW9ucyB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuXG4ubXhfUGlubmVkTWVzc2FnZUJhbm5lcltkYXRhLXNpbmdsZS1tZXNzYWdlPVwidHJ1ZVwiXSB7XG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfY29udGVudCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6IFwiaW5kaWNhdG9ycyBwaW5JY29uIG1lc3NhZ2VcIiBhdXRvO1xuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21lc3NhZ2Uge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QcmVzZW5jZUljb25WaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfb25saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld19vZmZsaW5lLFxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X2RuZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxuXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfdW5hdmFpbGFibGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcXVhdGVybmFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ByZXNlbmNlTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi5teF9QcmVzZW5jZUxhYmVsX29ubGluZSB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXN1Y2Nlc3MtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZDogNzhweDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1ldmVudC10aWxlLXJlYWQtcmVjZWlwdC1pbnNldC1pbmxpbmUtZW5kLCBhdXRvKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgei1pbmRleDogMTtcblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX2J1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9yZW1haW5kZXIge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIC8qIENvbXBvdW5kIHVzZXMgYSBib3JkZXIgb24gZGVmYXVsdCBhdmF0YXJzIGJ1dCBubyBib3JkZXIgb24gYWN0dWFsIGltYWdlcywgd2Ugd2FudCBhIGJvcmRlciBpbiBhbGwgY2FzZXMgKi9cbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8qIFJlc2V0IHRoZSBsaW5lIGhlaWdodCBhcyB3ZSBhcmUgbm8gbG9uZ2VyIGJveC1zaXppbmcgYm9yZGVyLWJveC4gMTRweCBiZWNhdXNlIGF2YXRhciBpcyBzZXQgYXQgMTRweCBpbiBjb21wb25lbnQgKi9cbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IGxlZnQsIHRvcDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgbGVmdCB2YXIoLS10cmFuc2l0aW9uLXNob3J0KSBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICB0b3AgdmFyKC0tdHJhbnNpdGlvbi1zdGFuZGFyZCkgZWFzZS1vdXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9SZWFkUmVjZWlwdEdyb3VwX3BvcHVwIHtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcblxuICAgIHJpZ2h0OiAwO1xuXG4gICAgJi5teF9Db250ZXh0dWFsTWVudV90b3Age1xuICAgICAgICB0b3A6IDhweDtcbiAgICB9XG5cbiAgICAmLm14X0NvbnRleHR1YWxNZW51X2JvdHRvbSB7XG4gICAgICAgIGJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDE2cHggOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgLyogc2hvdWxkbuKAmXQgYmUgYWN0dWFsbHkgZm9jdXNhYmxlICovXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfcGVyc29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDEycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNnB4IDhweDtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7IC8qIExvbmcgbmFtZXMgc2hvdWxkIG5vdCBzaHJpbmsgdGhlIHBpY3R1cmUgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4IDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUmVhZFJlY2VpcHRHcm91cF9wZXJzb24tLXRvb2x0aXAge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTggVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcGx5UHJldmlldyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBtYXgtaGVpZ2h0OiA1MHZoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLm14X1JlcGx5UHJldmlld19zZWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgcm93LWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIDAgMDtcblxuICAgICAgICAubXhfUmVwbHlQcmV2aWV3X2hlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogOHB4O1xuXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG5cbiAgICAgICAgICAgIC5teF9SZXBseVByZXZpZXdfaGVhZGVyX2NhbmNlbCBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2JvZHkge1xuICAgIC5teF9SZXBseVByZXZpZXcge1xuICAgICAgICAvKiBBZGQgYm94LXNoYWRvdyB0byB0aGUgcmVwbHkgcHJldmlldyBvbiB0aGUgbWFpbiAobGVmdCkgcGFuZWwgb25seS4gKi9cbiAgICAgICAgLyogSXQgaXMgbm90IGFkZGVkIHRvIHRoZSBwcmV2aWV3IG9uIHRoZSAocmlnaHQpIHBhbmVsIGZvciB0aHJlYWRzIGFuZCBhIGNoYXQgd2l0aCBhIG1heGltaXplZCB3aWRnZXQuICovXG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAtMTZweCAzMnB4ICRjb21wb3Nlci1zaGFkb3ctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tSGVhZGVyIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0zeCkgMCBjYWxjKHZhcigtLWNwZC1zcGFjZS0zeCkgKyB2YXIoLS1jcGQtc3BhY2UtMS01eCkpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2VwYXJhdG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICBidXR0b246aGFzKHN2Zy5teF9Sb29tSGVhZGVyX3RvZ2dsZWQpIHtcbiAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ubXhfUm9vbUhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1ob3Zlcjtcbn1cblxuLm14X1Jvb21IZWFkZXJfaW5mb1dyYXBwZXIge1xuICAgIC8qIHVuc2V0IGJ1dHRvbiBzdHlsZXMgKi9cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgICBib3JkZXI6IHVuc2V0O1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICAvKiBXaXRob3V0IHRoaXMsIHRoaXMgZmxleCBpdGVtIHJlcG9ydHMgaXRzIHVuc2hydW5rIGNvbnRlbnQgd2lkdGggdG9cbiAgICAgICBteF9Sb29tSGVhZGVyIHdoaWNoIGJyZWFrcyBpdHMgbWF4LXdpZHRoLiAqL1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLm14X1Jvb21IZWFkZXJfaW5mbyB7XG4gICAgLyogV2Ugd2FudCB0aGUgc3BhY2luZyB0byBiZSA2NHB4LCAxM3ggPSA1MnB4IGJ1dCB3ZSBoYXZlIGEgZmxleCBnYXAgb2ZcbiAgICAgICAxMnB4IHNldCBvbiB0aGUgZmxleCBjb250YWluZXIsIHdoaWNoIHN1bXMgdXAgdG8gNjQgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMTN4KTtcbiAgICAvKiBTZWUgbXhfUm9vbUhlYWRlcl9pbmZvV3JhcHBlciBtaW4td2lkdGggY29tbWVudCBhYm92ZS4gKi9cbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyX3RydW5jYXRlZCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X1Jvb21IZWFkZXJfaGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLm14X1Jvb21IZWFkZXJfdXNlclN0YXR1cyB7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl9pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0ZhY2VQaWxlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuXG4gICAgLyogUm9vbUF2YXRhciBkb2Vzbid0IHBhc3MgY2xhc3NlcyBkb3duIHRvIGF2YXRhclxuICAgIFNvIHNldCBzdHlsZSBoZXJlXG4gICAgdXNpbmcgZGl2IGJlY2F1c2UgY29tcG91bmQgY2xhc3NlcyBhcmUgbm90IHN0YWJsZSAqL1xuICAgID4gZGl2IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfRmFjZVBpbGVfdG9nZ2xlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWNjZXNzLXN1YnRsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0Jhc2VBdmF0YXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl92aWRlb0NhbGxPcHRpb24ge1xuICAgIC8qIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGVtZW50LWhxL2NvbXBvdW5kL2lzc3Vlcy8zMzEgKi9cbiAgICBtaW4td2lkdGg6IDI0MHB4O1xufVxuXG4ubXhfUm9vbUhlYWRlciAubXhfUm9vbUhlYWRlcl90b2dnbGVkIHtcbiAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUluZm9MaW5lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Sb29tSW5mb0xpbmVfbWVtYmVycyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIsK3XCI7IC8qIHZpc3VhbCBzZXBhcmF0b3IgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBOb3JkZWNrIElUICsgQ29uc3VsdGluZyBHbWJIXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tS25vY2tzQmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfcGFyYWdyYXBoIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2xpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9hY3Rpb24sXG4ubXhfUm9vbUtub2Nrc0Jhcl9hdmF0YXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uICsgLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyICsgLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtNHgpICogLTEpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdCYXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblxuICAgICAgICAmLm14X1Jvb21QcmV2aWV3QmFyX3NwaW5uZXJUaXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMyxcbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSBwIHtcbiAgICAgICAgLyogYnJlYWstd29yZCwgd2l0aCBmYWxsYmFjayB0byBicmVhay1hbGwsIHdoaWNoIGlzIHdpZGVyIHN1cHBvcnRlZCAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9mb290ZXIge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIHAge1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX3BhbmVsIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAyMHB4O1xuXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBhZGRpbmc6IDNweCA4cHg7XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFdpdGggbWF4aW1pc2VkIHdpZGdldHMsIHRoZSBwYW5lbCBmaXRzIGluIGJldHRlciB3aGVuIHJvdW5kZWQgKi9cbi5teF9NYWluU3BsaXRfbWF4aW1pc2VkV2lkZ2V0IC5teF9Sb29tUHJldmlld0Jhcl9wYW5lbCB7XG4gICAgbWFyZ2luOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTsgLyogU2hhcmVkIHdpdGggcmlnaHQgcGFuZWwgKi9cbiAgICBtYXJnaW4tdG9wOiAwOyAvKiBBbHJlYWR5IGNvdmVyZWQgYnkgYXBwcyBkcmF3ZXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9kaWFsb2cge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3gtc2l6aW5nOiBjb250ZW50O1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICAvKiBNYXRjaGVzIHRoZSByb29tIHByZXZpZXcgY2FyZCB0aGlzIHN0YW5kcyBpbiBwbGFjZSBvZiwgYW5kIHRoZSBwYW5lbCBmb3JtIG9mIHRoaXMgc2FtZSBiYXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9tZXNzYWdlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDUwcHg7IC8qIGV4dHJhIHdpZGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgLyogdG8gYWNjb3VudCBmb3IgdGhlIHBhZGRpbmcgb2YgdGhlIHByaW1hcnkgYnV0dG9uIHdoaWNoIGNhdXNlcyBpbmNvbnNpc3RlbnQgbG9vayBiZXR3ZWVuICovXG4gICAgICAgICAgICAvKiBzdWJzZXF1ZW50IHNlY29uZGFyeSAodGV4dCkgYnV0dG9ucyAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1Jvb21QcmV2aWV3QmFyX0ludml0ZSB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9JbnZpdGUgaDMge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbmEubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlcl9teGlkIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2Z1bGxXaWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS02eCkgIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgU3BhY2VSb29tVmlldydzIGRlZmF1bHQgcGFkZGluZyAqL1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9ub3RpY2Uge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2ludml0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfaW52aXRlcl9uYW1lIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9pbnZpdGVyX214aWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2F2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF92aWRlbyB7XG4gICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKCg1MHB4ICsgMiAqIDNweCkgLyAyKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgICAgICAgICBsZWZ0OiBjYWxjKC01MHB4IC8gNCAtIDNweCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBYWFggUmVtb3ZlIHRoaXMgd2hlbiB2aWRlbyByb29tcyBsZWF2ZSBiZXRhICovXG4gICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5teF9Sb29tUHJldmlld0NhcmRfbmFtZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIFNwYWNlUm9vbVZpZXcncyBkZWZhdWx0IG1hcmdpbnMgKi9cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX3RvcGljIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0NhcmRfam9pbkJ1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2VhcmNoQXV4UGFuZWwge1xuICAgIC8qIHVzZSBgbWluLWhlaWdodGAgcmF0aGVyIHRoYW4gaGVpZ2h0LCB0byBhbGxvdyByb29tIGZvciB0aGUgdGV4dCB0byB3cmFwIGlmIHRoZSB3aW5kb3cgaXMgbmFycm93ICovXG4gICAgbWluLWhlaWdodDogODRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9zdW1tYXJ5IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0OyAvKiBmbGV4ICovXG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVNlYXJjaEF1eFBhbmVsX3N1bW1hcnlfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaFdhcm5pbmcge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogZmxleCAqL1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nQmFyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mby1wbGludGgtYmctY29sb3I7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl93cmFwcGVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9oZWFkZXIge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfYm9keSB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl91cGdyYWRlbGluayB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9zbWFsbCB7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDcwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kTWVzc2FnZUNvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC8qIG1pbi1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyB0aGUgbXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQgKi9cbiAgICAgICAgLyogc3RpbGwgc3RheXMgdmVydGljYWxseSBjZW50ZXJlZCB3aGVuIGxlc3MgdGhhbiA1NXB4LiAqL1xuICAgICAgICAvKiBXZSBhbHNvIHNldCB0aGlzIHRvIGVuc3VyZSB0aGUgdm9pY2UgbWVzc2FnZSByZWNvcmRpbmcgd2lkZ2V0ICovXG4gICAgICAgIC8qIGRvZXNuJ3QgY2F1c2UgYSBqdW1wLiAqL1xuICAgICAgICBtaW4taGVpZ2h0OiA1NXB4O1xuXG4gICAgICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgLyogaW4gaXQncyBwYXJlbnQgdmVydGljYWxseSAqL1xuICAgICAgICAgICAgLyogd2hpbGUga2VlcGluZyB0aGUgYXV0b2NvbXBsZXRlIGF0IHRoZSB0b3AgKi9cbiAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgICAgICAgIC8qIG1heC1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyBhdXRvY29tcGxldGUgZG9lc24ndCBnZXQgc2Nyb2xsZWQgdG9vICovXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubXhfU3RpY2tlcnNfY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRfY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogMzAwcHg7XG59XG5cbiNteF9wZXJzaXN0ZWRFbGVtZW50X3N0aWNrZXJQaWNrZXIge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIC8qIFN0aWNrZXIgcGlja2VyIGRlcGVuZHMgb24gdGhlIGZpeGVkIGhlaWdodCBwcmV2aW91c2x5IHVzZWQgZm9yIGFsbCB0aWxlcyAqL1xuICAgICAgICBoZWlnaHQ6IDI4M3B4OyAvKiBoZWlnaHQgb2YgdGhlIHBvcG91dCBtaW51cyB0aGUgQXBwVGlsZSBtZW51IGJhciAqL1xuICAgIH1cbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciBwIHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfU3RpY2tlcnNfYWRkTGluayB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaGlyZFBhcnR5TWVtYmVySW5mbyB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub3BVbnJlYWRNZXNzYWdlc0JhciB7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNHB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAzOHB4O1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgbGVmdDogMTFweDtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXJfc2Nyb2xsVXAge1xuICAgIGhlaWdodDogMzhweDtcbiAgICB3aWR0aDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyX21hcmtBc1JlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDEuM3B4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgLyogNDJweCBpcyB0aGUgcGFkZGluZy1sZWZ0IG9mIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciBpbiByZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzcyAqL1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC00MnB4ICsgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykpO1xuXG4gICAgLm14X1VzZXJJZGVudGl0eVdhcm5pbmdfcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVXNlcklkZW50aXR5V2FybmluZ19tYWluIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5teF9Vc2VySWRlbnRpdHlXYXJuaW5nX21haW4uY3JpdGljYWwge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1VzZXJJZGVudGl0eVdhcm5pbmcuY3JpdGljYWwge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNwZC1jb2xvci1yZWQtMTAwKSAwJSwgdmFyKC0tY3BkLWNvbG9yLXRoZW1lLWJnKSAxMDAlKTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlci5teF9NZXNzYWdlQ29tcG9zZXItLWNvbXBhY3QgPiAubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTI1cHggKyB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfc3RvcCB7XG4gICAgLyogMjBweCArIDRweCBwYWRkaW5nICsgMnB4IGJvcmRlciBtYWtlcyB0aGlzIGEgMzJweCBzcXVhcmUgKGFzIGludGVuZGVkKSAqL1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogYmV0d2VlbiB1cyBhbmQgdGhlIHdhdmVmb3JtIGNvbXBvbmVudCAqL1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZGVsZXRlIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogZGlzdGFuY2UgZnJvbSBsZWZ0IGVkZ2Ugb2Ygd2F2ZWZvcm0gY29udGFpbmVyIChjb250YWluZXIgaGFzIHNvbWUgbWFyZ2luIHRvbykgKi9cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdm9pY2UtcmVjb3JkLWljb24tY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfdXBsb2FkaW5nU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZmFpbGVkU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMjFweDtcblxuICAgIC5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV91cGxvYWRTdGF0ZV9iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTm90ZTogcmVtYWluaW5nIGNsYXNzIHByb3BlcnRpZXMgYXJlIGluIHRoZSBQbGF5ZXJDb250YWluZXIgQ1NTLiAqL1xuXG4gICAgLyogZml4ZWQgaGVpZ2h0IHRvIHJlZHVjZSBsYXlvdXQganVtcHMgd2l0aCB0aGUgcGxheSBidXR0b24gYXBwZWFyaW5nICovXG4gICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvMTg0MzEgKi9cbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBtYXJnaW46IDZweDsgLyogZm9yY2UgdGhlIGNvbXBvc2VyIGFyZWEgdG8gcHV0IGEgZ3V0dGVyIGFyb3VuZCB1cyAqL1xuICAgIG1hcmdpbi1yaWdodDogNnB4OyAvKiBpc29sYXRlIGZyb20gc3RvcC9zZW5kIGJ1dHRvbiAqL1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBpbXBvcnRhbnQgZm9yIHRoZSBsaXZlIGNpcmNsZSAqL1xuXG4gICAgJi5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV9yZWNvcmRpbmcge1xuICAgICAgICAvKiBXZSBhcmUgcHV0dGluZyB0aGUgY2lyY2xlIGluIHRoaXMgcGFkZGluZywgc28gd2UgbmVlZCArMTBweCBmcm9tIHRoZSByZWd1bGFyICovXG4gICAgICAgIC8qIHBhZGRpbmcgb24gdGhlIGxlZnQgc2lkZS4gKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBhbmltYXRpb246IHJlY29yZGluZy1wdWxzZSAycyBpbmZpbml0ZTtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2b2ljZS1yZWNvcmQtbGl2ZS1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEycHg7IC8qIDEycHggZnJvbSB0aGUgbGVmdCBlZGdlIGZvciBjb250YWluZXIgcGFkZGluZyAqL1xuICAgICAgICAgICAgdG9wOiAxN3B4OyAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAobWlkZGxlIGFsaWduIHdpdGggY2xvY2spICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgICYubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfcmVjb3JkaW5nIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMTVweDsgLyogdmVydGljYWxseSBjZW50ZXIgKG1pZGRsZSBhbGlnbiB3aXRoIGNsb2NrKSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBUaGUga2V5ZnJhbWVzIGFyZSBzbGlnaHRseSB3ZWlyZCBoZXJlIHRvIGhlbHAgbWFrZSBhIHJhbXBpbmcvcHVuY2ggZWZmZWN0ICovXG4vKiBmb3IgdGhlIHJlY29yZGluZyBkb3QuIFdlIHN0YXJ0IGFuZCBlbmQgYXQgMTAwJSBvcGFjaXR5IHRvIGhlbHAgbWFrZSB0aGUgKi9cbi8qIGRvdCBmZWVsIGEgYml0IGxpa2UgYSByZWFsIGxhbXAgdGhhdCBpcyBibGlua2luZzogdGhlIGFuaW1hdGlvbiBlbmRzIHVwICovXG4vKiBzcGVuZGluZyBhIGxvdCBvZiBpdHMgdGltZSBzaG93aW5nIGEgc3RlYWR5IHN0YXRlIHdpdGhvdXQgYSBmYWRlIGVmZmVjdC4gKi9cbi8qIFRoaXMgbGFtcCBlZmZlY3QgZXh0ZW5kcyBpbnRvIHdoeSB0aGUgMCUgb3BhY2l0eSBrZXlmcmFtZSBpcyBub3QgaW4gdGhlICovXG4vKiBtaWRwb2ludDogbGFtcHMgdGFrZSBsb25nZXIgdG8gdHVybiBvZmYgdGhhbiB0aGV5IGRvIHRvIHR1cm4gb24sIGFuZCB0aGUgKi9cbi8qIGV4dHJhIGZyYW1lcyBnaXZlIGl0IGEgYml0IG9mIGEgcmVhbGlzdGljIHB1bmNoIGZvciB3aGVuIHRoZSBhbmltYXRpb24gaXMgKi9cbi8qIHJhbXBpbmcgYmFjayB1cCB0byAxMDAlIG9wYWNpdHkuICovXG5cbi8qIFRhcmdldCBhbmltYXRpb24gdGltaW5nczogc3RlYWR5IGZvciAxLjVzLCBmYWRlIG91dCBmb3IgMC4zcywgZmFkZSBpbiBmb3IgMC4ycyAqL1xuLyogKGludGVuZGVkIHRvIGJlIHVzZWQgaW4gYSBsb29wIGZvciAycyBhbmltYXRpb24gc3BlZWQpICovXG5Aa2V5ZnJhbWVzIHJlY29yZGluZy1wdWxzZSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAzNSUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICA2NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xOHB4OyAvKiBvZmZzZXQgcGFkZGluZyBmcm9tIG14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHRvIGNlbnRlciBhdmF0YXJzICovXG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBwb3NpdGlvbiB0aGUgaW5kaWNhdG9yIGluIHRoZSBzYW1lIHBsYWNlIGhvcml6b250YWxseSBhcyB0aGUgZXZlbnQtdGlsZSBhdmF0YXIgc2xvdC4gKi9cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyB7XG4gICAgZmxleDogMCAwIDgycHg7IC8qIDE4IChwYWRkaW5nIG9uIG1lc3NhZ2UgbGlzdCkgKyA2NCAocGFkZGluZyBvbiBldmVudCBsaW5lcykgKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMgLm14X0Jhc2VBdmF0YXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfcmVtYWluaW5nQXZhdGFyUGxhY2Vob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGNvbG9yOiAkcm9vbXRvcGljLWNvbG9yO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsID4gc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAtLUVkaXRXeXNpd3lnQ29tcG9zZXItcGFkZGluZy1pbmxpbmU6IDNweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIGRpc2FibGUgb3ZlcmZsb3cgKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggdmFyKC0tRWRpdFd5c2l3eWdDb21wb3Nlci1wYWRkaW5nLWlubGluZSk7XG5cbiAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50LTQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwLXJldmVyc2U7IC8qIGRpc3BsYXkgXCJTYXZlXCIgb3ZlciBcIkNhbmNlbFwiICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDsgLyogbWFnaWMgbnVtYmVyIHRvIGFsaWduIHRoZSBlZGdlIG9mIHRoZSBidXR0b24gd2l0aCB0aGUgaW5wdXQgYXJlYSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbiB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kV3lzaXd5Z0NvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxM3B4O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTFweCA2cHggMTJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgLm14X0UyRUljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgN3B4IDA7XG4gICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1pcy1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcblxuICAgICAgICAgICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWlzLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDA7XG5cbiAgICAgICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgICAgIC8qIGluIGl0J3MgcGFyZW50IHZlcnRpY2FsbHkgKi9cbiAgICAgICAgICAgICAgICAvKiB3aGlsZSBrZWVwaW5nIHRoZSBhdXRvY29tcGxldGUgYXQgdGhlIHRvcCAqL1xuICAgICAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICAgICAgLyogdGhlIGxpbmUgaGVpZ2h0IGlzICRmb250LTIycHggKHNldCBpbiBfRWRpdG9yLnBjc3MpIGFuZCB3ZSB3YW50IHRvIGRpc3BsYXkgMTYgbGluZXMgKi9cbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDE2ICogJGZvbnQtMjJweCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NlbmRXeXNpd3lnQ29tcG9zZXItZm9jdXNlZCB7XG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAvKiBUaGVzZSBhcmUgc2V0IGluIEphdmFzY3JpcHQgKi9cbiAgICAtLWF2YXRhci1sZXR0ZXI6IFwiXCI7XG4gICAgLS1hdmF0YXItYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgLS11c2VyLXN0YXR1czogbm9uZTtcbiAgICAtLXBsYWNlaG9sZGVyOiBcIlwiO1xuXG4gICAgQGtleWZyYW1lcyB2aXN1YWxiZWxsIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmlzdWFsLWJlbGwtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgLyogRm9yY2UgY2FyZXQgbm9kZXMgdG8gYmUgc2VsZWN0ZWQgaW4gZnVsbCBzbyB0aGF0IHRoZXkgY2FuIGJlICovXG4gICAgICAgIC8qIG5hdmlnYXRlZCB0aHJvdWdoIGluIGEgc2luZ2xlIGtleXByZXNzICovXG4gICAgICAgIC5jYXJldE5vZGUge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHdlIGFsd2F5cyBoYXZlIGEgPGJyLz4gdGFnIGF0IHRoZSBlbmQgb2YgdGhlIGh0bWwsIHdlIG5lZWQgaXQgdG8gYmUgcHJlc2VudCBhdCBmaXJzdCB0aGVuIGhpZGUgaXQgYXMgc29vbiBhc1xuICAgICAgICB3ZSBoYXZlIGFueSBvdGhlciBlbGVtZW50cyAqL1xuICAgICAgICBicjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgLyogdGhpcyBtYXkgc2VlbSByZWR1bmRhbnQsIGJ1dCB3ZSBuZWVkIHRvIGhhbmRsZSB6ZXJvIGNvbnRlbnQgZm9ybWF0dGluZyB0YWdzLCB3aGljaCBvY2N1ciB3aGVuIHdlIHNwbGl0IGFcbiAgICAgICAgICAgICAgIGZvcm1hdHRpbmcgdGFnIGludG8gcGFyYWdyYXBocyAqL1xuICAgICAgICAgICAgbWluLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTWFrZSBsaXN0IHR5cGUgZGlzYyB0byBtYXRjaCByaWNoIHRleHQgZWRpdG9yICovXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRibG9ja3F1b3RlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcblxuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcHJlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbmxpbmVjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGU6bm90KHByZSAqKSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbmxpbmVjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoaXMgc2VsZWN0b3IgcmVwcmVzZW50cyB3aGF0IHdpbGwgYmVjb21lIGEgcGlsbFxuICAgICAgICBuYiBkZXNwaXRlIHRoZXJlIGJlaW5nIG14X1VzZXJQaWxsIGFuZCBteF9Sb29tUGlsbCBjbGFzc2VzIGFwcGVuZGVkIHRvIHRoZXNlIHBpbGxzXG4gICAgICAgIGluIHRoZSBjdXJyZW50IGNvbXBvc2VyLCB0aGVyZSBkb24ndCBhcHBlYXIgdG8gYmUgYW55IHN0eWxlcyBhc3NvY2lhdGVkIHdpdGggdGhvc2UgY2xhc3Nlc1xuICAgICAgICBpbiB0aGlzIHJlcG8gKi9cbiAgICAgICAgYVtkYXRhLW1lbnRpb24tdHlwZV0ge1xuICAgICAgICAgICAgLyogY29tYmluZSBteF9QaWxsIGZyb20gX1BpbGwucGNzcyAqL1xuICAgICAgICAgICAgcGFkZGluZzogJGZvbnQtMXB4IDAuNGVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE3cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yO1xuXG4gICAgICAgICAgICAvKiAuLi53aXRoIHRoZSBvdmVycmlkZXMgZnJvbSBfQmFzaWNNZXNzYWdlQ29tcG9zZXIucGNzcyAqL1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogdW5zZXQ7IC8qIFdlIGRvbid0IHdhbnQgaW5kaWNhdGUgY2xpY2thYmlsaXR5ICovXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgIC8qIGF2YXRhciBwc2V1ZG8gZWxlbWVudCAqL1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAvKiBBZnRlciBjb25zb2xpZGF0aW9uLCBhbGwgb2YgdGhlIHN0eWxpbmcgZnJvbSBfUGlsbC5zY3NzIHdhcyBiZWluZyBvdmVycmlkZGVuLFxuICAgICAgICAgICAgICAgIHNvIHRha2Ugd2hhdCBpcyBpbiBfQmFzaWNNZXNzYWdlQ29tcG9zZXIucGNzcyBhcyB0aGUgc3RhcnRpbmcgcG9pbnQgKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogdmFyKC0tYXZhdGFyLWxldHRlcik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXZhdGFyLWJhY2tncm91bmQpLCAkYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgIHdpZHRoOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtMTZweDsgLyogZW5zdXJlIHRoZSBhdmF0YXIgaXMgbm90IGNvbXByZXNzZWQgKi9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLyogR2V0IHRoZSBwb3NpdGlvbmluZyBvZiB0aGUgYXZhdGFyIGp1c3QgcmlnaHQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGltZWxpbmUgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMC40cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjI0cmVtO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAwLjEycmVtO1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcblxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hdmF0YXItY29sb3IsICRhdmF0YXItaW5pdGlhbC1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMC00cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIFBzZXVkbyBlbGVtZW50IGZvciByZW5kZXJpbmcgdGhlIHVzZXIgc3RhdHVzIGVtb2ppIG9uIG1lbnRpb24gcGlsbHMuIEl0IGlzIGFcbiAgICAgICAgICAgIHBzZXVkbyBlbGVtZW50IHJhdGhlciB0aGFuIGEgY2hpbGQgbm9kZSBiZWNhdXNlIHRoZSBwaWxsJ3MgdGV4dCBjb250ZW50IGlzIHVzZWRcbiAgICAgICAgICAgIHZlcmJhdGltIHdoZW4gdGhlIG1lc3NhZ2UgaXMgc2VyaWFsaXNlZCwgc28gYSByZWFsIG5vZGUgd291bGQgcHV0IHRoZSBlbW9qaSBpbiB0aGVcbiAgICAgICAgICAgIHNlbnQgbWVzc2FnZS4gKi9cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS11c2VyLXN0YXR1cyk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnRfcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLXBsYWNlaG9sZGVyKTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cbn1cblxuLm14X1d5c2l3eWdDb21wb3Nlcl9BdXRvQ29tcGxldGVXcmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBEdWUgdG8gdGhlIGZhY3QgdGhhdCBlZGl0aW5nIGEgbWVzc2FnZSBub3cgaGFzIGEgbGFyZ2VyIGFtb3VudCBvZiBncmV5XG4gICAgY29sb3VyIGFib3ZlIGl0IChkdWUgdG8gdGhlIHJpY2ggdGV4dCBidXR0b25zIGFib3ZlIHRoZSBjb21wb3NlciksIHdlIG5lZWRcbiAgICB0byBnaXZlIHRoZSBhdXRvY29tcGxldGUgYSBiaXQgbW9yZSB2aXN1YWwgc2VwYXJhdGlvbiBieSB1c2luZyBhIGJvcmRlci5cbiAgICAqL1xuICAgID4gLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRm9ybWF0dGluZ0J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbiB7XG4gICAgICAgIC0tc2l6ZTogMjhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbl9ob3ZlciB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhbmVscztcblxuICAgICAgICAgICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY2VudC0zMDA7XG5cbiAgICAgICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfZGlzYWJsZWQge1xuICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgLS1zaXplOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9Gb3JtYXR0aW5nQnV0dG9uc19Ub29sdGlwX0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGtiZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaW5rTW9kYWwge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICBoZWlnaHQ6IDM0MXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X0xpbmtNb2RhbF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XG5cbiAgICAgICAgLm14X0xpbmtNb2RhbF9GaWVsZCB7XG4gICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xpbmtNb2RhbF9idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdmF0YXJTZXR0aW5nX2F2YXRhciB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIG1pbi13aWR0aDogMTIwcHg7IC8qIHNvIGl0IGRvZXNuJ3QgZ2V0IGNydXNoZWQgYnkgdGhlIGZsZXhib3ggaW4gbGFuZ3VhZ2VzIHdpdGggbG9uZ2VyIHdvcmRzICovXG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5teF9BdmF0YXJTZXR0aW5nX2F2YXRhckRpc3BsYXk6aG92ZXIgLm14X0F2YXRhclNldHRpbmdfaG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYgPiBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgIC5teF9BdmF0YXJTZXR0aW5nX3VwbG9hZEJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXZhdGFyU2V0dGluZ191cGxvYWRCdXR0b246aG92ZXIsXG4gICAgLm14X0F2YXRhclNldHRpbmdfdXBsb2FkQnV0dG9uX2FjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfQXZhdGFyU2V0dGluZ19yZW1vdmVNZW51SXRlbSBzdmcsXG4ubXhfQXZhdGFyU2V0dGluZ19yZW1vdmVNZW51SXRlbSBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXcge1xuICAgIC0tRm9udFNjYWxpbmdQYW5lbF9wcmV2aWV3LXBhZGRpbmctYmxvY2s6IDlweDtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCkgdmFyKC0tRm9udFNjYWxpbmdQYW5lbF9wcmV2aWV3LXBhZGRpbmctYmxvY2spIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuXG4gICAgJi5teF9JUkNMYXlvdXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5teF9Gb250U2NhbGluZ1BhbmVsX0Ryb3Bkb3duIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBteF9GaWVsZCBtYXJnaW4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW1hZ2VTaXplUGFuZWxfcmFkaW9zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgPiBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNjhweDsgLyoga2VlcCB0aGUgYm94ZXMgc2VwYXJhdGUgKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5teF9JbWFnZVNpemVQYW5lbF9zaXplIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB3aWR0aDogMjIxcHg7XG4gICAgICAgIGhlaWdodDogMTQ4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7IC8qIG1vdmUgcmFkaW8gYnV0dG9uIGF3YXkgZnJvbSBib3R0b20gZWRnZSBhIGJpdCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnRlZ3JhdGlvbk1hbmFnZXIge1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgaGVpZ2h0OiA3MCU7XG4gICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgfVxuXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9sb2FkaW5nLFxuICAgIC5teF9JbnRlZ3JhdGlvbk1hbmFnZXJfZXJyb3Ige1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9lcnJvciBoMyB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfdXBncmFkZVJlcXVpcmVkIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJGFjY2VudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3NwYWNlc1dpdGhBY2Nlc3Mge1xuICAgID4gaDQge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OyAvKiBtYXRjaGVzIGhlaWdodCBvZiBhdmF0YXIgZm9yIHYtYWxpZ24gKi9cbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3JhZGlvQnV0dG9uIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5teF9TdHlsZWRSYWRpb0J1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmLm14X1N0eWxlZFJhZGlvQnV0dG9uX2Rpc2FibGVkICsgc3BhbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmICsgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDM0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJiArIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfbGFiZWxsZWRDaGVja2JveCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19yZWNvbW1lbmRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtMTAwMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBrYmQge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrYmQtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAka2JkLWJvcmRlci1jb2xvcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyoqXG4gICAgICogVGhlIHNldHRpbmdzIGZvcm0gaGFzIGEgZGVmYXVsdCBnYXAgb2YgMTBweFxuICAgICAqIFdlIHdhbnQgdG8gaGF2ZSBhIGJpZ2dlciBnYXAgYmV0d2VlbiB0aGUgbGF5b3V0IG9wdGlvbnNcbiAgICAgKi9cbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCkgIWltcG9ydGFudDtcblxuICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgKiAxMHB4XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtMngpICsgdmFyKC0tY3BkLXNwYWNlLTAtNXgpKTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19pbmxpbmUsXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX0V2ZW50VGlsZVByZXZpZXcge1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE92ZXJyaWRlIHRoZSBldmVudCB0aWxlIHN0eWxlIHRvIG1ha2UgaXQgZml0IGluIHRoZSBzZWxlY3RvclxuICAgICAgICAgKiBUd2VhayBhbHNvIGhvdmVyIHN0eWxlIGFuZCByZW1vdmUgYWN0aW9uIGJhclxuICAgICAgICAgKi9cbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9fRXZlbnRUaWxlUHJldmlldyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgKiBFdmVudFRpbGVWaWV3IGFwcGxpZXMgdGhlIGNvbnRlbnQgZ3V0dGVyIHRocm91Z2ggdGhpc1xuICAgICAgICAgICAgICAgICAqIHZhcmlhYmxlIG9uIHRoZSBzaGVsbC4gS2VlcCB0aGUgcHJldmlldydzIGNvbnRlbnQgd2lkdGhcbiAgICAgICAgICAgICAgICAgKiBjb25zaXN0ZW50IHdpdGggdGhlIGxlZ2FjeSBwcmV2aWV3IG92ZXJyaWRlIGJlbG93LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC0tZXZlbnQtdGlsZS1jb250ZW50LWlubGluZS1lbmQ6IDA7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBIaWRlIHRoZSBtZXNzYWdlIG9wdGlvbnMgYW5kIG1lc3NhZ2UgYWN0aW9uIGJhciBpbiB0aGUgcHJldmlld1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwLFxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aGFzKFtkYXRhLWV2ZW50LWxheW91dD1cImdyb3VwXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tY3BkLXNwYWNlLTN4KSAqIC0xKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBBZGQgbWFyZ2luIHRvIGNlbnRlciB0aGUgYnViYmxlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgJjpoYXMoW2RhdGEtZXZlbnQtbGF5b3V0PVwiYnViYmxlXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBBZGQgdGhlIGxheW91dCBtYXJnaW4gYW5kIHRoZSBtYXJnaW4gdG8gdmVydGljYWxseSBjZW50ZXIgdGhlIGJ1YmJsZVxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNHB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhhcyhbZGF0YS1ldmVudC1sYXlvdXQ9XCJpcmNcIl0pIHtcbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICogVGhlIG1pZ3JhdGVkIHRpbGUga2VlcHMgYW4gZW1wdHkgdGltZXN0YW1wIHNsb3QgZm9yXG4gICAgICAgICAgICAgICAgICAgICAqIElSQyBhbGlnbm1lbnQuIFRoZSBwcmV2aWV3IG11c3QgaGlkZSB0aGF0IHNsb3QgYXMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIGxlZ2FjeSBwcmV2aWV3IGhpZCBpdHMgdGltZXN0YW1wIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCxcbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtdGVzdGlkPVwiZXZlbnQtdGlsZS1zbG90LXRpbWVzdGFtcFwiXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncyB7XG4gICAgLm14X05vdGlmaWNhdGlvblB1c2hlclNldHRpbmdzX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X05vdGlmaWNhdGlvblB1c2hlclNldHRpbmdzX2RldGFpbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzVGFiIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nczIge1xuICAgIC8qIFRoZSBsYWJzIG5vdGljZSBiYW5uZXIgcmVuZGVycyBkaXJlY3RseSBiZWxvdyB0aGlzLCBzbyBrZWVwIHRoZW0gYXBhcnQuIFdoZW4gaXQgaXMgYWJzZW50XG4gICAgICAgdGhlIG1hcmdpbiBjb2xsYXBzZXMgd2l0aCB0aGUgc2VjdGlvbidzIG93biwgbGVhdmluZyB0aGUgc3BhY2luZyBiZWxvdyB1bmNoYW5nZWQuICovXG4gICAgLm14X05vdGlmaWNhdGlvblNldHRpbmdzMl9lcnJvciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgLyogVGhlIGFsZXJ0IGxheXMgaXRzIGFjdGlvbnMgb3V0IGF0IGZsZXgtYmFzaXMgMCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGJyZWFrIHRoZSBsYWJlbFxuICAgICAgICAgICBhY3Jvc3MgbGluZXMgcmF0aGVyIHRoYW4gd3JhcHBpbmcgaXQgYmVsb3cgdGhlIG1lc3NhZ2UuICovXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDb21wb3VuZCBkcm9wcyB0aGUgYWN0aW9uIG9udG8gaXRzIG93biByb3cgZm9yIGFueSBhbGVydCB1bmRlciA2MDBweCwgd2hpY2ggbGVhdmVzIHRoaXNcbiAgICAgICAgICAgc2hvcnQgbWVzc2FnZSBzaXR0aW5nIGJlc2lkZSBhIG1vc3RseSBlbXB0eSBzZWNvbmQgcm93LiBXcmFwIG9uIGRlbWFuZCBpbnN0ZWFkLCBzbyB0aGVcbiAgICAgICAgICAgYWN0aW9uIG9ubHkgbW92ZXMgYmVsb3cgdGhlIG1lc3NhZ2Ugb25jZSB0aGUgdHdvIGdlbnVpbmVseSBzdG9wIGZpdHRpbmcgc2lkZSBieSBzaWRlLlxuICAgICAgICAgICBUaGUgY2hpbGRyZW4gYXJlIHRoZSBhbGVydCdzIGNvbnRlbnQgcm93IGFuZCB0aGUgbWVzc2FnZSB3aXRoaW4gaXQuICovXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLyogQ29tcG91bmQgdGludHMgb25seSB0aGUgaWNvbiBvbiBhIGNyaXRpY2FsIGFsZXJ0IGFuZCBsZWF2ZXMgdGhlIG1lc3NhZ2UgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgZGVmYXVsdCB0ZXh0IGNvbG91ciwgc28gc3RhdGUgaXQgaGVyZSB0byByZWFkIGxpa2Ugd2FybmluZ3MgZWxzZXdoZXJlLiBUaGUgYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgaXMgYSBzaWJsaW5nIG9mIHRoaXMgZWxlbWVudCBhbmQgc28ga2VlcHMgaXRzIG93biBjb2xvdXIuICovXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU2VjdGlvbl9zdWJTZWN0aW9ucyB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBnYXA6IDMycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3Vic2VjdGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgLm14X1NldHRpbmdzU3Vic2VjdGlvbl90ZXh0IHtcbiAgICAgICAgICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nczJfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIC5teF9UYWdDb21wb3NlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG5cbiAgICAgICAgJi5teF9UYWdDb21wb3Nlcl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGFnQ29tcG9zZXJfdGFncyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG5cbiAgICAgICAgICAgIC5teF9UYWcge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhbmVsLWFjdGlvbnM7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X1RhZ19kZWxldGUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDEycHgpOyAvKiArMTJweCB0byBsaW5lIHVwIGNlbnRlciBvZiAnTm9pc3knIGNvbHVtbiB3aXRoIHRvZ2dsZSBzd2l0Y2hlcyAqL1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIHJlcGVhdCgzLCA2MnB4KTtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyIGNlbnRlcjtcbiAgICBnYXA6IDhweDtcblxuICAgIC8qIE92ZXJyaWRlIFN0eWxlZFJhZGlvQnV0dG9uIGRlZmF1bHQgc3R5bGVzICovXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9zcGFjZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGxlZnQgYWxpZ24gc2VjdGlvbiBoZWFkaW5nICovXG4gICAgLm14X1NldHRpbmdzU3Vic2VjdGlvbkhlYWRpbmcge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIH1cbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3dDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvdyB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93TGFiZWwge1xuICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDsgLyogUmVtb3ZlIGRlZmF1bHQgbGVnZW5kIHBhZGRpbmcgKi9cbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIC8qIDxsZWdlbmQ+IGRvZXMgbm90IGFjY2VwdCAqL1xuICAgIC8qIGRpc3BsYXk6IGlubGluZSB8IGlubGluZS1ibG9jayAqL1xuICAgIC8qIGZvcmNlIGl0IGlubGluZSB1c2luZyBmbG9hdCAqL1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZENvbHVtbkxhYmVsIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xufVxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3dFcnJvciB7XG4gICAgLyogb2NjdXB5IGZ1bGwgcm93ICovXG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMCU7XG4gICAgLyogY29sbGFwc2UgaGFsZiBvZiB0aGUgZ3JpZC1nYXAgKi9cbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTF4KSk7XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19mbG9hdGluZ1NlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgICAmID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgLyogc2VjdGlvbiBoZWFkZXIgKi9cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICA+IHRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgICAgICB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIC8qIEp1c3QgZm9yIGEgYml0IG9mIHNwYWNpbmcgKi9cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2NsZWFyTm90aWZzQnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5teF9UYWdDb21wb3NlciB7XG4gICAgbWFyZ2luLXRvcDogMzVweDsgLyogbG90cyBvZiBkaXN0YW5jZSBmcm9tIHRoZSBsYXN0IGxpbmUgb2YgdGhlIHRhYmxlICovXG59XG5cbi5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X05vdGlmaWNhdGlvblNvdW5kX2Jyb3dzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR2VuZXJhbFVzZXJTZXR0aW5nc1RhYl9zZWN0aW9uLS1kaXNjb3ZlcnlfZXhpc3RpbmdfdmVyaWZpY2F0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxZW07XG4gICAgfVxufVxuXG4ubXhfUGhvbmVOdW1iZXJzX2lucHV0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9QaG9uZU51bWJlcnNfaW5wdXQgPiAubXhfRmllbGQge1xuICAgIGZsZXgtZ3JvdzogMTtcbn1cblxuLm14X1Bob25lTnVtYmVyc19jb3VudHJ5IHtcbiAgICB3aWR0aDogODBweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqIENvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9Qb3dlckxldmVsU2VsZWN0b3JfQnV0dG9uIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgLCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tUHJvZmlsZVNldHRpbmdzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDU0cHg7XG5cbiAgICAgICAgICAgIC5teF9GaWVsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc190b3BpYyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgICAgICYgPiB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3RvcGljLS1yb29tIHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogNGVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc191c2VySWQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsgLyogMThweCBpcyBhbHJlYWR5IGFjY291bnRlZCBmb3IgYnkgdGhlIDxwPiBhYm92ZSB0aGUgYnV0dG9ucyAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXRJbnRlZ3JhdGlvbk1hbmFnZXIge1xuICAgIC5teF9TZXRJbnRlZ3JhdGlvbk1hbmFnZXJfaGVhZGluZ19tYW5hZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbiAgICBmb3JtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NGaWVsZHNldCB7XG4gICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7XG4gICAgcGFkZGluZy1ibG9jazogdW5zZXQ7XG4gICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgIG1pbi1pbmxpbmUtc2l6ZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4ubXhfU2V0dGluZ3NGaWVsZHNldF9sZWdlbmQge1xuICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGxlZ2VuZD4gc3R5bGluZyAqL1xuICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4ubXhfU2V0dGluZ3NGaWVsZHNldF9kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc0ZpZWxkc2V0X2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9TZXR0aW5nc0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgLyogT3ZlcnJpZGUgbWFyZ2luIGZyb20gY29tbW9uLnBjc3MgKi9cbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzSGVhZGVyX3JlY29tbWVuZGVkOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBjbGlwLXBhdGg6IGNpcmNsZSg0cHgpO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1NldHRpbmdzU3ViaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3ViaGVhZGVyX3N1Y2Nlc3Mge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc3VjY2Vzcy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJoZWFkZXJfZXJyb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXhpc3RpbmdTcGVsbENoZWNrTGFuZ3VhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0V4aXN0aW5nU3BlbGxDaGVja0xhbmd1YWdlX2xhbmd1YWdlIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc3BlbGxDaGVja0xhbmd1YWdlSW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhlbWVDaG9pY2VQYW5lbF9UaGVtZVNlbGVjdG9ycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogT3ZlcnJpZGUgZm9ybSBkZWZhdWx0IHN0eWxlICovXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KSAhaW1wb3J0YW50O1xuXG4gICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3RvciB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAgICAgJi5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZW5hYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuXG4gICAgICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwZGF0ZUNoZWNrQnV0dG9uX3N1bW1hcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQZXJzb25hbEluZm9TZXR0aW5ncyB7XG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCAsIDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQcm9maWxlU2V0dGluZ3Mge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfZGlzcGxheU5hbWUge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9uYW1lQW5kU3RhdHVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgb2YgbWluLXdpZHRoOiBhdXRvIHRvIGFsbG93IG1heC13aWR0aDogMTAwJSB0byBib3VuZCBjb3JyZWN0bHkgKi9cbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX25pY2tuYW1lQ29sb3Ige1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgbGVnZW5kIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19uaWNrbmFtZUNvbG9yX2hlbHAsXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3Nfbmlja25hbWVDb2xvcl9wcmV2aWV3IHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3Nfbmlja25hbWVDb2xvcl9vcHRpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDA7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3Nfbmlja25hbWVDb2xvcl9zd2F0Y2gge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3Nfbmlja25hbWVDb2xvcl91bmF2YWlsYWJsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9scyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZF9sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX2FjY291bnRtYW5hZ2VJY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzBweDtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uRGV0YWlscyxcbi5teF9PdGhlclNldHRpbmdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCBmb3JtICovXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX3Nlc3Npb25fdGl0bGUsXG4gICAgLm14X090aGVyU2V0dGluZ3NfdGl0bGUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0VuY3J5cHRpb25EZXRhaWxzIHtcbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfc2Vzc2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2Om50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9DaGFuZ2VSZWNvdmVyeUtleSB7XG4gICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X0Zvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X2Zvb3RlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0tleVBhbmVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgIFwiaGVhZGVyIGJ1dHRvblwiIGF1dG9cbiAgICAgICAgICAgIFwiY29udGVudCBidXR0b25cIiBhdXRvIC8gMWZyO1xuXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcblxuICAgICAgICAgICAgLm14X0tleVBhbmVsX2tleSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRmlyYSBDb2RlXCIsIG1vbm9zcGFjZTtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NDcxJnQ9dDdsb3pZclNJMUFWWlozVS00XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGJ1dHRvbjtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnktYWxwaGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBVc2VkIGJ5IENoYW5nZVJlY292ZXJ5S2V5Qm9keSBhbmQgQ2hlY2tSZWNvdmVyeUtleSwgd2hpY2ggYm90aCByZW5kZXIgdGhlIGZvcm0gaW4gYW5cbiAgIEVuY3J5cHRpb25DYXJkLiAqL1xuLm14X0VuY3J5cHRpb25DYXJkIC5teF9LZXlGb3JtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgLm14X0tleUZvcm1fcGFzc3dvcmQge1xuICAgICAgICA+IGlucHV0W25hbWU9XCJyZWNvdmVyeUtleVwiXSB7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogRnJvbSBmaWdtYSBodHRwczovL3d3dy5maWdtYS5jb20vZGVzaWduL3FUV1JmSXRwTzNSZENqblRLUHU0bUwvU2V0dGluZ3M/bm9kZS1pZD0zNzUtNzc1MDYmdD1kODJOZFJCRG9Lc1VlMUM5LTRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIFNlZSBmaWdtYSBodHRwczovL3d3dy5maWdtYS5jb20vZGVzaWduL3FUV1JmSXRwTzNSZENqblRLUHU0bUwvU2V0dGluZ3M/bm9kZS1pZD0zNzUtNzc1MDYmdD1kODJOZFJCRG9Lc1VlMUM5LTRcbiAgICAgICAgICAgICAqIEF2b2lkIHN0cmV0Y2hpbmcgdGhlIGhpZGUvc2hvdyBzeW1ib2wgdG8gdGhlIGhlaWdodCBvZiB0aGUgaW5wdXQsIGFuZCBjZW50cmUgaXQgdmVydGljYWxseS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAyNC41cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAvKiBGcm9tIGZpZ21hICovXG4gICAgYm94LXNoYWRvdzogMCAxLjJweCAyLjRweCAwIHJnYigyNywgMjksIDM0LCAwLjE1KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgLm14X0VuY3J5cHRpb25DYXJkX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGV4dHJhIGNsYXNzIGZvciBzcGVjaWZ5aW5nIHRoYXQgd2UgZG9uJ3QgbmVlZCBhIGJvcmRlciAqL1xuICAgICYubXhfRW5jcnlwdGlvbkNhcmRfbm9Cb3JkZXIge1xuICAgICAgICBib3JkZXI6IDBweCBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FsZXJ0Tm9JY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiAtdmFyKGNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FbmNyeXB0aW9uQ2FyZF9idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfRW5jcnlwdGlvbkNhcmRfZW1waGFzaXNlZENvbnRlbnQge1xuICAgIHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9SZWNvdmVyeVBhbmVsT3V0T2ZTeW5jIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLyogUmVkIHRleHQgZm9yIHRoZSBcIkRvIG5vdCBjbG9zZSB0aGlzIHdpbmRvd1wiIHdhcm5pbmcgKi9cbi5teF9SZXNldElkZW50aXR5UGFuZWxfd2FybmluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzQmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X1NldHRpbmdzQmFubmVyX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0luZGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjMsIDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1NlY3Rpb24ge1xuICAgIC0tU2V0dGluZ3NUYWJfc2VjdGlvbi1tYXJnaW4tYm90dG9tLXByZWZlcmVuY2VzLWxhYnM6IDMwcHg7XG4gICAgLS1TZXR0aW5nc1RhYl9oZWFkaW5nX250aF9jaGlsZC1tYXJnaW4tdG9wOiAzMHB4O1xuICAgIC0tU2V0dGluZ3NUYWJfdG9vbHRpcC1tYXgtd2lkdGg6IDIwcHg7IC8qIFNvIGl0IGZpdHMgaW4gdGhlIHNwYWNlIHByb3ZpZGVkIGJ5IHRoZSBwYWdlICovXG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC8qIENvbXBvdW5kIGxpbmtzIGNhcnJ5IGRhdGEta2luZCBhbmQgcHJvdmlkZSB0aGVpciBvd24gY29sb3VyLiAqL1xuICAgIGE6bm90KFtkYXRhLWtpbmRdKSB7XG4gICAgICAgIGNvbG9yOiAkbGlua3M7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1NlY3Rpb25fbmV3VWkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTZWN0aW9uX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NTZWN0aW9uX3N1YlNlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzVGFiIHtcbiAgICAtLVNldHRpbmdzVGFiX3Rvb2x0aXAtbWF4LXdpZHRoOiAxMjBweDsgLyogU28gaXQgZml0cyBpbiB0aGUgc3BhY2UgcHJvdmlkZWQgYnkgdGhlIHBhZ2UgKi9cblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLyogQ29tcG91bmQgbGlua3MgY2FycnkgZGF0YS1raW5kIGFuZCBwcm92aWRlIHRoZWlyIG93biBjb2xvdXIuICovXG4gICAgYTpub3QoW2RhdGEta2luZF0pIHtcbiAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLyogbmV2ZXIgd2FudCBmdWxsIHdpZHRoIGJ1dHRvbnNcbiAgICBldmVudCB3aGVuIG90aGVyIGNvbnRlbnQgaXMgMTAwJSB3aWR0aCAqL1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1RhYl93YXJuaW5nVGV4dCB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1NldHRpbmdzVGFiX3N1YnNlY3Rpb25UZXh0IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogODBweDsgLyogQWxpZ24gd2l0aCB0aGUgcmVzdCBvZiB0aGUgdmlldyAqL1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbn1cblxuLm14X1NldHRpbmdzVGFiX3NlY3Rpb24ge1xuICAgICRlbmQtZ3V0dGVyOiA4MHB4O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogJGVuZC1ndXR0ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkZm9udC00OHB4KTsgLyogRm9yY2Ugd29yZCB3cmFwIGluc3RlYWQgb2YgY29sbGlkaW5nIHdpdGggdGhlIHN3aXRjaCAqL1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IHAge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogJGVuZC1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1RhYl9zdWJzZWN0aW9uVGV4dCAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1RhYl9zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob3RpZmljYXRpb25TZXR0aW5nc1RhYl9ub3RpZmljYXRpb25zU2VjdGlvbiB7XG4gICAgd2lkdGg6IDM2MHB4O1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBpbnB1dCArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3NUYWJfbWljcm9Db3B5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdLm14X05vdGlmaWNhdGlvblNvdW5kX3NvdW5kVXBsb2FkIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTm9yZGVjayBJVCArIENvbnN1bHRpbmcgR21iSFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2tub2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfY29udGVudCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2F2YXRhciB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9uYW1lIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl90aW1lc3RhbXAge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfdXNlcklkIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9zZWVNb3JlT3JMZXNzIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCAwO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2FjdGlvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICArIC5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3BhcmFncmFwaCB7XG4gICAgbWFyZ2luOiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb2xlc1Jvb21TZXR0aW5nc1RhYl9iYW5uZWRMaXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubXhfUm9sZXNSb29tU2V0dGluZ3NUYWJfdW5iYW5CdG4ge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiX2FkdmFuY2VkU2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiX3dhcm5pbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICNmZjAwNjQ7IC8qIE1hdGNoIGxlZ2FjeSBpY29uIGNvbG91ciB1bnRpbCByZWRlc2lnbiAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWVsZC5teF9BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiX2NoZWNrYm94Q29udHJvbGxlZEZpZWxkIHtcbiAgICB3aWR0aDogMjU2cHg7XG4gICAgLyogTGluZSB1cCB3aXRoIFNldHRpbmdzIGZpZWxkIHRvZ2dsZSBidXR0b24gKi9cbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hlbHBVc2VyU2V0dGluZ3NUYWJfYWNjZXNzVG9rZW5EZXRhaWxzIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dExpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dFJvdyxcbi5teF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dFJvdyB7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19SYWRpbyB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX1JhZGlvSGVscCB7XG4gICAgLyogIWltcG9ydGFudCBiZWNhdXNlIGl0J3Mgb3ZlcnJpZGluZyBjb21wb3VuZCBoZWxwIG1lc3NhZ2UgKi9cbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX0Zvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfVG9nZ2xlU3dpdGNoIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01qb2xuaXJVc2VyU2V0dGluZ3NUYWJfbGlzdEl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWJfc2VjdGlvbl9oaW50IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9idWxrT3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9pZ25vcmVkVXNlcnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2lnbm9yZWRVc2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfaWdub3JlZFVzZXIgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX3dhcm5pbmcge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG5mb3JtLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX3Bvc3Rob2dTZWN0aW9uIHtcbiAgICAvKiBJbmhpYml0IGNvbXBvdW5kIHNwYWNpbmcgaGVyZSBhcyBpdCBjbGFzaGVzIHdpdGggcHJlLWNvbXBvdW5kIFVJICovXG4gICAgZGlzcGxheTogY29udGVudHMgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfaG9tZUFsbFJvb21zQ2hlY2tib3gge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuXG4gICAgJiArIGRpdiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4O1xuICAgIH1cbn1cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfY2hlY2tib3ggbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VCYXNpY1NldHRpbmdzIHtcbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDI0cHggMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhckNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG5cbiAgICAgICAgLm14X1NwYWNlQmFzaWNTZXR0aW5nc19hdmF0YXIge1xuICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsgLyogd2hpdGUgaWNvbiBmaWxsICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMThweDtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlua3M7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhcl9yZW1vdmUge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBtaW4tY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlQ2hpbGRyZW5QaWNrZXIge1xuICAgIG1hcmdpbjogMTZweCAwO1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VDaGlsZHJlblBpY2tlcl9ub1Jlc3VsdHMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VDcmVhdGVNZW51X3dyYXBwZXIge1xuICAgIC8qIGJhY2tncm91bmQgYmx1ciBldmVyeXRoaW5nIGV4Y2VwdCBTcGFjZVBhbmVsICovXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2JhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlhbG9nLWJhY2tkcm9wLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGxlZnQ6IDY4cHg7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgID4gaDIge1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VDcmVhdGVNZW51X2JhY2sge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0lubGluZVRlcm1zQWdyZWVtZW50X2NiQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5teF9JbmxpbmVUZXJtc0FncmVlbWVudF9jaGVja2JveCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FuYWx5dGljc1RvYXN0IHtcbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdDYWxsVG9hc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IC8qIHJlc3RvcmUgcG9pbnRlciBldmVudHMgc28gdGhlIHVzZXIgY2FuIGFjY2VwdC9kZWNsaW5lICovXG5cbiAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfZXhwYW5kQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMXM7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiBzdmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYXZhdGFycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYWN0aW9uQnV0dG9uIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEzMXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IC8qIHJlc3RvcmUgcG9pbnRlciBldmVudHMgc28gdGhlIHVzZXIgY2FuIGFjY2VwdC9kZWNsaW5lICovXG5cbiAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9jYWxsZXIge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcblxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2J1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG5cbiAgICAgICAgICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b24ge1xuICAgICAgICAgICAgICAgIEBtaXhpbiBMZWdhY3lDYWxsQnV0dG9uO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2ljb25CdXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob25VcmdlbnRFY2hvRmFpbHVyZVRvYXN0IHtcbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAkZm9udC0xOHB4O1xuICAgICAgICBoZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiB3ZSBrbm93IHRoYXQgbm9uLXVyZ2VudCB0b2FzdHMgYXJlIGFsd2F5cyBzdHlsZWQgdGhlIHNhbWUgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICAgIC8qIGluY2x1ZGVzIHRoZSBpMThuIGJsb2NrICovXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEtMjAyMyB4IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9IZWFkaW5nX2gxLFxuLm14X0hlYWRpbmdfaDIsXG4ubXhfSGVhZGluZ19oMyxcbi5teF9IZWFkaW5nX2g0IHtcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBtYXJnaW4tYmxvY2s6IHVuc2V0O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfSGVhZGluZ19oMSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy14bC1zZW1pYm9sZCk7XG59XG5cbi5teF9IZWFkaW5nX2gyIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLWxnLXNlbWlib2xkKTtcbn1cblxuLm14X0hlYWRpbmdfaDMge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfSGVhZGluZ19oNCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2RlY2ltYWxTYXMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG59XG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2RlY2ltYWxTYXMgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZW1vamlTYXMge1xuICAgIG1hcmdpbjogMjVweCAwO1xufVxuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19idXR0b25Sb3cge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDlweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBkYXRhLXdoYXRpbnRlbnQgbWFrZXMgbW9yZSBzZW5zZSBoZXJlIHNlbWFudGljYWxseSBidXQgdGhlbiB0aGUgdG9vbHRpcCB3b3VsZCBzdGF5IHZpc2libGUgd2l0aG91dCB0aGUgYnV0dG9uICovXG4vKiB3aGljaCBsb29rcyBicm9rZW4sIHNvIHdlIG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YgdG9vbHRpcHMgd2hpY2ggaXMgZmluZSB0b28uICovXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDAuMDAxOyAvKiBvcGFjaXR5IDAgY2FuIGNhdXNlIGEgcmUtbGF5b3V0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMge1xuICAgIC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemU6IDE2cHg7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3R0b206IDMycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG4gICAgei1pbmRleDogMjAwOyAvKiBUbyBiZSBhYm92ZSBfYWxsXyBmZWVkcyAqL1xuICAgIGdhcDogMThweDtcblxuICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCA0cHggMHB4ICMwMDAwMDAyNjsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1mb3JlZ3JvdW5kO1xuXG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX21pYyBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBTdGF0ZSBidXR0b25zICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9vbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1mb3JlZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fc2NyZWVuc2hhcmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9vZmYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb2ZmLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9mZi1mb3JlZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fc2NyZWVuc2hhcmluZyxcbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIFN0YXRlIGJ1dHRvbnMgKi9cblxuICAgICAgICAvKiBTdGF0ZWxlc3MgYnV0dG9ucyAqL1xuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25faGFuZ3VwIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBTdGF0ZWxlc3MgYnV0dG9ucyAqL1xuXG4gICAgICAgIC8qIEludmlzaWJsZSBzdGF0ZSAqL1xuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25faW52aXNpYmxlIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgICAgIC8qIEludmlzaWJsZSBzdGF0ZSAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsRHVyYXRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FsbFZpZXcge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC1iYWNrZ3JvdW5kO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsUGFkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHJvdy1nYXA6IDE2cHg7XG4gICAgY29sdW1uLWdhcDogMHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgLyogc3F1ZWV6ZSB0aGUgZGlhbCBwYWQgYnV0dG9ucyB0b2dldGhlciBob3Jpem9udGFsbHkgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xufVxuXG4ubXhfRGlhbFBhZF9idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14X0RpYWxQYWRfYnV0dG9uIC5teF9EaWFsUGFkX2J1dHRvblN1YlRleHQge1xuICAgIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4ubXhfRGlhbFBhZF9kaWFsQnV0dG9uIHtcbiAgICAvKiBBbHdheXMgc2hvdyB0aGUgZGlhbCBidXR0b24gaW4gdGhlIGNlbnRlciBncmlkIGNvbHVtbiAqL1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG5cbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiBvbiBhbGwgdGhlbWVzICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsUGFkIC5teF9EaWFsUGFkIHtcbiAgICByb3ctZ2FwOiAxNnB4O1xuICAgIGNvbHVtbi1nYXA6IDMycHg7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVXcmFwcGVyIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2hlYWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgLyogYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgaW5wdXQgbGluZSBhbmQgdGhlIGRpYWwgYnV0dG9ucyAqL1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gMC4yNXM7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfY2FuY2VsIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfaGVhZGVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhY2NlbnQ7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfdGl0bGUge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxsZWQge1xuICAgIGhlaWdodDogMS41ZW07XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDBweDtcbn1cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbGxlZCBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiAxODVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDApO1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxQYWQge1xuICAgIG1hcmdpbjogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dfZGlhbFBhZFdyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsIHtcbiAgICB3aWR0aDogMjkycHg7XG4gICAgaGVpZ2h0OiAzNzBweDtcbiAgICBwYWRkaW5nOiAxNnB4IDBweCAwcHggMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2hlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgICAvKiBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBpbnB1dCBsaW5lIGFuZCB0aGUgZGlhbCBidXR0b25zICovXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjI1cztcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9oZWFkZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF90aXRsZSB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfY2FuY2VsIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAvKiBSZW1vdmUgYm9yZGVyIHNlcGFyYXRvciBiZXR3ZWVuIHBvc3RmaXggYW5kIGZpZWxkIGNvbnRlbnQgKi9cbiAgICBib3JkZXItbGVmdDogbm9uZTtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9maWVsZCBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2RpYWxQYWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlldyB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhbmVsLWJnLWNvbG9yO1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAvKiBYWFg6IFBpUENvbnRhaW5lciBzZXRzIHBvaW50ZXItZXZlbnRzOiBub25lIC0gc2hvdWxkIHByb2JhYmx5IGJlIHNldCBiYWNrIGluIGEgYmV0dGVyIHBsYWNlICovXG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdfdG9hc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNzRweDtcblxuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgei1pbmRleDogNTA7XG5cbiAgICAgICAgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzE5MWM7XG4gICAgfVxuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnRfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMjAlICsgMjBweCk7IC8qIFNwYWNlIGZvciB0aGUgc2lkZWJhciAqL1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWNvbnRlbnQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X3N0YXR1cyB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19hdmF0YXJzQ29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfaG9sZEJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMjBweCk7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudF9ob2xkIC5teF9MZWdhY3lDYWxsVmlld19zdGF0dXMge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcmVzL2ltZy92b2lwL3BhdXNlZC5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfcGlwICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm14X0xlZ2FjeUNhbGxWaWV3X3NpZGViYXIpIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfVmlkZW9GZWVkX3ByaW1hcnkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiB1bnNldDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X3BpcCB7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyMHB4IHJnYigwLCAwLCAwLCAwLjIpO1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMge1xuICAgICAgICAgICAgYm90dG9tOiAxM3B4O1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xuXG4gICAgICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld19sYXJnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICBtYXJnaW46IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgICAgICAvKiBUaGUgbGVmdCBzaWRlIGdhcCBpcyBmdWxseSBoYW5kbGVkIGJ5IHRoaXMgbWFyZ2luLiBUbyBwcm9oaWJpdCBibGVlZGluZyBvbiB3ZWJraXQgYnJvd3Nlci4gKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld19iZWxvd1dpZGdldCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXdGb3JSb29tIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbV9SZXNpemVXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAmOmhvdmVyIC5teF9MZWdhY3lDYWxsVmlld0ZvclJvb21fUmVzaXplSGFuZGxlIHtcbiAgICAgICAgICAgIC8qIE5lZWQgdG8gdXNlIGltcG9ydGFudCB0byBvdmVycmlkZSBlbGVtZW50IHN0eWxlIGF0dHJpYnV0ZXMgKi9cbiAgICAgICAgICAgIC8qIHNldCBieSByZS1yZXNpemFibGUgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2NHB4O1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlciB7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfcGlwIHtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9zZWNvbmRhcnlDYWxsSW5mbyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCLCt1wiO1xuICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICB9XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9jb250cm9scyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDVweDtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2NhbGxJbmZvIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3Jvb21OYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gICAgaGVpZ2h0OiAxNXB4O1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdfc2Vjb25kYXJ5Q2FsbF9yb29tTmFtZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3U2lkZWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMHB4O1xuXG4gICAgd2lkdGg6IDIwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcblxuICAgID4gLm14X1ZpZGVvRmVlZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgJi5teF9WaWRlb0ZlZWRfdm9pY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpZGVvLWZlZWQtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3U2lkZWJhcl9waXBNb2RlIHtcbiAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiAsIDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZpZGVvRmVlZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IHRyYW5zcGFyZW50IDJweCBzb2xpZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICYubXhfVmlkZW9GZWVkX3NlY29uZGFyeSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDI0cHg7XG4gICAgICAgIGJvdHRvbTogNzJweDtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG5cbiAgICAmLm14X1ZpZGVvRmVlZF92b2ljZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnRlZC1iZy1jb2xvcjtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOm5vdCgubXhfVmlkZW9GZWVkX3ByaW1hcnkpIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZGVvRmVlZF92aWRlbyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcblxuICAgICAgICAmLm14X1ZpZGVvRmVlZF92aWRlb19taXJyb3Ige1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmlkZW9GZWVkX21pYyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICBib3R0b206IDZweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwLjUpOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJwcmUgY29kZS5obGpze2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmc6MWVtfWNvZGUuaGxqc3twYWRkaW5nOjNweCA1cHh9LmhsanN7Y29sb3I6I2FiYjJiZjtiYWNrZ3JvdW5kOiMyODJjMzR9LmhsanMtY29tbWVudCwuaGxqcy1xdW90ZXtjb2xvcjojNWM2MzcwO2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLWRvY3RhZywuaGxqcy1mb3JtdWxhLC5obGpzLWtleXdvcmR7Y29sb3I6I2M2NzhkZH0uaGxqcy1kZWxldGlvbiwuaGxqcy1uYW1lLC5obGpzLXNlY3Rpb24sLmhsanMtc2VsZWN0b3ItdGFnLC5obGpzLXN1YnN0e2NvbG9yOiNlMDZjNzV9LmhsanMtbGl0ZXJhbHtjb2xvcjojNTZiNmMyfS5obGpzLWFkZGl0aW9uLC5obGpzLWF0dHJpYnV0ZSwuaGxqcy1tZXRhIC5obGpzLXN0cmluZywuaGxqcy1yZWdleHAsLmhsanMtc3RyaW5ne2NvbG9yOiM5OGMzNzl9LmhsanMtYXR0ciwuaGxqcy1udW1iZXIsLmhsanMtc2VsZWN0b3ItYXR0ciwuaGxqcy1zZWxlY3Rvci1jbGFzcywuaGxqcy1zZWxlY3Rvci1wc2V1ZG8sLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsLmhsanMtdHlwZSwuaGxqcy12YXJpYWJsZXtjb2xvcjojZDE5YTY2fS5obGpzLWJ1bGxldCwuaGxqcy1saW5rLC5obGpzLW1ldGEsLmhsanMtc2VsZWN0b3ItaWQsLmhsanMtc3ltYm9sLC5obGpzLXRpdGxle2NvbG9yOiM2MWFlZWV9LmhsanMtYnVpbHRfaW4sLmhsanMtY2xhc3MgLmhsanMtdGl0bGUsLmhsanMtdGl0bGUuY2xhc3Nfe2NvbG9yOiNlNmMwN2J9LmhsanMtZW1waGFzaXN7Zm9udC1zdHlsZTppdGFsaWN9LmhsanMtc3Ryb25ne2ZvbnQtd2VpZ2h0OjcwMH0uaGxqcy1saW5re3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9IiwiLypkYXJrICovXG4ubWFya2Rvd24tYm9keSB7XG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbiAgLyoqIENTUyBkZWZhdWx0IGVhc2luZy4gVXNlIGZvciBob3ZlciBzdGF0ZSBjaGFuZ2VzIGFuZCBtaWNyby1pbnRlcmFjdGlvbnMuICovXG4gIC8qKiBBY2NlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGV4aXRpbmcgdGhlIHZpZXdwb3J0IChtb3Zpbmcgb2ZmLXNjcmVlbikuICovXG4gIC8qKiBTbW9vdGggYWNjZWxlcmF0aW9uIGFuZCBkZWNlbGVyYXRpb24uIFVzZSBmb3IgZWxlbWVudHMgbW92aW5nIG9yIG1vcnBoaW5nIHdpdGhpbiB0aGUgdmlld3BvcnQuICovXG4gIC8qKiBEZWNlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGVudGVyaW5nIHRoZSB2aWV3cG9ydCBvciBhcHBlYXJpbmcgb24gc2NyZWVuLiAqL1xuICAvKiogQ29uc3RhbnQgbW90aW9uIHdpdGggbm8gYWNjZWxlcmF0aW9uLiBVc2UgZm9yIGNvbnRpbnVvdXMgYW5pbWF0aW9ucyBsaWtlIHByb2dyZXNzIGJhcnMgb3IgbG9hZGVycy4gKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMTExNztcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIk5vdG8gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuMnJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm9jdGljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyB2ZXJzaW9uPScxLjEnIGFyaWEtaGlkZGVuPSd0cnVlJz48cGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J003Ljc3NSAzLjI3NWEuNzUuNzUgMCAwMDEuMDYgMS4wNmwxLjI1LTEuMjVhMiAyIDAgMTEyLjgzIDIuODNsLTIuNSAyLjVhMiAyIDAgMDEtMi44MyAwIC43NS43NSAwIDAwLTEuMDYgMS4wNiAzLjUgMy41IDAgMDA0Ljk1IDBsMi41LTIuNWEzLjUgMy41IDAgMDAtNC45NS00Ljk1bC0xLjI1IDEuMjV6bS00LjY5IDkuNjRhMiAyIDAgMDEwLTIuODNsMi41LTIuNWEyIDIgMCAwMTIuODMgMCAuNzUuNzUgMCAwMDEuMDYtMS4wNiAzLjUgMy41IDAgMDAtNC45NSAwbC0yLjUgMi41YTMuNSAzLjUgMCAwMDQuOTUgNC45NWwxLjI1LTEuMjVhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0xLjI1IDEuMjVhMiAyIDAgMDEtMi44MyAweic+PC9wYXRoPjwvc3ZnPlwiKTtcbiAgbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIHZlcnNpb249JzEuMScgYXJpYS1oaWRkZW49J3RydWUnPjxwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6Jz48L3BhdGg+PC9zdmc+XCIpO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzLFxuLm1hcmtkb3duLWJvZHkgZmlnY2FwdGlvbixcbi5tYXJrZG93bi1ib2R5IGZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIGNvbG9yOiAjNDQ5M2Y4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYixcbi5tYXJrZG93bi1ib2R5IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEge1xuICBtYXJnaW46IC42N2VtIDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBmb250LXNpemU6IDJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYjgwMDkyNjtcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNtYWxsIHtcbiAgZm9udC1zaXplOiA5MCU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1Yixcbi5tYXJrZG93bi1ib2R5IHN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSxcbi5tYXJrZG93bi1ib2R5IGtiZCxcbi5tYXJrZG93bi1ib2R5IHByZSxcbi5tYXJrZG93bi1ib2R5IHNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gMi41cmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNkNDQ0ZGIzO1xuICBoZWlnaHQ6IC4yNWVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NDRkO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGlucHV0IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPWJ1dHRvbl0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1yZXNldF0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9Y2hlY2tib3hdLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5tYXJrZG93bi1ib2R5IFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogLjU0O1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5MTk4YTE7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IGhyOjpiZWZvcmUge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXZhcmlhbnQ6IHRhYnVsYXItbnVtcztcbn1cblxuLm1hcmtkb3duLWJvZHkgdGQsXG4ubWFya2Rvd24tYm9keSB0aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRldGFpbHMgc3VtbWFyeSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IHNvbGlkIDFweCByZ2JhKDAsMCwwLDApO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXJDb2xvci1hY2NlbnQtZW1waGFzaXMpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpub3QoW2NsYXNzXSk6Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBhOm5vdChbY2xhc3NdKTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZS1vZmZzZXQ6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGtiZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udDogMTFweCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgY29sb3I6ICNmMGY2ZmM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTFiMjM7XG4gIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlckNvbG9yLW11dGVkKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHZhcigtLWJvcmRlckNvbG9yLW11dGVkKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEsXG4ubWFya2Rvd24tYm9keSBoMixcbi5tYXJrZG93bi1ib2R5IGgzLFxuLm1hcmtkb3duLWJvZHkgaDQsXG4ubWFya2Rvd24tYm9keSBoNSxcbi5tYXJrZG93bi1ib2R5IGg2IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDIge1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nLWJvdHRvbTogLjNlbTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgaDMge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IC44NzVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDYge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IC44NWVtO1xuICBjb2xvcjogIzkxOThhMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBjb2xvcjogIzkxOThhMTtcbiAgYm9yZGVyLWxlZnQ6IC4yNWVtIHNvbGlkICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsLFxuLm1hcmtkb3duLWJvZHkgb2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2wgb2wsXG4ubWFya2Rvd24tYm9keSB1bCBvbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsIHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgdWwgb2wgb2wsXG4ubWFya2Rvd24tYm9keSBvbCB1bCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIG9sIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdHQsXG4ubWFya2Rvd24tYm9keSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSAub2N0aWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXJrZG93bi1ib2R5IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLm1hcmtkb3duLWJvZHkgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tci0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keTo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpub3QoW2hyZWZdKSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5hYnNlbnQge1xuICBjb2xvcjogI2Y4NTE0OTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmFuY2hvciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubWFya2Rvd24tYm9keSAuYW5jaG9yOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcCxcbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGUsXG4ubWFya2Rvd24tYm9keSB1bCxcbi5tYXJrZG93bi1ib2R5IG9sLFxuLm1hcmtkb3duLWJvZHkgZGwsXG4ubWFya2Rvd24tYm9keSB0YWJsZSxcbi5tYXJrZG93bi1ib2R5IHByZSxcbi5tYXJrZG93bi1ib2R5IGRldGFpbHMge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlPjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGU+Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDIgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgzIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNCAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDUgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg2IC5vY3RpY29uLWxpbmsge1xuICBjb2xvcjogI2YwZjZmYztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3Ige1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgyOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg0OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg1OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIHR0LFxuLm1hcmtkb3duLWJvZHkgaDEgY29kZSxcbi5tYXJrZG93bi1ib2R5IGgyIHR0LFxuLm1hcmtkb3duLWJvZHkgaDIgY29kZSxcbi5tYXJrZG93bi1ib2R5IGgzIHR0LFxuLm1hcmtkb3duLWJvZHkgaDMgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg0IHR0LFxuLm1hcmtkb3duLWJvZHkgaDQgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg1IHR0LFxuLm1hcmtkb3duLWJvZHkgaDUgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg2IHR0LFxuLm1hcmtkb3duLWJvZHkgaDYgY29kZSB7XG4gIHBhZGRpbmc6IDAgLjJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgxLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDMsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg0LFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDEgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDMgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDQgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDUgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDYgLmFuY2hvciB7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwubm8tbGlzdCxcbi5tYXJrZG93bi1ib2R5IG9sLm5vLWxpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJhIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiQSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1hbHBoYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cImkgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJJIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiMVwiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGl2Pm9sOm5vdChbdHlwZV0pIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bCB1bCxcbi5tYXJrZG93bi1ib2R5IHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgb2wsXG4ubWFya2Rvd24tYm9keSBvbCB1bCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGxpPnAge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBsaStsaSB7XG4gIG1hcmdpbi10b3A6IC4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBkbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRsIGR0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGwgZGQge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGgsXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDZweCAxM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0ZD46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMTExNztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTFiMjM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIGltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZ1thbGlnbj1yaWdodF0ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZ1thbGlnbj1sZWZ0XSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5lbW9qaSB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWU+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDdweDtcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZSBzcGFuIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZSBzcGFuIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDAgMDtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbG9yOiAjZjBmNmZjO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1jZW50ZXI+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDEzcHggYXV0byAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tY2VudGVyIHNwYW4gaW1nIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1yaWdodD5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTNweCAwIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0IHNwYW4gaW1nIHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1sZWZ0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDEzcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtbGVmdCBzcGFuIHtcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LXJpZ2h0PnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxM3B4IGF1dG8gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUsXG4ubWFya2Rvd24tYm9keSB0dCB7XG4gIHBhZGRpbmc6IC4yZW0gLjRlbTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDg1JTtcbiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY1NmM3NjMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUgYnIsXG4ubWFya2Rvd24tYm9keSB0dCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRlbCBjb2RlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzYW1wIHtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSBjb2RlIHtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmU+Y29kZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHByZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCBwcmUsXG4ubWFya2Rvd24tYm9keSBwcmUge1xuICBwYWRkaW5nOiAxcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1zaXplOiA4NSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MWIyMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmUgY29kZSxcbi5tYXJrZG93bi1ib2R5IHByZSB0dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0ZCxcbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0aCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIC5ibG9iLW51bSB7XG4gIHBhZGRpbmc6IDEwcHggMC41cmVtIDlweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJhY2tncm91bmQ6ICMwZDExMTc7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRyIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogIzE1MWIyMztcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW2RhdGEtZm9vdG5vdGUtcmVmXTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJbXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IFtkYXRhLWZvb3Rub3RlLXJlZl06OmFmdGVyIHtcbiAgY29udGVudDogXCJdXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTE5OGExO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBvbCB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBvbCB1bCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpOnRhcmdldDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMC41cmVtKi0xKTtcbiAgcmlnaHQ6IGNhbGMoMC41cmVtKi0xKTtcbiAgYm90dG9tOiBjYWxjKDAuNXJlbSotMSk7XG4gIGxlZnQ6IGNhbGMoMS41cmVtKi0xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxZjZmZWI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBsaTp0YXJnZXQge1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyAuZGF0YS1mb290bm90ZS1iYWNrcmVmIGctZW1vamkge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYyB7XG4gIGNvbG9yOiAjOTE5OGExO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYzEsXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtdiB7XG4gIGNvbG9yOiAjNzljMGZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtZSxcbi5tYXJrZG93bi1ib2R5IC5wbC1lbiB7XG4gIGNvbG9yOiAjZDJhOGZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtc21pLFxuLm1hcmtkb3duLWJvZHkgLnBsLXMgLnBsLXMxIHtcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1lbnQge1xuICBjb2xvcjogIzdlZTc4Nztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWsge1xuICBjb2xvcjogI2ZmN2I3Mjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXMsXG4ubWFya2Rvd24tYm9keSAucGwtcGRzLFxuLm1hcmtkb3duLWJvZHkgLnBsLXMgLnBsLXBzZSAucGwtczEsXG4ubWFya2Rvd24tYm9keSAucGwtc3IsXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLWNjZSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtc3JlLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1zcmEge1xuICBjb2xvcjogI2E1ZDZmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXYsXG4ubWFya2Rvd24tYm9keSAucGwtc213IHtcbiAgY29sb3I6ICNmZmE2NTc7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1idSB7XG4gIGNvbG9yOiAjZjg1MTQ5O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtaWkge1xuICBjb2xvcjogdmFyKC0tZmdDb2xvci1kYW5nZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ0NvbG9yLWRhbmdlci1tdXRlZCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jMiB7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjYyMzI0O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLWNjZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzdlZTc4Nztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1sIHtcbiAgY29sb3I6ICNmMmNjNjA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taCxcbi5tYXJrZG93bi1ib2R5IC5wbC1taCAucGwtZW4sXG4ubWFya2Rvd24tYm9keSAucGwtbXMge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxZjZmZWI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1kIHtcbiAgY29sb3I6ICNmZmRjZDc7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzA2MGM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taTEge1xuICBjb2xvcjogI2FmZjViNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzM2ExNjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1jIHtcbiAgY29sb3I6ICNmZmRmYjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTFlMDI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taTIge1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExNThjNztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1kciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2QyYThmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWJhIHtcbiAgY29sb3I6ICM5MTk4YTE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zZyB7XG4gIGNvbG9yOiAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtY29ybCB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2E1ZDZmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9dGFicGFuZWxdW3RhYmluZGV4PVwiMFwiXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdGFiaW5kZXg9XCIwXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzLWRpYWxvZzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZy1lbW9qaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxY2g7XG4gIGZvbnQtZmFtaWx5OiBcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiAtMC4wNzVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZy1lbW9qaSBpbWcge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpoYXMoPnAsPmRpdiw+cHJlLD5ibG9ja3F1b3RlKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpOm5vdCg6aGFzKC5zbmlwcGV0LWNsaXBib2FyZC1jb250ZW50LD5wcmUpKSB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpoYXMoPnAsPmRpdiw+cHJlLD5ibG9ja3F1b3RlKTpoYXMoLnNuaXBwZXQtY2xpcGJvYXJkLWNvbnRlbnQsPnByZSk6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXJDb2xvci1hY2NlbnQtZW1waGFzaXMpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbS5lbmFibGVkIGxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0rLnRhc2stbGlzdC1pdGVtIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtIC5oYW5kbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBtYXJnaW46IDAgLjJlbSAuMjVlbSAtMS40ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsOmRpcihydGwpIC50YXNrLWxpc3QtaXRlbS1jaGVja2JveCB7XG4gIG1hcmdpbjogMCAtMS42ZW0gLjI1ZW0gLjJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2w6ZGlyKHJ0bCkgLnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIC0xLjZlbSAuMjVlbSAuMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY29udGFpbnMtdGFzay1saXN0OmhvdmVyIC50YXNrLWxpc3QtaXRlbS1jb252ZXJ0LWNvbnRhaW5lcixcbi5tYXJrZG93bi1ib2R5IC5jb250YWlucy10YXNrLWxpc3Q6Zm9jdXMtd2l0aGluIC50YXNrLWxpc3QtaXRlbS1jb252ZXJ0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAyNHB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGZpbHRlcjogaW52ZXJ0KDUwJSk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWxlZnQ6IC4yNWVtIHNvbGlkICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydD46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQ+Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1ub3RlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMxZjZmZWI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1ub3RlIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjNDQ5M2Y4O1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4OTU3ZTU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNhYjdkZjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC13YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5ZTZhMDM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC13YXJuaW5nIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjZDI5OTIyO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtdGlwIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMyMzg2MzY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC10aXAgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICMzZmI5NTA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNkYTM2MzM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjZjg1MTQ5O1xufVxuXG4ubWFya2Rvd24tYm9keT4qOmZpcnN0LWNoaWxkPi5oZWFkaW5nLWVsZW1lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQgcHJlOmhhcygrLnplcm9jbGlwYm9hcmQtY29udGFpbmVyKSB7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG59XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/